4.1 网络层提供的两种服务

面向连接:虚电路交换,事先建立好虚连接,报文传输时按照对应的虚链路号传输即可,无需目的地址,有一定的差错控制、顺序、重传机制。
image.png
面向无连接:分组交换,尽最大努力投递分组,不考虑分组的顺序、丢失等。
image.png
image.png


4.2 网际IP协议

如下图所示,IP常配套的协议有ICMP、IGMP、ARP,ARP在最下面,因为IP协议常用到ARP,ICMP和IGMP在上面,因为它们经常用到IP协议。
image.png

4.2.1 虚拟互联网络

网络互连的中间设备
(1)物理层:转发器
(2)链路层:网桥或桥接器
(3)网络层:路由器
(4)网络层以上:网关
IP协议可以进行多种异构网络的互连,当IP网上的主机通信时,就好像在单个网络上通信,它们看不到互连的网络细节,都认为是同一个IP互联网。
image.png
从H1发送报文到H2,路由为H1 -> R1 -> R2 -> R3 -> R4 -> R5,其中H1 H2协议栈为五层,R1 ~ R5协议栈为三层。
image.png

4.2.2 分类的IP地址

整个互联网是一个单一、抽象**的网络,IP地址为每一台主机的每一个接口分配了唯一的32位标识符。IP地址现在由ICANN(互联网名字和数字分配机构)分配。
IP地址的编址方法共经历了三个历史阶段
(1)分类的IP地址
(2)子网的划分
(3)构成超网
所谓IP地址划分就是把IP地址划分为若干个固定类,每一类都由两个规定的长度字段组成,第一个字段为
网络号,标志主机(路由器)所连接到的网络;第二个是主机号,它标志该主机(路由器)。
ABC为单播地址,D为多播地址。
image.png
IP地址的书写,二进制转为点十进制。
image.png
举例:A类地址的网络号字段占1个字节,主机号字段占3个字节。可指派的网络为126 = 2^7 - 2个,因为IP地址中全0表示该主机,而127.0.0.1则表示本地软件环回测试,可指派的主机为2^24 - 2,因为全0表示该主机,全1表示所有主机(广播)。
B类地址,网络号10开头,还剩下14位,而14位如何取值也无法出现网络号字段全0或全1不存在网络数减少2的问题,指派128.1.0.0开头,因此网络数为2^14 - 1,主机数为2^16 - 2(主机号可以全0和全1)。
C类地址,网络号110开头,指派最小网络地址为192.0.1.0,网络总数为2^21 - 1,主机总数2^8 - 2。
image.png
总结:
(1)每个IP地址都由网络号和主机号构成,只有网络号是ICANN分配的,而主机号由企业自己分配,方便管理;其次,路由表仅根据所连接的网络号转发分组,不考虑主机号,减小了路由表所占的存储空间以及查找路由表的时间。
(2)IP地址只是标志一台主机的一个网络接口,如果一台主机有两块网卡,那它就要有两个IP。
(3)用转发器或者网桥连接的起来的局域网仍然是一个网络,因为他们网络号一样,不同网络号的网络需要用路由器连接。
image.png
(4)路由器直接相连的特殊网段一般可以不分配网络地址(N1 N2 N3),这样的特殊网络一般叫无名网络。**

4.2.3 IP地址与硬件地址

IP地址:网络层及其以上使用的逻辑地址
硬件地址:链路层和物理层使用的实际硬件地址
image.png
不同层次的通信,从主机H1发送报文到主机H2
image.png
IP:源IP为IP1,目的IP为IP2永不变。
MAC:H1到R1,源MAC为HA1,目的MAC2为HA3;R1到R2,源MAC为HA4,目的MAC为HA5;从R2到H2,源MAC为HA6,目的MAC为HA2。
image.png

4.2.4 ARP协议

