mirror of
https://github.com/Didnelpsun/CS408.git
synced 2026-06-16 06:56:54 +08:00
更新网络层
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -99,7 +99,7 @@ $IP$协议使用$ARP$协议,而$ICMP$与$IGMP$使用$IP$协议。
|
||||
区分服务 DSCP + ECN|希望获得哪种服务,用的比较少|8位
|
||||
总长度 Total Length|首部+数据的长度,单位为1字节,最大为$2^{16}-1=65535$B,但是实际上永远不会达到该长度,因为有MTU的限制|16位
|
||||
标识 Identification|就是一个计数器,用来表示是哪一个数据报的分片,同一个数据报的分片标识相同|8位
|
||||
标志 Flags|用来表示是否分片和分片是否结束;中间位DF(Don't Fragment)为1表示禁止分片,如果是0代表允许分片;最低位MF(More Fragment)为1表示后面还有分片,如果为0表示最后一片分片|3位,但实际有用的只有后两位
|
||||
标志 Flags|3bit,用来表示是否分片和分片是否结束;中间位DF(Don't Fragment)为1表示禁止分片,如果是0代表允许分片;最低位MF(More Fragment)为1表示后面还有分片,如果为0表示最后一片分片|3位,但实际有用的只有后两位
|
||||
片偏移 Fragment Offset|用来标记分片之后,该分片在原来的数据报的位置,以8字节为单位|13位
|
||||
生存时间 Time To Live|即TTL,每经过一个路由器TTL-1,等于0时自动放弃,根据系统不同默认的TTL不同,为了防止无法传输的数据报在链路中无限传输|8位
|
||||
协议 Protocol|用来标记数据部分协议名的字段值,如ICMP:1;IGMP:2;TCP:6;EGP:8;IGP:9;UPD:17;IPv6:41;ESP:50;OSPF:89|8位
|
||||
@@ -109,14 +109,18 @@ $IP$协议使用$ARP$协议,而$ICMP$与$IGMP$使用$IP$协议。
|
||||
可选字段 Options|用来排错等安全检测|未知,可在0-40位之间
|
||||
填充|将数据报对齐成4字节的整数倍,数值全部为0|未知,根据可选字段来定
|
||||
|
||||
重点:$DF$和$MF$,首部长度$4bit$、总长度$1bit$、片偏移$8bit$。
|
||||
重点:首部长度$4bit$、总长度$1bit$、片偏移$8bit$。
|
||||
|
||||
#### IP数据报分片
|
||||
|
||||
注意$DF$和$MF$。
|
||||
|
||||
+ 最大传送单元$MTU$,数据链路层帧可封装的数据的上限,以太网的$MTU$是$1500$字节。
|
||||
+ 当$IP$分组超过$MTU$时为了传输就必须要分片,而如果$IP$分组不允许分片则无法传输,会返回上层一个差错报告。
|
||||
+ 除了最后一个分片,每个分片的长度必然为八字节的整数倍。
|
||||
|
||||
<span style="color:orange">注意:</span>$MF=0$不能确定是独立的数据报,还是分片得来的,只有当$MF=0$且片段偏移字段$>0$时,才能确定是分片的最后一个分片。
|
||||
|
||||
#### 转发分组流程
|
||||
|
||||
路由表包括:
|
||||
|
||||
Reference in New Issue
Block a user