第四章 网络层

本文详细介绍了网络层的功能,包括网络互连、路由与转发、SDN的基本概念,以及IPv4的相关知识,如分组格式、地址、NAT、子网划分、子网掩码和CIDR。此外,还涉及了路由协议如静态与动态路由、距离向量和链路状态算法,以及路由信息协议RIP和开放最短路径优先协议OSPF。
摘要由CSDN通过智能技术生成

知识架构树

1 网络层的功能

向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。

如果主机需要通信是可靠的,就把这活让传输层来做。

1.1 异构网络互连

网络互连:将两个以上的计算机网络,通过一定的方法,用一些中间设备相互连接起来。

对异构网络:对参加的计算机网络都使用相同的IP协议,使得他们之间可以正常工作

1.2 路由与转发

路由器主要完成两个功能:

  •         路由选择
    按照复杂的分布算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态的改变所选择的路由。
  •        分组转发
    路由器根据转发表,将用户的IP数据报从合适的端口转发出去

1.3 SDN的基本概念(Software Defined Network)

是一种创新网络结构,功能和传统的路由选择和分组转发一样,没啥区别,相较于传统地而言,工作方式发生了改变。

        网络层的主要任务是转发路由选择。因此可以将网络层抽象地划分为数据平面(也称转发层面)和控制平面,转发是数据平面实现的功能,而路由选择是控制平面实现的功能。


 

 传统的工作方式:路由器执行路由选择,维护路由表选择表的路由状态,并为该路由器计算转发表。转发的时候,根据路由表中的信息计算并转发。

SDN工作方式:各路由器之间不再相互通信,而是各路由器将自己本地转发表中的信息发送给远程控制器,此时远程控制器就掌握了各主机和整个网络的状态,远程控制器为每个分组计算最佳路由,通过Openflow协议或其他途径将在SDN的转发表下发给路由器。此时路由器的工作就会变得十分简单,即收到分组、查找转发表、转发分组。


北向接口:为程序员提供编程的一系列丰富API

南向接口:SDN控制器和转发设备建立双向会话的接口

东西接口:增强整个控制平面的可靠性和可扩展性(方便以后在左右连边加上数据)

 

1.4 拥塞控制

拥塞:在通信子网中,因为出现过量的分组从而引起网络性能下降的现象。
 

2 IPv4

2.1 IPv4分组

①IPv4分组的格式

 一个IP分组由首部和数据部分组成。

首部前一部分固定(前五行),共20B,后一部分时一些可选字段,长度可变,用来提供错误检测及安全等机制。

一种首饰八片

  • 版本。 IP协议的版本号
  • 首部长度。表明首部长度,单位:4B
  • 总长度。首部和数据之和,单位:1B
  • 标识。是否同一个数据报,相同的数据报有相同的标识
  • 标志。是否后面还有分片,占三位。低位MF,为1时后面有分片,0时没有。中间位DF(dont fragment)为0时才允许分片,1不允许。高位保留。
  • 片偏移。指出该分片在在原分组的相对位置,单位:8B
  • 生存时间TTL。路由器在转发分组之前,先把TTL减1,若TTL为0时,丢弃。
  • 协议。分组携带的数据使用何种协议(分组的数据部分上交给哪个协议处理  eg:TCP 、UDP)
  • 首部校验和。只校验分组的首部,不校验数据部分。
  • 源地址字段。标识发送方的IP地址
  • 目的地址字段。标识接收方的IP地址

②IP数据报分片

MTU(最大传送数据单元):一个链路层数据报能承载的最大数据量
当IP数据报的长度大于MTU时,会被分片。


工作流程:

 源主机创建一个数据报时,会给每个数据报加一个标识号,当一个路由器需要将一个数据报进行分片时,形成的每个数据报都有相同的标识号。然后目的主机在收到数据报时,会根据标识、标志和片偏移对数据报进行重组。

值得注意的是:除了最后一个分组,其他分组的长度都是8B的整数倍。

2.2 IPv4地址与NAT

①IPv4 地址

IP地址:在网络中,主机或路由器被分配到的一个32bit的全球唯一标识

IP地址={<网络号>,<主机号>}