ARP:地址解析协议,通过IP地址解析MAC地址
RARP:逆地址解析协议,通过MAC地址解析IP地址,目前的DHCP协议已经包含了RARP功能,现在很少直接使用RARP了
image.png
每台主机都有ARP高速缓存,保存着本局域网上的各主机和路由器的IP地址到MAC地址的映射表,事先这张表是空的,主机会发送广播帧,在初次交互后,交互双方都慢慢更新这张表(地址学习),ARP缓存中的数据都有一个生存时间(10 ~ 20min),超过这个时间后没有更新就删除该表项。
image.png
image.png
image.png

4.2.5 IP数据报的格式

IP数据报由首部和数据两部分组成,首部的前一部分为固定长度,20字节,后一部分是可选字段,长度可变。image.png
(1)版本:4位,IPv4 or IPv6指明IP版本号
(2)首部长度:4位,指明整个首部的长度(32位字,一个32位字表示4字节),最小是20字节(0101)
(3)区分服务:8位,只有在使用区分服务时才有用
(4)总长度:16位,单位为字节,IP数据包的最大长度为2^16 - 1 = 65535字节,IP层下的链路层规定了一个数据帧中的最大长度MTU,常用的以太网规定MTU为1500字节,如果IP层传输的数据报长度超过MTU,则需要进行分片,若分片,则总长度指的是分片后的每一个分片的首部长度与该分片的数据长度的总和
(5)标识:16位,IP软件在存储器中维持的一个计数器,每次产生一个数据报,计数器加1,赋值给该字段;当IP数据报的长度需要分片时,所有分片过后的各数据报骗都具有相同的标识
(6)标志(Flag):占3位,目前只有两位有意义
最低位MF:1表示还有分片,0表示是最后一片
中间位DF:0表示可以分片,否则无法分片
(7)片偏移:13位,较长分组分片后,某片在原数组的相对偏移(类似于数组的偏移地址),片偏移以8个字节为偏移单位,也就是说每个分片的长度一定是8字节的整数倍。
image.png
image.png
(8)生存时间TTL:8位,表明数据报在网络中的寿命,由发出数据报的源点设置该字段,现在的TTL更多是以跳数衡量,每经过一跳路由器,TTL减1,当TTL为0时就丢弃该数据报。
(9)协议:8位,表明该数据报携带的数据使用何种协议,让IP层知道应该将数据部分上交给上层的哪个协议处理。
image.png
(10)首部校验和:16位,只校验数据报的首部部分,不包括数据部分。
image.png
(11)源地址:32位,发送方的IP
(12)目的地址:32位,接收方的IP
(13)可变部分:支持排错、测量、安全等措施,内容丰富,字节从1到40不等,需要补齐0凑够4字节整数倍。

4.2.6 IP层转发分组的流程

路由转发关心的目的IP地址和下一跳IP地址,转发时以网络为单位,而非以某个主机为单位
image.png
路由转发还可采用默认路由的方式,即如果找不到对应转发的网络,则直接往默认路由网络转发
image.png
分组转发的流程如下:
image.png


4.3 划分子网和构造超网

4.3.1 划分子网

原有的两级IP地址有的弊端
(1)IP地址的空间利用率低
(2)给每个物理网络分配一个网络号会使得路由表太大而使得网络性能变坏
(3)两级IP不够灵活
现有的三级IP地址:IP地址 ::= {<网络号>,<子网号>,<主机号>}
来自其他网络的数据包要想到达145.13.0.(B类地址)网段则直接转发给R1
image.png
R1进行了子网划分,子网号占8位,主机号占8位,对外仍然是一个网络,但对内是分为了多个子网(145.13.3.0,145.13.7.0,145.13.21.0)。
image.png
子网掩码的存在,可以让IP中体现出子网的划分,因为子网掩码能提现网络号+子网号,用子网掩码和目的网络地址按位想与,就能得到对应网络子网的网络地址。
image.png
如果不划分子网,则子网掩码则按照标准形式
image.png
image.png
image.png

4.3.2 划分子网时的分组转发

路由表中必须包含三项内容:目的地址、子网掩码和下一跳地址
image.png

