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到底基于哪一层次?