特殊IP:

  • 主机号全0,表示网络本身
  • 主机号全1,表示该网络的广播地址
  • 127.x.x.x,保留地址(环回自检地址),此地址表示任意主机本身,目的地址为环回地址得IP数据报永远不会出现在任何网络上。
  • 32位全0,表示本网络上的主机。
  • 32位全1,整个网络的广播,又称受限广播地址,实际使用时,因为路由器对广播域的隔离,255.255.255.255等效为本网络的广播地址。

②网络地址转换(NAT)

NAT是指内网转外网

私有IP网段:

  • A类:1个A类网段,10.0.0.0~10.255.255.255
  • B类:16个B类网段,172.16.0.0~172.31.265.255
  • C类:256个C类网段,192.168.0.0~192.168.255.255

使用NAT时,需要在路由器上安装NAT软件,NAT路由器使用NAT转换表进行本地IP和全球IP的转换。
 

2.3 子网划分与子网掩码、CIDR

①子网划分

借用主机号

给每个物理网络分配一个网络号会使路由表变得太大而使路由表变得太大而使网络性能变坏,两级IP地址不够灵活。


IP地址={<网络号>,<子网号>,<主机号>}

工作流程

把主机号借用若干比特作为子网号,凡是从其他网络发送给本单位某台主机的IP数据报,先找路由器,路由器收到之后,按目的网络号和子网号找到目的子网,交给主机。

注意:
①CIDR支持子网全0或全1,需要看清路由器是否支持全1或全0。

②子网中主机号全0或全1不能被指派。

②子网掩码

为了告诉主机或路由器对网络进行了子网划分,使用子网掩码来表达对原网络中主机号的借位。

计算子网地址方式将主机号和子网掩码按位与

使用子网掩码后,路由器在相互交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉对方。因此,路由表条目构成:目的网路、子网掩码、下一跳地址

③无分类编址CIDR

消除传统A、B、C类网络划分,将不同的网络号按位与进行聚合,形成一个新的IP地址。聚合之后会形成一条更大的路由路径,减小路由器的路由表的表项数量,提高路由转发能力。

与传统IP区别:网络前缀的位数不是固定的

CIDR的记法:  IP::{<网络前缀>,<主机号>} 或者 IP地址/网络前缀所占比特数


最长前缀匹配:使用CIDR时,路由表中每个项目由“网络前缀”和“下一跳”组成,在查找路由表时,可能会得到不止一个匹配结果,这时需要从匹配结果中找到网络前缀最长的,因为越长就代表地址块越小,路由越具体。

④网络层转发分组的过程

转发表中除了(目的网络,下一跳地址)之外,还可以增加两种特殊路由
        ①主机路由:对特定目的主机的IP地址专门指明一个路由,方便管理员控制和测试网络

        ②默认路由:0.0.0.0/0 ,当路由表中没有匹配转发的表项时,就转发给这个地址。

执行过程:
        1)从收到的IP分组的首部提取目的主机的IP地址

        2)先去查找特定主机路由,找到转发。否去查转发表,有匹配的根据“下一跳”进行处理(直接交付主机还是通过指定接口发送给下一跳路由器)

        3)转发表也没有匹配的,看路由表中是否有默认路由,有传给默认路由,反之报告转发分组报错。

2.4 ARP、DHCP与ICMP协议

网络层及以上使用IP地址,IP地址放在IP数据报的首部,而MAC地址放在MAC帧的首部。通过数据封装,把IP数据报分组封装为MAC帧后,数据链路层看不见数据分组中IP地址。

①ARP---地址解析协议(Address Resolution Protocol)

值得注意的是:

        ARP用于解决一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。

        当所要找的主机和源主机不在同一个局域网上时,那么就要通过ARP找到一个位于本地局域网上的某个路由器的硬件地址,然后把分组发送个这个路由器,让这个路由器发送给下一个网络。

实际网络中的链路上传送数据帧时,最终必须使用MAC地址。

IP地址到MAC地址的映射。

主机A向主机B发送IP数据报,工作流程

        1)先查看自己的ARP高速缓存中是否有无主机B的IP地址,有---》就可查出对应的MAC。

        2)无---》将主机B的IP和主机A的子网掩码相与,看是否在同一个网段内,是---》则广播一个ARP分组请求:FF-FF-FF-FF-FF-FF。(否---》找默认路由的MAC地址,继续广播ARP请求分组,然后单播返回了默认路由的MAC,把数据报发给了默认路由了,路由器收到了帧后,处理后得到目的IP(B),根据路由表项再做下一步操作。)

         3)收到后单播返回一个分组:包含主机B的IP与MAC的映射关系

 
 