4.3.3 无分类编址CIDR

为了解决IPv4地址即将耗尽的问题,子网掩码变为变长子网掩码VLSM,之后又进一步提出CIDR五分类域间路由选择。
CIDR的特点:
(1)消除了传统A、B、C类地址及子网划分的概念,把32位的IP地址划分为前后两部分,前面为网络前缀,后面为主机部分,IP地址:: = {<网络前缀>,<主机号>},采用/记法,IP地址后填上/,写上网络前缀的位数。
(2)把网络前缀都相同的连续IP地址组成一个CIDR地址块,192.199.170.82/27 就代表网络前缀有27位,主机号只要5位,由于一个CIDR地址块有很多地址,因此路由表中利用其地址快查找目的网络,也就是路由聚合。
image.png
使用CIDR时,路由表中可能会得到不止一个匹配结果,此时选择具有最长网络前缀的路由,即最长前缀匹配。**


4.4 ICMP

ICMP报文格式如下,它不是高层协议,只是作为IP层数据包的数据
image.png

4.4.1 ICMP报文种类

种类有两种,ICMP差错报告报文和ICMP询问报文,前四个字节是统一格式,功三个字段:类型、代码和校验和,接下来的四个字节与ICMP类型有关,最后是数据字段,长度取决于ICMP的类型。
image.png
image.png
image.png

4.4.2 ICMP应用举例

(1)PING
image.png


4.5 路由选择协议

分为域间路由选择(外部网管协议EGP)和域内路由选择(内部网管协议IGP)
image.png

4.5.1 RIP

分布式的基于距离矢量的路由选择协议,RIP协议定义距离为跳数,每经过一个路由器跳数加1。
RIP的特点:
image.png
距离矢量算法的三个关键数据:目的网络N,距离d和下一条路由器X
image.png
image.png
RIP的报文格式
image.png
RIP存在一个问题:坏消息传播慢,当网络出现故障时,要经过较长时间才能把该信息传到所有路由器。
**image.png
image.png
优点:开销小,简单易实现
缺点:网络规模限制在15,坏消息传播慢,更新收敛时间过长。

4.5.2 OSPF

开放最短路径优先,采用分布式的链路状态协议,不像RIP那种距离矢量协议,不同点如下:
(1)以泛洪的方式向本自治系统中的所有路由器发送信息
(2)发送信息为本路由器相邻的所有路由器的链路状态
(3)链路状态发生变化时,才会出现泛洪发送消息
OSPF直接用IP报文传输而非UDP,构成的数据报很短:
(1)版本:协议版本号,当前为2
(2)类型:五种类型分组中的一种
image.png
image.png
(3)分组长度:包括OSPF首部在内的分组长度,字节为单位
(4)路由器标识符:标志发送该分组的路由器的接口的IP地址
(5)区域标识符:分组属于的区域的标识符
(6)校验和:用来检测分组的差错
(7)鉴别类型:用来检测分组中的差错
(8)鉴别:鉴别类型为0时填入0,1时填入8字符的口令
image.png
image.png
image.png

4.5.3 BGP

采用了路径向量路由选择协议
image.png
image.png
image.png

4.5.4 路由器的组成

路由器主要有两部分功能:路由选择和分组转发
路由选择也叫控制部分,核心是路由选择处理机,根据所选定的路由选择协议构造路由表,定期和邻近路由表交换信息更新和维护路由表。
分组转发部分:交换结构、输入端口、输出端口。
转发和路由选择的区别:转发是指路由器根据转发表把IP数据报从路由器合适端口转发出去,仅涉及一个路由器;而路由选择则涉及到很多路由器,路由表是由许多路由器协同工作的结果。转发表是从路由表得出的,转发表需要包含到达目的网络的端口和某些MAC地址,而路由表只需要目的地址和下一跳IP即可。
下图中,如果IP报文是路由器之间交换路由信息的,如(RIP或OSPF分组)则直接上报给路由选择处理机;如果是普通的数据报文,则按照转发表进行转发。
image.png
理论上来说,交换机输入端口的处理速率最好能跟上线路传入的速率。
image.png
在输入、输出端口的处理速率如果跟不上它们的输入速率,则必定会造成队列的等待,如果分组数过多,队列一定会溢出,从而导致分组的丢弃。
image.png
三种不同的交换结构如下
image.png


