计算机网络学习笔记(8) - 网络层 - IP协议


一、网络层基础

1. 控制平面和数据平面

网络层协议为 “不同主机之间” 提供了逻辑通信。网络层可以分成数据平面和控制平面。简单来说,数据平面对应转发,而控制平面对应路由。具体的,以下概念:

  • 数据平面:即网络中每台路由器的概念,数据平面功能决定到达路由器输入链路之一的数据报如何转发到该路由器的输入链路之一。
  • 控制平面:即网络范围的逻辑,控制平面功能控制数据包沿源主机到目的主机的端到端路径中路由器之间的路由方式。即协调本地的每个路由器转发操作,使得数据包沿着源和目的主机之间的路由器路径最终实现送。控制平面有两种方法:1、传统的路由算法:在路由器中被实现;2、SDN (软件定义网络):在远程服务器中实现。
  • 转发:将分组从一个输入链路接口转发到适当的输出链路接口的路由器本地操作,转发在很短的时间尺度(通常几纳秒)发生,因此通常用硬件来实现。
  • 路由选择:指确定分组从源到目的地所采取的端到端路径的网络范围处理过程,即决定分组从发送方流向接收方时所采用的路由或路径。计算路径的算法被称为路由选择算法,在控制平面中实现。路由选择通常在长的多的时间尺度(通常几秒)发生,因此通常用软件来实现。

传统上控制平面路由选择协议和数据平面转发过程已被实现称单一整体,位于一台路由器中。SDN (Software-Defined Networking)明确地分离控制平面和数据平面,控制平面功能通常在一台远程SDN控制器中。
此外,注意区分“面向连接”和“有连接”。网络层:在两个主机之间,设计到路径上的一些路由器,即“有连接”。传输层:在两个进程之间,很可能只体现在端系统之上(例如TCP连接),即“面向连接”。
后续有以下约定,分组交换机:一台通用分组交换设备,它根据分组首部字段中的值,从输入链路接口到输出链路接口转移分组。分组交换机包括链路层交换机和其它交换机。链路层交换机:基于链路层帧中的字段值做出转发决定; 其它分组交换机(即路由器):基于网络层数据包中的首部字段做出转发决定。

2. 路由器工作原理

路由器主要由4个组件组成:1、输入端口;2、输出端口;3、交换结构;4、路由选择处理器,主要两种:传统路由器的路由选择处理器执行路由选择算法,维护路由选择表和关联链路状态信息,并计算路由转发表;SDN 路由选择处理器负责与远程控制器通信,接收远程控制器计算的转发表项,并在路由器的输入端口安装这些表项。

2.1 输入端口处理和基于目的地转发

路由器在输入端口中执行查找,路由器使用转发表来查找输出端口,使得到达的分组能够经过交换结构转发到该输出端口。转发表 由 路由选择处理器计算和更新 或者 接收远程SDN控制器的内容。
在表项匹配时,当有多个表项匹配时,路由器使用最长前缀匹配规则,即在表中寻找最长的匹配项,并向与最长前缀匹配相关联的链路接口转发分组。
输入端口除了执行查找之外,还需要进行:1、必须出现链路层和物理层处理;2、检查分组的版本号、检验和、寿命字段,并重写最后两个字段;3、更新用于网络管理的计数器(例如接收到的IP数据报的数目)。

2.2 交换

  • 经内存交换:在CPU控制下的交换,使用传统计算机。分组被拷贝到系统内存,CPU从分组的头部提取出目标地址,查找转发表,找到对应的输出端口,拷贝到输出端口。一次只能转发一个分组。
  • 经总线交换:数据报通过共享总线,从输入端口转发到输出端口。总线竞争: 交换速度受限于总线带宽。一次处理一个分组。
  • 通过互联网络交换:此“互联网”非彼互联网,指的是 “Banyan(榕树)网络,crossbar(纵横)和其它的互联网络被开发,将多个处理器连接成多处理器”。可以同时并发转发多个分组,克服总线带宽限制。

2.3 输出端口处理:排队和分组调度

在输出端口排队还是在输入端口排队取决于流量负载、交换结构的相对速率和线路速率。随着排队队列的增长,路由器的缓存空间最终将耗尽,当无内存可用于存储到达的分组时将会出现丢包。
分组丢弃和标记策略称为主动队列管理,其中随机早期检测是应用较广的主动队列管理算法之一。

  • 端口缓存大小分配,经验方法为平均往返时延乘以链路容量。注意,更大的缓冲区意味着路由器有能力承受分组到达率的更大波段,从而降低路由器分组丢失率,但是也意味着潜在的更大的排队时延。
  • 缓存膨胀:因持续缓存而导致长时延的场景被称为缓存膨胀,说明吞吐量和时延大小都重要。
  • 分组调度:排队的分组如何经输出链路传输的问题。通常有以下策略:先进先出、优先权排队、循环和加权公平排队。

二、IP 协议

1. IP分片和重组

网络链路层有MTU(最大传输单元)——链路层帧所携带的最大数据长度。不同的链路类型有不同的MTU,因此引入IP分片和重组。

  • IP分片:一个大的IP数据报被分解称几个小的IP数据包,然后这些小的IP数据包被独立地转发到目的地,在那里被重新组装然后其有效数据再结合向上传递到目的主机地运输层。一个数据报被分割成若干个小的数据报 ;它们有相同的ID、不同的偏移量;最后一个分片标记为0 ; “重组”只在最终的目标主机进行 ;IP头部的信息被用于标识,排序相关分片。需要注意,IPv6不允许在路由器上对分组进行分片。

2. 子网和IP编址

  • 子网:一个子网内的节点(主机或者路由器)它们的IP地址的高位部分相同,这些节点构成的网络的一部分叫做子网。无需路由器介入,子网内各主机可以在物理上相互直接到达。IP地址高位Bits:子网部分;IP地址低位Bits:主机部分。判断子网方法:要判断一个子网, 将每一个接口从主机或者路由器上分开,构成了一个个网络的孤岛。
  • IP地址分类:A、B、C、D、E五类。
  • 特殊IP地址。子网部分:全为0——本网络;主机部分:全为0——本主机;主机部分:全为1——广播地址,本网络所有主机。
  • 专用地址:地址空间的一部份供专用地址使用。以下特点:1、永远不会被当做公用地址来分配, 不会与公用地址重复;2、只在局部网络中有意义,区分不同的设备;3、 路由器不对目标地址是专用地址的分组进行转发。专用地址范围 :1、Class A 10.0.0.0-10.255.255.255 MASK 255.0.0.0 ;2、Class B 172.16.0.0-172.31.255.255 MASK 255.255.0.0 ;3、Class C 192.168.0.0-192.168.255.255 MASK 255.255.255.0。
  • 子网掩码:32Bit,每个bit是0或1。例如原始A类网络地子网掩码为 255.0.0.0 :11111111 00000000 0000000 00000000,也可以用 /8 表示,即前8位表示子网部分。
  • IP 编址: CIDR, Classless InterDomain Routing,无类域间路由。地址格式: a.b.c.d/x, 其中 x 是 地址中子网号的长度。
  • 路由聚集:使用单个网络前缀通告多个网络地能力被称为路由聚集或称为路由摘要。路由聚集刻意减少传输地路由信息地到家和计算路由信息的代价。

2. 为设备分配地址 - DHCP

DHCP(Dynamic Host Configuration Protocol),允许主机在加入网络的时候,动态地从服务器那里获得IP地址:1、 可以更新对主机在用IP地址的租用期-租期快到了;2、 重新启动时,允许重新使用以前用过的IP地址;3、 支持移动用户加入到该网络(短期在网)。DHCP是一种即插即用协议或零配置协议。

3. 网络地址转换(NAT)

NAT(Network Address Translation),网络地址转换,动机在于:1、 本地网络只有一个有效IP地址;2、不需要从ISP分配一块地址,可用一个IP地址用于所有的(局域网)设备;3、可以在局域网改变设备的地址情况下而无须通知外界;4、可以改变ISP(地址变化)而不需要改变内部的设备地址;5、局域网内部的设备没有明确的地址,对外是不可见的。
NAT路由器对外界的行为就如同一个具有单一IP地址的单一设备。NAT路由器通过NAT转换表知道将某个分组转发给哪个内部主机,表项中包含端口号及IP地址。

4. IPv6

IPv6 的初始动机: 32-bit地址空间将会被很快用完。IPv6相较于IPv4,数据报中去掉的部分包括:分片和重新组装;首部检验和;首部的选项字段。实践中通常应用建隧道的方法从IPv4向IPv6迁移。

本文为个人学习笔记,如有错漏之处,敬请指正!

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值