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