导图社区 CN-4 网络层
计算机网络第四章 ,内容包含网络层的功能、网络层两个层面和S D N、网络层设备,希望这份脑图会对你有所帮助。
编辑于2023-04-03 17:47:00网络层的功能和概述
网络层的功能
网络层的功能概述
主要任务
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
网络层传输单位是数据报(IP数据报/分组)
服务类型
向上只提供简单灵活的、无连接的、尽最大努力交付(不可靠交付)的数据报服务
可靠传输由传输层负责
优点
即,所传送的分组可能出错、丢失、重复、失序或超时,这就使得网络中的路由器比较简单,而且价格低廉
网络的造价大大降低,运行方式灵活,能够适应多种应用
功能1:异构网络互联
网络互联的概念
指将两个以上相同或不同的计算机网络,通过一定的方法,用一些中继系统相互连接起来,以构成更大的网络系统
网络的异构性
传输介质、数据编码方式、链路控制协议、数据单元格式、转发机制不同
在链路层和物理层协议中定义
不同层次中继系统
物理层:
转发器,集线器
链路层:
网桥或交换机
网络层:
路由器
网络层以上:
网关
网络层中的网络互连
从网络层角度看,物理层和数据链路层连接只是将一个网络扩大了,仍属于一个网络
网络互联通常是指用路由器进行网络互联和路由选择
TCP/IP的网络互连
网络层采用标准化协议,但相互连接的网络可以是异构的
参加互联的计算机网络都使用相同的IP协议,因此可以把互联后的网络视为一个虚拟IP网络(逻辑互联网络)(IP网络)
IP网络的好处是
当互联网上的主机进行通信时,就好像在单个网络上通信一样,看不见各网络的具体异构细节(如具体的编址方案、路由选择协议等)
功能2:路由选择和分组转发
路由选择
表述
根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由
确定一条最佳路径
控制数据报沿着从源主机到目的主机的端到端路径中路由器之间的路由方式
具体
根据特定的路由选择协议构造出路由表
经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表
时间长,通常软件解决。
分组转发
表述
指路由器根据转发表将用户的IP数据报从合适的端口转发出去。
达到路由器输入链路之一的数据报如何转发到该路由器的输出链路之一
具体
处理通过路由器的数据流(查询,转发还是等待)
关键操作是转发表查询、转发及相关的队列管理和任务调度等
时间短,通常硬件解决。
路由表和转发表
路由表是根据路由选择算法得出的,而转发表是从路由表得出的
转发表的结构应当使查找过程最优化,路由表则需要对网络拓扑变化的计算最优化
在讨论路由选择的原理时,一般不去区分转发表和路由表,而是笼统地使用路由表一词
功能3:拥塞控制
拥塞概念
通信子网中,因出现过量的分组而引起网络性能下降的现象
(所有结点都来不及接收分组,要丢弃大量分组)
当分组到达路由器的速率接近于链路带宽时,由于端口的缓冲区有限,平均时延会急剧增加,并有大量分组丢弃,整个网络的吞吐量骤降,网络几乎送不了数据
判断拥塞的方法
看网络吞吐量和网络负载的增量之间的关系
网络负载增大,吞吐量明显小于正常吞吐量时
轻度拥塞
网络负载增大,吞吐量随之下降
拥塞,继续增大,吞吐量下降到0——死锁
拥塞控制
拥塞控制的作用是确保子网能够承载所达到的流量,是一个全局性的过程,涉及各方面的行为:主机、路由器及路由器内部的转发处理过程等。单一地增加资源并不能解决拥塞
开环控制
静态的
在设计网络之初就将会导致拥塞的情况考虑到,一旦系统启动,中途不再修改
例如确定何时可以接收新流量,何时丢弃分组,丢哪些分组,何种调度策略等
做决定时不考虑当前网络的状态
闭环控制
动态的
实现不考虑,采用监测网络系统监视,检测到拥塞后,动态调整
基于反馈环路
和流量控制对比
拥塞控制是全局性的
拥塞控制必须确保通信子网能够传送待传送的数据,是一个全局性的问题
涉及网络中所有的主机、路由器及导致网络传输能力下降的所有因素
流量控制是点对点的
流量控制往往是指在发送端和接收端之间的点对点通信量的控制
流量控制要做的是抑制发送端发送数据的速率,以便使接收端来得及接收
网络层两个层面和S D N
网络层的两个平面
数据平面(转发平面)
数据平面用于数据处理过程中各种具体处理转发过程
主要功能是根据转发表进行转发,这是路由器的本地动作
控制平面
控制平面用于路由选择,即控制和管理网络协议的运行,比如OSPF协议、RIP协议,BGP协议
控制平面中的路由选择处理器
传统方法
路由选择处理器执行控制平面功能,执行路由选择协议,维护路由选择表于关联链路状态信息,并为该路由器计算转发表
每一台路由器中的路由选择算法要与其他路由器中的路由选择算法通信,再计算出路由表和转发表
即,路由选择算法运行在每台路由器中,每台路由器中都包含转发和路由选择两种功能
SDN方法
在SDN路由器中,路由选择处理器负责于远程控制器通信,
目的是接收远程控制器计算的转发表项
核心:转发和控制分离
软件定义网络SDN
SDN
Software-Defined Networking:软件定义网络
采用集中式的控制层面和分布式数据层面
控制平面从路由器物理上分离。路由器仅实现转发具体方法
远程控制器负责计算和分发转发表以供每台路由器所使用
远程控制器可能在具有高可靠性的远程数据中心中,并可能由ISP或某些第三方管理
具体方法
控制层面利用控制-数据接口对数据层面上的路由器进行集中式控制,方便软件来控制网络
路由器通过交换包含转发表和其他路由选择信息的报文与远程控制器通信,
因为计算转发并与路由器交互的控制器是用软件实现的,所以网络是“软件定义的"
SDN的层次结构
图示
上层:网络控制应用程序
根据SDN控制器提供的方法,这些应用程序通过这些方法能够监视、编程和控制下面的网络设备
中层:SDN控制器
维护准确的网络状态信息(远程链路、路由器和主机的状态),为运行在控制平面中的网络控制应用程序提供这些信息(逻辑上集中,可在多台服务器上实现)
分为三层
对于网络控制应用程序的接口:SDN控制器通过"北向接口"与网络控制应用程序交互
北向接口(SDN提供的编程接口,该API允许网络控制应用程序在状态管理层之间读写网络状态)
网络范围状态管理层:由SDN控制平面作出的最终控制决定,要求控制器具有有关网络的主机、链路等最新状态信息
东西向接口(SDN控制器集群内部控制器之间的通信接口)用于增强整个控制层面的可靠性和可拓展性。
通信层:SDN控制器与受控网络设备之间的通信(如OpenFlowt协议)
南向接口(SDN控制器和转发设备之间的双向会话的接口)
底层:受控的网络设备
路由器等转发设备
SDN的特点
优点
全局集中式控制和分布式高速转发,既利于控制层面的全局优化,又利于高性能的网络转发
灵活可编程与性能的平衡,控制和转发功能分离后,使得网络可以由专有的自动化工具以编程方式配置
降低成本,控制和数据层面分离后,尤其是在使用开放的接口协议后,就实现了网络设备的制造与功能软件的开发相分离,从而有效降低了成本。
问题
安全风险,集中管理容易受攻击,如果崩溃,整个网络会受到影响。
瓶颈问题,原本分布式的控制层面集中化后,随着网络规模扩大,控制器可能成为网络性能的瓶颈。
网络层设备
路由器的组成功能
路由器的功能
路由器是一种具有多个输入端口和多个输出端口的专用计算机
任务
连接异构网络
连接多个逻辑网络(广播域)时必须使用路由器,隔离广播域
跨网络通信需要用到路由表,同一个网络内直接交付
完成路由转发
路由器的结构
总体结构
路由选择部分
又称为控制部分,核心构件是路由选择处理机
任务
根据所选定的路由协议构造出路由表
经常/定期和相邻路由器交换路由信息,不断更新和维护路由表
分组转发部分
三部分组成
一组输入端口
一组输出端口
交换结构:是路由器的核心部件,根据转发表对分组处理,将其从一个端口转发出去
三种交换方式
通过存储器交换
通过总线交换
通过互联网络交换
(交换结构本身就是一个网络)
输入端口
物理层处理
从物理层接收到的比特流中提取出数据链路层帧
链路层处理
按链路层协议处理,去头去尾提取网络层数据报交给网络层处理
网络层处理
按收到分组类型处理
若收到RIP/OSPF等分组,则将分组送往路由选择处理机
若收到数据分组,则查找转发表并输出转发
数据分组要先在此排队等待交换结构处理完
会产生时延
输入端口中的查找和转发功能在路由器的交换功能中是最重要的
输出端口
从交换结构过来的分组,先进入缓冲区
产生时延
后续执行和输入相反的步骤
路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因
区别和联系
如果一个存储转发设备实现了某个层次的功能,那么它就可以互联两个在该层次上使用不同协议的网段(网络)
路由器实现了模型的下三层
可以互联两个不同网络层协议的网段
网桥实现了物理层和链路层
可以互联两个物理层和数据链路层不同的网段
中继器实现了物理层后,却不能互联两个物理层不同的网段,这是因为中继器不是存储转发设备,它属于直通式设备。
路由表与路由转发
路由表
路由表根据路由选择算法得出的,主要用途是路由选择,总用软件来实现。
表项内容
目的网络IP地址
子网掩码
下一跳IP地址
接口
转发表
转发表由路由表得来,可以用软件实现,也可以用特殊的硬件来实现。
表项内容
一个分组将要发往的目的地址
分组的下一跳(输出端口和某些MAC地址信息)
和路由表区别
表项和路由表项有直接对应关系
简化,且格式不同,其结构要使查找过程最优化
路由表则需要对网络拓扑变化的计算最优化
为了减少重复项目,可以将一个默认路由替代具有所有相同下一跳的项目,并将其设置为比其他项目的优先级低
注意
转发和路由选择
“转发”
是路由器根据转发表把收到的IP数据报从合适的端口转发出去,
它仅涉及一个路由器
“路由选择”
涉及很多路由器,路由表是许多路由器协同工作的结果。
这些路由器按照路由算法构造出整个路由表。
路由表和转发表
在讨论路由选择的原理时,往往不去区分转发表和路由表的区别
路由表不等于转发表
分组的实际转发是靠直接查找转发表,而不是直接查找路由表
IPv4 分组与编址
I P v 4 的分组
IP协议的概述
IP,网际互连协议
Internet Protocol
IP是整个TCP/IP协议族的核心,也是构成互联网的基础。位于网络层
提供服务
强调适应性、简洁性和可操作性,并在可靠性做了一定的牺牲
不保证分组的交付时限和可靠性
内容
定义数据传送的基本单元——IP分组及其确切的数据格式
分组封装格式
IP编址方案
分组转发规则
IPv4分组格式
分组格式
首部+数据部分(传输层的报文段)
分组首部
协议字段
首部长度、总长度、片偏移,基本单位为4B、1B、8B(需要记住)
熟悉IP数据报首部的各个字段的意义和功能,但不需要记忆IP数据报的首部
IP数据报分片
最大传送单元MTU
MTU:数据链路层数据包所能承载的最大数据量,MTU会限制IP数据报的长度
就要将IP数据报分片
不同链路有不同的链路层协议,有不同的MTU
以太网:1500B
很多广域网是不超过576B
分片的过程
片在目的地的网络层被重新组装。目的主机使用IP首部中的标识、标志和片偏移字段来完成对片的重组
标识(第几个IP分组)
每创建一个IP数据报时,源主机会为该数据报加上一个标识号
当一个路由器需要将一个数据报分片时,形成的每个数据报(即片)都具有原始数据报的标识号
目的主机收到来自同一发送主机的一批数据报时,可通过检查标识号来确定哪些分片属于同一个原始分组
标志(标志有无分片)
标志位有3比特,但只有后2比特有意义
DF位(Don't Fragment)
DF=0时,该IP数据报才可以被分片
DF=1,不许分片
MF位(More Fragment)
MF则用来告知目的主机该IP数据报后是否还有其他分片
当MF=1时,表示相应的原始数据报还有后续的片
当MF=0时,表示该数据报是相应原始数据报的最后一个片
片偏移
单位是8B
目的主机在对片进行重组时,使用片偏移字段来确定片应放在原始IP数据报的哪个位置,可表示2^13个位置
故分片后,除了最后一个分片,每个分片的长度一定是8B的整数倍
分片举例(计算)
一般按MTU进行分片,例如:以太网1500B,除去首部20B,数据部分1480B
I Pv 4地址和N A T
IPv4地址
IP地址
IP地址
连接到因特网上的每台主机(或路由器)的接口都分配一个32bit(4B)的全球唯一标识符
IP地址由互联网名字和数字地址分配机构ICANN进行分配。
IP编址的阶段
分类的IP地址
子网的划分
构成超网(无分类编址方法)
IP地址的组成
网络号+主机号
IP地址::={<网络号>,<主机号>}
网络号
标志主机/路由器的端口连接到的网络,一个网络号是唯一的
网络号由IP管理结构分配
主机号
标志主机/路由器的端口
一个主机号在同一个网络中是唯一的
主机号由该网络的单位分配
IP地址分类
IP地址分类(早期)
A:126
B:128~191.1~255
C:192~223
ABC的使用范围
A类:2^7-2:-2——①网络号字段全0是保留字段,意思是本网络;②网络号为127的是环回自检地址
主机数:-2:去掉网络号全0本网络,和主机号全1,广播地址
特殊IP地址 不能作为主机地址
直接广播地址
直接广播是知道目标主机的网络地址,那该网络地址网段下的所有主机都能收到广播,直接广播更精确,范围更小些
本地广播地址(受限广播地址)
本地广播在不知道目标主机的网络地址下,如果目标主机是在本地网络,可以发送本地广播,本地网络下的所有主机都能接收广播。
实际使用时,由于路由器对广播域的隔离,255.255.255.255等效为本网络的广播地址
环回自检地址
表示任意主机自身,目的地址是环回地址
该分组不会出现在网络上
如何作为地址(不考虑环回)
发送端主机号——>网络号——>接收端主机号
能作为目的地址的:主机号全1
表示广播到每一个主机
能作为源地址的:网络号全0
表示本网范围,向本网内发送
两级IP地址的缺点
IP地址空间利用率有时很低,每个物理网络都分配一个网络号,会使得路由表很大,降低网络性能
两级IP地址不够灵活
IP地址特点
IP地址由网络号和主机号组成,路由器只根据网络号转发,不考虑主机号,节省路由的存储空间
IP地址标志一台主机或路由器和一条链路的接口
主机连几个网络就有几个IP地址
用转发器或网桥等连接的若干LAN仍然是一个网络(广播域),同一个LAN中的网络号是一样的
在IP地址中,所有分配到网络号的网络(无论是LAN还是WAN)都是平等的
在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。路由器总是具有两个或两个以上的IP地址,路由器的每个端口都有一个不同网络号的IP地址。
私有IP地址
私有IP地址 (可重用地址)
为网络安全,部分IP地址划分为私有IP,只作用于LAN,不和WAN相连
(要通过网关利用NAT把私有IP转换成合法的全球IP地址之后才能连接因特网),私有IP可以复用
在因特网中的所有路由器,对目的地址是私有地址的数据报一律不进行转发
这种采用私有IP地址的互联网络称为专用互联网或本地互联网。
私有IP地址网段
A类
1个A类网段,即10.0.0.0~10.255.255.255
B类
16个B类网段,即172.16.0.0~172.31.255.255
C类
256个C类网段,即192.168.0.0~192.168.255.255
网络地址转换NAT
NAT概念和特点
概念
网络地址转换NAT是指将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址
特点
使得整个专用网只需要一个全球IP地址就可以和因特网连接
专用网内的本地IP地址是可以重复使用的,节省了IP地址的消耗
隐藏了内部网络结构,降低了内部网络受到攻击的风险
NAT的工作原理
NAT路由器
使用NAT需要在专用网连接到因特网的路由器上安装NAT软件
NAT路由器至少有一个有效的外部全球IP地址
NAT转换表
存放着(本地IP地址:端口)到(全球IP地址:端口)的映射
可让多个私有IP地址映射到一个全球IP地址
NAT路由器的工作过程
工作过程
NAT路由器特点
不同于普通路由器,NAT路由器在转发IP数据报时,一定要更换其IP地址(转换源IP地址或目的IP地址)
普通路由器仅工作在网络层,而NAT路由器转发数据报时需要查看和转换传输层的端口号
子网划分和掩码
子网划分
子网划分
IP地址中增加一个子网号字段,三级IP地址——现行标准
在二级IP的基础上,从主机号中拿若干比特作为子网号,主机号能表示的数目减少,网络号不变
主机号至少要留2位,其余的都可以作为子网号
三级IP地址的结构
IP地址={<网络号>,<子网号>,<主机号>}
子网划分后的过程
子网划分为一个单位内部的事情,单位对外仍然表现为没有划分子网的网络
凡是从其他网络发送给本单位某台主机的IP数据报,仍然是根据IP数据报的目的网络号,先找到连接到本单位网络上的路由器
然后该路由器在收到IP数据报后,按目的网络号和子网号找到目的子网。最后把IP数据报直接交付给目的主机
注意点
但从一个IP地址本身或IP数据报的首部,无法判断连接的网络是否进行了子网划分——>子网掩码
RFC950规定,对分类的IPv4地址进行子网划分时,子网号不能为全1或全0.但随着CIDR的广泛使用,现在全1和全0的子网号也可使用,但一定要谨慎使用,要弄清你的路由器所用的路由选择软件是否支持全0或全1的子网号.
不论是分类的IPv4地址还是CIDR,其子网中的主机号为全0或全1的地址都不能被指派.子网中主机号全0的地址为子网的网络号,主机号全1的地址为子网的广播地址。
子网掩码
子网掩码
现行标准中使用子网掩码表示对原网络中主机号的借位
子网掩码是一个和IP地址对应的32bit的二进制串
前1后0
掩码为1,说明对应的IP地址中这一位是网络号及子网号
掩码为0,说明是主机号
所有网络都要使用子网掩码,若一个网络未划分子网,则采用默认子网掩码(分类IP)
A类——255.0.0.0
B类——255.255.0.0
C类——255.255.255.0.
与运算即可判断子网的网络地址
使用子网掩码
一台主机在设置IP地址信息的同时,必须设置子网掩码(无论是否划分子网)
同属于一个子网的所有主机及路由器的相应端口,必须设置相同的子网掩码
路由器的路由表中,所包含信息的主要内容有目的网络地址、子网掩码、下一跳地址。交换路由信息时,子网掩码也发送
无分类编址
基本概念CIDR
CIDR
无分类域间路由选择CIDR
是在变长子网掩码的基础上提出的一种消除分类IP网络划分,并且可以在软件支持下实现超网构造的IP划分办法
核心思想
消除传统的ABC类地址及划分子网的概念,融合子网地址和子网掩码,更加方便子网划分
CIDR用“网络前缀”的概念替代子网的概念
将三级IP又转化为”二级IP“
区别于传统分类IP,前缀长度是不固定的,任意选取的
优点
网络前缀长度的灵活性
上层网络的前缀长度较短,因此相应的路由表的项目较少
内部又可采用延长网络前缀的方法来灵活地划分子网
编址原理
地址块
CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”
例如 128.14.35.7/20 就属于“/20地址块”中的一个地址
CIDR的记法
IP::={<网络前缀>,<主机号>}
斜线记法:IP地址/网络前缀所占的比特数(可以任意长度)
举例
128.14.35.7/20
二进制IP:
10000000 00001110 00100011 00000111
地址掩码:
11111111 11111111 11110000 00000000
逐位与:
10000000 00001110 00100000 00000000
即对应的网络前缀
“/20地址块”能表示的
最大地址
10000000 00001110 00101111 11111111
128.14.47.255
全1代表广播地址
最小地址
10000000 00001110 00100000 00000000
128.14.32.0
全0代表网络号
能表示的主机数为2^12-2
说明
CIDR不使用子网,但使用掩码一词,“不使用子网”的意思是没有在32位地址中指明若干位是子网字段
只是分配了一个地址块,后续可以增加网络前缀,表示这个地址块下的若干子网
构成超网
构成超网
将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。
路由聚合能使路由表中的一个项目可以表示多个原来传统分类地址的路由,
有利于减少路由器之间的信息的交换,从而提高网络性能
方法
将网络前缀缩短(所有网络地址取交集)
例如,路由器R1要送网络1和2的下一跳均是R2——送到路由器R2连接的两个网络的前16位是相同的,可以构成一个更大的地址块206.1.0.0/16。
就能将R1的路由表中两个端口合二为一:到网络1和网络2的两条路由就可以聚合成一条到206.1.0.0/16的路由
联系
划分子网是网络地址数由少到多
减小广播域
构成超网是网络地址数由多到少
最长前缀匹配
使用CIDR时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成
在查找路由表(跟网络掩码按位相与)时可能会得到不止一个匹配结果。此时,应当从匹配结果中选择具有最长网络前缀的路由发送,因为网络前缀越长,其地址块就越小,因而路由就越具体。
为更有效地查找最长前缀匹配,通常将CIDR的路由表,存放在一种层次式数据结构中,然后自上而下地按层次进行查找——二叉线索
转发分组的过程
转发表内包含的信息
转发表中,每条路由必须包含两条信息(目的网络,下一跳地址),同时还有目的IP地址的网络前缀
两种特殊路由
主机路由
对特定目的主机的IP地址专门指明的一个路由,以方便网络管理员控制和测试网络
若特定主机的IP地址是a.b.c.d,则转发表中对应项的目的网络是a.b.c.d/32
32表示的子网掩码没有意义,但这个特殊的前缀可以用在转发表中
默认路由
用特殊前缀0.0.0.0/0表示默认路由,全0掩码
只要目的网络是其他网络(不在转发表中),就一律选择默认路由
路由器中分组的转发过程
提取IP分组中首部的目的地址D
查找特定主机路由(看是否为D),就按这条路由的下一跳转发分组
检测路由表中有无路径:每一行的掩码和D相与,找到最长匹配前缀,或直接交付(就在本网络上的目的主机),或从指定接口发送到下一跳
路由表中没有和D匹配的,将分组转发给默认路由,到达另一个路由器
没有默认路由/或超过转发次数,就丢弃分组,报告转发分组出错
注意
转发表(路由表)指明的不是网络的完整路径,而是下一跳地址,要一步步查找
得到下一跳的IP地址后,通过ARP转化为MAC地址,放到MAC帧首部再去找
在不同网络中传送时,MAC帧中的源地址和目的地址要发生变化,但是网桥在转发帧时,不改变帧的源地址,请注意区分
IPv4 协议
地址解析协议 A R P
IP和MAC
IP和MAC
IP地址
IP地址是网络层使用的地址,它是分层次等级的
IP地址放在IP数据报的首部
MAC地址
硬件地址是数据链路层使用的地址(MAC地址),是平面式的。
而MAC地址放在MAC帧的首部
转发过程
源主机通过数据封装,把IP数据报分组封装为MAC帧后再发送
在网络层只使用IP地址来完成寻址
寻址时,每个路由器依据其路由表(依靠路由协议生成)选择到目标网络(即主机号全为0的网络地址)需要转发到的下一跳(路由器的物理端口号或下一网络地址)
IP分组通过多次路由转发到达目标网络后
改为在目标LAN中通过数据链路层的MAC地址以广播方式寻址
说明
在IP层抽象的互联网上只能看到IP数据报
即,由于路由器的隔离,IP网络中是无法通过广播MAC地址来完成跨网络的寻址,只能使用IP地址来完成寻址
虽然在IP数据报首部中有源IP地址,但路由器只根据目的IP地址进行转发
局域网的链路层,只能看见MAC帧。IP数据报被封装在MAC帧中
通过路由器转发IP分组时,IP分组在每个网络中都被路由器解封装和重新封装
其MAC帧首部中的源地址和目的地址会不断改变
所以,无法使用MAC帧来跨网络通信
路由器是拥有多个IP地址和多个硬件地址的
ARP的概述
地址解析协议ARP
(Address Resolution Protocol,ARP)
最终在实际的链路上传输数据,用的必须是MAC硬件地址
ARP协议实现IP地址到MAC地址的映射
ARP能看到IP地址
工作在网络层
注:NAT路由器能看到端口,工作在传输层
ARP解决的是下一条走哪里的问题,只能决定一条网段怎么送,经过几个路由器就要使用几次ARP协议
实现:ARP表
每台主机都设有一个ARP高速缓存,用来存放本局域网上各主机和路由器的IP地址到MAC地址的映射表,称ARP表。
使用ARP协议来动态维护此ARP表
说明
ARP仅用于解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题
若不在同一个LAN上,需要通过ARP找到本LAN上的某个路由的硬件地址,交给它处理
ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址
原理和情况
工作原理
主机A欲向本局域网上的某台主机B发送IP数据报时,
先在其ARP高速缓存中查看有无主机B的IP地址
如果有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后发送
如果没有,那么就通过使用目的MAC地址为FF-FF-FF-FF-FF-FF的帧来封装并广播ARP请求分组(广播发送),使同一个局域网里的所有主机都收到此ARP请求
主机B收到该ARP请求后,向主机A发出ARP响应分组(单播发送),分组中包含主机B的IP与MAC地址的映射关系,主机A收到ARP响应分组后就将此映射写入ARP缓存,然后按查询到的硬件地址发送MAC帧。
约10-20min更新一次
四种情况
主机A发给本网络上的主机B
用ARP找到主机B的硬件地址
主机A发给另一网络上的主机B
用ARP找到本网络上一个路由器(网关)的硬件地址;
剩下的由该路由器完成
路由器发给本网络的主机A
用ARP找到主机A的硬件地址
路由器发给另一网络的主机B
用ARP找到本网络上的一个路由器的硬件地址
动态主机配置协议 D HC P
DHCP概述
目的
静态配置和动态配置
静态配置
例如网吧,管理员提前配置好IP地址、子网掩码、默认网关
动态配置
主机是动态的,需要向DHCP服务器请求一个IP地址临时使用
DHCP常用于给主机动态地分配IP地址
提供了即插即用的联网机制,允许一台计算机加入新的网络、自动获取IP地址而不用手工加入
概念
动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)
DHCP是应用层协议,它是基于UDP的
能够动态获取IP地址、子网掩码、默认网关,DNS服务器名称和IP地址
允许地址重用,支持移动用户加入网络,支持在用地址续租
注意
DHCP允许网络上配置多台DHCP服务器,客户机可能收到多个应答消息,选最先到达的
DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间内使用该地址
租用期,其数值由DHCP服务器决定,也可以由客户机在DHCP发现报文中提出请求
客户端和服务端通信使用的都是广播方式
基于UDP:不需要建立连接,
实现的过程
使用C/S模式
DHCP发现报文
需要IP地址的主机向DHCP服务器广播的报文
本地网络上所有主机都能收到此广播报文,但只有DHCP服务器才回答此广播报文
DHCP提供报文
DHCP服务器的回答报文
服务器在数据库中查找该计算机的配置信息
若找到,则返回找到的信息
若找不到,则从IP地址池中取一个地址分配
交换过程
DHCP客户机广播“DHCP发现”报文
试图找到网络中的DHCP服务器获取IP,服务器获得一个IP地址
源地址:0.0.0.0;目的地址:255.255.255.255
DHCP服务器收到发现报文后,广播“DHCP提供”报文
服务器拟分配给主机一个IP地址和相关配置,先到先得
源地址:DHCP服务器地址,目的地址:255.255.255.255
客户机收到提供报文后,若接收,广播“DHCP请求”报文
主机向服务器请求提供IP地址,这个地址能用吗?
源地址:0.0.0.0;目的地址:255.255.255.255
DHCP服务器广播“DHCP确认”报文
正式将该IP地址分配给主机
源地址:DHCP服务器地址,目的地址:255.255.255.255
网际控制报文协议I C M P
ICMP概述
概念
网际控制报文协议(Intemet Control Message Protocol,ICMP)
IP层协议
为了提高IP数据报交付成功的机会,在网络层使用了ICMP来让主机或路由器报告差错和异常情况
手段:发送特定的ICMP报文
ICMP差错报文
ICMP询问报文
应用
分组网间探测PING
测试两个主机之间的连通性,使用了ICMP回送请求和回答报文
工作在应用层,直接使用网络层的ICMP,未使用传输层的TCP或UDP
Traceroute/Tracert
跟踪一个分组从源点到终点的路径(经过的路由),使用了ICMP时间超过差错报告报文
工作在网络层
ICMP报文
差错报告报文
五类差错报文
ICMP报文格式
ICMP差错报告报文数据字段
不应发送差错报文的情况
对ICMP差错报告报文不再发送ICMP差错报告报文
差错报告报文封装在IP数据报中,IP数据报的首部检验和不检验数据部分,有可能出错
对第一个分片的数据报片的所有后续数据报片都不发送
对具有组播地址的数据报都不发送。
组播:一点到多点(选择性的)
广播:一点到一个LAN中的所有结点
对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送
环回地址127.0.0.0
本网络内的本主机地址0.0.0.0
ICMP询问报文
四类询问报文
回送请求和回答报文
主机或路由器向特定目的主机发出询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。
测试目的站是否可达以及了解其相关状态
时间戳请求和回答报文
请某个主机或路由器回答当前的日期和时间
用来进行时钟同步和测量时间
地址掩码请求和回答报文
路由器询问和通告报文
IPv6
I P v 6 概述
IP地址耗尽
采用无分类编址CIDR
采用网络地址转换NAT,节省全球IP地址
采用更大的地址空间——IPv6(根本上解决)
IPv6
改进IP数据报的首部格式,减少字段类型
使得路由器能够快速处理/转发数据报
支持QoS
Qos(Quality of Service,服务质量)指各网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术
满足实时性,多媒体通信
I P v 6 数据报
IPv6数据报格式
首部
固定40B的基本首部
有效载荷
选项(扩展首部)
数据部分
将IPv4中首部的可变部分转移到有效载荷中,在某些通信中不用的字段就放到扩展首部中,减少首部字段的类型
IPv6的首部字段
版本
指明版本协议:6
优先级
区分数据报的类别和优先级
流标签
同属于一个流的数据报的流标签相同
“流”是互联网络上从特定源点到特定终点的一系列数据报
有效载荷长度
扩展首部+数据部分的长度
下一个首部
标识下一个扩展首部或上层协议首部
有扩展首部
指示下一个扩展首部
无扩展首部
表示IP的上一层协议是TCP或UDP
跳数限制
相当于TTL
IPv6格式的特点
地址变化
更大的地址空间
从32位(4B)到128位(16B)
精简了首部格式
取消
服务类型字段
检验和字段,减少了每跳的处理时间
变更
总长度字段,改成了有效载荷长度字段
可选字段移出到有效载荷中的扩展首部
更加灵活
路由器通常不对扩展首部做检查
协议字段,改成了下一个首部字段
允许协议继续扩充
首部长度
IPv6的首部长度必须是8B的整数倍
IPv4的首部是4B的整数倍
支持即插即用(自动配置IP地址)
不需要DHCP协议
IPv6只能在主机(源结点处)处分片,是端到端的
“一般意义上讲,IPv6不允许分片”
IPv4能在路由器和主机处分片,在主机处组合
IPv6报文过大路由器就只能丢弃,并返回一个ICMPv6:附加报文类型“分组过大”
特征
IPv4和IPv6不兼容,但和其他所有因特网协议兼容(TCP、UDP、ICMP、IGMP、OSPF、BGP、DNS等)
支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用
增大了安全性,身份验证和保密功能是IPv6的关键特征
I P v 6 的 地 址
IPv6的基本地址类型
单播
点对点通信
可做源地址+目的地址
多播/组播
一对多通信
分组被交付到一组主机中的每一台计算机
可做目的地址
原有的
任播
IPv6增加的一种类型
一对多中的一个通信
目的站是一组计算机,数据交付时交付给距离最近的一台计算机
可做目的地址
IPv6的地址表示形式
一般形式
冒号十六进制记法
每4位用16进制(H)表示,每16位一组,共8组
4BF5 : AA12 : 0216 : FEBC : BA5F : 039A : BE9A : 2170
压缩形式
能压缩的情况:连续的0
一般压缩
4BF5:0000:0000:0000:BA5F:039A:000A:2176
4BF5:0:0:0:BA5F:39A:A:2176
零压缩(双冒号缩写)
一连串连续的0可以被一对冒号取代
FF05:0:0:0:0:0:0:B3
FF05::B3
双冒号表示法在一个地址中仅可出现一次
拓展的地址层次结构
第一级(顶级)
指明全球都知道的公共拓扑
第二级(场点级)
指明单个场点
第三级
指明单个网络接口
拓展了IPv4地址的分级概念,更快查找路由
过渡
双协议栈技术
指在一台设备上同时启用IPv4协议栈和IPv6协议栈,既能和IPv4网络通信,又能和IPv6网络通信
路由器上
在路由器的不同接口上分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络
计算机上
将同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能
隧道技术
使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。
隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送
即将整个IPv6数据报封装到IPv4数据报的数据部分
使得IPv6数据报可以在IPv4网络的隧道中传输
路由选择协议
路由算法概述
分层次路由选择协议
自洽系统AS
分层次的作用
网络规模扩大,路由表增大,路由器缓冲区是有限的,扫描路由表的时间也会加长,需要更多的带宽
安全性考虑,路由选择协议需要保密,但还需要接入因特网
自洽系统AS
自洽系统(Autonomous System)
即,在单一的技术管理下的一组路由器所连接的网络系统
互联网分为若干个自洽系统(包含很多局域网)
每个自治系统有权自主地决定本系统内应采用何种路由选择协议
一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通
两类路由选择协议
内部网关协议IGP(域内路由选择)
AS内部所使用的路由协议,用以确认数据分组在AS内的最佳路由
它与互联网中其他自治系统选用什么路由选择协议无关
RIP,OSPF
外部网关协议EGP(域间路由选择)
用于在不同自治系统的路由器之间交换路由信息的路由选择协议
负责为分组在不同自治系统之间选择最优的路径
BGP-4
静态和动态路由算法
静态路由算法(非自适应路由算法)
静态的
即,网络管理员手工配置的路由信息
优点
简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,
广泛用于高度安全性的军事网络和较小的商业网络。
缺点
路由更新慢,不适用大型网络。
动态路由算法(自适应路由算法)
相连的路由器间彼此交换信息,按照路由算法优化出路由表项,同时这些表项会不断更新,随时获取最优的寻路效果
优点
路由更新快,能及时响应链路费用或网络拓扑变化,能改善网络性能并有助于流量控制
适用大型网络
缺点
算法复杂,会增加网络负担
有时会因为动态变化反应太快引起震荡,或反应太慢影响一致性
分类
距离-向量路由算法
RIP
链路状态路由算法
OSPF
动态路由算法
距离-向量路由算法
所有结点都定期地将它们的整个路由选择表传送给所有与之直接相邻的结点
路由选择表包含:每条路径的目的地,路径的代价
特点
若一条新的路由在原路由表中不存在,本地系统加入,若一条路由有更短的距离或代价,则更新之
每个结点在每次更新时都将它的全部路由表发送给所有相邻的结点
更新报文的大小与通信子网的结点个数成正比,大的通信子网将导致很大的更新报文
故通信子网上传送的路由选择信息的数量很容易变得非常大
常见算法
RIP算法,采用跳数作为距离的度量,每经过一个路由器,跳数+1
链路状态路由算法
链路状态路由算法要求每个参与该算法的结点都具有完全的网络拓扑信息,它们执行
第一,主动测试所有邻接结点的状态
邻接结点连接到同一条链路,或者连接到同一广播型物理网络。
第二,定期地将链路状态传播给所有其他结点(或称路由结点,不仅仅是相邻的结点)
洪泛法
路由器通过所有端口向所有相邻的路由器发送信息
每个相邻路由器又将此信息发往其所有相邻路由器(不包括来处)
特点
每个结点都从网上所有其他的结点接收包含直接链路状态的路由选择信息
发送的信息是与路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息
只有当链路状态发生变化时,路由器才向所有路由器发送此信息
优点
每个路由结点都使用同样的原始状态数据独立地计算路径,而不依赖中间结点的计算
链路状态报文不加改变地传播,因此采用该算法易于查找故障
当一个结点从所有其他结点接收到报文时,它可以在本地立即计算正确的通路,保证一步汇聚
由于链路状态报文仅运载来自单个结点关于直接链路的信息,其大小与网络中的路由结点数目无关,有更好的规模可伸展性。
常见算法
OSPF 算法
“链路状态”,是指说明本路由器与哪些路由器相邻及该链路的“度量”
链路状态的“度量”主要用来表示费用、距离、时延、带宽等
比较
距离-向量算法(分散性)
每个结点仅与它的直接邻居交谈,它为它的邻居提供从自己到网络中所有其他结点的最低费用估计
距离-向量路由算法有可能遇到路由环路等问题
路由器只掌握物理相连的邻居及链路费用
链路状态算法(全局性)
每个结点通过广播的方式与所有其他结点交谈,但它仅告诉它们与它直接相连的链路的费用
所有路由器掌握完整的网络拓扑和链路费用信息。
路由选择协议
路由信息协议RIP
RIP协议概述
概念
路由信息协议(Routing Information Protocol,RIP)是内部网关协议(IGP)中最先得到广泛应用的协议
RIP是一种分布式的基于距离向量的路由选择协议,其最大优点就是简单
RIP是应用层协议,在传输层使用UDP
核心思想
网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(一组距离)
距离
通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1
从一个路由器到直接相连的网络的距离为1(也有题目说0的)
所有结点都定期地将它们的整个路由选择表传送给所有与之直接相邻的结点
RIP允许一条路径最多只包含15个路由器,当距离为16时,说明网络不可达
路由收敛
即网络拓扑变化引起的通过重新计算路由而发现替代路由,并通知所有相关路由器的行为
在RIP中,一个新路由器刚开始工作时,只知晓直连网络的距离。其他路由器也只和有限的相邻路由器交换并更新信息
若干次更新后,所有路由器都能知道本AS内任何一个网络的最短距离和下一条路由器的地址,即收敛
信息交换
交换对象
仅和相邻路由器交换信息
交换内容
路由器交换的信息是自己的路由表
交换时间
每30s相邻路由器之间交换一次信息,并更新路由表
若超过180s没能更新,则判定不可达(跳数更改为16)
距离向量算法
处理
路由器R1收到相邻路由器X发来的RIP报文后
修改相邻路由器X发来的RIP报文中的所有表项
"下一跳"字段
所有表项修改为相邻路由器的地址X(谁送来的改成谁)
“距离”字段
所有表项的距离字段都+1(到X需要一跳)
对修改后的RIP的每一个项目作如下处理
原来的R1路由表中没有目的网络N时,把该项目添加到路由表中
原来的R1路由表中有目的网络N时,
原表中下一跳的地址为X,该项目直接替换(保持最新)
原表中下一跳的地址不为X,比较距离d
新收到的更小则整个项目替换
原来的距离更小则不动
如果180秒还没有收到相邻路由器的更新路由表,那么把此相邻路由器记为不可达路由器,即把距离设置为16
返回
例题
核心:向量记录的是:从自己到目的的跳数,收到某路由的向量,先全加到该路由的距离
*RIP报文格式
*报文格式
RIP是应用层协议,使用UDP传送数据
一个RIP报文最多可包括25个路由,如超过,必须再用一个RIP报文传送
RIP协议特点
好消息传得快
实现简单、小网络开销小、收敛过程较快
坏消息传得慢
当一个网络出现故障时,与其相邻的路由器R1会更新成该网络不可达
但其他不相邻的路由器R2不知道该网络故障,会将该网络的更新报文送来
R1会更新,并认为能通过R2到达故障网络,并将此更新信息重新发送
R2和R1反复更新,直到距离都变为16为止,其他路由器也同理
即需要较长时间才能将此信息传送到所有路由器
慢收敛现象
适用于小网络
RIP限制了网络的规模,它能使用的最大距离为15(16表示不可达)
时间空间开销大
交换的是完整路由表,网络规模越大,开销越大
开放最短路径优先OSPF
OSFP的概述
OSPF
开放最短路径优先(OSPF)协议是使用分布式链路状态路由算法的典型代表,属于内部网关协议(IGP)
开放:公开发表的,非闭源,最短路径优先:Dijkstra(单源最短路径算法)
网络层协议,不使用UDP和TCP,直接用IP数据报传送(首部协议字段为89)
核心思想
每个参与该算法的结点都具有完全的网络拓扑信息
主动测试所有邻接结点的状态,定期地将链路状态传播给所有其他结点(洪泛)
交换到最后,所有路由器都能够建立一个链路状态数据库,即全网拓扑图。其在全网范围内是一致的(称为链路状态数据库的同步)
信息交换
交换对象
OSPF向本自治系统中的所有路由器发送信息
最终整个区域所有路由器都收到此信息
交换内容
发送的信息是与本路由器相邻的所有路由器的链路状态
不同于RIP发送的是整个路由表,OSPF发送的只是该路由知道的部分信息
点和权
本路由器和哪些路由器相邻,以及该链路的度量/代价——费用、距离、时延、带宽等
交换时间
只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息
更新过程收敛快
OSFP的分组
OSPF分组的格式
OSFP的分组类型
1)问候分组,用来发现和维持邻站的可达性。
2)数据库描述分组,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
3)链路状态请求分组,向对方请求发送某些链路状态项目的详细信息
4)链路状态更新分组,用洪泛法对全网更新链路状态。
5)链路状态确认分组,对链路更新分组的确认。
链路状态路由算法
建立全网拓扑图
每个路由器通过发送【HELLO问候分组】发现它的邻居结点
每2个相邻路由器都会发送(隔10s)
确定是否可达
获得邻居节点的网络地址,并设置到它的每个邻居的成本度量metric
构造【DD数据库描述分组】,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
邻站收到分组后
如果DD分组中的摘要自己都有,则邻站不做处理
如果有没有的或者是更新的,则发送【LSR链路状态请求分组】请求自己缺少的链路详细信息
收到邻站的LSR分组后,发送【LSU链路状态更新分组】进行更新
更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认
A询问——B给摘要——A请求——B给详细信息——A确认
更新链路状态
一个路由器的链路状态发生变化后:
该路由器泛洪发送【LSU链路状态更新分组】进行更新
更新完毕后,其他站返回一个【LSAck链路状态确认分组】进行确认
每一个路由器再使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径
OSFP的区域
概念
为使OSPF能够用于规模很大的网络,OSPF会将一个自治系统再划分为若干更小的范围,称为区域
每个区域都有一个32位的区域标识符(点分十进制表示)
特点
可以利用洪泛法交换链路状态信息的范围局限于每个区域而非整个自治系统
减少了整个网络上的通信量
本区域内的路由器只能知道本区域内的完整网络拓扑,不知道其他区域
层次划分
主干区域负责连通下层区域,还连接着其他自治系统
一个区域内的路由器一般不超过200个
主干路由器:
R34567
区域边界路由器
R347
自治系统边界路由器
R6
区域内部路由器
R1289
OSFP的特点
使用分布式的链路状态协议
OSFP规定每隔一段时间(30min)就刷新一次数据库中的链路状态
能计算出最优路径,但路由表中只存储下一跳
适用于大网络
一个路由器的链路状态只涉及到与相邻路由器的连通状态,和网络规模无关
当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多
收敛速度很快
OSPF不存在RIP坏消息传的慢的问题
非常灵活
OSFP可根据IP分组的不同服务类型ToS设置成不同的代价
可根据不同类型的业务计算出不同的路由
多路径间负载均衡
到同一个网络有多条代价相同的路径,可以将通信量分配
OSFP分组具有鉴别功能
保证仅在可信赖的路由器之间交换链路信息
支持可变长子网划分和无分类编址CIDR
每个链路状态会带一个32位序号
序号越大,状态越新
边界网关协议BGP
BGP概述
BGP
边界网关协议(Border Gateway Protocol,BGP)是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议EGP
不同于内部网关协议,因特网规模大,AS之间的路由选择困难,寻找自治系统之间的最佳路由不现实,还要考虑其他策略
BGP只力求寻找到一条能到达目的网络且比较好的路由(不用找最佳路由,不兜圈子,树型结构)
BGP采用的是路径-向量路由选择协议
注意和距离向量协议和链路状态协议区分
信息交换
交换对象
与其他AS的邻站BGP发言人交换信息
交换内容
交换的网络可达性的信息,即要到达某个网络所要经过的一系列AS
包含一个完整的路径,称之为一组路径向量:即到达某一个子网需要经过的一系列AS和目的网络中经过的路由器
交换时间
发生变化时更新有变化的部分
“BGP发言人”
每个自治系统的管理员需要选择一个或多个路由器作为该自洽系统的发言人
往往就是BGP边界路由器
信息交换过程
两个BGP发言人要交换路由信息,需要先建立TCP连接,在此连接基础上交换BGP报文以建立BGP会话(session),利用BGP会话交换路由信息
每个BGP发言人除必须运行BGP外,还必须运行该AS所用的内部网关协议,如OSPF或RIP
所有BGP发言人都交换网络可达性的信息之后,就能找到到达各AS的较好路由
报文格式及类型
报文格式
BGP-4的四种报文
打开(Open)报文
用来与相邻的另一个BGP发言人建立关系
并认证发送方
更新(Update)报文
用来发送某一路由的信息,通告新路径
列出要撤销的多条路由
保活(Keepalive)报文
确认存活,在没有发送报文时,周期性地证实邻站关系
同时可以作为Open报文的确认
通知(Notification)报文
发送收到报文的差错
也可以用于关闭连接
BGP协议特点
BGP是网络层协议,基于TCP传送
BGP交换路由信息的结点数量级是AS的数量级,要比AS内的网络数少很多
每个自治系统的BGP发言人的数目很少,可以使得AS之间的路由选择不过于复杂
BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列
在BGP刚刚运行时,BGP的邻站是交换整个的BGP路由表。但以后只需要在发生变化时更新有变化的部分。节省网络带宽和减少路由器的处理开销。
三种协议比较
IP组播和移动IP
I P组播
组播的概念
组播概述
传输方式
广播
点对多点
广播是指发送数据包到同一广播域或子网内的所有设备的一种数据传输方式
单播
点对点传输
单播用于发送数据包到单个目的地,且每发送一份单播报文都要使用一个单播IP地址作为目的地址。
发送者和每一个接收者之间都需要单独的数据信道
应用于TCP
组播/多播
点对多点
组播目的
为了支持类似视频点播和视频会议这类传输数据量大、频繁且需要将一个分组发送给多个目的地主机的多媒体应用
而采用单播传输仿真组播会引起主机上大量的处理开销和网络上过多的交通量
组播机制
源主机一次发送的单个分组可以抵达用一个组地址标识的若干主机,并使其被正确接收
因特网中的IP组播也采用组播组的概念,每个组有一个特别分配的地址,发送给该组的分组的目的地址即为该地址
IPv4中是在D类地址空间中分配
IPv6有一部分地址空间保留给组播组
特点
组播提高了数据传送效率
减少了主干网出现拥塞的可能性。
组播组中的主机可以是在同个物理网络,也可以来自不同的物理网络(如果有组播路由器的支持)
组播一定仅应用于UDP
IP组播及组播地址
组播过程
各个主机使用IGMP加入组播组,每个主机分配同一个组播地址
主机使用IGMP通知本地网络上的路由器关于要接收发送给某个组播组的分组的愿望
组播数据发送者仅发送一次数据分组
借助组播路由协议为组播数据包建立组播分发树(遇到分叉,复制转发)
被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发
注意
主机可以选择加入或离开一个组,一台主机可以同时属于多个组
组播一般需要有组播路由器的支持才能实现
组播路由器:运行组播协议的路由器。将分组复制和分发到组内各个主机
IP组播地址
IP组播地址
IP组播地址让源设备能够将分组发送给一组设备
属于多播组的设备将被分配同一个组播组IP地址(一群共同需求主机的相同标识)
一个IP组播地址只标识一个组播组
格式和地址范围
使用IP分类地址中的D类地址
地址范围
224.0.0.0—239.255.255.255
注意
组播数据报是“尽最大努力交付”,不提供可靠交付,应用于UDP。
D类地址只能用作分组的目的地址,分组的源地址一定是单播地址
对组播数据报不产生ICMP差错报文
在PING命令后面加入组播地址是不会收到响应的
并非所有D类地址都可以作为组播地址
IP组播的分类
只在本局域网上进行硬件组播
在因特网的范围内进行组播
因特网范围内组播的最后还是要在局域网上用硬件组播交付给组内成员
硬件组播
同单播地址一样,组播IP地址也需要相应的组播MAC地址在本地网络中实际传送帧
TCP/IP协议中使用的以太网多播地址的范围是(IANA规定的)
01-00-5E-00-00-00 —— 01-00-5E-7F-FF-FF
即,在每个地址中,只有23位可用作组播
这只能和D类IP地址中的23位有一一对应关系
而D类IP地址可供分配的有28位,即,前5位不能用来构成以太网的硬件地址
组播IP地址和以太网硬件地址的映射关系不是唯一的
例如
IP组播地址224.128.64.32(即E0-80-40-20)和224.0.64.32(即E0-00-40-20)
转换成硬件组播地址都是01-00-5E-00-40-20
因此收到组播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃
IGMP/组播路由算法
IGMP协议
概念特点
因特网组管理协议(Internet Group Management Protocol,IGMP)
IGMP应视为网际协议IP的一个组成部分
IGMP(因特网组管理)和ICMP(网际控制报文)
两者都是使用IP数据报传送报文
IGMP只是让连接到本地局域网上的组播路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组
IGMP三不
不是在因特网范围内对所有组播组成员进行管理的协议
不知道IP组播组包含的成员数
不知道这些成员分布在哪些网络上
工作阶段
第一阶段
当某台主机加入新的组播组时,该主机应向组播组的组播地址发送一个IGMP报文(组播路由器和同组成员才能收到),声明自己要成为该组的成员。
本地的组播路由器收到IGMP报文后,将组成员关系转发给因特网上的其他组播路由器
(主机主动加入)
第二阶段
组成员关系是动态的,本地组播路由器要周期性地探询(发送一个IGMP报文)本地局域网上的主机,以便知道这些主机是否仍继续是组的成员。
响应结果
只要某个组有一台主机响应,那么组播路由器就认为这个组是活跃的
几次的探询后没有一台主机响应,则不再将该组的成员关系转发给其他的组播路由器
(组播路由周期探询)
说明
探询报文能被同组播组内的所有主机收到,但当某一主机的响应先到达组播路由器后,其他主机可以通过监听,终止响应,减少线路上的通信量
组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员
组播路由选择
目的
组播路由器如何和因特网上其他组播路由器协同,用最小的代价传送给所有组成员信息
即,找出以源主机为根节点的组播转发树
构造树能避免回路,绕圈子
组播转发树
每个分组在每条链路上只传送一次(即在组播转发树上的路由器不会收到重复的组播数据报)
对不同的组播组对应于不同的组播转发树
同一个组播组,对不同的源点也会有不同的多播转发树
三种算法
基于链路状态的路由选择
基于距离-向量的路由选择
协议无关的组播PIM(稀疏/密集)
一个组播组中的主机较为分散——稀疏型PIM-SM
主机较为集中——密集型PIM-DM
虽然建立转发树时采用的是单播数据报和远程路由器联系,但并不要求使用相同的一个单播路由选择协议,所以是协议无关
移动 I P
移动IP的概念
移动IP
支持移动性的因特网体系结构与协议共称为移动IP,它是为了满足移动结点(计算机、服务器、网段等)在移动中保持其连接性而设计的
移动IP技术是指移动结点以固定的网络IP地址实现跨越不同网段的漫游功能,并保证基于IP的网络权限在漫游过程中不发生任何改变
移动IP的目的
把分组自动地投递给移动结点
三种功能实体
移动结点
具有永久IP地址的移动结点
一个移动结点是把其连接点从一个网络或子网改变到另一个网络或子网的主机
使用移动IP,一个移动结点可以在不改变其IP地址的情况下改变其驻留位置
归属代理(本地代理)
一个移动结点的永久“居所”称为归属网络
在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理
它根据移动用户的转交地址,采用隧道技术转交移动结点的数据包。
外埠代理(外部代理)
在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理
统称为移动代理
概念的区分
移动IP和移动自组网络
移动IP技术
使漫游主机可以用多种方式连接到因特网,
移动IP的核心网络功能仍然是基于固定互联网中一直使用的各种路由选择协议
移动自组网络
是将移动性扩展到无线领域中的自治系统
具有自己独特的路由选择协议,并且可以不和因特网相连
移动IP与动态IP
动态IP指的是局域网中的计算机可以通过网络中的DHCP服务器动态地获得一个IP地址,而不需要用户在计算机的网络设置中指定IP地址
移动IP
IP地址永久,主机漫游
移动IP通信过程
两种地址
永久地址:
又称为归属地址/主地址:移动站点在归属网络中的原始地址
移动IP中,每个移动结点都有一个唯一的、不变的本地地址
转交地址/辅地址:
可以是外部代理的地址或动态配置的一个地址
移动结点连接到外地网络链路上时,需要有转交地址来标识移动结点现在所处的位置,以便进行路由选择
移动绑定
移动结点的本地地址与当前转交地址的联合称为移动绑定或简称绑定
当移动结点得到一个新的转交地址时,通过绑定向本地代理进行注册,以便让本地代理即时了解移动结点的当前位置
通信过程
移动结点进入外部网络
获得外部代理的转交地址(外部代理广播报文)
被动获得
外部网络广播的报文中包含转交地址
主动获得
移动结点发送广播报文向外部代理请求转交地址
移动结点要通过外部代理发送注册报文给归属代理(注册报文中包含永久地址&转交地址)
本地代理接收到来自转交地址的注册后
将移动结点的永久地址和转交地址作移动绑定
构建一条通往转交地址的隧道
之后到达该本地代理且要发送给移动结点的数据报将被封装以隧道形式发给转交地址
IP分组到转交地址处后,由外部代理解除隧道封装,恢复原始的IP分组,最后送到移动结点
移动结点在外网通过外网的路由器或外部代理向通信对端发送IP数据包
返回一个注册响应报文
外部代理接收注册响应后,并转发给移动结点
移动结点移动到了下一个网络
在新的外部代理处登记注册一个转交地址
新外部代理给本地代理发送新的转交地址(覆盖旧的)
移动结点回到了归属网络
向本地代理注销转交地址
按传统的TCP/IP方式进行通信(在本地网中有固有的地址)
小结
移动主机有两个IP地址,即主地址和辅地址(转交地址)
移动主机在本地网时,使用的是主地址
当移动到另一个网络时,需要获得一个临时的辅地址,本地网络通过辅地址和移动主机通信,主地址仍然不变
从外网移回本地网时,辅地址改变或撤销,而主地址仍然保持不变