4.6 IPv6

4.6.1 IPv6的基本首部

IPv6支持无连接传输,协议数据单元称为分组,而非IPv4中的数据报
主要的变化:
(1)更大的地址空间:从32位变为128位
(2)拓展的地址层次结构:空间很大,层次更多
(3)灵活的首部格式:定义了很多可拓展的首部
(4)改进的选项:允许数据报有选项控制信息,但首部长度固定,选项放在载荷中
(5)协议允许继续拓展
(6)支持即插即用:自动配置,无需DHCP
(7)支持资源预分配:支持实时视像,保证带宽和时延
(8)首部改为8字节对齐
image.png
各字段含义:
(1)版本:4位,指明了协议版本,对于IPv6而言该字段为6
(2)通信量类:占8位,区分不同的IPv6数据报的类别或优先级
(3)流标号:占20位,IPv6的一个新机制是支持资源预分配,并允许路由器把每一个数据报与一个给定的资源分配相联系,保证是源端到目的端一系列数据报的服务质量
(4)有效载荷长度:16位,除首部外,数据载荷的长度,最大值为65535。
(5)下一个首部:8位,如果没有拓展首部,则和IPv4的协议字段或可选字段一样,表明数据报应该交给高层的哪一个协议,比如6表示TCP,17表示UDP;如果有拓展首部,则表示第一个拓展首部的类型。
(6)跳数限制:8位,数据报文从源端发出后能够允许的最大跳数
(7)源地址:128位
(8)目的地址:128位
比起IPv4,IPv6的拓展首部在源端到目的端的所有路由器一般都不处理(除逐跳选项拓展首部),只有源端和目的端主机处理,效率提升了很多。
image.png

4.6.2 IPv6的地址

(1)单播:点对点通信
(2)多播:点对多点通信,广播可以看做多播的特例
(3)任播:IPv6特有,终点是一组计算机,但数据报只交给其中一个,通常是距离最近的一个
image.png
image.png
image.png
image.png
image.png

4.6.3 IPv4向IPv6的过渡

IPv6必须能够接受和转发IPv4分组,并且能够为IPv4分组选择路由,两种过度策略如下:
(1)双协议栈:完全过渡到IPv6之前,一部分主机(或路由器)装有双协议栈:一个IPv4,一个IPv6,通过DNS区分IPv6和IPv4。下图中就是IPv6和IPv4的转换,需要注意的是IPv6转为IPv4时,首部中某些字段无法恢复。
image.png
(2)隧道技术:IPv6要进入IPv4网络时,把它封装为IPv4数据报,整个IPv6数据报成为了IPv4数据报的载荷部分,相当于新加了IPv4的头,这样不会有首部丢失,但需要在IPv4的首部协议字段设置41(表示数据为IPv6数据报)。
image.png

4.6.4 ICMPv6

IPv6和IPv4一样是面向无连接的,不保证可靠交付,IPv6中已经把ARP、IGMP的功能合并到ICMPv6中。

image.png
IPv6是面向报文的协议,利用报文报告差错,获取信息,探测邻站或管理多播通信。
image.png


4.7 IP多播

4.7.1 IP多播的基本概念

IP多播只需发送一次报文,由路由器进行复制转发,而局域网中本身就有多播功能无需复制分组,直接转发即可。
多播标识符是IP地址中的D类地址,范围是224.0.0.0.到239.255.255.255,每个D类地址可以标志一个多播组。
image.png

4.7.2 局域网上进行硬件多播

MAC多播地址和IP多播地址的关系
image.png

4.7.3 IGMP和多播

网际组管理协议:IGMP,用于知道网络中参加组播的成员信息,主要是面向路由器使用,让路由器知道本地局域网上是否有组播成员主机。
要完成多播,还需要多播路由选择协议
单播路由选择通常在网络拓扑发生变化时才会改变,多播路由选择则不一定由于网络拓扑发生变化,下图中的G如果要加入多播组1,只需要通过IGMP协议告知路由器即可,网络拓扑没有变化。
image.png
IGMP工作流程:
(1)主机1想要加入某个多播组时,需要向该多播组的多播地址发送一个IGMP报文,表明自己要加入该多播组,本地的多播路由器收到后,进行更新,并通过多播路由选择协议,将该消息通知到网络中其他路由器。
(2)主机与多播组间的关系是动态的,需要周期性的交互,一旦出现超时等情况,就认为该主机已经脱离了多播组。
多播路由选择协议:找出以源主机为根节点的多播转发树,多播转发树上的路由器会往叶子节点转发数据,多播路由器不会收到重复消息(不会产生回环),多播路由选择一般有以下三种方法:
(1)泛洪与剪除:适用于小组,组播成员的局域网也是邻接的,采用泛洪的方法广播,同时利用反向路径广播(RPB)进行剪除。
RPB的重点:路由器在收到多播数据报时,先检查是否从源点的最短路径送来,如果是则向所有其他方向转发该数据报,否则丢弃;如果本路由器的好几个邻近路由器都在源点的最短路径上,则只选IP最小的。
image.png
(2)隧道技术:适用于多播成员地理位置分散的情况,R1和R2之间的通道不知道多播,就通过单播的方式传输,但在传输过程中把多播的数据封上一层单播的头
image.png
(3)基于核心的发现技术:适用于各种范围,对每一个多播组G都指定一个核心路由器(会创建对应G的多播转发树),给出其IP单播地址。如果R1路由器向核心路由器发送多播报文,则途径的每一个路由器都会检查,当达到G的多播路由器R2时,就处理该报文


4.8 VPN和NAT

4.8.1 VPN

由于IP地址的短缺,很多机构希望尽可能多的使用IP地址,对于一些指派的专用地址,如果将其虚拟化,则只在本机构内部识别,而外网并不知道,而本机构有一台独一无二的IP地址供外网可见(互联网作为本机构各个专用网的载体),这样机构内部就可以使用多个与外网重复的IP地址。
虚拟专用网中的数据都应是对外不可见的,因此需要进行一定的加密
image.png

4.8.2 NAT

需要在路由器上装带有NAT功能的软件,该路由器必须有一个全球唯一的IP地址标识,和互联网连接。
image.png
NAT路由器会根据路由表进行源、目的IP的修改,将专用网中的源IP地址修改为自己的IP后,往互联网中发送最终到B,B以为A的地址就是路由器的地址,因此响应报文为路由器的地址,路由器最终将目的IP再修改为专用网内的主机A的IP然后转发即可。
image.png
对于端口号的转换也是如此,都需要在NAT路由器上进行一次转换
image.png


4.9 多协议标记交换MPLS

4.9.1 MPLS的工作原理

三个特点:面向连接的服务质量、支持流量工程平衡网络负载、支持VPN
MPLS利用面向连接技术,使得每个分组都携带一个标记的小数,当分组达到交换机后,交换机对利用该标记值检索分组转发表,最后进行硬件转发(在链路层完成),比查找路由表效率更高(网络层)。
MPLS域:该域内的所有路由器都支持MPLS技术
LSR(标记交换路径):路由选择和标记交换功能,需要用路由功能构建转发表。
LDP(标记分配协议):分配标记
image.png
MPLS的工作原理:
image.png
FEC:转发等价类,例如同类性质的IP数据包以同等方式对待
image.png

4.9.2 MPLS首部位置与格式

在IP数据报组成前,插入一个MPLS的首部,因此它位于二三层之间。
image.png
image.png
image.png