根据目的地址是否在同一网段内,使用ARP的四种情形:
        ①发送方是主机H1,接收方是主机H2

                这时候H1用ARP找到目的主机H2的硬件地址

        ②发送发是主机H1,接收方是主机H3

                这时候H1用ARP找的是路由器R1的硬件地址

        ③发送方式路由器R1,接收方是H3

                这时候路由器R1用ARP找的是主机H3的硬件地址

        ④发送方是路由器R1,接收方是路由器

                

②DHCP---动态主机配置协议(Dynamic Host Configuration Protocol)

场景:

当一台主机加入一个新的网络时,该协议会给主机动态地分配IP地址。

DHCP是应用层协议,它是基于UDP的。(DHCP为用户直接提供IP分配服务,在OSI七层模型中,被定义在了应用层。一开始连IP地址也没有,只能用UDP建立无连接请求了)

工作流程:

        1)刚加入进来的主机,没有分配IP,IP就是0.0.0.0,便会广播一个DHCP发现报文,试图找到DHCP服务器。(源地址:0.0.0.0,目的地址:255.255.255.255

        2)DHCP服务器收到消息之后,广播DHCP提供报文,里面有提供给DHCP客户机的IP地址(源地址:DHCP服务器的IP地址,目的地址:255.255.255.255)
       
3)主机收到后,如果接受该IP地址,广播DHCP请求报文,请求DHCP服务将这个IP分配给我。(源地址:0.0.0.0,目的地址:255.255.255.255)

        4)DHCP广播发送DHCP确认报文,将IP地址分配给主机(源地址:DHCP服务器的IP地址,目的地址:255.255.255.255)

        DHCP允许网络上配置多台DHCP服务器,当DHCP客户机发出“DHCP发现” 消息时,有可能会收到多个应答消息。这个时候,DHCP客户机通常挑选最先到达的。

③ICMP---网际控制报文协议

让主机或路由器报告差错和异常情况

3 IPv6

3.1 IPv6的主要特点

根本上解决了IPv4地址耗尽的问题

IPv4IPv6
地址长度32bit128bit
是否允许分片允许不允许,只有源主机才能分片,是端到端的
首部长度不固定(20~60字节),必须是4B整数倍固定(20字节)
首部格式更加灵活,定义了许多可选的扩展首部
是否使用DHCP使用不使用,即插即用
安全性更高,IPv6的扩展首部中有身份鉴别和保密功能。
扩展性功能固定了允许协议继续不断扩充功能

3.2 IPv6地址

  • 版本(4bit):指明协议的版本,对于IPv6该字段的值为6。
  • 通信量(8bit):用来区分不同数据报的类别或优先级。
  • 流标号(20bit):流指互联网上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有相同的流标号。
  • 有效载荷长度(16bit):指明IPv6数据报除基本首部以外的字节数。最大值65535(单位:字节)
  • 跳数限制(8bit):类似于IPv4TTL字段。最大值255

地址表示:

        ①点分十进制表示法。每四位用一个十六进制数表示,并用冒号分隔每16位。

               eg:4BF5:AA12:D876:FF6E:A5F6:89F4:BC64:B59A (很长)

        ③缩写表示法。将0去掉,但保证每个冒号之间必须至少有一个数字

eg:4BF5:0000:0000:0000:BA5F:039A:000A:2176 ---》4BF5:0:0:0:BA5F:39A:A:2176

        ②双冒号表示法(双冒号缩写多个0,仅能出现一次)。

eg:4BF5:0000:0000:0000:BA5F:039A:000A:2176--->4BF5::BA5F:39A:A:2176

冒号十六进制表示IPv6规则:

        ①多个连续区域为0,可进行零压缩,但一个地址只能出现一次零压缩。

        ②每个区域开头的0可省略。

3.3 IPv4向IPv6过渡

1.双协议栈
        指在一台设备上同时装有IPv4和IPv6两个协议栈,分别配置了一个IPv4地址和IPv6地址,该设备就可以既可以和IPv4网络进行网络通信,又能和IPv6网络通信了。


