第四章 网络层
网络层的主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务,网络层传输单位是数据报。分组是数据报切割划分出来的片段。网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
网络层的功能
分组交换的两种方式
-
**数据报方式:**为网络层提供无连接服务
- 无连接服务:不实现为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。
-
**虚电路方式:**为网络层提供连接服务
- 连接服务:首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组的传输路径相同,传输结束后拆除连接。
- 虚电路:一条源主机到目的主机类似于电路的路径(逻辑链接),路径上所有结点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路线性。
- 步骤:建立连接(虚电路建立)–>数据传输(全双工通信)–>释放连接(虚电路释放)
-
两者比较
| 数据报服务 | 虚电路服务 |
---|
连接的建立 | 不需要 | 必须有 | 目的地址 | 每个分组都有完整的目的地址 | 仅在建立连接阶段使用,之后每个分组使用长度较短的虚电路号 | 路由选择 | 每个分组独立地解析路由选择和转发 | 属于同一条虚电路的分组按统一路由转发 | 分组顺序 | 部部长分组的有序到达 | 保证分组有序到达 | 可靠性 | 不保证可靠通信,可靠性由用户主机来保证 | 可靠性由网络保证 | 对网络故障的适应性 | 出故障的结点丢失分组,其他分组路径选择发送编号,可正常传输 | 所有经过的故障结点的虚电路均不能正常故障 | 出错处理和流量控制 | 由用户主机进行流量控制,不保证数据报的可靠性 | 可由分组交换网负责,也可由用户主机负责 |
路由算法及路由协议
**自治系统AS:**在单元的技术管理下的一组路由器,而这些路由器适应一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还适应一种AS直接的路由协议以确定在AS之间的路由。一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内必须连通。
- 路由算法的分类
- 静态路由算法(非自适应路由算法):管理员手工配置路由信息。
- 优点:简单、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛运用于高度安全性的军事网络和较小的商业网络。
- 缺点:路由更新慢,不适用 大型网络。
- 动态路由算法(自适应路由算法):路由器间彼此交换信息,安装路由算法优化出路由表项。
- 优点:路由跟新快,适合大型网络,及时响应链路费用回网络拓扑变化。
- 缺点:算法复杂,最佳网络负担。
- 全局性路由算法:链路状态路由算法OSPF。(所有的路由器掌握完整的网络拓扑和链路费用信息)
- 分散性路由算法:距离向量路由算法RIP(路由器只掌握物理相连的邻居及其费用)
- 为什么要采用分层次的路由选择协议?
- 因特网规模很大
- 许多单位不想让外界知道最佳的路由选择协议,但还想连入因特网。
- 内部网关协议IGP:一个AS内使用的RIP、OSPF
- 外部网关协议EGP:AS之间使用BGP
- RIP协议(路由信息协议)
RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准, 最大优点是简单。RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)(路由表)。
OSPF协议
开放最短路径优先OSPF协议:“开放”表明OSPF协议不是受某一家厂商控制,而是公开发表的;“最短路径优先”是因为使用了 Dijkstra提出的最短路径算法SPF。
-
OSPF协议的特征
-
OSPF最主要的特征就是使用分布式的链路状态协议。 -
和谁交换:使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器(广播)。最终整个区域内所有路由器都得到了这个信息的一个副本。 -
交换什么:发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价一一费用、距离、时延、带宽等)。 -
多久交换:只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。 最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。
BGP协议
**边界网关协议(BGP)😗*是运行于 TCP 上的一种自治系统的路由协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。
RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。
OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP。
BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP。
协议 | RIP | OSPF | BGP |
---|
类型 | 内部 | 内部 | 外部 | 路由算法 | 距离-向量 | 链路状态 | 路径-向量 | 传递协议 | UDP | IP | TCP | 路径选择 | 跳数最少 | 代价最低 | 较好,非最佳 | 交换结点 | 和本结点相邻的路由器 | 网络中的所有路由器 | 和本结点相邻的路由器 | 交换内容 | 当前本路由器知道的全部信息,即自己的路由表 | 与本路由器相邻的所有路由器的链路状态 | 首次:交换整个路由表;非首次:有变化的部分 |
IPV4与NAT
IPV4即现在普遍使用的IP。IP定义数据传送的基本单元——IP分组及其确切的数据格式。IP也包括一套规则,指明分组如何处理、错误怎样控制。特别是IP还包含非可靠投递的思想,以及于此管理的分组路由选择思想。‘
1. IPV4分组/数据报的格式
-
版本:IPV4/IPV6 -
首部长度:单位是4B(32位),最小为5,最大为60B。常用20B,此时不使用任何选项(可选字段)。 -
区分服务:指示期望获得哪种类型的服务。 -
总长度:首部+数据,单位是1B。 -
生存时间(TTL):IP分组的保质期。经过一个路由器-1,变成0则丢弃。 -
协议:数据部分的协议。 -
首部检验和:只检验首部。 -
源IP地址和目的IP地址:均占4B。 -
可选字段:0~40B,用来支持排错、测量以及安全等措施。
**最大传送单元MTU:**链路层数据帧可封装数据的上限。以太网的MTU是1500字节。如果所传送的数据报长度超过某链路的MTU值则需要进行分片。以下为分片需用到的字段。
-
填充:使用0将首部填充为4B的整数倍。 -
标识:同一数据报的分片使用同一标识。 -
标志:只有2位有意义×__
- 中间位DF( Dont Fragment):
- 最低位MF( More Fragment):
- MF=1,后面“还有分片”
- MF=0,代表最后一片/没分片
-
片偏移:指出较长分组分片后,某片在原分组中的相对位置。以8B为单位。(除了最后一个分片,每个分片长度一定是8B的整数倍。)
- IPV4地址
IP地址:全世界唯一的32位/4字节标识符,标识路由器主机的接口。IP地址:={<网络号>,<主机号>}
-
分类的IP地址
网络类别 | 最大可用网络数 | 第一个可用网络号 | 最后一个可用网络号 | 每个网络中的最大主机数 |
---|
A | 2^7-2(127\0) | 1 | 126 | 2^24-2 | B | 2^14-1(0) | 128.1 | 191.255 | 2^16-2 | C | 2^21-1(0) | 192.0.1 | 223.255.255 | 2^8-2 |
-
特殊的IP地址
NetID网络号 | HostID主机号 | 作为IP分组源地址 | 作为P分组目的地址 | 用途 |
---|
全0 | 全0 | 可以 | 不可以 | 本网范围内表示主机,路由表中用于表示默认路由(表示整个 Internet网络) | 全0 | 特定值 | 不可以 | 可以 | 表示本网内某个特定主机 | 全1 | 全1 | 不可以 | 可以 | 本网广播地址(路由器不转发) | 特定值 | 全0 | 不可以 | 不可以 | 网络地址,表示一个网络 | 特定值 | 全1 | 不可以 | 可以 | 直接广播地址,对特定网络上的所有主机进行广播 | 127 | 任何数(非全0/1) | 可以 | 可以 | 用于本地软件换回测试,称为环回地址 |
私有IP地址只适用于内部网络中,路由器无法识别。
地址类别 | 地址范围 | 网段个数 |
---|
A类 | 10.0.0.0~10.255.255.255 | 1 | B类 | 172.16.0.0~172.31.255.255 | 16 | C类 | 192.168.0.0~192.168.255.255 | 256 |
网络地址转换NAT
**网络地址转换NAT:**指通过将专用网络地址转换为公用网络地址,从而对外隐藏内部管理的IP地址。它使得整个专用网络只需要一个全球IP地址就可以与因特网连通,由于专用网络IP地址可重用,所以NAT大大节省IP地址的消耗。同时它隐藏内部网络结构,降低了内部网络受攻击的危险。在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
根据源IP和端口号及转换表中WAN端和LAN端的源IP和端口号转换。
子网划分与子网掩码、CIDR
-
两级IP地址与三级IP地址
注:划分子网后对外表现仍为一个网络 -
子网掩码
- 网络号和子网号全写1
- 主机号全写0
- 子网掩码与IP地址相与得到的即为网络地址
-
无分类编址CIDR与构成超网
- CIDR
- 消除了传统的A类,B类和C类地址以及划分子网的概念。
- 融合了子网地址与子网掩码,方便子网划分。CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。
- CIDR记法:IP地址后加上“/”,然后写上网络前缀(可以任意长度)的位数。
- 构成超网
- 将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。
- 方法:将网络前缀缩短。(比如说两个子网地址的前N位都相同N+1位不同,就把它缩短到N位)
- 最长前缀匹配:使用CIDR时,查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。
ARP、DHCP与ICMP
- ARP
**地址解析协议ARP:**由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址。ARP协议负责完成主机或路由器IP地址到MAC地址的映射。(解决下一跳走哪的问题)
- ARP使用过程:
- 检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为 FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10~20min更新一次)。
- ARP4种典型情况:
- 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址。
- 主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址。
- 路由器发给本网络的主机A:用ARP找到主机A的硬件地址。
- 路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。
- DHCP
**动态主机配置协议DHCP:**是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。
- 过程:
- 主机广播DHCP发现报文,试图找到网络中的DHCP服务器,服务器获得一个主机的IP地址
- DHCP服务器广播DHCP提供报文,其中包括提供DHCP客户的IP地址和相关配置信息
- 主机广播DHCP请求报文向DHCP服务器请求提供IP地址
- DHCP服务器广播DHCP确认报文,将IP分配给DHCP客户机
- ICMP
**网际控制报文协议ICMP:**为了提高IP数据报交付成功的机会,在网络层使用网际控制协议ICMP来让主机或路由器报告差错和异常情况。
-
ICMP报文 -
ICMP差错报文(5种)
- 终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。(无法发送)
- 源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。(拥塞丢数据)(已经取消,基本包含用到)
- 时间超过:当路由器收到生存时间TTL=0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。(TTL=0)
- 参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。(首部字段有问题)
- 改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。(值得更好的路由)
-
不应发送ICMP差错报文的情况
- 对ICMP差错报告报文不再发送ICMP差错报告报文。
- 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。(只对第一个发)
- 对具有组播地址的数据报都不发送ICMP差错报告报文。
- 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。
-
ICMP询问报文
- 回送请求和回答报文:主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。(测试目的站是否可达以及了解其相关状态)
- 时间戳请求和回答报文:请某个主机或路由器回答当前的日期和时间。(用来进行时钟同步和测量时间)
- 掩码地址请求和回答报文(不再使用)
- 路由器询问和通告报文(不再使用)
-
ICMP报文的两种应用
IPV6
CIDR和NAT只是延缓了IPV4消耗完的时间,治标不治本。通过使用IPV6地址,可用从根本上解决地址耗尽的问题。IPV6改进了IPV4的首部格式,来实现路由器的快速处理、转发数据报,支持QoS。
**服务质量QoS:**指个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。
-
IPV6数据报格式
- 版本:指明了协议版本,总是6。
- 优先级:区分数据报的类别和优先级。
- 流标签:“流”是互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标签。
- 有效载荷长度:扩展首部+数据部分长度。
- 下一个首部:标识下一个扩展首部或上层协议首部。
- 跳数限制:相当于IPv4的TTL。
-
IPv6和IPv4的区别
- IPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。
- IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。
- IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
- IPv6支持即插即用(即自动配置),不需要DHCP协议。
- IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍。
- IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。
- ICMPv6附加报文类型“分组过大”。
- IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。
- IPV6取消了协议字段,改成下一个首部字段。
- IPv6取消了总长度字段,改用有效载荷长度字段。
- IPv6取消了服务类型字段。
-
IPv6的表现形式
- 一般形式:冒号十六进制记法如:4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
- 压缩形式:如4BF5:0000:0000:0000:BA5F:039A:000A:2176压缩为4BF5:0:0:0:BA5F:39A:A:2176。或零压缩FF05:0:0:0:0:0:0B3为FF05::B3一连串连续的0可以被一对冒号取代,但双冒号表示法在一个地址中仅可出现一次。
-
IPv6基本地址类型
- 单播:一对一通信,可做源地址+目的地址
- 组/多播:一对多通信,可做目的地址
任播:一对多中的一个通信,可做目的地址 -
IPv6与IPv4过渡的策略
- 双栈技术:双协议栈技术就是指在一台设备上同时启用IPv4协议栈和IPv6协议栈。这样的话,这台设备既能和IPv4网络通信,又能和IPv6网络通信。如果这台设备是一个路由器,那么这台路由器的不同接口上,分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络。如果这台设备是一个计算机,那么它将同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能。
- 隧道技术:通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将真它协议的数据帧或包重新封装然后通过隧道发送。
组播
单播:单播用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传输方式。
**广播:**广播是指发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。
**组播/多播:**当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能.近的节点后才开始复制和分发,是一种点对多点传输方式。组播提高了数据传送效率。减少了主干网出现拥塞的可能性。组播组中的主机可以是在同个物理网络,也可以来自不同的物理网络(如果有组播路由器的支持)。
- 组播
IP组播可分为两种,一种只在本局域网中进行硬件主播;另一种则在因特网的范围内进行组播。在因特网上进行组播的最后阶段,还是要把组播数据报在局域网上用硬件组播交付给组播组的所有成员。
同单播地址一样,组播地址也需要相应的组播MAC地址在本地网 络中实际传送帧。组播MAC地址以十六进制位是播组地址的最后23位转换得到的。TCP/IP协议使用的以太网多播地址的范围是从01-00-5E-00-00-00到01-00-5E-7F-FF-FF。从图中不难看出每个IP地址中只有23位可用作组播。
- 因特网组管理协议IGMP与组播路由算法
IGMP协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组。
过程 :
①某主机要加入组播组时,该主机向组播组的组播地址发送一个lGMP报文,声明自己要成为该组的成员。本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。
②本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的;如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员。
组播路由选择协议目的是找出以源主机为根节点的组播转发树。构造树可以避免在路由器之间兜圈子.对不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树。
- 常用组播路由选择协议:
- 基于链路状态的路由选择
- 基于距离向量的路由选择协议
- 无关的组播(稀疏/密集)
移动IP
**移动IP技术:**是移动结点(计算机/服务器等)以固定的网络P地址,实现跨越不同网段的漫游功能,并保证了基于网络|P的网络权限在漫游过程中不发生任何改变。
-
常见概念
- 移动结点:具有永久IP地址的移动设备。
- 归属代理(本地代理):一个移动结点拥有的“就居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。
- 外部代理(外地代理):在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。
- 永久地址(归属地址/主地址):移动站点在归属网络中的原始地址。
- 转交地址(辅地址):移动站点在外部网络使用的临时地址。
-
移动IP通信过程
网络层设备
**路由器:**一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
技术:**是移动结点(计算机/服务器等)以固定的网络P地址,实现跨越不同网段的漫游功能,并保证了基于网络|P的网络权限在漫游过程中不发生任何改变。
- 常见概念
- 移动结点:具有永久IP地址的移动设备。
- 归属代理(本地代理):一个移动结点拥有的“就居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。
- 外部代理(外地代理):在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。
- 永久地址(归属地址/主地址):移动站点在归属网络中的原始地址。
- 转交地址(辅地址):移动站点在外部网络使用的临时地址。
网络层设备
**路由器:**一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
|