4.1 网络层功能
4.1.1 异构网络互联
四种中继系统:
- 物理层:中继器、集线器
- 数据链路层:网桥、交换机
- 网络层:路由器
- 更上层:网关
网络互联通常指用路由器进行网络互联、路由选择。路由器是一台进行路由选择的专用计算机。
TCP/IP体系在网络互联上采用的做法:在网络层(IP层)采用了标准化协议,内部连接的网络可以是异构的。由于参与互联的计算机网络都是用相同的网际协议(Internet Protocol,IP),因此可以把互联后的计算机网络看成一整个虚拟互联网络,称为IP网络,可以借此忽略低层的异构细节。
4.1.2 路由与转发
路由器的两个功能:
- 路由选择:按照复杂的分布式算法,根据从相邻路由器得到的拓扑变化情况动态改变选择的路由
- 分组转发:根据转发表将用户的IP数据报从合适的端口转发出去
4.1.3 拥塞控制
- 拥塞:通信子网出现过量分组引起性能下降
- 判断方法:观察网络的吞吐量和网络负载的关系。负载增大吞吐量明显下降:产生拥塞;吞吐量为0:产生死锁
- 拥塞控制的任务:获取网络中的拥塞信息,利用这些信息进行控制
流量控制和拥塞控制的区别:
- 流量控制:关注发送端和接收端之间点对点的信息控制,抑制发送端速率
- 拥塞控制:全局性问题,关注子网的正常通信,涉及所有主机、路由器和其他因素。
拥塞控制的方法:
- 开环控制:静态预防,在设计时预先考虑
- 闭环控制:采用监测网络系统的方式动态调整
4.2 路由算法
4.2.1 静态、动态
- 静态路由算法(非自适应):手工配置
- 动态路由算法(自适应):与相邻路由器交换信息,优化完成
4.2.2 距离-向量算法
每个节点定期将整个路由选择表传送给与之相邻的节点,表中内容:
- 目的地(另一节点)
- 路径代价(距离)
更新路由选择表的情况:
- 收到一条新的不存在的路由
- 收到的路由信息有比现有通向同一目的结点更小代价
常见算法:RIP,采用“跳数”作为度量。
4.2.3 链路状态路由算法
要求每个参与该算法的节点具有完全的网络拓扑信息,执行下列两个任务:
- 主动测试所有邻接节点的状态
- 定期将链路状态传播给所有其他节点(不止邻接节点)
典型的链路状态算法是OSPF算法。
每当链路状态报文到达,路由的节点用这些状态信息更新自己的网络拓扑结构和状态,节点利用Dijkstra算法计算最短路径。
特征:
- 向本自恰系统的所有路由发送信息,使用泛洪法。
- 发送端信息就是与路由器相邻的所有路由器的链路状态
- 当链路状态发生变化,路由器才向所有路由发送此消息
优点:
- 每个路由器独立计算
- 距离-向量只向相邻节点发送,容易遇到环路,而链路状态路由算法不会。
- 链路状态报文传播不加改变,易于查找故障
4.2.4 层次路由
网络规模持续增大,则交换路由信息开销增大。因此必须按照层析的方式进行路由选择。
因特网将整个互联网划分为许多较小的自洽系统(一个自洽系统包括多个局域网),每个自洽系统有权决定自身内部的协议。如果两个自洽系统需要通信,则需要一个在自洽系统之间的协议屏蔽这些差异。因此因特网将路由选择协议划分为两类:
- 内部网关协议(IGP,Interior Gateway Protocol):自洽系统内部使用的路由选择协议,包括RIP、OSPF
- 外部网关协议(EGP,Exterior Gateway Protocol):自洽系统之间使用的路由选择协议,如BGP
OSFP将一个自洽系统再划分为若干区域,每个路由都知道本区域分组路由到目的地的细节,而不必知道其他区域的内部结构。
4.3 IPv4
4.3.1 IPv4分组
IP协议定义数据传送的基本单元:IP分组及其确切的数据格式。IP协议也包括一套规则指明分组处理、错误控制。特别是,IP协议包含非可靠投递的思想,以及相关的分组路由选择。
1.IPv4分组的格式
IP分组分为首部和数据两部分组成。首部的前一部分定长20字节,是所有IP分组必须具有的;后一部分是可选字段,长度可变,用来提供错误检测、安全机制。
首部固定部分:
- 版本:4位,IP协议版本
- 首部长度:4位,最常用的长度是20字节(32bit*5),基本单位是32位,即4字节。因此一个IP数据报的长度必须是4B的整数倍。
- 区分服务:
- 总长度:16位,标识首部和数据的总长,单位是字节,从而数据报最长为2^16-1=65535字节。但是注意数据链路层以太网帧的最大传送单元(MTU)为1500字节,因此封装为帧的IP数据报总长不能超过该值。
- 标识:16位,是一个计数器,每产生一个数据报就+1,并赋值给此字段,但是IP属于无连接服务,因此并非“序号”。当一个数据包长度超过网络的MTU就必须分片。此时每个报片都复制一份标识,标明该ip分组发生了分片。
- 标志:3位,最低位MF=1表示后面还有分片,MF=0表示最后一个分片。中间位DF,DF=0才允许分片。
- 片偏移:13位,指出较长的分组在分片后对于原分组的相对位置。以8字节为偏移单位。因此每个分片的长度都是8字节的整数倍。
- 首部检验和:16位,只校验分组的首部,不校验数据部分
- 生存时间TTL:8位,表示数据报在网络中可通过路由器数的最大值,来表示分组在网络中的寿命,确保分组不会永远在网络中循环:路由器在转发分组之前先将TTL减1,如果减到0则丢弃。
- 协议:8位,指出分组携带的数据是何种协议。6表示TCP,17表示UDP
- 源地址字段:4字节,32位。标识发送方IP地址
- 目的地址字段:4字节,32位,标识接收方IP地址
2.IP数据报分片
链路层数据报能承担的最大数据量称为最大传输单元(MTU),以太网的MTU为1500字节,许多广域网的MTU不超过576字节。IP数据报长度长与MTU时需要进行分片。注意单位是片不是帧
片在目的地的网络层被组装,目的主机使用IP首部的标识、标志、片偏移完成重组。
- 创建一个IP数据报,源主机为该数据包添加一个标识号。当一个路由器将一个数据报分片,形成的每个片都具有原始数据报的标识号。
- 标志位只有3bit且只有后两个可用,MF(More Fragment)1表示还有后续的片,0表示最后一片;DF(Don’t Fragment)是0的IP数据报才可以分片。
- 片偏移字段用来确定所分的片处于原来IP数据报的哪个位置
3. 网络层转发分组流程
路由器执行的分组转发算法如下:
- 数据报首部提取目的主机IP地址D,得出目的网络地址N
- 如果N与路由器相连,则直接交付,否则间接交付
- 路由表中有目的地址为D的特定主机路由,则给下一跳路由器直接交付,否则:
- 没有能到达N的路由,则将数据报传送给路由表指明的下一跳路由,否则:
- 路由表有默认路由,则交付给默认路由,否则:
- 报告转发分组出错
得到下一跳路由器IP后,首先应该将此IP转为MAC地址(ARP协议)然后将MAC放到帧首部,然后根据MAC地址找到下一跳路由器。不同网络中,MAC帧的源地址和目的地址要发生变化,但网桥转发帧时不改变源地址。
4.3.2 IPv4地址与NAT
1.IPv4地址
每一台主机或㞆都分配一个32bit,4字节的全球唯一的标识符,即IP地址。分为五类,都由网络号和主机号两部分组成。
IP地址::={<网络号>,<主机号>}
,网络号表示主机or路由器连接到的网络,一个网络号在因特网范围内必须唯一。主机号表示主机or路由器本身。
- A类0(1-126),网络数27-2,主机数224-2
- B类10(128.1-191.255),网络数214-1,主机数216-2
- C类110(192.0.1-223.255.255),网络数221-1,主机数28-2
- D类1110(224-239)
- E类1111(240-255)
- 主机号全为0表示网络本身,如202.98.174.0
- 主机号全为1表示本网络的广播地址,如202.98.174.255
- 127.0.0.0保留作为环路自检地址
- 0.0.0.0表示本网络的主机
- 255.255.255.255表示整个TCP/IP网络的广播地址,又称首先广播地址。实际使用时,由于路由器对广播域的隔离,等效为本网络的广播地址。
IP地址的特点:
- 都由网络号和主机号组成,是分等级的地址结构。分级可以:
- IP地址分配时只分配网络号,主机号由各网络自行分配
- 路由器仅根据目的主机连接的网络号转发分组,不考虑主机号,减小路由表
- IP地址是标志一个主机和一条链路的接口。一个主机同时连接到两个网络,则该主机必须同时具有两个IP地址,每个IP地址网络号必须与所在网路的网络号相同。
- 用转发器或网桥连接的若干LAN仍然是同一个网络(同一个广播域),该LAN中的所有主机的IP地址网络号必须相同,主机号必须不同。
- 所有分配到网络号的网络无论LAN或WAN都是平等的。
- 在同一个局域网或路由器的IP地址中网络号必须一样。路由器总是有两个或两个以上的IP地址。每一个端口的网络号都不同。
2. 网络地址转换
NAT,Network Address Transform:通过将专用网络地址转换为公用地址对外隐藏内部管理的IP地址。使得整个专用官网只需要一个全球IP地址就可以进行连接英特网。由于专用网的本地IP可重用,NAT大大节省了IP地址的消耗,而且隐藏了内部网络结构,降低了内部网络受攻击的风险。
部分IP被划分为私有IP地址,只用于LAN而不用与WAN。(因此私有IP不能直接用于Internet,而需要通过网关的NAT将私有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转换表将本地地址转为全球地址,或反之进行。NAT转换表存放着{本地地址:端口}到{全球地址:端口}的映射,可以让多个私有地址映射到同一个全球地址。
NAT路由和普通路由相比,前者必须改变源和目的地址,后者不必。
4.3.3 子网划分、子网掩码、CIDR
1. 子网划分
两级IP地址的缺点:IP地址利用率低,给每一个物理网络分配一个网络号会使得路由表太大,从而降低性能;且两级地址不够灵活。
因此,后来在IP地址增加了“子网号字段”使得两级地址变为三级地址,称为划分子网。基本思路如下:
- 划分子网属于单位内部的事情,对外表现为未划分的网络(IP地址原来的网络号不变,从而无法判断是否划分了子网)
- 从主机号借用若干比特作为子网号,主机号随之减少相同比特数。三级地址的结构为:网络号,子网号,主机号。
- 凡是从其他网络发送给本单位某个主机的IP数据包依然根据IP数据报的目的网络号先找到连接在本单位网络上的路由器,随后该路由器在收到数据报后按目的网络号和子网号找到目的子网,最后将IP数据报直接交付给目的主机。
2. 子网掩码
使用子网掩码表达对原网络主机号的借位。1对应网络号和子网号,0对应主机号。将IP地址和子网掩码相与就可以获得子网网络地址。
A类、B类、C类的子网掩码分别为:255.0.0.0、255.255.0.0、255.255.255.0。路由表的条目必须给出目的网络和子网掩码。
- 主机设置IP地址信息的同时必须设置子网掩码
- 属于一个子网的所有主机和路由器端口有相同的子网掩码
- 路由表中必须有:目的网络地址、子网掩码、下一跳地址
使用子网掩码的分组转发算法:
- 提取目的IP地址,记为D
- 判断是否直接交付(利用子网掩码),间接交付则下一步
- 路由表中有目的地址为D的路由,则交给下一跳,否则:
- 对路由表的每一行中的子网掩码与D向与,结果为N,将N与目的网络地址匹配指明下一跳。否则:
- 若有默认路由,则转发给默认路由。否则:
- 转发出错
3. 无分类编址CIDR
无分类域间路由选择(CIDR):
- 在变长子网掩码基础上提出的消除ABC类划分并在软件支持下实现超网构造的划分方法。CIDR使用网络前缀替代自网络的概念,将IP分为网络前缀和主机号2个部分.
- 使用斜线记法(如128.14.32.5/20)表示多少个连续的1,然后相与得到子网。
- 将网络前缀和相同的连续IP地址组成CIDR地址快,一个地址块表示很多地址,称为路由聚合。地址块一定是2的整数次幂,但是可指派的通常为2^N-2个。
最长前缀匹配:CIDR中每个项目由路由网络前缀和下一跳地址组成。查表时可能得到不止一个匹配结果,应当从匹配结果选择最长的网络前缀的路由,因为网络前缀越长,地址块越小,路由越具体。
CIDR通过二叉线索树保存无分类编址的路由表,自上而下按层查找。
4.3.4 ARP协议、DHCP协议、ICMP协议
1.IP地址和硬件地址
IP是网络层使用的地址,是分层的;硬件地址(如MAC)是数据链路层用的,是平面的。IP地址在IP数据报的首部,MAC地址在帧的首部。组帧后链路层看不到IP地址。
路由器的隔离使得IP网络无法通过广播方式依靠MAC地址完成跨网络寻址,因此网络层只能通过IP地址寻址:每个路由器根据路由表转发,IP分组多次路由转发到目标网络后,改为在目标网络的LAN中通过数据链路层的MAC以黄渤方式寻址。
- IP层只看得到IP数据报
- IP数据报首部由完整的源IP和目的IP,但路由器只根据目的IP的网络号选择路由
- 链路层只能看见MAC帧,路由器转发分组时在每个网络中,IP分组都进行解封和重新封装。因此IP数据报在被转发时,MAC地址不断改变,因此无法使用MAC地址跨网络通信。
- IP层屏蔽了硬件地址体系的不同,抽象为IP地址方式通信。
2. 地址解析协议ARP
Address Resolution Protocol。
实际传输最终都会转为硬件地址,从而需要完成IP到MAC的映射,是通过ARP完成的。每个主机有一个ARP的高速缓存,存放本局域网个主机和路由器的IP到MAC的映射,称为ARP表。
ARP工作在网络层。当主机A朝局域网某个主机B发送IP数据报,先在自身ARP缓存查看有无B的IP地址,由则可查出,并写入MAC帧。否则:使用FF-FF-FF-FF-FF-FF封装并广播ARP请求分组,所有主机都受到ARP请求,直到到达B后向主机A发出响应ARP分组,其中包含映射关系。A收到后更新自身的ARP表,然后进行发送帧。
NAT“看得到”端口,因此处于传输层;
ARP“看得到”IP地址,因此处于网络层。
ARP的四种情况:
- 同网络的主机-主机:ARP找
- 不同网络的主机-主机:ARP找本网络的路由器MAC,然后交给路由器
- 本网络的路由器-主机:ARP找
- 不同网络的路由器-主机:ARP找本网络的路由器MAC,然后交给路由器
3. 动态主机配置协议DHCP
Dynamic Host Configuration Protocol
为主机动态分配IP地址,提供即插即用联网机制,允许一台计算机加入新的网络获取IP而不手动参与,是应用层协议,基于UDP
原理:使用客户/服务器方式,需要IP的主机在启动时向DHCP广播发送发现报文,此时该主机称为DHCP客户,本地网络所有主机都能收到该广播报文,但只有DHCP服务器回答此报文。DHCP服务器现在其数据库查找该计算机的配置信息,找到则返回。找不到则从地址池取出一个地址分配给该计算机。
- DHCP客户机广播“DHCP发现”消息,试图找到网络中的DHCP服务器
- 服务器收到发现消息,广播“DHCP提供”消息,包括提供的IP地址和相关配置
- 客户机收到提供消息,接受则广播“DHCP请求”消息请求该地址
- 服务器广播“DHCP确认”信息,分配IP地址
DHCP分配的IP是限时的,称为“租用期”
需要广播方式的原因:执行期间客户端和服务端没有表示自己身份的IP地址,不能单播。采用UDP的原因相同。因为没有地址信息无法建立连接。
4. 网际控制报文协议ICMP
Internet Control Message Protocol:提高IP数据包的交付成功概率。ICMP是IP层协议,加入IP数据报的一部分进行传输。
分为:
-
ICMP差错报告报文
- 终点不可达:不可达报文
- 源点抑制:降低源点发送速率
- 时间超过:路由器收到TTL为0,丢弃数据报并向源发送时间超过报文。
- 参数问题:路由器或目的主机收到数据包首部的字段不正确,就丢弃并发送参数问题报文。
- 改变路由(重定向):路由器把改变路由的报文发给主机,使主机知道下次需要改变发送的路由器。
-
ICMP询问报文
- 回送请求、回答报文
- 时间戳请求、回答报文
- 掩码地址请求、回答报文
- 路由器询问、通告报文
不应该发送的几种情况:
- 对ICMP差错报文不发送ICMP差错报文(不嵌套)
- 对第一个分片的所有后续报片都不发送
- 对具有组播地址的数据报都不发送
- 对特殊地址的数据报(127.0.0.0、0.0.0.0)不发送
ICMP的应用:
- PING(分组网间探测,工作在应用层):测试主机连通性,使用了回送请求和回答报文
- traceroute/tracert,工作在网络层::跟踪分组经过的路由,使用了ICMP时间超过报文
4.4 IPv6
4.4.1 主要特点
- 地址空间128bit
- 扩展地址层次结构
- 首部格式灵活
- 改进的选项
- 允许协议继续扩充
- 即插即用(自动配置)
- 支持资源预分配
- IPv6只在源节点分片,属于端到端,中间路由不允许分片。严格来讲属于禁止分片
- 首部长度必须是8B的整数倍(v4为4B的整数倍)
- 身份验证、保密功能
4.4.2 IPv6地址
IPv6目的地址可以是下列之一:
- 单播:点对点
- 多播:点对多点
- 任播:目的是一组计算机但只交付一个
表示方法:每4位用一个16进制数表示,用冒号分割为每个16位(4个数),可以采用双冒号缩写,表示双冒号范围内都为0,也可以将这些冒号间的0写成一个,如4BF5:0000:0000:0000:0000:0000:000A:2121,表示为4BF5::000A::2121或者4BF5:0:0:0:0:0:000A:2121
分为三级:
- 顶级:全球都知道的公共拓扑
- 场点级:单个场点
- 第三级:单个网络接口
兼容和过度:
- 双协议栈:完全过渡之前使一部分主机装有两种协议栈
- 隧道技术:将整个IPv6数据报封装到IPv4数据报的数据部分,通过IPv4网络的隧道传输。
4.5 路由协议
4.5.1 自治系统
Autonomous System,AS
是单一技术管理下的一组路由器,使用AS内部的路由选择协议和公共的度量,确定分组在AS内的路由。同时使用AS之间的路由选择协议确定分组在AS之间的路由。
4.5.2 域内路由、域间路由
自治系统内部的路由选择位域内,否则是域间。
- 内部网关协议 Interior Gateway Protocol,IGP:自治系统内部的路由选择协议,与外部无关,如RIP、OSPF
- 外部网关协议 External Gateway Protocol,EGP:两个自治系统之间的协议,如BGP-4
4.5.3 RIP协议
路由信息协议Route Information Protocol
分布式,基于距离向量的路由选择协议。易于实现
规定:
- 每个路由维护到其他目的网络的距离(距离向量)
- 距离也称为跳数Hop Count,规定从一路路由到直接连接的网络距离是1,每经过一个路由,跳数+1
- RIP优先选择跳数最少的
- 允许一套路径最多只能包含15个路由器(15跳),只能用于小型路由器
- 默认在任意两个RIP路由器之间每30s广播一次更新信息,自动维护路由表
- 不支持子网掩码的RIP广播,因此RIP中每个网络子网掩码必须相同。RIP2可以支持CIDR和变长子网掩码。
- 属于应用层协议。在传输层使用UDP,即RIP报文是UDP报文的数据部分
4.5.4 OSPF协议
开放最短路径优先 Open Shortest Path First
分布式链路状态路由算法的代表,属于IGP。
- 向自洽系统内所有路由器发送信息(洪泛法)
- 发送与本路由器相邻的所有路由器的链路状态(连接了哪些),以及度量(代价)。
- 只当链路状态变化后才使用洪泛法
- 属于网络层协议,不用UDP或TCP,直接发送IP数据报
- 对不同链路可根据IP分组的不同服务类型(TOS)设置不同的代价
- 如果具有代价相同的多条路径,则可以负载平衡
- 可以鉴别分组
- 支持可变长度子网划分、无分类编址CIDR
- 每一个链路状态添加一个32位的序号,越大表示状态越新
OSPF用于大规模网络需要将一个自洽系统再划分为若干更小的范围,称为区域。可以将洪泛的范围限定在区域中,减少整个网络的通信量。
OSFP的五种分组类型
- 问候分组:发现和维持邻站可达性
- 数据库描述分组:向邻站给出自己的链路状态数据库的所有项目的摘要信息
- 链路状态请求分组:请求发送某些链路状态的详细信息
- 链路状态更新分组:用洪泛法更新状态
- 链路状态确认分组:对链路更新分组的确认
工作方式:
- 相邻路由器每隔10s交换一次问候分组,确认哪些站可达。
- 开始工作后,OSPF让每个路由器使用数据库描述分组和相邻路由器交换数据库中的链路摘要信息
- 然后路由器使用链路状态请求分组向对方请求发送自己缺少的某些信息。
- 每次发生更新,使用链路状态更新分组进行洪泛更新
- 收到更新后使用链路状态确认分组确认更新
每30s刷新一次数据库中的链路状态,确保链路状态数据库全网保持一致。因此互联网规模很大时,OSPF好于RIP,且“坏消息传的很慢”
4.5.5 BGP路由协议
边界网关协议(Border Gateway Protocol,BGP)是不同自治系统间的协议,属于EGP:外部网关协议。
采用的是路径向量路由选择协议,不同于距离向量协议和链路状态协议。BGP是应用层协议,基于TCP。
原理:
- 每一个自治系统的管理员至少选择一个路由器,作为自治系统的“BGP发言人”
- 发言人直接建立TCP连接,交换BGP报文
- 所有发言人互相交流完毕可达性后,可以找出自洽系统之间的最好路由。
BGP发言人需要同时运行该AS的IGP和外部的BGP。
特点:
- BGP交换路由信息的节点数量级是自治系统的数量级,小于IGP
- 每个AS的发言人(边界路由器)数目很少
- BGP支持CIDR,路由表中应该包含:目的网络前缀、下一跳路由器、到达该目的的各个自洽系统序列
- BGP刚运行时,邻站是交换整个BGP路由表,但以后只需要再发生变化后更新变化部分。
BGP-4的四种报文:
- 打开(Open):与相邻发言人建立关系
- 更新(Update):发送某一路由信息,列出撤销路由信息
- 保活(Keepalive):确认打开报文和周期性证实邻站关系
- 通知(Notification):发送检测到的差错
4.6 IP组播
4.6.1 概念
组播一定基于UDP,对于将报文同时送往多个接收者的应用而言非常重要,TCP面向连接,因此只能运行于两台主机(根据IP)的两个进程(根据端口),一对一发送。
使用组播的原因:有的应用程序需要将一个分组发给多个目的地主机,而不是一一单独发送。
IPv4中,分组的目标地址在D类地址空间中分配。IPv6也有保留给组播组的地址空间。
主机使用IGMP(Internet Group Management Protocol,因特网组管理协议)加入组播组,使用该协议通知在本地网络的路由器关于接受发送给某个组播组的分组的愿望,通过扩展路由器的路由选择和转发功能功能,在许多路由器互联的支持硬件组播的网络上实现因特网组播。
组播仅发送一份数据,出现分叉则进行复制和转发。能够组播的路由器称为组播路由器。
4.6.2 IP组播地址
IP组播使用D类地址(前4位是1110),范围是224.0.0.0-239.255.255.255,每一个D类IP地址是一个组播组。
组播数据报仅使用D类IP作为目的地址,且首部中协议字段值是2,表明使用IGMP协议。需要注意:
- 不提供可靠交付
- 组播地址不能用于源地址
- 不产生ICMP差错报文,因此无法PING到
- 并非所有D类地址都可以作为组播地址
IP组播的分类:
- 本局域网的硬件组播
- 因特网的组播
组播地址和MAC地址的映射并不唯一,可能会多对一,因此需要在IP层利用软件进行过滤。
4.6.3 IGMP协议和组播路由算法
需要利用IGMP使路由器知道组播成员的信息。连接在局域网的组播路由器还必须和因特网的其他组播路由器协同工作,以便最小代价传输。因此需要使用组播路由选择协议。
ICMP应视作TCP/IP的一部分,工作分为两个阶段:
- 某个主机加入新的组播组,该主机向组播组的组播地址发送一个IGMP报文,声明成为该组成员,本地组播路由器收到IGMP后将组成员关系转发给其他组播路由器。
- 组成员关系是动态的,需要组播路由器周期性探寻本地局域网的主机,以便摘掉这些主机是否还是组的成员,只要有一个主机响应,则证明此组活跃,但一个组在多次探寻后依然没有响应,则不再将此组成员关系转发给其他组播路由器。
组播路由选择实际上就是找出以源主机为根节点的组播转发数。
硬件多点传送的网络实现因特网组播的三种路由算法:
- 基于链路状态的路由选择
- 基于距离-向量的路由选择
- 可建立在任意路由器协议之上的协议无关组播(PIM)
4.7 移动IP
4.7.1 概念
支持移动性的因特网体系结构和协议共同称为移动IP。是为了满足移动节点的连接性设计的。以固定的网络IP地址阔约不同网段的漫游功能。为了保证基于IP的网络权限在漫游过程中不发生改变,移动IP的目标是把分组自动投递给移动节点,一个移动节点是把其连接点从一个网络或子网改变到另一个网络或子网的主机。
使用移动IP,一个移动节点可以在不改变其IP地址的情况下改变其驻留位置。
基于IPv4的移动IP定义三种功能实体:移动节点、归属代理(本地代理)、外埠代理(外部代理),归属和外埠统称为移动代理。
- 移动节点:具有永久IP地址的移动结点
- 本地代理:网络环境中一个移动节点的永久居所称为归属网络,归属网络中代表移动节点执行移动管理功能的实体叫归属代理(本地代理),根据移动用户的转交地址,通过隧道技术转交数据包。
- 外部代理:在外部网络中帮助移动节点完成移动管理功能的实体。
移动IP和移动自组网络不同,使漫游的主机可以用多种方式连接到因特网。
- 移动IP的核心网络功能是基于在固定互联网中一直在使用的各种路由选择协议。
- 移动自组网络是将移动性扩展到无线领域的自治系统。
动态IP是通过DHCP分配的,移动IP未必动态。
4.7.2 移动IP的通信过程
每个移动节点除了本地地址还需要一个本地代理维护当前位置,这就需要转交地址标识现在的位置并进行路由选择。本地地址和当前转交地址的联合称为移动绑定,简称绑定。当移动节点获得新的转交地址,通过绑定向本地代理进行注册,以便让本地代理了解当前位置。
- 移动节点在本地网,按TCP/IP通信(固定地址)
- 漫游到外地网络,则使用固定IP进行通信,但需要向本地代理注册当前的位置地址(即转交地址)
- 本地代理接受地址注册后,构建通向转交地址的隧道,将截获的发给移动节点的IP分组通过隧道送到转交地址处。
- 在转交地址处解除隧道封装,恢复原始IP分组,送到移动节点。
- 移动节点在外网通过外网的路由器或者外代理向通信对端发送IP数据包。
- 移动节点来到另一个外网,只需要向本地代理更新注册的转交地址即可继续通信。
- 移动节点回到本地网,则向本地代理注销转交地址,回到传统的TCP/IP通信
4.8 网络层设备
4.8.1 路由器的组成和功能
路由器是一种具有多输入输出端口的专用计算机,任务是连接不同的网络,完成路由转发。多个逻辑网络(广播域)互联必须使用路由器。路由器也可以作为最基础的包过滤防火墙。
当源主机向目标主机发送数据报,路由器先检查源主机和目标主机是否连接在同一网络上,如果是,则直接交付,否则按照转发表发往下一跳,进行间接交付。
路由器可以连接不同的LAN、不同的VLAN、连接不同的WAN、连接不同的LAN和WAN。路由器隔离了广播域。
结构上:路由器由路由选择和分组转发两部分构成。是网络层设备,实现了下三层。
一个存储转发设备实现了某一层的功能,则可以互联两个该层次上不同协议的网段。如:网桥实现了物理层和数据链路层,可以互联两个物理层和数据链路层的不同网段,但中继器实现物理层却不能互联两个物理层不同的网段(中继器属于直通设备,不能存储转发)。