2.隧道技术
        指在IPv6数据报进入IPv4网络时,把整个IPv6数据报封装成IPv4数据报的数据部分,使原来的IPv6部分就好像在IPv4网络的隧道中传输。

4 路由协议

4.1 路由算法

① 静态路由与动态路由

③ 距离-向量路由算法
 

这里发送结点仅仅是给相邻结点发送,发送的信息是整个路由表

③ 链路状态路由算法(通常对比距离向量)

链路状态指的是:本路由器都和哪些路由器相邻,以及相应的链路的代价。

算法工作的三个特征:

        ①链路状态改变时,才发送信息。
        ②洪泛法向本自治系统中所有路由器发送信息。(洪泛法指路由器通过所有端口向所有相邻的路由器发送信息,但不再发送刚刚接收信息的端口)

        ③发送信息只是与该路由器相邻路由器的链路状态信息,不是全部信息

④ 层次路由

网络规模变得很大时,需要对硬件地性能有很高的要求,也会用更多的宽带交换路由状态信息,因此想出一种解决方法:将网络进行分层。


采用分层次划分区域的方法

        优点:每个区域内部交换路由信息的通信量大大减少

        缺点:会使得协议更加复杂


路由选择协议的分类:
        ①内部网关协议(IGP):一个自治系统内部所使用到的路由选择协议

        ②外部网关协议(EGP):自治系统之间使用到的路由选择协议

4.2 自治系统AS(Autonomous System)

单一技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同的度量。

4.3 域内路由与域间路由

自治系统内部的路由选择称为域内路由选择,自治系统之间的路由选择称为域间路由选择

1.内部网关协议(Interior Getway Protocol,IGP)

        在一个自治系统内使用路由选择协议

2.外部网关协议(External Getway Protocol,EGP)

        当源站和目的站处在不同的自治系统中,就需要使用一种协议将路由选择信息传递到另一个自治系统中,这样的一种协议就是外部网关协议。


        目前最常用的外部网关协议是BGP-4。
 

4.4 路由信息协议(RIP)

基于距离向量的路由选择协议

①RIP规定

  • 距离也称为跳数,规定从一个路由器到直接连网络的距离记录为1。
  • 认为好的路径就是通过路由器数目少,优先选择跳数少的路径。
  • 允许一条路径上最多只包含15个路由器,距离为16时,网络不可达。
  • 默认任意使用RIP的路由器之间每30秒广播一次RIP路由信息。
  • 在RIP中不支持子网掩码的RIP广播,所以RIP中每个网络中的子网掩码必须相同

②RIP特点

③距离向量算法

每个路由表项目都有三个关键数据:<目的网络,距离d,下一跳路由器地址x>


