第四章 网络层
4.1网络层提供的两种服务
4.1.1面向连接的通信-虚电路
- 虚电路是逻辑电路。
- 电信网采用虚电路连接。
4.1.2无连接的通信-数据报服务
- 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务
- 传输网络不提供端到端的可靠传输服务
- 尽最大努力交付可使网络中的路由器做的相对简单
4.2网际协议IP
网际协议IP是TCP/IP体系中两个最主要的协议之一。
IP不保证可靠传输,由TCP来做。
与IP协议配置使用的还有:地址解析协议ARP、网际控制报文协议ICMP、网际组管理协议IGMP
4.2.1虚拟互联网络
- 虚拟互联网络/逻辑互连网络的意义:使用IP协议忽略互连起来的各种物理网络的异构性
- 使用IP协议的虚拟互联网络的可简称为IP网
- 互联网络与非互联网络的比较
互连网络——中继系统是路由器
非互连网络——中继系统为转发器或网桥 - 网络互连的中间设备
(1)转发器: 物理层使用的中间设备
(2)网桥或桥接器: 数据链路层使用的中间设备
(3)路由器: 网络层使用的中间设备
(4)网关: 在网络层以上使用的中间设备,当网关连接两个不兼容的系统,需要在高层进行协议的转换。 - 互连网络与虚拟互联网络
互连网络——许多计算机通过路由器(或称为网关)互连
虚拟互联网络——互连的计算机使用相同的IP协议 - 分组在互联网中的传送
互联网中源主机H1要把一个IP数据报发送给目的主机H2,根据分组交换的存储转发概念,主机H1先要查找自己的路由表,看目的主机是否就在本网络上。如是,则不需要经过路由器而是直接交付,任务就完成了。如不是,则必须把IP数据报发送给某个路由器(图中R1)。R1在查找了自己的路由表后,知道应把数据报转发给R2进行交接交付,这样一直转发下去,最后由路由器R5知道自己是和H2连接在一个网络上,不需要再使用别的路由器转发了,于是就把数据报直接交付到目的主机H2。
图中画出了源主机、目的主机以及各路由器的协议栈。我们注意到,主机的协议栈共有五层,但路由器的协议栈只有下三层。图中还画出了数据在各协议栈中流动的方向,另外在R4和R5之间使用了卫星链路,而R5所连接的是个无线局域网。在R1和R4之间的三个网络可以是任意类型的网络。总之,这里强调的是:互连网可以由多个异构网络组成。
- 只从网络层考虑问题,IP数据报可以想象成在网络层中发送
- IP地址是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围唯一的32位标识符(IPV4)
- IP地址的编码方式经历了分类IP地址、改进分类(子网划分)、无分类(构成超网)三个阶段
4.2.2分类的IP地址
- 主要分ABCDE五类。每类地址都由两个固定长度的字段组成,即网络号net-id和主机号host-id。网络号标示主机(或路由器连接到的网络);主机号标示该主机(或路由器)。
- A类地址:1.0.0.0-126.255.255.255
- B类地址:128.0.0.0-191.255.255.255
- C类地址:192.0.0.0-223.255.255.255
- D类地址是多播地址
- A类地址可指派的网络号有 2 7 − 2 = 126 2^7-2=126 27−2=126个。全0的意味本网络,网络号为127的(即01111111)作为本地软件环回测试;A类地址的主机号字段共24位,最大主机号 2 24 − 2 = 16777214 2^{24}-2=16777214 224−2=16777214。全0表示网络地址,全1表示广播地址
- IP地址的点分十进制表示
- 常用的三种类别ABC的地址
- 分类IP地址的特点
(1)分等级的地址结构。好处:
一、IP地址管理机构只需分配net-id,host-id由得到该网络号的单位分配
二、路由器仅根据目的主机的net-id转发分组,使路由表中的项目大幅减少,减少了路由表所占的存储空间
(2)IP地址标志一个主机(或路由器)和一条链路的接口
多归属主机:一个主机同时连接到两个不同的网络上,拥有两个IP地址,net-id必须不同
因此,由于路由器需要将IP数据报从一个网络转发到另一个网络,即一个路由器至少连接两个网络,故一个路由器至少有两个不同的IP地址
(3)用转发器或网桥连接起来的若干局域网仍属同一个网络,这些局域网具有相同的net-id - 路由器的每个接口都有一个不同网络号的IP地址
- 两个路由器直接相连的接口处,可指明也可不指明IP地址。若指明,这段连线则构成只包含一段线路的特殊“网络”。现在常不指明IP地址
4.2.3划分子网
- 两级IP地址的缺陷
(1)IP地址空间利用率低
(2)给每个物理网络分配一个网络号使得路由表变得太大,使网络性能变坏
(3)不够灵活 - 三级IP地址:在IP地址中增加了一个“子网号字段”//此做法称为划分子网
- 划分子网是从主机号借用若干位作为子网号subnet-id,纯属单位内部的事情,对外表现为没有划分子网的网络。 I P 地 址 : : = { < 网 络 号 > , < 子 网 号 > , < 主 机 号 > } IP地址 ::= \lbrace <网络号>,<子网号>,<主机号>\rbrace IP地址::={<网络号>,<子网号>,<主机号>}
- 划分子网的基本思路
(1)从其他网络发送给本单位某个主机的IP数据报,仍是先根据IP数据报的目的网络号net-id,找到连接在本单位网络上的路由器
(2)此路由器收到IP数据报后,再按net-id和subnet-id找到目的子网
(3)最后将IP数据报直接交付目的主机 - 由于从IP数据报的首部无法判断源主机或目的主机所连接的网络是否进行来子网划分,故使用子网掩码找出IP地址中的子网部分
- 子网掩码由连续的若干个1组成,1的个数即为网络位位数,32-(1的个数)=主机位的位数
(IP地址)and(子网掩码)=网络地址
(IP地址)and(子网掩码反码)=主机号 - 默认子网掩码
A类:255.0.0.0
B类:255.255.0.0
C类:255.255.255.0 - 路由器和相邻路由器交换路由表信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器
- 路由表中的每个项目,除了要给出目的网络地址外,必须同时给出该网络的子网掩码
- 一个路由器连接在两个网络上,则同时拥有两个网络地址和两个子网掩码
- IP地址:141.14.72.24,子网掩码:255.255.192.0或255.255.224.0。求网络地址(141.14.64.0)————不同的子网掩码得出相同的网络地址,但不同的子网掩码的效果是不同的
- 网段
划分子网遇到的问题:B类地址在1992年已分配了近一半,整个IPv4的地址空间即将耗尽
4.2.4无分类编址CIDR-网络前缀
-
变长子网掩码VLSM:在一个划分子网的网络中同时使用几个不同的子网掩码
-
无分类域间路由选择CIDR:在VLSM基础上又提出的无分类编址方法,消除了传统的ABC类地址及子网划分的概念
-
CIDR使用各种长度的**“网络前缀”**,来代替分类地址中的网络号和子网号。IP地址从三级编址(使用子网掩码)回到了两级编址
I P 地 址 : : = { < 网 络 前 缀 > , < 主 机 号 > } IP地址::=\lbrace<网络前缀>,<主机号>\rbrace IP地址::={<网络前缀>,<主机号>} -
CIDR把网络前缀都相同的连续的IP地址组成“CIDR地址块”
-
CIDR的“斜线记法”/“CIDR记法”。例:128.14.32.0/20,网络前缀位数=20;这个地址块的起始地址为128.14.32.0,最大地址为128.14.47.255。全0全1的主机号地址一般不用
-
一个CIDR地址块可表示很多地址,这种地址的聚合常称为路由聚合(也称为构成超网),使得路由表中的一个项目可表示很多个原来传统分类地址的路由
-
10.0.0.0/10可简写为10/10,即把低位连续0省略,隐含指出IP地址子网掩码为255.192.0.0
-
可网络前缀后加一个星号*,星号*之前表示网络前缀,*表示IP地址中的主机号,可以是任意值
-
前缀长度不超过23位的CIDR地址块都包含了多个C类地址,这些C类地址合起来构成超网
-
网络前缀越短,其地址块所包涵的地址数越多。而在三级结构的IP地址中,划分子网使网络前缀变长
这个 ISP 共有 64 个 C 类网络。如果不采用 CIDR 技术,则在与该 ISP 的路由器交换路由信息的每一个路由器的路由表中,就需要有 64 个项目。但采用地址聚合后,只需用路由聚合后的 1 个项目 206.0.64.0/18 就能找到该 ISP。
4.2.5IP地址与硬件地址
- 通信路径:H1➡️经R1转发➡️再经R2转发➡️H2
- 从协议栈的层次上看数据的流动
- 从虚拟的 IP 层上看 IP 数据报的流动
- 在链路上看MAC帧的流动
在 IP 层抽象的互联网上只能看到 IP 数据报
图中的 IP1→IP2 表示从源地址 IP1 到目的地址 IP2
两个路由器的 IP 地址并不出现在 IP 数据报的首部中
- 路由器只根据目的站的IP地址的网络号进行路由选择
- 在具体的物理网络的链路层只能看到MAC帧而看不到IP数据报
IP层抽象的互联网屏蔽了下层很复杂的细节
在抽象的网络层上讨论问题,就能够使用统一的、抽象的 IP 地址
研究主机和主机或主机和路由器之间的通信
4.2.6地址解析协议ARP
- 每个主机都设有一个ARP高速缓存,存放所在局域网上的各主机和路由器的IP地址到硬件地址的映射表
当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址
- ARP/RARP分组直接封装在链路帧中
- ARP缓存的作用
- 使用ARP的四种情况
- 主机—>本网主机:用ARP找到目的主机的硬件地址
- 主机—>外网主机:用ARP找到本网上的一个路由器的硬件地址,剩下工作由这个路由器完成
- 路由器—>本网主机:用ARP找到目的主机的硬件地址
- 路由器—>外网主机:用ARP找到本网上的另一个路由器的硬件地址,剩下工作由这个路由器完成
- ARP欺骗攻击
- 仿冒网关(最为常见)
- 欺骗网关
- 欺骗终端用户
- ARP泛洪攻击
- ARP攻击防御的三个控制点
- 网关防御
- 接入设备防御
- 客户端防御
4.2.7 IP数据报格式
- 一个 IP 数据报由首部和数据两部分组成。
- 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
- 在首部的固定部分的后面是一些可选字段,其长度是可变的
- IP 数据报首部的固定部分中的各字段
- 版本——占 4 位,指 IP 协议的版本目前的 IP 协议版本号为 4 (即 IPv4)
- 首部长度——占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节)因此 IP 的首部长度的最大值是 60 字节。
- 区分服务——占 8 位,用来获得更好的服务在旧标准中叫做服务类型,但实际上一直未被使用过。1998 年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段
- 总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU
- 标识(identification) 占 16 位,它是一个计数器,用来产生数据报的标识
- 标志(flag) 占 3 位,目前只有前两位有意义。标志字段的最低位是 MF (More Fragment)。MF =1 表示后面“还有分片”。MF = 0 表示最后一个分片。标志字段中间的一位是 DF (Don’t Fragment) 。只有当 DF= 0 时才允许分片
- 片偏移(13 位)指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。
- 生存时间(8 位)记为 TTL (Time To Live)。数据报在网络中可通过的路由器数的最大值
- 协议(8 位)字段指出此数据报携带的数据使用何种协议。以便目的主机的 IP 层将数据部分上交给哪个处理过程
- 首部检验和(16 位)字段只检验数据报的首部。不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。
- 源地址和目的地址都各占 4 字节
- IP 数据报首部的可变部分(实际很少使用)
- 是一个选项字段,用来支持排错、测量以及安全等措施。
- 长度可变,1-40字节,取决于所选择的项目
- 增加首部的可变部分是为了增加IP数据报的功能,但由于IP数据报的首部长度可变,增加了每个路由器处理数据报的开销
4.2.8 IP转发分组的流程
- 查找路由表(根据目的网络地址能找到下一跳地址)
- IP数据报最终一定可以找到目的主机所在网络的路由器(可能要经过多次间接交付)
- 只有到达最后一个路由器,才试图向目的主机直接交付
- 特定主机路由
- 为特定目的主机指明一个路由
- 可使网络管理员更方便的控制、测试网络,同时在考虑某种安全问题时采用特定主机路由
- 默认路由
- 采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间
- 这种方式在一个网络只有很少的对外连接时很有用
- 在主机发送IP数据报时更能显示它的好处
- 若一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,这种情况使用默认路由很合适
IP 数据报的首部中没有地方可以用来指明“下一跳路由器的 IP 地址”。
当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入 IP 数据报,而是送交下层的网络接口软件。
网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。
- 分组转发算法
(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
(2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。
(3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
(6) 报告转发分组出错。
4.2.9使用子网掩码的分组转发过程
- 在划分子网的情况下,从 IP 地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息
- 在划分子网的情况下路由器转发分组的算法
(1) 从收到的分组的首部提取目的 IP 地址 D。
(2) 先用各网络的子网掩码和 D 逐位相“与”,看是否和
相应的网络地址匹配。若匹配,则将分组直接交付。
否则就是间接交付,执行(3)。
(3) 若路由表中有目的地址为 D 的特定主机路由,则将
分组传送给指明的下一跳路由器;否则,执行(4)。
(4) 对路由表中的每一行的子网掩码和 D 逐位相“与”,
若其结果与该行的目的网络地址匹配,则将分组传送
给该行指明的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行(6)。
(6) 报告转发分组出错。
4.2.10最长前缀匹配
- 使用CIDR时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成,在查找路由时可能会得到多个匹配结果,选择具有最长网络前缀的路由。
- 网络前缀越长,其地址块就越小,因而路由越具体。
- 最长前缀匹配又称最长匹配或最佳匹配
4.2.11 使用二叉线索查找路由
- 二叉线索:将无分类编制的路由表放在一种层次性的数据结构中,自上而下的按层次进行查找。
- IP 地址中从左到右的比特值决定了从根结点逐层向下层延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址
- 用 5 个前缀构成的二叉线索
4.3网际控制报文协议ICMP
- ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告,可提高IP数据报交付成功的机会。
- ICMP不是高层协议,是IP层的协议
- ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去
- ICMP报文的格式:前四个字节是统一格式,共有三个字段:类型、代码和检验和
4.3.1 ICMP报文种类
- 种类:ICMP差错报告报文+ICMP询问报文
- 5种ICMP差错报告文
(1)终点不可达
(2)源点抑制
(3)时间超过
(4)参数问题
(5)改变路由(重定向) - ICMP差错报告文的数据字段内容
- 不应发送ICMP差错报告文的情况
(1)对ICMP差错报告文不再发送
(2)对第一个分片的数据报片的所有后续数据报片都不发送
(3)对具有多播地址的数据报不再发送
(4)对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送 - ICMP询问报文分类
(1)回送请求和回答报文
(2)时间戳请求和回答报文
4.3.2ICMP应用举例
- ping:测试两主机间的连通性
- ping使用了ICMP回送请求与回送回答报文
- ping:是应用层直接使用网络层ICMP的例子,没有通过TCP或UDP
4.4因特网路由选择协议
4.4.1路由选择协议的相关概念
- 理想路由选择算法
算法必须是正确的和完整的。
算法在计算上应简单。
算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。
算法应具有稳定性。
算法应是公平的。
算法应是最佳的
- 不存在一种绝对的最佳路由算法
- 路由选择的环境不断变化,路由选择是网络中所有节点共同协调工作的结果
- 从路由算法的自适应行考虑
静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大 - 因特网采用分层次的路由选择协议
- 自治系统AS(autonomous system)
自治系统 AS 的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。
现在对自治系统 AS 的定义是强调下面的事实:尽管一个 AS 使用了多种内部路由选择协议和度量,但重要的是一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略
- 因特网的两大类路由选择协议
(1)内部网关协议IGP(internal gateway protocol):在AS内部使用。(目前这类使用的最多,如RIP、OSPF协议)
(2)外部网关协议EGP(external gateway protocol):AS之间,如BGP-4 - 自治系统之间的路由选择也叫做域间路由选择(interdomain routing),在自治系统内部的路由选择叫做域内路由选择(intradomain routing)
4.4.2内部网关协议RIP
- 工作原理
RIP工作在应用层,是一种分布式的基于距离向量的路由选择协议。
距离向量指经过的路由器个数hop(跳数) - 距离/跳数定义:从一个路由器到直接连接的网络的距离定义为1。每经过一个路由器,hop+1
- RIP认为经过的路由器的数目少的路由是好的路由,并且不能在两个网络间同时使用多条路由,只选择具有最少路由器的路由
- RIP只适用于小型互联网,允许一条路径最多只能包含15个路由器,≥16时视为不可达。
- RIP协议三个要点
(1)仅和相邻路由交换信息
(2)交换的信息是当前本路由器所知道的全部信息,即自己的路由表
(3)定时交换 - 路由表的建立
- RIP 协议的收敛(convergence)过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程
- 距离向量算法
收到相邻路由器(其地址为 X)的一个 RIP 报文:
(1) 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。
(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中,则把该项目加到路由表中。
否则
若下一跳字段给出的路由器地址是同样的,则把收到的项 目 替换原路由表中的项目。
否则
若收到项目中的距离小于路由表中的距离,则进行更新,
否则,什么也不做。
(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(距离为16表示不可达)。
(4) 返回。
- RIP协议不能知道整个拓扑结构
- 路由器之间交换信息
RIP协议让互联网中的所有路由器都和自己的相邻路由器不断交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(即跳数最少)。
虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但由于每一个路由器的位置不同,它们的路由表当然也应当是不同的
- RIP2报文由首部和路由部分组成。RIP2报文中的路由部分由若干个路由信息组成,每个路由信息需要20字节
- RIP协议优缺点
优点:实现简单,开销小,定时/值交换
缺点:
(1)当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器;(好消息传播得快,而坏消息传播得慢)
(2)限制了网络规模,能使用的最大距离=15;
(3)交换的信息是路由器中的完整路由表,因而随着网络规模扩大,开销也增加
4.4.3 内部网关协议OSPF
- OSPF是分布式的链路状态。“开放”表示OSPF不受某一家厂商调控,而是公开发表的。“最短路径优先”是使用了Dijkstra提出的最短路径算法SPF。但OSPF不代表其他的路由选择协议不是最短路径优先
- 三个要点:
- 向本AS中所有路由器发送消息(洪泛法)
- 发送的消息是与本路由器相邻的所有路由器的链路状态
- 只有当链路状态发生变化时,才采用洪泛法
“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)
- 链路状态数据库:全网的拓扑结构图,在全网范围内一致
- OSPF的链路状态数据库更新过程收敛的快
- OSPF将一个AS再划分为若干个更小的区域,能够用于规模更大的网络。每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。主干区域为0.0.0.0
- OSPF划分为两种不同的区域
- 划分区域可以减少整个网络上的通信量
- OSPF直接使用IP数据报传送,不用UDP
- OSPF其他特点
(1)OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。
(2)多路径间的负载平衡:如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。
(3)所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。
(4)支持可变长度的子网划分和无分类编址 CIDR。
(5)每一个链路状态都带上一个 32 位的序号,序号越大状态就越新
(6)定时刷新
(7)没有“坏消息传播慢问题”,其相应网络变化的时间小于100ms
- OSPF五种分组类型
类型1,问候(Hello)分组。
类型2,数据库描述(Database Description)分组。
类型3,链路状态请求(Link State Request)分组。
类型4,链路状态更新(Link State Update)分组,用洪泛法对全网更新链路状态。
类型5,链路状态确认(Link State Acknowledgment)分组
- OSPF基本操作
- OSPF 使用的是可靠的洪泛法
4.4.4外部网关协议BGP
- BGP:不同自治系统的路由器间交换路由信息的协议
- 边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
- 每一个自治系统的管理员要选择至少一个路由器作为该自治系统的**“ BGP 发言人”**
- BGP交换路由信息
一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立== TCP 连接==,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。
使用 TCP 连接能提供可靠的服务,也简化了路由选择协议
4.4.5路由器在网际互联中的作用
- 路由器是一种专用计算机,任务是转发分组。
- 典型的路由器的结构
- 理解:输入端口对线路上收到的分组的处理 +输出端口将交换结构传送来的分组发送到线路
- 分组丢弃:路由器的分组速率赶不上分组进入队列的速率。路由器中的输入或输出队列溢出是造成分组丢失的重要原因
4.5 IP多播
4.5.1 IP多播基本概念
1. 多播可明显地减少网络中资源的消耗
2. IP多播的特点
(1) 多播使用组地址—— IP 使用 D 类地址支持多播。多播地址只能用于目的地址,而不能用于源地址。
(2) 永久组地址——由因特网号码指派管理局 IANA 负责指派。
(3) 动态的组成员
(4) 使用硬件进行多播
4.5.2 在局域网上进行硬件多播
- D 类 IP 地址可供分配的有 28 位,在这 28 位中的前 5 位不能用来构成以太网硬件地址
4.5.3 网际组管理协议 IGMP和多播路由选择协议
- IP多播的两种协议:网际组管理协议 IGMP和多播路由选择协议
- 网际组管理协议 IGMP:使多播路由器知道多播组成员的信息
- IGMP 的本地使用范围
IGMP 并非在因特网范围内对所有多播组成员进行管理的协议。
IGMP 不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上。
IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组 - 多播路由选择协议
(1)比单播路由复杂,单播路由通常在网络拓扑结构发生变化时才需更新路由
(2)多播路由必须动态适应多播组成员的变化(此时网络拓扑并未发生变化)——动态的
(3)播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去。——传递的
(4)多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络——写出目的的多播地址 - IGMP 使用 IP 数据报传递其报文(即 IGMP 报文加上 IP 首部构成 IP 数据报),但它也向 IP 提供服务。属于整个网际协议 IP 的一个组成部分
- IGMP 可分为两个阶段
第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器。
第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。
只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。
但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。
- 在主机和多播路由器之间的所有通信都是使用 IP 多播。
多播路由器在探询组成员关系时,只需要对所有的组发送一个请求信息的询问报文,而不需要对每一个组发送一个询问报文。默认的询问速率是每 125 秒发送一次。
当同一个网络上连接有几个多播路由器时,它们能够迅速和有效地选择其中的一个来探询主机的成员关系。 - 隧道技术
- 基于核心的发现技术
这种方法对于多播组的大小在较大范围内变化时都适合。
这种方法是对每一个多播组 G 指定一个核心(core)路由器,给出它的 IP 单播地址。
核心路由器按照前面讲过的方法创建出对应于多播组 G 的转发树
4.6 虚拟专用网 VPN 和网络地址转换 NAT
4.6.1 虚拟专用网 VPN
- VPN把不可靠的网络变成可靠的网络
- 本地地址——仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。
全球地址——全球唯一的IP地址,必须向因特网的管理机构申请。
- 远程接入VPN是建立了VPN隧道
4.6.2网络地址转换NAT
需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IPG。
所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接。
内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。
NAT 路由器将数据报的源地址 IPX 转换成全球地址 IPG,但目的地址 IPY 保持不变,然后发送到因特网。
NAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG。
根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPX,转发给最终的内部主机 X。
ipx—〉NAT路由器—〉Y