个人学习笔记,若有侵权,请告知!
TCP/IP模型与OSI模型
1、TCP/IP协议簇
2、应用层
Telnet、SNMP、FTP、SSH、TFTP、HTTP、HTTPS、SMTP、POP、IGMP、DNS、DHCP
3、主机到主机层
-
传输控制协议(TCP)
- 面向连接
- 可靠传输
- 使用TCP的应用:web浏览器、电子邮件、文件传输程序
-
用户数据报协议(UDP)
- 高效
- 尽力传输
- 使用UDP的应用:域名系统(DNS)、视频系统、IP语音(VoIP)
4、特点
- TCP:安全可靠、效率低
- UDP:安全性低、效率高
TCP机制
1、TCP三次握手
TCP采用三次握手建立连接
- 第一次握手:Client向Server发送一个连接请求,在这过程中,标志位SYN=1,发送序号seq=x,Client进入SYN_SENT状态,等待Server确认;(我要开始一个连接)
- 第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,确认序号ack=x+1,随机产生一个发送序号seq=y,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态;(好的,可以连接)
- 第三次握手:Client收到确认后,检查确认序列号ACK是否为x+1,标志位ACK是否为1,若正确,则将标志位ACK置为1,确认序号ACK=y+1,并将该数据包发送给Server,Server检查确认序号ACK是否为y+1,标志位ACK是否为1,若正确则连接成功,Client和Server进入ESTSBLISHED状态。(好的,收到)
- 完成三次握手,客户端和服务器端开始传送数据。
2、TCP四次挥手
TCP采用四次挥手终止TCP连接
- 第一次挥手:Client发送一个FIN=N,用来关闭Client到Server的数据传输,Client进入FN_WAIT_1状态;(我要终止连接)
- 第二次挥手:Server收到FIN后,先发送ack=N+1,告知Client请求已收到,但Server还没准备好,继续等Server的消息,这时Client进入FN_WAIT_2状态;(可以终止连接)
- 第三次挥手:当Server确认数据已经发送完成,则向Client发送FIN=M确认报文,告知Client数据发送完成了,准备关闭连接,Server进入LAST_ACK状态;(终止连接了)
- 第四次挥手:Client收到Server的断开连接FIN=M确认报文后,向Server发送ack=M+1确认断开报文,Client进入TIME_WAIT状态;Server收到Client确认断开报文后,进入CLOSED状态,断开TCP连接。(好的,收到)
- 完成四次挥手,客户端和服务器断终止TCP连接。终止连接端可以是客户端,也可以是服务器端。
3、端口号类型
- 范围:0~65535
- 已划分给特定协议,不能随意使用:0~1023
- 可以有限的去使用:1024~49511
- 可以随意使用:49512~65535
4、源/目的端口
- 源端口随机分配,目标端口使用已知端口
- 应用客户端使用的源端口号一般为系统中未使用且大于1023
- 目的端口号为服务器端应用服务的进程,如telnet23
5、TCP的特点
- TCP/IP 协议栈的传输层
- 面向连接的协议
- 全双工模式运行
- 错误检查
- 数据包序列化
- 接收确认
- 数据恢复功能
IP
1、IP报头
- 版本(Ver):IP版本号。
- 报头长度(IHL):报头的长度,单位为32 位字。
- 服务类型(Service Type):服务类型指出应如何处理数据报。
- 数据包总长度(Packet Length):包括报头和数据的总长度。
- 标识(Identification):唯一的IP分组值,用于区分不同的数据报。
- 标志(Flag):指出是否进行了分段。
- 片内偏移(Frag.Offset):在分组太大,无法放入一个帧中时,提供了分段和重组功能。它还使得因特网上可有不同的MTU (Maximum Transmission Unit ,最大传输单元)。
- 生存时间(Time to Live):生成分组时给它指定的存活时间。如果分组到达目的地之前TTL就已到期,分组将被丢弃。这可避免IP 分组因寻找目的地不断在网络中传输。0-255,ttl减少1,一般16跳足够了。
- 协议(Protocol):告诉IP上层用的是TCP(6)还是UDP(7)。
- 报头校验和(Header Checksum):对报头执行CRC的结果。
- 源IP地址(Source Address):发送方的32位IP地址。
- 目标IP地址(Destination Address):接收方的32位IP地址。
- 选顶(Options):用于网络测试、调试、安全等。
- 填充(Padding)
2、IP编址
IP地址长32 位,这些位被划分成4 组,每组8 位。总的有2^32个地址,3 种方法描述IP 地址:
- 点分十进制表示,如172.16.57.186 。(常用)
- 二进制,如10101100.00010000.00111001.10111010。
- 十六进制,如AC.10.39.BA 。
3、地址范围
- A类 : 8位network/24位host 取值范围 :1~126 127.x.x.x本机回环地址(0xxxxxxx)
- B类 :16位network/16位host 取值范围 :128~191 (10xxxxxx)
- C类 :24位network/8位host 取值范围 :192~223 (110xxxxx)
- D类 :取值范围 :224~239 (1110xxxx)
- E 类 : 保留
4、私有地址
- A类 :10.0.0.0~10.255.255.255
- B类 :172.16.0.0~172.31.255.255
- C类 :192.168.0.0~192.168.255.255
5、ICMP(因特网控制消息协议)
- 作用:控制网络层的连通性,面向连接的协议;用于向原节点发送“错误报告”信息。
- 原理:发送echo request,目标收到后发送echo reply
- 常用命令:ping、traceroute
5.1、ping
- ping是个应用程序
- 工作原理:
- 发送ICMP的echo request
- ICMP被IP封装,途径的网络设备看到的是IP包
- 目标主机接收到echo request后发送echo reply
- ping通:
- 通信子网——去与回
- 资源子网——发送主机与接收主机
5.2、Traceroute
- 目的:探测到目标主机所经过的路径
- 工作原理:利用IP头部的TTL字段,TTL报超时信息探测每一个设备节点;从TTL=1开始发送,每次累加TTL值,直到达到目的地
6、ARP
-
ARP(地址解析协议):通过广播查询IP对应的MAC
- 过程:目标主机在本地网络
- 基本功能:将IPv4地址解析为MAC地址;维护映射缓存
- 代理ARP(Rroxy ARP):目标IP不在广播域时,使用本接口MAC进行数据转发
- RARP(逆向地址解析协议Reverse ARP):通过MAC来获得IP——DHCP
-
免费ARP:
- 端口UP时发送一个免费ARP,若地址有冲突就会回应
- 当设备变更了硬件(网卡),也会发送免费ARP,如果其他设备有相应的ARP表,则将更新