第四章学习开始于2023/8/25
目录
4.1 导论
网络层服务:
1.在发送主机和接收主机之间传送段
2.在发送端将段封装到数据报中
3.在接受端,将端上交给传输层实体
4.网络协议存在于每一个主机和路由器
5.路由器检查每一个经过它的IP数据报的头部
网络层关键功能:
转发:将分组从路由器的输入接口转发到合适的输出接口(数据平面)
路由:使用路由算法来决定分组从发送主机到目标接收主机的路径(控制平面)
类比:转发看作通过单个路口;路由看作从源到目标的路径规划
数据平面、控制平面:
数据平面:
本地,每个路由器功能
决定从路由器输入端口到达的分组如何转发到输出端口
转发功能:
传统方式:基于目标地址+转发表
SDN方式(software-defined networking):基于多个字段+流表
控制平面:
网络范围内的逻辑
决定数据报如何在路由器之间路由,决定数据报从源到目标主机之间端到端的路径
路由方法:
传统算法:在路由器中被实现(每个路由器独立实现,分布式)
SDN方式:在远程服务器中实现(集中式)
连接建立功能:
在某些网络中,连接建立是除了路由、转发之外第三个重要功能(ATM、frame relay、X.25)
在分组传输之前,两个主机之间,在通过一些路由器所构成的路径上建立一个网络层连接
网络层和传输层连接服务的区别:
网络层:两个主机之间,涉及路径上的一些路由器
传输层:两个进程之间,很可能只体现在端系统上(TCP连接)
网络服务模型:
对于单个数据报的服务:
可靠传输、延迟保证
对于数据报流的服务:
保序数据报传送
保证流的最小带宽
分组之间的延迟差
分布式交换:
根据数据报头部信息如目的地址,在输入端口内存中的转发表中查找合适的输出端口(匹配+行动)
基于目标的转发:仅仅依赖于IP数据报的目标IP地址(传统方法)
通用转发:基于头部字段的任意集合进行转发
输入端口缓存:
当交换机构的速率小于输入端口汇聚速率时,在输入端口可能要排队
(导致排队延迟和由于输入缓存溢出造成丢失)
Head-of-the-line blocking:排在对头的数据报阻止了队列中其他数据报向前移动
如1、3输入端同时需要向另一输出端4口转发,由于1端口正在占用,导致3端口当前的数据报无法发出,此时即便是3端口后续的数据报并不要转发到4端口,也会因为当前的数据报无法发出而阻塞
将分组从输入缓冲区传输到合适的输出端口
3种典型的交换机构:
在CPU直接控制下交换,采用传统计算机
分组拷贝到系统内存,CPU从分组的头部提取出目标地址,查找转发表,找到对应的输出端口,拷贝到输出端口
转发速率被内存带宽限制(因为数据报要过系统总线bus两遍)
一次只能转发一个分组
数据报通过共享总线,从输入端口转发到输出端口
数据包含输出端口的地址,尽管所有端口都能收到,只有指定的端口才能取用
由于存在总线竞争,交换速度受限于总线带宽
一次处理一个分组
同时并发转发多个分组,克服总线带宽限制
短接相应总线即可达到控制效果
存在缓存机制,当数据报从交换机构到达速度比传输速率快时,没有缓存就有可能丢失
由调度规则选择排队的数据报进行传输(即不见得先来的就先传)
调度机制:
选择下一个要通过链路传输的分组
FIFO:按照分组到来的次序发送
优先级策略:按照优先级进行调度
时间片调度策略:按照分类进行循环调度(发完红色发蓝色,然后发绿色,然后再发红色)
加权公平队列:理解成含优先级的时间片调度,每个类在每个循环里得到的服务量根据权重取
如果缓冲区满,需要丢弃策略:
1.后来的抛弃
2.按照优先权抛弃
3.随机抛弃
不同的网络链路存在不同的MTU(最大传输单元)
对一个路由器,插上不同网卡,之间的转发需要进行分片(主要是大的数据报在网络上分片)
分片的特征:ID相同,偏移量不同(在IP头部体现),还有特殊的标记表示该片后续是否有其他片
重组只在目标主机进行
目标主机收到任意一片,立即开始计时,结束之前只要没到齐,收到的部分全丢
IP地址:32位标识,对主机或者路由器的接口编址
接口:主机/路由器和物理链路的连接处
每一个IP地址和每一个接口关联
IP地址的子网部分:高位bits;主机部分:低位bits
什么是子网:IP高位部分相同,构成的网络的一部分
无需路由器介入,子网各主机在物理上可以相互直达(一跳可达,可能要借助交换机)
A类:首字节0;第一个字节随后7个比特是网络号,后三个字节24bit代表主机号
A类地址一共有2^7-2个网络,因为规定全0和全1不用;每个网络有2^24-2个主机
B类:首字节10;前两字节去掉首字节后的14bit是网络号,剩下2字节是主机号
C类:首字节110;前三个字节去掉首字节后的21bit是网络号
ABC类都是单播地址
D类:首字节1110;后面是组播地址
对互联网而言,路由不是以单个IP地址做路由的,而是以子网为单位:即发送到这个网络区域,而不是定点发送(减少传输和计算的负担)