计算机网络第五章——网络层
概述
功能
- 从发送方主机传输报文段到接收方主机
- 发送方主机封装报文段(segments)为数据报(datagrams)
- 接收方主机递交报文段给传输层
- 在每个主机、路由器上都需要运行网络层协议
- 路由器会检查通过它的所有IP数据报的头部字段,然后根据目的IP地址对数据报进行转发
主要功能
-
转发:将分组从路由器的输入端口转移到正确的路由器输出端口
- 转发表确定本路由器上的本地转发
-
路由 :确定分组从发送方传输到接收方(目的主机)所经过的路径(或路由)
- 路由算法确定网络端到端的路径
网络层两个平面
-
数据平面
- 本地的,每个路由器自身的功能
- 决定抵达路由器输入端口的数据报如何转发到输出端口
-
控制平面
- 整个网络范围
- 决定数据报再端到端路径上的路由器之间如何路由
数据平面实现方式
- 传统的路由算法:在路由器内实现
- 软件定义网络:在远程服务器上实现
控制平面:传统方式
每个路由器都有单独的路由算法组件,路由器之间通过交互来实现控制平面
控制平面:SDN方法
一个分离的(通常时远程的)控制器和路由器本地的控制代理(loacl control agents,CAs)交互
连接建立
- 传输层连接:握手
- 网络层连接:指网络层数据分组开始传输前,在所选择的从源到目的地路径上的各路由器之间相互握手,建立连接状态(如ATM,帧中继,MPLS的网络层, 已经很少使用)
现在的因特网网络层不执行连接建立
服务模型
网络层可能提供的服务:
- 确保交付:确保分组到达目的地
- 具有时延上界的确保交付:主机到主机的时延
- 有序分组交付:按发送顺序到达
- 确保最小带宽:当发送主机以低于特定比特率的速率发送比特,分组不会丢失,在一定时延到达
- 确保最大时延抖动:发送方发送两个连续分组的时间间隔与接收到的间隔相同
因特网的网络层提供的服务
- 单一服务,即尽力而为服务
- 分组间的定时不能被保证
- 分组的接收顺序与发送顺序不一定相同
- 传送的分组不能保证最终交付,即网络可能未向目的地交付分组
虚电路和数据报网络
数据报网络提供网络层的无连接服务
虚电路网络提供网络层的连接服务
任何网络中的网络层指提供两种服务之一,不会同时提供
虚电路
- 在数据传输之前,需要为每个呼叫建立连接
- 每个分组携带VC标识符(不是目的主机地址)
- 位于“源-目的路径”上的每个路由器会维护经过它的每条连接的“状态”
- 链路和路由器的资源(带宽、缓存)可以被分配给VC(专用资源)
特点
- 呼叫建立及每次呼叫的状态要在网络中的路由器上维持,避免想数据报的网络要复杂
- 网络功能复杂,端系统设备简单
数据报网络
- 在网络层无呼叫的过程
- 路由器: 不需要维护端到端连接的状态
- 没有网络等级的“连接”的概念
- 使用目的主机的地址进行分组转发
特点 - 网络层服务模型简单
- 端系统功能复杂
- 高层实现许多功能,如按序传送、可靠数据传输、拥塞控制与DNS名字解析等
- 因特网服务模型提供的服务保证最少,对网络层的需求最小,使得互连使用各种不同链路层技术的网络变得更加容易
- 许多应用都在位于网络边缘的主机(服务器)上实现
数据报转发表
举例
最长前缀匹配
对于给定的目的地址,使用最长地址前缀匹配来完成输出端口的查找
路由器查表方法
用目的地址前缀和转发表的前缀匹配:
-
存在匹配:向对应链路转发
-
不存在匹配:选择"其他"项对应的链路转发
-
存在多个匹配:使用最长前缀匹配规则,即向与最长前缀匹配的链路接口转发分组
-
路由器转发表只维持转发状态信息
-
转发表由选路算法修改
-
虚电路网络转发表随虚电路的简历和拆除更新
-
一个端系统发送给另一个端系统的一批分组可能在网络中选择不同的路径,到达的顺序可能不一致
路由器的工作原理
路由器的整体结构
核心功能:
- 运行路由算法/协议(OSPF,RIP,BGP)
- 将分组从路由器的输入链路传送到正确的输出链路
体系结构: