美文网首页
计算机网络(三)——网络层

计算机网络(三)——网络层

作者: 花卷呀花卷 | 来源:发表于2020-04-03 15:50 被阅读0次

    网络层的目的是实现在任意结点间进行数据报传输,它的目的与链路层、物理层不是一样的吗?但是通过它数据可以在更大的网络中传输。

    为了能使数据更好地在更大的网络中传输,网络层主要实现三个功能:异构网络互联路由与转发拥塞控制

    image.png

    (一)异构网互联

    1. 路由器

    我们知道,在物理层、链路层,可以使用不同的传输介质和拓扑结构将几台、十几台主机连接在一起形成一个小型的局域网,把这些组成结构不完全相同的局域网称为异构网,因此将它们连接扩大成更大的网络,需要一个类似转接头的设备——路由器,路由器不仅仅可以连接异构网,还能隔离冲突域和广播域,依照IP地址转发。

    下图对集线器、网桥、交换机和路由器能否隔离冲突域和广播域进行比较:

    • 当多台主机通过集线器互联时,无法隔离冲突域、广播域;
    • 多台主机通过网桥、交换机互联时,可以隔离冲突域,但无法隔离广播域;
    • 多台主机通过路由器互联时,既可以隔离冲突域,又能隔离广播域。


      image.png

    2. 路由器组成

    路由器作为连接多个网络的结点,不仅需要完成对数据的分组转发,还要选择传输路径,因此路由器主要由路由选择分组转发组成。

    image.png
    • 路由选择:是路由器的控制部分,这部分的任务是根据选定的路由选择协议构造出路由表,同时定期和其他相邻路由器交换路由信息从而更新和维护路由表;
    • 分组转发:这部分由交换结构、输入端口和输出端口组成
    路由器工作流程.png

    (二)路由与转发

    网络层最重要的功能是路由与转发功能。路由也就是选择一条合适的路,转发则是在这条路上遵守协议。这有点像从某个多个国家的交界城市自驾,选其中一条路,那么就遵守这个国家的交通协议。

    1. 路由

    1.1 路由算法

    数据通过一个又一个路由器到达目的地址,路由器怎么知道数据应该从哪个端口出发才能到达目的地呢?这就需要构造路由表。
    路由表有两种构造方式:静态动态

    • 静态路由:由网络管理员手工配置路由信息;
    • 动态路由:通过路由器间彼此交换的信息来构造路由表,分为距离-向量算法链路状态算法
      • 距离-向量算法:定期把它们的整个路由选择表传送给所有与之直接相邻的结点;
      • 链路状态算法:主动测试所有邻接结点的状态,定期将链路状态传播给所有其他结点
    两种路由方式比较.png

    1.2 层次路由

    一个个小网络可以构成一个区域,足够多的区域互连成一个网络,多个网络又形成巨大的互联网。要想让数据高效在网络中传输,采用“分而治之”的理念。
    将互联网分为许多较小的自治系统,系统有权决定自己内部采用什么路由协议,这便是层次路由。通过层次路由便可以采用灵活的协议传输数据。数据在自治系统内传输采用内部网关协议而自治系统之间则采用外部网关协议

    image.png

    1.2.1 内部网关协议

    内部网关协议有两种协议:路由信息协议(RIP)开放最短路径优先协议(OSPF)

    image.png

    1.2.2 外部网关协议

    外部网关协议则是边界网关协议(BGP)。内部网关协议服务某个自治系统,范围较小,所以尽可能有效地从源站送到目的站,也就是找到一条最佳路径。而外部网关协议需要面对更大的网络范围和网络环境,因此更关注的找到比较好的路径,也就是不能兜圈子。

    BGP工作原理:

    • 各自治系统的管理员选择至少一个路由器作为"BGP发言人";

    • 交换路由信息前要建立TCP连接,交换BGP报文,建立BGP会话,通过BGP会话交换路由信息;

    • 确认相互交换网络可到达性的信息后,BGP发言人找出到达各自自治系统较好路由;

    BGP工作原理示意图.png

    将三种路由协议进行比较:


    image.png

    2. 转发

    构建大规模、异构网络的互联网除了硬件的支持外,还需要建立协议以实现数据报传输服务——IP协议。
    目前IP协议有两个版本:IPv4和IPv6。

    2.1 IPv4

    现在主流的IP协议版本还是IPv4。

    2.1.1 组成

    IP数据报主要由首部和数据部分组成,由TCP报文段封装到数据部分,再在前端加上一些描述信息的首部,其格式如下图:


    image.png

    IP协议使用分组转发,当报文过大时需要分片。分片的思路如下:

    • 确定分片的组数;
    • 计算每组的有效数据,并且根据分片是否为最后一片设置MF(more fragment)与DF(don't fragment);
    • 计算偏移量。
    image.png

    2.1.2 IPv4地址与NAT

    2.1.2.1 IPv4地址

    如果把IP数据报看作是信,那么首部中的源地址与目的地址则分别是发信地址和邮件地址。为了方便路由计算这些地址,并且使IP地址足够使用,因此将IP地址进行分类。

    IP地址的格式: {<网络号>,<主机号>},网络号标志主机所连接的网络,主机号标志该主机,每个IP地址都是唯一的。

    IP地址分类如下:

    image.png

    通过分类,可以计算每个网络中最大的主机数:

    image.png
    2.1.2.2 NAT

    网络地址转换(NAT)是一种转换机制,将专用网络地址转换为公用地址,目的是为了对外隐藏内部管理的IP地址,这样不仅可以保证网络安全,还可以解决IP地址不足问题。
    当路由器接收到的目的地址是私有地址则一律不进行转发,而如果是公用地址,则是用NAT转换表将源IP及端口号映射成全球IP号,然后从WAN端口发送到因特网上。

    2.1.3 子网划分

    IP地址有A、B、C类网络号,如果把A类网络号分给一个广播域,那么这个广播域可以接入16,777,212台主机,然而一个广播域不可能融入这么多台主机,因为这样会导致广播域过饱和而瘫痪,而只给其分配一定数量的网络号,则会浪费大量的IP地址。因此在IP地址中增加一个“子网号字段”,将IP地址划分为三级,即IP地址={<网络号>,<子网号>,<主机号>},也就是从主机号中借用几个比特号作为子网号,这个子网号是对内划分的,对外仍旧表现为二级IP地址。

    image.png

    主机或路由器如何判断一个网络是否进行子网划分了呢?——利用子网掩码。

    • 掩码组成:与IP地址对应,长度为32bit的二进制串,由1和0组成,1对应IP地址中的网络号及子网号,0对应主机号;
    • 计算子网号:将IP地址和对应的掩码号逐位进行AND运算,即可的出子网的网络地址
    image.png

    2.1.4 CIDR

    CIDR是无分类域间路由器选择,目的是消除A、B、C类网络划分,这样可以大幅度提高IP地址空间利用率。相比较子网掩码划分,它更加灵活。

    • 组成:IP::={<网络前缀>,<主机号>},使用网络前缀来替代子网络的概念,用斜线记法表示,如128.14.32.5/20,它的掩码号为20个连续的1和后续的12个0,进行逐位AND运算后得出网络前缀,确定需要的主机号数,剩下的便是子网号。
    • 超网:将网络前缀相同的的连续IP地址组成"CIDR地址块",一个CIDR地址块可以表示很多地址,这种地址的聚合叫做路由聚合,又称为构成超网。
    image.png

    上图中,如果R1收到前缀为206.1的IP地址,它只需要转发给R2,具体发往网络1还是网络2,则由R2计算得出。

    2.1.5 协议

    通过IP地址,可以将数据从某个网络传输到目的网络,但是把信息发送给哪台主机呢?由于路由器的隔离,IP网路没办法使用广播方式查找MAC地址,只有通过链路层的MAC地址以广播方式寻址。
    因此,IP协议还包括三个协议——ARP、DHCP和ICMP,共同配合完成数据转发。

    • ARP(地址转发协议)
      ARP工作在网络层,用于实现IP地址到MAC地址的映射。每台主机都有ARP高速缓存,用来存放本局域网上各主机和路由器的IP地址到MAC地址的映射表。


      image.png
    • DHCP(动态主机配置协议)
      DHCP是应用层协议,它给主机动态地分配IP地址,当一台主机加入新的网络时,通过客户/服务器方式获取IP地址。


      image.png
    • ICMP(网际控制报文协议)
      ICMP是网络层协议,让主机或者路由器报告差错和异常情况。它的报文种类有两种——ICMP差错报告报文和ICMP询问报文。

      • ICMP差错报告报文:目标主机或目标主机上的路由器向源主机报告差错和异常情况;
      • ICMP询问报文:包括回送请求和回答请求、时间戳请求和回答报文、掩码地址请求等报文。

    2.2 IPv6

    IPv6是解决IP地址耗尽的根本手段。它与IPv4的报文形式差别如下图:


    image.png
    image.png

    IPv6与IPv4地址通信示意图:


    image.png

    (三)拥塞控制

    在通信过程中,如果分组过量而导致网路性能下降,会产生拥塞。

    image.png

    拥塞的控制方式:

    • 开环控制:静态的预防方法,在设计网络时事先将所有发送拥塞的因素考虑周到,力求网络在工作时不产生拥塞。
    • 闭环控制:动态控制方法,事先不考虑所有发生拥塞因素,而采用监测网络系统去监测。

    相关文章

      网友评论

          本文标题:计算机网络(三)——网络层

          本文链接:https://www.haomeiwen.com/subject/ogpxphtx.html