网络协议-1-网络基础
2019-10-01 本文已影响0人
宠辱不惊的咸鱼
TCP/IP数据包封装
tcp-020.jpg以太网帧首部
- 数据链路层
- 14字节 = 6(目的MAC) + 6(源MAC) + 2(网络协议)
- MAC:34-F3-9A-A7-76-82
- 08 00:IP协议
- 08 06:地址解析协议ARP(Address Resolution Protocol)
- OSI中属于链路层,TCP/IP中属于网络层
IP数据报
tcp-021.jpg- 1:IP协议版本(IPv4或IPv6)+ 首部长度(20字节)
- 2:IP优先级(3位)+ DTR(Delay,Throughput,Reliability,4位)+ 0(最低位)
- 3,4:数据报长度(报头+数据,单位字节)
- 5,6:数据报被分片后的标识,便于正确的重装原来的数据报
- 7,8:3位标志,13位片偏移,其中标识位只有两位有意义
- 9:数据报在网络中寿命(TTL,Time to Live)
- 10:数据的协议类型(01表示ICMP; 06表示TCP; 11表示UDP协议)
- 11,12:首部校验和,用于对数据报的保留丢弃判别
- 13-16:源IP
- 17-20:目的IP
- 数据:TCP段
- 如果数据报大小超过了MTU(最大传输单元),则分片,将分片传给链路层;如果没有超过MTU,则直接传给链路层
ICMP
tcp-022.jpg- 报头8个字节 + 报文数据32个字节
- ICMP协议是IP协议的补充,用于IP层的差错报告、拥塞控制、路径控制以及路由器或主机信息的获取
- ICMP与IP协议位于同一个层(网络层),但ICMP报文是封装在IP数据报的数据部分进行传输的
- 1:报文类型
- 08:回应请求报文,传递的ping命令通常用于测试信宿(传输信息归宿)的可到性
- 00:回应应答报文(如果是匹配的一组报文对,其标识符和序列号是一样的,且数据部分也是一样的)
- 2:(00)指的是代码为0,网络不可达
- 3,4:校验和(Checksum)
- 5,6:标识符(Identifier)
- 7,8:报文的序列号(Sequence number)
- 9-40:报文数据(Data)
TCP段
tcp-023.jpg- 5-8:Sequence Number
- 9-12:Acknowledge Number
- 13的前4位:数据偏移,也即TCP头长度(不固定)
- 保留6位:置0
- URG:尽快传送,不进传送队列
- ACK:为1时,确认序号有效
- PSH:为1时,告诉远端TCP将数据尽快给应用层,而不要等缓存填满
- RST:严重错误时释放连接/拒绝不法报文段/拒绝连接
- SYN:SYN=1&ACK=0表示请求连接;SYN=1&ACK=1表示应答连接
- FIN:正常释放连接
- 窗口
- 选项和填充:数据偏移 - 20