网络层概述
将分组从发送方主机传送到接收方主机
发送方将运输层数据段封装成分组
接收方将分组解封装后将数据段递交给运输层
网络层协议存在于每台主机和路由器上
路由器检查所有经过它的IP分组的分组头
注意路由器只有3层(网络层、链路层、物理层)
网络层提供的服务
一、网络层为单个数据分组(a packet)提供的服务:
确保交付:确保分组到达目的地
具有时延上界的确保交付: 比如100ms内到达
二、网络层为分组的流(a flow of packets)提供的服务:
有序分组递交
确保最小带宽
确保最大时延抖动
安全性服务
Internet服务质量不如ATM,但从实际应用上来说,Internet更符合实际需要
转发和选路
转发(转发)当数据包到达路由器的输入链路时,路由器必须将数据包移动到相应的输出链路
路由器收到数据报后查找路由表将数据报转发
查看IP首部(首部中的值指的是数据报的目的地址),查转发表,转发表中有输出链路,由选路算法决定的。
选路(路由)确定数据包从发送方流向接收方时所采用的路由或路径
虚电路和数据报网络
网络层有连接服务和无连接服务
数据报网络在网络层中提供无连接服务
虚电路在网络层中提供有连接服务(ATM采用虚电路)
与运输层服务有相似之处,但也有很大不同:
服务: 主机到主机(运输层:进程到进程)
服务选择:网络层仅提供以上有连接或无连接服务中的一种 (运输层:可同时提供TCP和UDP)
实现: 在端系统及网络核心同时实现(运输层:只在端系统中实现)
虚电路
VC是源端到目的端的路径,正如普通电话线路
性能可靠
网络行为沿网络路径发生
数据传输前建立虚电路,传输完毕后拆除虚电路
每个分组携带 VC 标识(并非目的地址)
在源-目的路径上每个路由器要维护每个连结的状态信息
链路、路由器资源(带宽、缓冲区)可能分配给VC
一条 VC 的组成:
源和目的主机间的路径
VC号,沿着该路径中的每段链路一个号码 ,沿着该路径的每台路由器中的转发表项
VC上传送的分组携带有VC号
每台中间路由器用一个新的VC号取代原来的VC号
新的VC 号从转发表中获得
入口接口+入口VC会选定出接口,同时,将VC改为出口VC。
虚电路信令协议:用来建立,维护及拆除虚电路
也有建立连接的过程
在虚电路网络中只要虚电路建立好了,同一个源目的主机中的分组走同样的路径
数据报网络
网络层:没有呼叫建立
路由器:对于端到端的连接无需维护状态信息
分组使用目的主机地址进行转发
没有上面建立连接的过程,直接发送到链路上!
转发表(最长前缀匹配)
利用目的地址的前缀(prefix)简化。查转发表时,也是前缀匹配就行。
路由器工作原理
路由器主要功能:
选路:运行路由算法/协议 (RIP, OSPF, BGP)---全局
转发:将分组从输入链路转发到适当的输出链路
分散式转发:
根据分组中的目的地址, 在输入端口的缓存中查找转发表得出适当的输出端口
目标: 输入端口的处理速度(查询转发表时间)能够达到线路速度(line speed,接收分组速度)
排队: 若其他输入端口的分组正在使用交换结构,则分组会阻塞并排队等待调度
如果队列排满路由器会丢弃后续数据报
输入端口排队
原因:当交换速度比所有输入端口的组合速度慢时,输入端口产生排队
线路前部(Head-of-the-Line,HOL)阻塞:队列前面的分组阻止其后的分组的交换到输出端口
排队延迟: 输入队列排队导致延迟,缓存溢出将引起分组丢失!
三种交换结构:
输出端口
缓存:当分组从交换结构到达的速率快于输出链路速率时,需要缓存、排队传输
排队延迟:排队造成延迟 ,输出端口缓冲区溢出时引起分组丢失
调度:在等待传输的排队分组中进行选择发送,比如FCFS
网际协议:
RIP、OSPF、BGP用于生成转发表
IP数据报格式
IP数据报分片
链路层协议能承载的网络层分组长度是有限制的
比如,以太网不超过1500字节,广域网不超过576字节
最大传输单元(MTU):网络链路层能承载的最大数据量
不同的链路类型有不同的MTUs
若某链路的MTU比IP数据报的长度小该怎么办呢?分片
分片:大的 IP 数据报由路由器划分成几个小的数据报
重组:小的分片数据报在端系统中重新组装
IP首部的标识、标志和片偏移实现数据报重组
片偏移以字节为单位,所以要除以8
IP首部:20字节
ID=x,fragflag=1/0(最后一片标志为0 )