对每个相邻路由器发来的RIP报文,执行如下操作:

        1)先修改邻居发来的表项,把下一跳的地址都改为邻居的地址,然后距离都加1

        2)对修改后的表项和自己的表项作对比,

                若自己的表项中没有目的网络,把该表项加入自己的路由表。(情况①

                若自己的表项中有目的网络,

                        如果下一跳是邻居的地址,以新换旧。(情况②

                        如果下一跳不是邻居的地址且收到的距离小了,替换(情况③),否则什么也不做。

4.5 开放最短路径优先协议(OSPF) 

①工作原理

当链路状态发生变化时,路由器会向本自治系统中所有的路由器频繁交换链路状态信息,直到最后所有路由器都能建立一个链路状态数据库,也就是全网的拓扑结构图,在全网范围一致。到时候会根据这个拓扑图,计算到各目的网络的最佳路径,就知道下一跳是谁了。

②特点

4.6 边界网关协议(BGP)

不同自治系统的路由器之间交换路由信息的协议,是一种外部网关的协议。

BGP采用的是路径向量路由协议,由于自治系统之间的路由选择十分的困难,所以BGP只能力求一条能够到达目的地且比较好的路由,而并非寻找一条最佳路由。

工作原理:
        每个自治系统中都会有至少一个路由器作为该自治系统的“BGP发言人”,各自治系统的BGP发言人都相互交换网络状态信息后,各BGP发言人就可以找出到达各个自治系统的较好路由。
        BGP所交换的网络可达性的信息,就是要到达某个网络所经过的一系列自治系统。

5 IP组播

5.1 组播的概念

有的应用程序想要把一个分组发送给多个目的主机,当然可以将这个分组复制一下分别发送给每个主机,但这会引起主机上大量的处理开销和网络上太多的交通量,因此可以让源主机一次发送一个分组给一个组播地址,然后因特网在把这个组播的副本投递给该组中的每台主机。

主机使用一个称为IGMP的协议加入组播组,他们使用该协议通知本地网络上的路由器关于要接收发送给某个组播组的分组的愿望。
 

5.2 IP组播地址

IP组播使用D类地址格式,D类地址范围:224.0.0.0~239.255.255.255,每个D类地址标志一个组播组。

值得注意的是:

        ①组播数据报是“尽最大努力交付”,不提供可靠交付

        ②组播地址只能使用目的地址,而不能用于源地址

        ③对组播数据报不产生ICMP差错报文

        ④并非所有的D类地址都可以作为组播地址

LNAN拥有的以太网组播地址的范围是:01-00-5E-00-00-00 ~ 01-00-5e-7F-FF-FF,在每个地址中,只有23位可用作组播。D类IP地址可分配的有28位,在这28位中,前5位不能用来构成以太网的硬件地址,由此可见,组播IP地址和以太网硬件地址的映射不是唯一的。

5.3 IGMP与组播路由算法

使路由器知道组播成员的信息,需要利用IGMP(Internal Group Management Protocol,IGMP)----因特网组管理协议

工作流程:

        首先,当某台主机加入新的组播组时,该主机应向组播组的组播地址发送一个IGMP报文,声明自己要加入该组。然后本地的组播路由器收到之后,将组成员关系转发给因特网上的其他的组播路由器。因为组成员是动态的,本地组播器要周期性地探询本地局域网上地主机,以便知道这些主机是否继续是组的成员。

6 移动IP

6.1 移动IP的概念

设备移动,IP不动

        移动IP技术是计算机或服务器以固定的网络IP地址,实现不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。

专有名词:

  • 移动结点:具有永久IP地址的移动设备
  • 归属代理/本地代理:一个移动结点的永久居所
  • 永久地址/归属地址/主地址:移动结点在归属网络中原始地址
  • 外部代理/外地代理:在外部网络中帮助移动结点完成移动管理功能的实体
  • 转交地址:可以是外部代理的地址        

6.2 移动IP通信过程

 A刚进入外部网络:
        1)获得外部代理的转交地址。

        2)移动结点通过外部代理发送注册报文给归属代理,包含永久地址和转交地址。

        3)归属代理接收请求后,将移动结点的永久地址和转交地址绑定,返回一个注册响应报文。

        4)外部代理接收注册响应,并发给移动结点。

发送数据时:主机A---》发给外部代理---》发给归属代理发送

接收数据时:归属代理接收---》发给外部代理---》再发给主机A

7 网络层设备

7.1 冲突域和广播域

①冲突域

指连接到同一物理介质上的所有结点的集合,这些结点存在介质争用现象。

冲突域被视为第1层概念,第一层设备所连接的结点都属于一个冲突域。

②广播域

路由器分割的网络

7.2 路由器的组成和功能

路由器是一种具有多个输入/输出端口的专用计算机,其任务是连接不同的网络,并完成路由转发。

发送数据时,路由器会检查源主机和目的主机是否在同一个网络上,如果源主机和目的主机在同一个网络上,直接交付,无须通过路由器。反之需要按照路由表指出路由将数据报转发给下一个路由,这称为间接交付

 

路由选择部分:核心部件是路由选择处理机,任务是根据所选定的路由选择协议构造路由表,同时经常定期地和相邻路由信息而不断更新和维护路由表。

分组转发部分:交换结构、一组输入端口和一组输出端口。

7.3 路由表与路由转发

从历年真题上来看,

        标准的路由表一共有4个项目:目的网络IP、子网掩码、下一跳IP地址、接口一般还需要一个特殊的表项:默认路由。

值得注意的是:路由表不等于转发表。分组转发查的是转发表。

路由表是许多路由器协同工作的结果,按照复杂的算法,根据从相邻路由器的到的关于网络拓扑的变化情况,动态地改变所选择地路由,并由此构建整个路由表。路由表做到的是对网络拓扑变化的计算最优。

转发表是从路由表得出的,其表项和路由表项有直接关系,但是转发表的格式和路由表的格式不同,它的结构应使得在查找时过程最优化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值