应用层
传输层
无连接运输
UDP 报文段结构
-
源端口号:16 位;
-
目的端口号:16 位;
-
长度:16 位,报文段的总长度;
-
检验和:16 位,报文段中所有 16 位字的和进行反码运算;
-
应用数据:应用层的报文。
假定所有 16 位字的和为 0100101011000010,反码运算结果则为 1011010100111101,接收方相加应得到 1111111111111111;若这些之一是 0,则判断分组出现差错。
可靠数据传输原理
rdt1.0
rdt2.0
rdt2.1
rdt2.2
rdt3.0
网络层
网络层概述
转发与路由选择
数据平面是网络设备中负责实际数据传输的部分,由硬件实现识别和处理从输入端口进入设备的数据包,并将它们转发到正确的输出端口;
控制平面是网络设备中负责路由选择和决策的部分,由软件实现根据路由选择算法计算出最佳的路径,并将路由信息传递给数据平面;
转发表采取最长前缀匹配规则,即在该表中寻找最长的匹配项,向与最长前缀匹配相关联的链路接口转发分组。
网际协议
IPv4 数据报格式
-
版本号:4 位,决定是 IPv4 还是 IPv6;
-
首部长度:4 位,表示 IP 数据报的首部长度;
-
服务类型:8 位,Type of Service(TOS) 现已弃用;
-
数据报长度:16 位,表示 IP 数据报的总长度;
-
标识:16 位,与 IP 分片有关;
-
标志位:3 位,包括 DF(Don't Fragment),MF(More Fragments),Reserved,DF=1 表明不允许分片,MF=1 表明已进行了分片,IPv4 的 Reserved=0;
-
片偏移:13 位,表明当前分片数据的第一个字节在原始数据的位置除以 8,因为数据长度最多为 16 位,片偏移只有 13 位,相差 8 倍;
-
寿命:8 位,每经过一次路由器处理,寿命减 1;
-
上层协议:8 位,表明使用哪一个运输层协议,如 TCP 和 UDP;
-
首部检验和:16 位,首部每 2 个字节作为 1 个数反码求和;
-
源 IP 地址:32 位,
-
目的 IP 地址:32 位,
-
选项:首部的扩展,非必需;
-
数据:承载的数据。
IP 切割与重组
切割:切割的数据报继承 16 位标识号,MF 和片偏移值变化,算法如下:
假定原始数据 1110 字节,每段不超过 512 字节 (最大传输单元 MTU),应划分为 488+488+134,除最后一段分片必须为 8 的倍数。
重组:重组仅发生在最终接收方,算法如下:
将各个分片按照偏移量从低到高依次排列,然后去掉每个分片中的IP头部,将数据部分拼接起来得到原始数据报。
IPv4 编址
IPv4 由 x 位子网地址(网络号),32-x 位主机地址(主机号)组成。
- A 类地址是 1.0.0.0 到 126.0.0.0 的地址,用于大型网络 (高位 0,网络号 8 位,主机号 24 位);
- B 类地址是 128.0.0.0 到 191.255.0.0 的地址,用于中等规模的网络 (高位 10,网络号 16 位,主机号 16 位);
- C 类地址是 192.0.0.0 到 223.255.255.0 的地址,用于小规模的网络 (高位 110,网络号 24 位,主机号 8 位);
- D 类地址是 224.0.0.0 到 239.255.255.255 的地址,用于多播(高位 1110,主机号 28 位);
- E 类地址是 240.0.0.0 到 247.255.255.255 的地址,保留用于将来使用 (高位 11110)。
网络号的计算方法:
假定 IPv4 地址为 192.168.1.100,子网掩码为 255.255.255.0,换算为 11000000.10101000.00000001.01100100 和 11111111.11111111.11111111.00000000,按位与运算得到 192.168.1.0/24 即网络号。
使用子网掩码可以提高地址的利用率,格式为高位 1 低位 0,1 的个数即网络号长度。
标签:16,0.0,分片,计算机网络,地址,自顶向下,IPv4,IP From: https://www.cnblogs.com/Arcticus/p/17242540.html