循环冗余检验的原理
在发送端,先把数据划分为组,假设每组k个比特。
在每组M后面再添加供差错检测用的n位冗余码,然后一起发送出去。
【例题】
求校验序列、FCS、帧检验序列、冗余多项式R(X)、冗余码、余数R方法类同。
【例题】
数据报分片
TCP首部20字节
UDP首部8字节
DF值为0允许分片,为1不允许分片
MF值为1后面还有分片,为0后面没有分片
片偏移字段的单位是8字节
数据报长度(包含首部)
数据部分长度(不含首部)
【例题】已知一个分组的数据部分长度为3800字节,网络规定分组的分片长度不能超过1420字节,假设IP分组的首部采用固定首部20个字节请问原始分组需要分成几个分片?每个分片的总长度、标识字段(注:原始分组标识字段是666)、DF标志位(注:0表示可分片,1表示不可分片)、MF标志位(注:0表示是最后分片,1表示后面还有分片)、分片偏移字段各是多少?
解:
3800/(1420-20)=2……1000
所以需要三个分片
分片1:0——1399
分片2:1400——2799
分片3:2800——3799
分片偏移字段=()/8
如分片2=1400/8
(需要注意片偏移量字段必须是整数,如果不是需要重新分片)
总长度 | 标识字段 | DF标志位 | MF标志位 | 分片偏移字段 | |
原始分组 | 3820 | 666 | 0 | 0 | 0 |
分片1 | 1420 | 666 | 0 | 1 | 0 |
分片2 | 1420 | 666 | 0 | 1 | 175 |
分片3 | 1020 | 666 | 0 | 0 | 350 |
【例题】一个UDP用户数据报的数据字段为6192字节。在链路层要使用以太网来传送。试问应当划分几个IP数据报片?说明一个数据报数据字段长度和片偏移字段的值。
解:
数据报字段=6192+UDP首部=6192+8=6200
题目没给最大分片长度默认1500字节(包含20B的首部)
6200/1480=4……280(因为是UDP首部为8,所以要带着首部一起除)
五个分片
分片1:0——1479
分片2:1480——2959
分片3:2960——4439
分片4:4440——5919
分片5:5920——6199
数据报数据字段长度 | 片偏移字段 | |
分片1 | 1480 | 0 |
分片2 | 1480 | 185 |
分片3 | 1480 | 370 |
分片4 | 1480 | 555 |
分片5 | 280 | 740 |
(MTU指的就是最大传输单元)
码分多址
【例题】
将收到的码片序列与上述站的码片序列进行正交运算
得到1代表发送数据的站发送的是1,得到-1代表发送的是0,得到0代表没有发送
地址聚合
【例题】有如下的四个/24地址块,试进行最大可能的聚合。
212.56.132.0/24
212.56.133.0/24
212.56.134.0/24
212.56.135.0/24
由题意知四个地址块中第三个字节不同,将第三部分转为二进制
212.56.10000100.0
212.56.10000101.0
212.56.10000110.0
212.56.10000111.0
共同前缀有22位(16+6),所以聚合的CIDR地址块是:212.56.132.0/22(最大前缀及后面全加0得来)
路由表更新
对于发来的路由表,距离加一,下一跳改为发来的路由表
表中不存在的直接添加进表
存在,下一跳不同,距离小更小的时候更新
存在,下一跳相同,无条件更新
【例题】
目的网络 | 距离 | 下一跳路由器 |
N2 | 5 | C |
N3 | 9 | C |
N6 | 5 | C |
N8 | 4 | C |
N9 | 6 | C |
更新后的B的路由表
目的网络 | 距离 | 下一跳路由器 |
N1 | 7 | A |
N2 | 5 | C |
N3 | 9 | C |
N6 | 5 | C |
N8 | 4 | E |
N9 | 4 | F |
【例题】
目的网络 | 距离 | 下一跳 |
10.0.0.0 | 5 | R2 |
30.0.0.0 | 5 | R2 |
40.0.0.0 | 3 | R2 |
41.0.0.0 | 4 | R2 |
180.0.0.0 | 6 | R2 |
更新后的R1路由表
目的网络 | 距离 | 下一跳 |
10.0.0.0 | 0 | 直接 |
30.0.0.0 | 5 | R2 |
40.0.0.0 | 3 | R2 |
41.0.0.0 | 4 | R2 |
45.0.0.0 | 4 | R8 |
180.0.0.0 | 6 | R2 |
190.0.0.0 | 10 | R5 |
路由表下一跳
【例题】
相与:1和1是1,1和0是0,0和0是0
和“全是1”的相与出来还是本身,也就是和255相与后还是本身
先找子网掩码,128找128,192找192
拿子网掩码与目的地址相与,得出来的转化为二进制后再从目的网络中寻找,找到后表中对应的下一跳就是目的地址的下一跳。
路由表是从上到下进行匹配,在没匹配到之前会一直往下找,直到找完,遇到默认的就从默认的转发。
补充:另一种题型给出几个目的地址和子网掩码,问这几个是否处于同一网络,就那这些目的地址和子网掩码相与得出的数相同就证明处于同一网络。
网桥转发表
网桥的处理:转发、写入和丢弃
A to E | A | 1 | A | 1 | 写入、转发 | 写入、转发 |
C to B | C | 2 | C | 1 | 写入、转发 | 写入、转发 |
D to C | D | 2 | D | 2 | 写入、丢弃 | 写入、转发 |
B to A | B | 1 | 写入、丢弃 | |||
D to A | 转发 | 转发 |
没有信息就会写入
如果网桥是在收到已经完成了发送的数据帧则会将其丢弃
收到已经存储有信息但是还没有完成发送的数据帧就只对其转发
子网划分
IP地址分类
A类:(1.0.0.0-126.0.0.0)网络号8位 主机号24位
B类:(128.0.0.0-191.255.0.0)网络号16位 主机号16位
C类:(192.0.0.0-223.255.255.0)网络号24位 主机号8位
广播地址:主机号全置为1
ABC类子网划分子网号不可为全1或者全0,CIDR类子网号可以为全1或全0
【例题】
分配方案不唯一
【例题】现有一个C类网段193.160.80.0,要将其划分为6个子网,请问如何指定子网掩码?每个子网的网络地址、广播地址分别是多少?可分配的主机地址范围是多少?
主机地址范围为每个子网网络地址的下一位到广播地址的前一位
需要注意不同类别的网络号和主机号长度不同
拥塞控制算法
慢开始
拥塞避免
快重传
快恢复
轮次n 拥塞窗口cwnd 慢开始门限ssthresh
【例题】假设TCP拥塞控制算法中,慢开始的阙值为10,当拥塞窗口上升到16时,发送端检测出超时,TCP重新启用慢开始和拥塞避免。请计算第1次到第15次传输过程中拥塞窗口的值。
轮次 | 拥塞窗口 | 原因 |
1 | 2 | |
2 | 4 | |
3 | 8 | |
4 | 10 | 达到了慢开始阙值(门限) |
5 | 11 | 启动拥塞避免,每次加一 |
6 | 12 | |
7 | 13 | |
8 | 14 | |
9 | 15 | |
10 | 16 | 超时 |
11 | 1 | |
12 | 2 | |
13 | 4 | |
14 | 8 | 达到新的阙值(16/2) |
15 | 9 | 每次加一 |
【例题】
窗口cwnd和门限ssthresh应设置为多大?
- 画图即可
- 窗口和门限都应该设置为此时窗口的一半
即8/2=4