TCP/IP模型主要协议 | |||||||||||
| MIME |
| |||||||||
HTTP | FTP | SMTP | TELNET | BGP | DNS | SNMP | RPC | NFS | TFTP | RIP | |
TCP | UDP | ||||||||||
ICMP IGMP OSPF | |||||||||||
IP | |||||||||||
ARP RARP | |||||||||||
IP数据报的格式 | |||||||||||||||||||||||||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
版本 | 报头长度 | 服务类型(service type) | 总长度 | ||||||||||||||||||||||||||||
4或6 | 最小5*4最大15*4 | 优先级 | D | T | R | C | 未用 | 2^16-1=65535(整个数据报) | |||||||||||||||||||||||
标识(identification) | 标志flags | 片偏移(fragment offset) | |||||||||||||||||||||||||||||
片识别的标记 | 0 | DF | MF | 8B计数,分片在整个数据报中相对位置 | |||||||||||||||||||||||||||
生存时间(TTL) | 协议 | 首部校验和(header checksum) | |||||||||||||||||||||||||||||
经过路由器跳步数表示 | 例:6代表TCP | 检验数据报头部的完整性 | |||||||||||||||||||||||||||||
源IP地址(source address) | |||||||||||||||||||||||||||||||
目的IP地址(destintion address) | |||||||||||||||||||||||||||||||
长度可变的选项字段 | 填充 | ||||||||||||||||||||||||||||||
数据 | |||||||||||||||||||||||||||||||
…… | |||||||||||||||||||||||||||||||
备注:1.优先级(Precedence):共分8级,数值越大优先级越大; 2.TOS(type of service)(D(dely:延迟)T(throughput:通信量)R(reliability:可靠性)C(cost:成本)=1,好,四个中最多一个为1,默认0000;) 3.DF(don't fragment)=0,表示结点可以对其能分片, MF(more fragment)=0,最后一个分片; |
TCP数据报格式与伪报头格式 | ||||||||||||||||||||||||||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | |
伪首部 | 源IP地址(source address) | |||||||||||||||||||||||||||||||
目的IP地址(destination address) | ||||||||||||||||||||||||||||||||
0 | 6 | TCP长度 | ||||||||||||||||||||||||||||||
TCP数据报 | 源端口号 | 目的端口号 | ||||||||||||||||||||||||||||||
序号 | ||||||||||||||||||||||||||||||||
本报文段数据第一个字节的序号 | ||||||||||||||||||||||||||||||||
确认号 | ||||||||||||||||||||||||||||||||
希望接受到的下一个报文段数据的第一个字节的序号 | ||||||||||||||||||||||||||||||||
头部长度 | 保留 | URG | ACK | PSH | PST | SYN | FIN | 窗口大小 | ||||||||||||||||||||||||
最小5*4,最大15*4 | 目前全部置0 | 控制域 | 最大为2^16-1=65535B | |||||||||||||||||||||||||||||
校验和 | 紧急指针 | |||||||||||||||||||||||||||||||
必选,和UDP校验方法一样 | 当URG=1,表示该报文段中有紧急数据(urgentdata),紧急指针指出紧急数据的最后一个字节的序号 | |||||||||||||||||||||||||||||||
选项与填充 | ||||||||||||||||||||||||||||||||
选项 | 单字节选项 | 选项结束,无操作 | ||||||||||||||||||||||||||||||
多字节选项 | 最大报文段长度,窗口扩大因子,时间戳 | |||||||||||||||||||||||||||||||
数据 | ||||||||||||||||||||||||||||||||
备注:1.控制域:(1时有效) 确认比特ACK(acknowledge):确认序号有效。 紧迫比特PSH(push):接收方应该尽快将这个报文段交给应用层。 复位比特RST(reset) :重建连接。 同步比特SYN():用来发起一个连接。 终止比特FIN(final):发端完成发送任务。 |
UDP数据报格式与伪报头格式 | ||||||||||||||||||||||||||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | |
伪首部 | 源IP地址(source address) | |||||||||||||||||||||||||||||||
目的IP地址(destintion address) | ||||||||||||||||||||||||||||||||
0 | 17 | UDP长度 | ||||||||||||||||||||||||||||||
UDP数据报 | 源端口号 | 目的端口号 | ||||||||||||||||||||||||||||||
长度 | 校验和 | |||||||||||||||||||||||||||||||
数据(必须进行填充使数据是16位的倍数) | ||||||||||||||||||||||||||||||||
备注:1.伪报头中的(UDP长度)和UDP数据报中的(长度)都是UDP数据报的长度; 2.校验和校验的是UDP伪报头和UDP数据报整个数据;校验和是可选的。 3.填充域字段填入0,使伪报头的长度为16b的倍数; |
TCP/UDP/IP数据报及相关长度 | ||||
| IP | TCP | UDP | |
伪首部 | 无 | 12B | ||
数据报首部 | 基本长度 | 20B | 不分:8B | |
选项域 | 最大40B | |||
长度 | 最大60B | |||
数据报长度 | 最小 | ? | ? | 8B |
最大 | 65535B | ? | 65535B | |
附:以太网的最大传输单元MTU(maximum transfer unit)为1500B, 帧数据字段:46B-1500B;帧的长度:64B—1518B。MTU,帧中数据域的最 大字节长度。
|
OSPF报文用IP数据报传送 | ||
IP数据报 | ||
IP数据报首部 | OSPF报文 | |
OSPF报文首部 | 类型1-5的OSPF报文 | |
20B | 20B |
|
ICMP报文用IP数据报传送 | |||
IP数据报 | |||
IP数据报首部 | ICMP报文 | ||
| 类型 | 代码 | 校验和 |
1B | 1B | 2B(校验整个ICMP报文) | |
长度可变部分,取决于ICMP的类型 |
ARP报文结构:
Ethernet帧结构 | ||||||
| LLC PDU | |||||
前导码 | 帧前定界符 | 目的地址DA | 源地址SA | 长度 | LLC数据 | FCS |
7B | 1B | 6B | 6B | 2B | 46B—1500B | 4B |
前同步码(8B) | MAC帧:64B—1618B | |||||
1010......1011 | FCS的校验范围 | |||||
实际传输的帧 |
PPP帧的格式 | |||||||||
标志字段(7E) | 地址字段(FF) | 控制字段(03) | 协议字段 | 信息字段 | 帧校验字段(FCS) | 标志字段 | |||
0111 1110 | 8b | 8b | 16b | 长度可变 | 16b | 0111 1110 | |||
HDLC帧的结构 | |||||||||
标志字段F | 地址字段A | 控制字段C | 信息字段I | 帧校验字段FCS | 标志字段F | ||||
8b | 8/16b | 8b | 长度可变 | 16/32b | 8b | ||||
0111 1110 |
| 0111 1110 | |||||||
不清楚的:
1标志中的0到底是第一个还是倒数第一个?
服务类型(service type)中的最后一个字节是?
生存时间到底是时间表示还是跳数表示?
2伪报头的,第三行的0到底是?
数据(必须进行填充使数据是16位的倍数)有必要是否IP中也是?
3.同步比特SYN()
4. DNS到底基于哪一层次?