1
0
mirror of https://github.com/Didnelpsun/CS408.git synced 2026-06-16 06:56:54 +08:00

更新网络层

This commit is contained in:
Didnelpsun
2021-08-03 23:13:03 +08:00
parent 8b03163b65
commit 9eea2f7f61
2 changed files with 122 additions and 3 deletions

File diff suppressed because one or more lines are too long

View File

@@ -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|用来表示是否分片和分片是否结束中间位DFDon't Fragment为1表示禁止分片如果是0代表允许分片最低位MFMore Fragment为1表示后面还有分片如果为0表示最后一片分片|3位但实际有用的只有后两位
标志 Flags|3bit用来表示是否分片和分片是否结束中间位DFDon't Fragment为1表示禁止分片如果是0代表允许分片最低位MFMore Fragment为1表示后面还有分片如果为0表示最后一片分片|3位但实际有用的只有后两位
片偏移 Fragment Offset|用来标记分片之后该分片在原来的数据报的位置以8字节为单位|13位
生存时间 Time To Live|即TTL每经过一个路由器TTL-1等于0时自动放弃根据系统不同默认的TTL不同为了防止无法传输的数据报在链路中无限传输|8位
协议 Protocol|用来标记数据部分协议名的字段值如ICMP1IGMP2TCP6EGP8IGP9UPD17IPv641ESP50OSPF89|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$时,才能确定是分片的最后一个分片。
#### 转发分组流程
路由表包括: