计算机网络-网络层:数据平面

转发和路由选择:数据平面和控制平面

转发指将分组从一个输入接口转移到适当的输出接口的路由器本地动作。转发发生的时间尺度短,采用硬件实现.
路由选择用来决定输入接口接收的分组应该转移到那个输出接口。路由选择发生的时间尺度长得多,常用软件实现。

每台网络路由器中有一个关键元素是它的转发表路由器检查到达分组首部的一个或多个字段值,使用这些首部值在其转发表中索引,来转发.转发表的形式和维护是路由算法要作的工作.

传统的方法

路由选择算法运行在每台路由器中,在每台路由器中都包含了转发和路由选择两种功能.

SDN方法

路由器p和一个负责路由信息维护的远程路由器q连接.远程路由器计算和分发路由表以供每台路由器使用。
此时路由选择由远程路由器q实现.对p而言,通过向q请求的方式获取转发表,然后按转发表执行转发工作即可.

网络服务模型

网络层的IP服务:不做可靠性保证.数据包可能丢失,失序,损坏.
(1). 输入端口
到达的分组通过路由器的交换结构转发到输出端口
(2). 交换结构
将路由器的输入端口连接到它的输出端口,这种交换结构完全包含在路由器中.
(3). 输出端口
存储从交换结构接收的分组

链路是双向时,一个链路上既由输入端口来接收包,也有输出端口来发出包.
(4). 路由选择处理器
传统路由器中,它执行路由算法,维护路由表.
SDN路由器中,路由选择处理器负责与远程路由器通信.远程路由器负责运行路由算法,维护路由表.

交换

通过交换结构,分组实际地从一个输入端口交换(转发)到一个输出端口

(1). 经内存交换
最早的路由器是传统计算机,一个分组到达一个输入端口时,该端口会先通过中断方式向路由选择处理器发出信号,分组从输入端口处被复制到处理器内存,处理器提取目的地址,在转发表找输出端口,将分组复制到输出端口缓存.

许多现代路由器通过内存进行交换,差别是,目的地址的查找,将分组存储进适当的内存存储位置由输入线路卡完成.

(2). 其他交换方式
略去

输出端口处理

待发送分组排队,输出端口对排队分组逐个取出,处理,通过链路发送出去.

何处出现排队

在输入端口和输出端口处,均可形成分组队列.

输入排队

分组到达某个输入端口速度,快于输入端口处理分组速度时,分组将在输入端口排队.

输出排队

分组到达某个输出端口速度,快于输出端口处理到达分组速度时,分组将在输出端口排队.

网络层协议

Ipv4数据报格式

在这里插入图片描述
IPv4数据报中的关键字段
(1). 版本号
4比特规定了数据报的IP协议版本,通过版本号,路由器能确定如何解释IP数据报的剩余部分.对ipv4来说,这里为4
(2). 首部长度
一个IPv4数据报可包含一些可变数量的选项.选项包括在IPv4数据报首部中,故需用这4比特来确定IP数据报中载荷实际开始地方.不含选项时,IP首部长度为20字节.
(3). 服务类型
提供特定等级的服务是一个由网络管理员对路由器确定和配置的策略问题.
(4). 数据报长度
IP数据报的总长度(首部加上数据),以字节计。该字段16比特。
(5). 标识,标志,片偏移
服务于IP分片.属于同一组的各个分片标识部分一致.
(6). 寿命
每当一条路由器处理数据报时,该字段的值减1.若变为0,则该数据报被丢弃.
(7). 协议
该字段值指示了IP数据报的数据部分应交给哪个特定的运输层协议。
值为6表明数据部分交给TCP,值为17表明数据要交给UDP
(8). 首部检验和
首部检验和用于帮助路由器检测收到的IP数据报中的比特错误.

路由器一般会丢弃通过计算校验和检测出错误的数据报,每台路由器上必须重新计算检验和并再次存放到原处,因为TTL及可能的选项字段会改变.

TCP/IP的运输层和网络层都通过校验和执行差错检测:
IP层只对IP首部计算了检验和.
TCP/UDP检验和是对整个TCP/UDP报文段进行的.

(9). 源和目的IP地址
某源生成一个数据报时,在源IP字段插入它的IP地址,在目的IP地址字段插入其最终目的地地址.
(10). 选项
通过添加选项来支持IP功能的扩展.
(11). 数据部分

IPv4数据报分片

链路层受限于物理硬件,传输帧长度存在限制.
一个链路层帧能承载的最大帧长度叫作最大传送单元MTU
每个IP数据报封装在链路层帧中从一台路由器传输到下一台路由器,故链路层协议的MTU间接限制了IP层数据报的最大长度.发送方与目的路径上的每段链路可能使用不同的链路层协议,且每种协议可能具有不同的MTU

网络层负责将IP数据报中的数据分片成两个或更多个较小的IP数据报,用单独的链路层帧封装这些较小的IP数据报,以便通过输出链路发送这些帧。这种操作叫ip分片.

ip分片只在到达目的地时,由目的地ip层重新组装起来,再提交给上层.如果源发出的某个ip数据报尺寸较大,其可能在传输过程中被多次分片.多次分片下,依然可通过源地址,目的地址,标识,片偏移将这些分配最终组合成原始的ip数据报.

IPv4编址

主机与物理链路间的边界叫接口.
路由器与它的任意一条链路之间的边界也叫接口.

从技术上讲,一个IP地址与一个接口相关联.通过接口既可以接收数据,也可发送数据.

CIDR

使用子网寻址时,32比特的IP地址被划为两部分,且也具有点分十进制数形式a.b.c.d/xx指示了地址的第一部分中的比特数.
形如a.b.c.d/x的地址的x最高比特构成了IP地址的网络部分,且经常被称为该地址的前缀.一个组织常被分配一块连续的地址,即具有相同前缀的一段地址。这时,组织内部的设备的IP地址将共享共同的前缀,组织网络外部的路由器仅考虑前面的前缀比特x.也即,当该组织外部的一台路由器转发一个数据报,且该数据报的目的地址位于该组织的内部时,仅需考虑该地址的前面x比特,这减少了在这些路由器中转发表的长度,因为a.b.c.d/x的单一表项足以将数据报转发到该组织内的任何目的地。
在这里插入图片描述
这种使用单个网络前缀通告多个网络的能力通常称为地址聚合,也称为路由聚合或路由摘要,当地址按块分给ISP,又由ISP分给客户组织时,地址聚合工作极为有效.

一个地址的剩余32-x比特,可认为是用于区分该组织内部设备的。该组织内部的路由器转发分组时,才考虑这些比特。在CIDR被采用前,IP地址的网络部分被限制为长度为8/16/24,这是一种称为分类编址的编址方案。具有8、16、24比特子网地址的子网称为A,B,C类网络。

255.255.255.255目的地址,对应同一个网络中的所有主机。

获取主机地址:动态主机配置协议

某组织一旦获得了一块地址,就可为本组织内的主机与路由器接口逐个分配IP地址。
系统管理员,常手工配置路由器中的IP地址,主机地址也能手动配置,但目前更多使用动态主机配置协议.

DHCP允许主机自动获取一个IP地址,网络管理员能配置DHCP,使某给定主机每次与网络连接时能得到一个相同的IP地址或某主机将被分配一个临时的IP地址,每次与网络连接时该地址也许是不同的。
除主机IP地址分配外,DHCP还允许一台主机得知其他信息。如子网掩码,第一跳路由器地址(默认网关),本地DNS服务器地址.

DHCP是一个客户-服务器协议。客户常为新到达的主机,它要获得含自身使用的IP地址在内的网络配置信息。

简单场合下,每个子网有一台DHCP服务器如某子网没服务器,则需一个DHCP中继代理(常为一台路由器),代理知道用于该网络的DHCP服务器地址.
在这里插入图片描述
对一台新到达的主机,针对上图的网络设置,DHCP协议是一个4个步骤的过程,下图yiaddr指示分配给该新到达客户的地址.
在这里插入图片描述
(1). DHCP服务器发现
一台新到达主机的首要任务是发现一个要与其交互的DHCP服务器,可通过使用DHCP发现报文完成,客户通过UDP分组向端口67发该发现报文,该UDP分组封装在一个IP数据报中.
DHCP客户端生成包含DHCP发现报文的IP数据报,使用广播目的地址255.255.255.255且使用"本主机"IP地址0.0.0.0DHCP客户将该IP数据报传递给链路层,链路层然后将该帧广播到所有与该子网连接的节点.
(2). DHCP服务器提供
DHCP服务器收到一个DHCP发现报文时,用DHCP提供报文向客户做出响应,该报文向该子网的所有节点广播,仍使用IP广播地址255.255.255.255,在子网中可能存在几个DHCP服务器,客户也许会发现它处于能在几个提供者之间进行选择的优越位置。
每台服务器提供的报文包含有收到的发现报文的事务ID,向客户推荐的IP地址,网络掩码及IP地址租用期(IP地址有效的时间量).
(3). DHCP请求
新到达的客户从一个或多个服务器提供中选择一个,向选中的服务器提供DHCP请求报文进行响应,回显配置的参数.
(4). DHCP ACK
服务器用DHCP ACK报文对DHCP请求报文进行响应,证实所要求的参数。

一旦客户收到DHCP ACK后,交互便完成了,且客户能在租用期使用DHCP分配的IP地址。客户可能在该租用期超时后还使用这地址,DHCP还提供了一种机制以允许客户更新它对一个IP地址的租用。

网络地址转换

在这里插入图片描述
许多家庭网络,使用了相同的地址空间10.0.0.0/24,在一个给定家庭网中的设备能使用10.0.0.0/24编址彼此发送分组。转发到家庭网络之外进入更大的全球因特网的分组显然不能使用这些地址(或作为源地址,或作为目的地址),因为有很多网络使用这块地址。

NAT使能路由器对于外部世界甚至不像一台路由器。NAT路由器对外界的行为如同一个具有单一IP地址的单一设备。所有离开家庭路由器流向更大因特网的报文都拥有一个源IP地址138.76.29.7且所有进入家庭的报文都拥有同一个目的IP地址138.76.29.7.本质上讲,NAT使能路由器对外界隐藏了家庭网络的细节.

路由器从ISPDHCP服务器得到它的地址,且路由器自身又运行一个DHCP服务器,为位于NAT-DHCP路由器控制的家庭网络地址空间中的计算机提供地址.

如从广域网到达NAT路由器的所有数据报都有相同的目的IP地址(特别对NAT路由器广域网一侧的接口),路由器怎样知道它应将某个分组转发给哪个内部主机。NAT路由器上一张NAT转换表,表项包含了端口号及其IP地址。

NAT已成为因特网的一个重要组件,称为所谓中间盒.中间盒运行在网络层,不执行传统的数据报转发,而执行诸如NAT,流量流的负载均衡,流量防火墙等。

检查数据报:防火墙,和入侵检测系统.
对抗恶意分组攻击的两种流行的防御措施是防火墙和入侵检测系统.
网络和因特网间的防火墙,防火墙检查数据报和报文段首部字段,拒绝可疑数据报进入内部网络,基于源和目的IP地址及端口号阻挡分组.

Ipv6

Ipv6数据报格式

在这里插入图片描述
(1). 扩大的地址容量
IPv6IP地址长度从32比特增加到128比特。除了单播与多播外,IPv6还引入了一任播地址。使数据报交付给一组主机中的任意一个。
(2). 简化高效的40字节首部
40字节定长首部允许路由器更快地处理IP数据报,一种新的选项编码允许更灵活的选项处理.
(3). 流标签
IPv6有一个难捉摸的流定义。该字段可用于"给属于特殊流的分组加上标签,特殊流是发送方要求进行特殊处理的流".
(4). 版本
IPv6该字段值设为64比特.
(5). 流量类型
8比特.
(6). 流标签
20比特.用于标识一条数据报的流,能对一条流中的某些数据报给出优先权,或它能用来对来自某些应用的数据报给出更高优先权.
(7). 有效载荷长度
16比特.作为一个无符号整数,给出了IPv6数据报中跟在定长的40字节数据报首部后面的字节数量.
(8). 下一个首部
该字段标识数据报中的内容(数据字段)需交付给哪个协议(如TCPUDP...).该字段使用与IPv4首部中协议字段相同的值.
(9). 跳限制
转发数据报的每台路由器对该字段内容减1,如跳限制到0,数据报被丢弃.
(10). 源地址和目的地址
IPv6 128比特地址的各种格式描述见RFC 4291
(11). 数据
IPv6数据报的有效载荷部分,数据报达到目的地时,有效载荷就从IP数据报移出,交给在下一个首部字段中指定的协议处理.

IPv4中存在,IPv6中不存在的几个字段:
(1). 分片/重新组装
IPv6不允许在中间路由器上进行分片和重新组装,如路由器收到的IPv6数据报太大,而不能转发到出链路路由器丢弃该数据报,向发送方发回一个分组太大的ICMP差错报文即可.于是,发送方能使用较小长度的IP数据报重发数据.
(2). 首部检验和
因特网中的运输层和数据链路层协议执行了检验操作,网络层移除,以便加快处理速度.
(3). 选项
可能出现在IPv6首部中由"下一个首部"指出的位置上.就如TCP/UDP协议首部可为下一个首部一样,选项字段也可为下一个首部.

从IPv4到IPv6的迁移

在实践中广泛采用的IPv4IPv6迁移的方法包括建隧道.

建隧道依据的基本思想如下:
假定两个IPv6节点,要使用IPv6数据报进行交互,但它们经中间IPv4路由器互联,将两条IPv6路由器中间IPv4路由器的集合称为一个隧道,借助于隧道,在隧道发送端的IPv6节点可将整个IPv6数据报放到一个IPv4数据报的数据(有效载荷)字段中.该IPv4数据报的地址设为指向隧道接收端的IPv6节点,再发给隧道中的第一个节点,隧道中间的IPv4路由器在它们之间为该数据报提供路由,像对待其他数据报一样,隧道接收端的IPv6节点收到该IPv4数据报,确定该IPv4数据报含有一个IPv6数据报,从中取出IPv6数据报.再为该IPv6数据报提供路由.
在这里插入图片描述

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

raindayinrain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值