一:概述
网络层功能:在数据链路层的支持下,将报文分组从源节点传输到目的节点
报文分组:
- 一份完整的信息称为一个报文
- 报文分组简称“分组”,它是网络层的协议数据单元(NPDU)
- 分组交换技术将报文划分为若干个较小的格式化信息单独独立传输,这样的格式化信息单位称为报文分组
- 分组的一般格式:
- 分组作为数据帧的数据部分
网络层为运输层提供服务,它常常是通信子网的边界。 网络层向运输层提供的服务应具有以下特点:
- (1)服务与通信子网的技术无关。
- (2)通信子网的数量、类型和拓扑结构对运输层透明。
- (3)运输层得到的网络地址应该采用统一的编码方式,即使跨越了多个局域网和广域网时也是如此。
网络层协议涉及的主要内容:
- 网络服务
- 分组格式
- 路由选择
- 拥塞控制
- 异构网络互联
- 网络安全
二:虚电路和数据报
分组交换技术:
- 为了提高信道利用率,1964年Baran首次提出分组交换的概念,并于1969年首次在ARPNET上采用分组交换技术。
- 分组交换的基本原理:将一份完整的报文划分为若干个分组,每个分组以存储/转发方式独立的从源结点传输到目的结点,目的结点收到这些分组重新组装成原报文。
- 分组交换技术特征:化整为零,存储转发
- 优点:
- 使多路数据能够复用一条链路,提高链路的利用率。
- 有利于差错控制
- 有利于安全性
- 缺点:当网络拥塞时,会导致分组传输延迟增加,对流媒体影响较大
分组交换技术的两种实现方式:虚电路和数据报
2.1:虚电路
面向连接服务的虚电路服务:
-
面向连接服务就是在数据交换之前,必须先建立连接,当数据交换结束后,则应该终止这个连接。由于面向连接服务和电路交换的许多特性相似,因此面向连接服务在网络层中又称为虚电路服务
-
“虚”的意思是虽然在两个服务用户的通信过程中没有自始至终都占用一条端到端的完整物理电路, 但在交换网各个节点中预先申请的资源,从而好像占用了一条完整的物理电路,这些资源连接起来构成了一条虚拟的电路连接。
虚电路工作原理:设:主机HA要向HC发送数据。
- 首先主机HA向HC发一虚呼叫(虚电路连接请求),该虚呼叫选择一条 适当的路径传送到Hc,记下沿途所经过的路径作为虚电路,如HA-A-E-BC-Hc,并给其赋一个虚电路号VC1。
- 如果沿途所经过的节点及Hc准备就绪,则Hc发一响应给HA ; HA收到该响应,则虚电路VC1已建立完毕。虚呼叫要向沿途所经过的节点提出请求, 任一节点拒绝请求(由于资源不足),均导致虚电路建立失败。
- HA和HC的数据交换必须通过该虚电路进行。
- 数据交换完毕,拆除虚电路,释放虚电路占用的资源。
虚电路的特点:
- 通信前,发送方和接收方之间必须建立连接(虚电路),所以虚电路是面向连接的网络服务。
- 虚电路只是一种逻辑电路,而不是真正的物理电路。报文分组在虚电路上传输不像在物理电路上那样中畅通无阻,而是要经过节点的“存储转发”。
- 一旦虚电路建立完毕,所有分组必须经过该虚电路进行。因此,虚电路能够保证分组的顺序接收
- 仅当建立虚电路时需要源/目的节点地址,数据分组只需分配一个虚电路号而无需携带源/目的节点地址。
虚电路中的复用:一条链路上允许建立多个虚电路,下图VC1和VC2共同复用了链路BC
2.2:数据报
无连接服务的数据报服务
- 在无连接服务的情况下,两个实体之间的通信不需要先建立好一个连接,因此其下层的有关资源不需要事先进行预定保留,这些资源是在数据传输时动态地进行分配的。
- 网络中的交换机根据每个数据分组中的目的地址独立地为其临时确定路由。
数据报无需建立连接,每个报文分组携带完整的源/目的地址,独立的选择路径,通过不同的路径到达目的主机
数据报的特点:
- 无需建立连接就可传输报文分组,因此数据报称为非面向连接的网络服务
- 不同的分组可以通过不同的路由到达目的主机,先发出的分组未必先到;因此不能保证分组的顺序到达
- 每个报文分组携带完整的源/目的地址,独立的选择路径
2.3:虚电路与数据报的对比
数据报子网 | 虚电路子网 | |
---|---|---|
延时 | 分组传输延时 | 电路建立,分组传输延时 |
路由选择 | 每个分组单独选择路由 | 建立虚电路时选择路由,以后所有分组都使用该路由 |
状态信息 | 子网无需保存状态信息 | 每个结点要保存一张虚电路表 |
地址 | 每个分组携带完整的源/目的地址 | 每个分组分配一个较短的虚电路号 |
结点失败的影响 | 除了在崩溃时正在该结点处理的分组都丢失外,无其他影响 | 所有经过失效结点的虚电路都要被终止 |
拥塞控制 | 难 | 容易 |
三:路由选择概述
路由选择:
- 在通信子网内部,分组从一个网络节点转移到另外一个网络节点,直至到达目的用户所连接的网络节点, 分组在其中的转发过程称为路由选择转发过程。
- 路由选择通过路由表(routing table)来实现。路由表是根据一定的路由选择算法得到的,而转发表又是根据路由表构造出的。
- 路由选择协议负责搜索分组从某个节点到目的节点的最佳传输路由,以便构造路由表。
网络地址:
- 网络地址是主机或节点的标识,即给定一个网络地址在整个网络中唯一地标识一个主机或节点
- 网络地址是结构化地址,由网络号和主机号组成
IP地址:
- IP网络中的每台主机至少要分配一个IP地址,一台路由器需要分配多个IP地址(每个端口需分配一个IP地址),每个IP地址只能分配给一台主机或路由器。
- Internet上IP地址由网络信息中心(NIC)分配。
- IP地址32位,通常用带点的4个十进制数表示;如: 240.45.245.9。
IP地址结构:
- A类:共有27-2=126个网络,每个网络最多有224-2≈1.6×107台主机。
- B类:共有214-2= 16382个网络, 每个网络最多有216-2=65534台主机。
- C类:共有221-2≈200万个网络, 每个网络最多有28-2=254台主机。
- D类:用于组播。
- E类:保留。
IP地址分配
- 连接到Internet的每一个主机(计算机或路由器)至少有一个IP地址。
- IP地址是分配给网络接口的。
- 多归属主机可以有多个IP地址。
- 一个网络接口也可以分配多个IP地址。
- 网桥、Ethernet交换机、集线器Hub属于数据链路层设备, 使用MAC地址,不属于网络层设备,不分配IP地址。
特殊的IP地址:
- 全“0”:表示本机地址,仅当初始启动时使用,以后不再使用。
- 主机号全“1”:广播地址。例如,192.210.200.255表示192.210.200.0的所有主机。
- 主机号全“0”:表示网络号。例如,例192.254.252.0表示一个C类网络。
- 127.xxx.yyy.zzz:系统保留作为回路自测。发到127.xxx.yyy.zzz的分组实际上并不发送到网络 上,而是经过内部处理后又返回本机。
内部IP地址(私用地址,Internet的路由器不会转发目的地址为以下IP,即私用地址不能穿越内部网络边界。):
- A类:10.0.0.0 (1个网络)。
- B类:172.16.0.0 — 172.31.0.0(16个网络)。
- C类:192.168.0.0 — 192.168.255.0(256个网络)。
四:路由选择及其分类
路由选择:根据某种策略,选择一条到达目的主机的最佳路径。路由选择功能由路由器完成;对单个路由器而言, 路由选择实质上是选择最佳输出链路(端口),多个路由器协作选择一条最佳路由。
无论是虚电路,还是数据报都要进行路由选择。虚电路需要一次路由选择,数据报需要为每个分组选择路由。
路由选择分类:
- 静态路由:按照某种固定的规则进行路由选择,不随网络流量和拓扑结构变化而变化。
- 动态路由:根据当前拓扑结构和流量的变化来动态改变路由, 又称为自适应路由。
4.1:静态路由算法
4.1.1:扩散法(洪泛法)
基本思想:当节点收到一个分组后,向除进来的链路外的所有其他链路转发(扩散),其结果是至少有一个分组以最快的速度到达目的节点。
问题:扩散过程产生大量重复分组,导致网络无法运行。
解决措施:每个分组设置一个下跳数字段,每经过一个结点, 下跳数减1,当下跳数为0时,丢弃该分组。
4.1.2:固定式路由选择
基本思想:网络管理员为每个路由器配置固定路由表,固定路由表一旦生成,就不再改变,除非网络管理员重新配置。
优点:简单,路由算法开销小
缺点:不能适应网络流量和拓扑结构的变化
适用:小规模网络
4.2:动态路由算法
4.2.1:热土豆算法
基本思想:当节点收到一个分组后,选择一条输出队列最短的链路尽快的将其转发出去,而不管目的节点位于何方。
优点:提高链路的利用率。
缺点:盲目性。
改进:与固定式路由算法混合使用
- 首先根据固定路由算法选择可能的输出链路,并给这些链路赋上一定权值
- 再根据链路队列长度,赋上一定权值
- 选择这两个权值之和最小的链路
4.2.2:逆向自学习算法
基本思想:
-
每个节点保存一张转发表(路由表),该表主要字段包括:
-
初始时转发表为空
-
当数据包到达节点时:
- 将数据包的源地址视为转发表的目的地址;如果转发表存在该目的地址,则刷新该记录;如果转发表不存在该目的地址,则增加一条新记录
- 根据数据包的目的地址,查询转发表;如果找到,则从指定的输出端口转发;如果找不到,则广播
-
定期扫描转发表,清除过时的记录
4.2.3:距离向量法
距离向量路由算法 (D-V算法):
- 该算法最早在ARPANET中使用,后在Internet及Novell网的IPX中使用,即RIP协议。
- 基本思想:每个节点都保存一张动态路由表,路由表包括目的节点地址,最短距离、最佳输出链路。与固定式路由选择不同的是: 相邻结点之间定期交换路由信息(如每隔30秒),并根据最新 路由信息,刷新路由表。
- 初始化
- 当节点加入网络时,获取直接相连的链路情况(无需知道网络全局拓扑);
- 构建初始路由表,初始路由表中的目的节点仅包含直接相连的节点, “距离”值置为0;
- 将初始路由表发给直接相连的节点。
运行步骤:
- 初始化:路由器启动时,对每个直接相连的网络生成一个表项,hop数都为0。
- 路由交换:路由器周期性向相邻路由器广播自己的整个路由表。(交换信息是)
- 路由表更新:路由器每收到一个邻站的路由表,即更新自己的路由表。(假设K收到J的路由表)
- K不知道目的站,则加入
- 有通过J的更短路,则替换
- 原下站为J的距离有变化,则修改
D-V算法优缺点:
- 优点:由于仅相邻节点交换路由信息,所以运算量和交换的信息量较小
- 收敛速度慢,对网络变化需经若干周期才能作出反应。特别是对好消息反应快,对坏消息反应迟 钝
无穷计数问题的解决:
- 规定一个足够大的数作为∞ ,如RIP规定为16,缺点是限制了网络规模
- 水平分割法,即不允许将从相邻节点获得的路由信息再提供给该相邻节点
4.2.4:链路状态法
链路状态路由选择算法(L-S算法):
-
从1979年开始,ARPANET以及后来的Internet的内部网关协议由距离向量算法改为链路状态算法。
-
基本思想:所有节点相互交换路由信息,并根据最新路由信息刷新路由表。
-
算法描述:
- 发现邻居结点:当一个路由器启动以后,通过向每个端口发送特殊的HELLO分组来发现邻居结点,收到HELLO分组的路由器应返回一个应答来说明它的网络地址。
- 测量相邻链路开销:通过发送一个特殊的ECHO分组来实现,测量其往返时间,再除以2。
- 产生链路状态分组:每个节点实测所有相邻链路的开销,创建链路状态分组( L-S分组)
- 广播L-S分组:每个节点向其他所有节点广播自己的L-S分组。
- 刷新路由表:结点获得最新L-S分组后,用最短路径算法计算到其他结点的最短路由,并刷新路由表。
-
优点:对网络变化反应迅速(只需一个周期)。
-
缺点:广播L-S分组占用信道带宽大。
-
应用: Internet的内部网关协议采用L-S算法。
4.2.5:D-V和L-S算法的比较
D-V | L-S | |
---|---|---|
交换路由信息 | 定期 | 网络拓扑发生改变或定期 |
交换范围 | 相邻结点 | 全网 |
路由更新 | 缓慢 | 迅速 |
适用范围 | 变化缓慢的网络 | 变化较激烈的网络 |
五:路由协议简介
Internet的路由管理模式:
(1)AS内部:IGP,比如RIP、OSPF、IS-IS等;
(2)AS之间:EGP,最常用的是BGP;
(3)EGP通常是一种可达性协议。
5.1:路由信息协议(RIP)
- RIP采用D-V算法,用于小规模网络。
- 技术特点
- 距离:下跳数,允许对下跳数加权。
- 路由信息交换周期:30秒。
- 无穷计数问题:RIP选择16作为∞;为了加快收敛速度,RIP采用水 平分割技术。
- RIP消息交换:通过UDP协议传输,端口号为520。
5.2:开放最短路由优先协议(OSPF)
- OSPF采用L-S算法,是目前Internet的主要内部网关协议。
- 技术特点
- 距离:允许选择多种“距离”度量,如延迟,数据率,通信费用,下跳数等。
- OSPF支持区域概念。
- OSPF支持认证服务,防止发送假路由信息来愚弄路由器
5.3:边界网关协议(BGP)
- BGP采用改进的D-V算法,作为Internet外部网关协议。
- 技术特点
- 路由表中记录到达目的地的确切路由,而不是“距离”,从而解决“无穷计数”问题。
- 支持策略路由。
六:IP协议
6.1:IP概述
- IP协议是Internet体系结构的核心协议,该协议已成为连接异构网络的工业标准。
- IP提供非面向连接的数据报服务,每个IP分组长度≤64K字节,传输效率高,但不能保证分组可靠的,按序到达。
- IP协议包括IPv4和IPv6两个版本,本节主要介绍IPv4。
IP分组格式:
IP分组由IP报头和数据组成:
- 版本:4位,表示IP协议的版本号;4表示IPv4,6表示IPv6。
- 头部长度:4位,给出IP报头的长度,单位为字(32位);最小值为5(无任何选项),最大值为15(头部最大长度为60字节)。
- 服务类型:告诉路由器该IP分组想获得何种服务,包括优先级、延迟、吞吐量和可靠性要求。该字段共有8位:
- 前3位表示优先权。
- 中3位 (D、T、R)表示想获得的服务质量(延迟,吞吐量,可靠性)。
- 后2位保留
- 几乎所有路由器都忽略该字段。
- 总长度:表示整个IP分组长度,包括报头和数据部分;该字段16位,所以IP分组最大长度216-1 =65535字节( ≈ 64KB)。
- 标识:16位,用来标识一个分组,同一分组的不同分段具有相同的标识。
- 标志:3位。
- 第1位:保留
- 第2位: DF位(Don’t Fragment)。 若DF=1,则IP分组在传输中不允许分段,如目的主机从远方引导启动机器的映像文件,目的主机无能力重组分组。若DF=0 ,则允许分段。
- 第3位:MF位(More Fragment):若MF=0 ,则该分段是原分组的最后一个分段
- 分段偏移:表示分段在原分组中所处位置的偏移量,单位为8字节,起始偏移量为0。由于该字段为13位,所以一个分组最多有213 = 819 2个分段。
- 生命期:该字段限制IP分组在Internet中的生存期,通常用下跳数表示,组每经过一个路由器,则自动减1;当该字段为0时,则丢弃该分组,并向源节点发出ICMP警告信息。
- 协议:表示IP的上层协议,即IP分组将递交给哪一个高层协议处理(如TCP或UDP)。
- 头部校验和:将头部所有16位比特字段按二进制补码累加,再取其结果补码,以便接收端对IP头部进行校验。该字段每经过一个路由器都要重新计算,因为至少“生命期”字段会改变。
- 源/目的地址:源节点和目的节点IP地址(各32位) 。
- 选项
- 安全:告诉路由器如何保证IP分组的安全性;例如,该分组不能经过某些路由器。
- 严格的源路径:以IP地址序列形式给出完整的源/目的路径,分组严格地按照此路径传输。
- 宽松的源路径:以IP地址序列形式给出到达目的节点必须经过的路由器,但也允许经过其他路由器
- 路由记录:告诉沿途经过的路由器将他们的IP地址加入到该选项中,以便接收端能够知道该分组经过哪条路由到达。
- 时间标记:类似“路由记录”,但除记录路由器的IP地址外,还要记录时间标记。
6.2:Internet控制协议
IP协议用于分组传输,Internet还需要一些控制协议,包括ICMP、 ARP、RARP等。
6.2.1:ICMP协议
ICMP用于报告IP协议运行过程中意外事件的发生,也用于网络测试。例如,一个网关不能为IP分组选择路由,或者不能递交IP分组,或者这个网关测试到某种不正常状态,则需要使用ICMP来通知源端主机采取措施,避免或纠正这类问题
为什么需要ICMP:
- 数据报在传送中可能会遇到各种异常;
- IP层也需要控制功能(拥塞、差错控制)。
ICMP的作用:传递网络控制信息、提供差错报告。
问题:为什么要把传递网络控制信息、提供差错报告这两项功能合二为一?
- 控制和差错报文都是特殊报文。
- 差错报告与差错控制总是密切相关的。
ICMP的工作机制
- 路由器(主机)向其它路由器(主机)发送ICMP报文。
- 只能向源端报告差错,不能向中间路由器报告差错。
这些ICMP消息封装在IP分组中传输,其IP首部“协议”域指明为ICMP报文(代码为1)。因此, ICMP消息可视为“IP控制分组”。
ICMP与IP同层,只是IP软件中的一个模块
- 功能不独立,只是IP的补充
- 不是上层协议赖以存在的基础
ICMP消息主要有12种, ICMP通常由某个监测到IP分组中错误的站点产生。主要ICMP消息:
- 目的不可达:当目的路由器无法找到目的主机,或者DF为“1”的分组经过MTU较小的网络而无法传输时,返回该消息。
- 超时:当分组的生命期减至0时,则自动丢弃该分组,并返回该消息。
- 参数出错:当IP头部参数出现非法值时,返回该消息,说明发送主机或路由器软件有问题。
- 源抑制:源主机收到该消息后,则降低发送速度,以减轻网络拥塞。事实上,该消息几乎并未使用,因为当网络拥塞时,再发送“源抑制”分组等于火上浇油。Internet的拥塞控制主要由传输层的TCP完成。
- 重导向:当某路由器发现某分组的路由选择有问题时,向源主机返回该消息。
- 回声请求与应答:这两个消息用于测试目的地址是否可达和工作正常。
- 时间戳请求与应答:用于记录探测分组的发出时间和到达时间,通过计算时间差,得到分组的当前延迟。
6.2.2:ARP协议
IP地址是网络层地址,链路层无法识别。当知道目的IP地址,目的路由器必须获得对应的目的MAC地址,才能构造MAC帧发送到目的主机。
ARP协议的功能:将IP地址转化为相应的MAC地址。
总结:广播请求,单播回应
提高ARP的效率:
- 设置ARP cache,存放最近解析出来的IP/MAC对。
- 请求解析时,把自己的IP/MAC地址也放在报文中
- 收到ARP请求的所有主机都缓存其中的IP/MAC
- 主机入网时,主动广播它的IP/MAC
ARP中软状态使用(缓存信息失效的问题)
问题:一条IP/MAC映射记录失效怎么办??
解决:使用超时机制(20分钟),如果在超时到来前都没有使用某条记录,则删除该记录。
优势:
- 无需专门的通知机制;
- 对硬件可靠性要求低。
缺陷: 可能会‘反应迟钝’。
6.3:IP子网
子网:
- 将一个网络(A,B或C类)内部分割成若干部分,每个部分称为一个子网。
- 子网对外部不可视。
子网划分:
- 为什么进行子网划分?
- 充分利用IP地址
- 便于网络管理
- IP地址不足的原因:主机号浪费严重,而网络号又严重缺乏
- 解决思路:从IP地址的主机部分“借”位,并把它们用在网络部分
IP地址主机号进一步划分为:子网号 + 主机号:
可以让一个网络号跨越多个物理网络,虽然128.10.0.0这个网络号中可以包含多个物理网络,但是互联网的其余部分都只能看到128.10.0.0这个“大网”
引入子网划分后,IP地址格式有了新的含义: 网络号 + 主机号 -> 互联网部分 + 本地部分
6.4:子网编址模式和子网掩码
子网掩码:
- IP地址由两部分组成:网络号+主机号
- 在不进行子网划分的情况下,每个网络(A、B或C类)都有一个缺省网络识别方式,分别是:
- A类:255.0.0.0
- B类:255.255.0.0
- C类:255.255.255.0
问题:如何指示网络部分?
解决:使用子网掩码。每一个使用子网的网点都选择一个32位的位模式。若位模式中的某位为‘1’,则对应IP地址中的某位为网络地址中的一位,否则为主机号中的一位。
6.5:子网划分
如何进行子网划分:子网划分的实质是用若干位主机号来标识子网号。子网数目越多,则每个子网内的主机数目越少;子网数目越少,则每个子网内的主机数目越多。子网划分步骤:
- 确定子网数目和子网内的最大主机数目(路由器的每个端口对应一个子网)
- 确定用几位主机号来标识子网号
- 选择子网号,配置子网掩码、网关地址。
子网划分举例:
例一:等长子网划分
划分方法:使用3位子网号,掩码255.255.255.224
例二:变长子网划分(VLSM: Variable Length Subnet Mask)
6.6:超网编址和CIDR
问题:若某单位有800台主机,分配一个C类地址不够,分配一个B类地址浪费过大或得不到B类地址,怎么办?
解决:分配4个C类地址
问题:如何看待这4个C类地址?若作为4个普通的C类网,则路由表的表项增大。在路由表中如何表示这些网络,以避免路由表的膨胀?
解决思路:集合多个小的,变成一个大的(与子网编址正好相反)
方法:分配一块连续的C类地址来代替B类地址块的大小是2的幂次
无类型域间选路CIDR(Classless Inter-Domain Routing):
把一块相邻的C类地址压缩成一个表项
比如:某学院16个C类网号 202.196.48.0到202.196.63.0,表示为(202.196.48.0,16)
CIDR表示方式:
无类型:抛弃了A、B、C类地址的概念
表示方式:CIDR规定(RFC1517—1520):把所有IP地址统一看待,不分类别,用两个值来说明一个地址块:
6.7:网络地址转换(NAT)
网络地址转换:NAT:Network Address Translation
作用:
- 解决IP地址不足,多台内部机器共享一个外部IP地址
- 出于安全考虑,隐藏内部IP地址
说明:
- 使用保留地址可加强网络安全
- 使用保留地址的设备要接入Internet,必须使用某种地址转换技术
NAT工作原理:修改分组源地址(出去的分组)或目的地址(进入的分组)
6.8:动态主机配置协议(DHCP)
DHCP,即Dynamic Host Configuration Protocol,其前身是是BOOTP(引导程序协议)
为什么要DHCP:
- 网络的用户不固定,反复设置IP信息,太麻烦
- 网络太大,没法管理IP分配
DHCP可以简化网络管理工作
- 动态配置管理主机的地址信息
- 作用是在TCP/IP网络中向主机提供配置信息
采用Client/Server模式:由DHCP Client向DHCP Server提出配置申请,DHCP Server根据策略返回相应配置信息。
DHCP协议特点:
- 整个配置过程自动实现,DHCP Client端无需配置
- 所有配置信息由DHCP Server统一管理
- 通过IP地址租期管理,提高IP地址的使用效率
- 采用广播实现报文交互,报文一般不能跨网段,如果需跨网段,需要使用DHCP Relay技术实现
- 发现阶段,即DHCP客户机寻找DHCP服务器的阶段。因为DHCP服务器的IP地址对于客 户机来说是未知的,所以DHCP客户机以广播方式发送DHCP DISCOVER发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。
- 提供阶段,即DHCP服务器提供IP地址的阶段。在网络中接收到DHCP DISCOVER发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向 DHCP客户机发送一个包含出租的IP地址和其他设置的DHCP OFFER提供信息。
- 选择阶段,即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP 服务器向DHCP客户机发来的DHCP OFFER提供信息,则DHCP客户机只接收第一个收到的 DHCP OFFER提供信息,然后它就以广播方式回答一个DHCP REQUEST请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的 DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。
- 确认阶段,即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP REQUEST请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ACK确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将获取到的IP地址与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。
- 重新登录。以后DHCP客户机每次重新登录网络时,就不需要再发送DHCP DISCOVER 发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP REQUEST请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个 DHCP ACK确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCP NAK否认信息。 当原来的DHCP客户机收到此DHCP NAK否认信息后,它就必须重新发送DHCP DISCOVER发现信息来请求新的IP地址
- 更新租约。DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后 DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。 DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP 租约的信息。
DHCP协议分配地址的优先级:
- DHCP Server数据库中与该DHCP Client的MAC地址静态绑定的IP地址
- 该DHCP Client曾经使用过的地址
- 顺序查找DHCP地址池中可供分配的IP地址,最先找到的可用IP地址,优先级高
- 如果未找到可用的IP地址,则依次查询超过租期、发生冲突的IP地址
- 找不到则报告错误
DHCP示例1:
DHCP事例2:
IP单播与多播的过程比较:
- 网际组管理协议(Internet Group Management Protocol,IGMP)是在组播环境下使用的协议,它位于网际层。
- IGMP使用IP数据报传递其报文(即IGMP报文加上IP首部构成IP数据报),但它也向IP提供服务。
- IGMP在主机和它直接连接的路由器间工作。主机使用IGMP消息通告本地的组播路由器它想接收组播流量的组播组地址。
主要的组播路由协议:
- 根据IGMP维护的这些组播组成员关系信息,运用一定的组播路由算法构造组播分布树进行组播分组转发,主要包括DVMRP、MOSPF、CBT、PIM-DM、PIM-SM等。
- 组播路由协议负责构建组播分组的传输路径。组播路由选择相当复杂,具体原因如下。
- (1)即使网络拓扑不发生变化,但由于某个应用程序加入或离开了一个组播组,组播路由都会发生变化。
- (2)组播转发要求路由器不仅要检查目的地址,而且还要检查源地址,以便确定何时需要复制组播数据报和转发组播数据报副本。
- (3)组播数据报可以由不是组播组成员的主机产生,并且可能通过没有任何组成员的网络。
IGMP(Internet Group Management Protocol)协议的基本内容:
- 定义了一个组地址。每个组代表一个或多个发送者与一个或多个接收者的一个会话。
- 接收者可以用多播地址通知路由器,它希望加入(或退出)哪个多播组。
- 发送者使用多播地址发送分组,无需了解接收者的位置信息与状态信息。
- 路由器建立一棵从发送者分支出去的多播传递树,这棵树延伸到所有的、其中至少有一个IP多播成员的网络中。利用这棵传递树,路由器把多播分组转发到有多播组成员的网络中。
IGMP的操作:
- 加入一个组
- 继续组成员关系
- 监视组成员的关系
- 离开一个组
6.9:IP移动性
解决的方法:
- 让路由器来处理:路由器通告移动者在什么地方
- 通过一条特殊的路由来通告移动者在什么地方
- 终端系统没有改变
- 让终端系统来处理:
- 间接选路: 通信者发给移动者的信息,首先通过归属代理,然后转发给移动者。
- 直接选路: 通信者得到移动者的转交地址,直接联系
移动性:注册
结果:
- 外部代理知道了移动者
- 归属代理知道了移动者的位置
通过间接选路:
- 移动者用了两个地址:
- 永久地址: 由通信者使用 (移动者的位置对通信者来说是透明的)
- 转交地址: 由归属代理使用,来向移动者转交数据
- 外部代理的功能有时候可以由移动者自己来实现
- 三角通信: 通信者-归属网络-移动者,效率低下
- 假定移动者到了另外一个网络
- 要在新的外部代理中注册
- 新的外部代理要通告归属代理
- 归属代理更新移动者的转交地址
- 利用新的转交地址转发包
- 改变外部网络的透明性: 可以保持持续的连接
通过直接选路来实现移动性:
直接选路:
- 克服三角选路问题
- 对通信者不透明: 通信者必须从归属代理中知道转交地址
当再次移动时: - 锚外部代理: 第一个被访网络的外部代理
- 数据首先发送给锚外部代理
- 当移动者移动时: 旧的外部代理转发给新的外部代理
6.10:IPv6
1993年, IETF成立研究下一代 IP协议的IPNG工作组;1994年,IPNG工作组提出下一代IP协议的推荐版本;1995年,IPNG工作组完成IPv6的协议版本;1996年,IETF发起建立全球IPv6实验床6BONE;1999年,完成IETF要求的IPv6协议审定,成立IPv6论坛,正式分配IPv6地址,IPv6协议成为标准草案。
我国政府高度重视下一代Internet的发展,积极参与IPv6的研究与试验。2008年,北京奥运会成功地使用IPv6网络,我国成为全球较早商用IPv6的国家之一。 2008年 10月中国下一代 Internet示范工程CNGI正式宣布从前期的试验阶段转向试商用。目前我国下一代Internet示范工程CNGI已经成为全球最
大的示范性IPv6网络。
IPv6的主要特征:
- 新的协议格式
- 巨大的地址空间
- 有效的分级寻址和路由结构
- 有状态和无状态的地址自动配置
- 内置的安全机制
- 更好地支持QoS服务
IPv6用冒号十六进制表示法:
零压缩法:
IPv6地址的例子:21DA:0000:0000:0000:02AA:000F:FE08:9C5A
根据零压缩法可以进一步简化表示为:21DA:0:0:0:2AA:F:FE08:9C5A
IPv6分组结构:
为了提高数据报的转发速度,IPv6将IPv4数据报首部的部分选项内容放在了扩展首部中,这些内容仅由源节点和目的节点处理,中间节点不处理,从而减少了处理时间,大幅度提高了IP数据报的转发效率。
扩展首部包括逐跳选项、路由选择、分片、身份认证、载荷安全封装等多种信息。
IPv6数据报包括基本首部、扩展首部和数据等部分,其中扩展首部可选,IPv6数据报可以有0个或者多个扩展首部
- 版本:指明IP协议的版本号
- 通信流类型:用来区分不同的IPv6数据报的类型或者优先级,为视频或者音频等数据的传输提供支持。
- 流标签:流是指从一个源节点传送到某个目的节点的以某种方式相关联的数据报序列,如视频流或者音频流等多媒体数据。对于属于同一个流的数据具有相同的流标签;当路由器接收到具有相同流标签的数据报时采用相同的方式进行转发;这样,对于多媒体数据来讲,可以保证数据平稳地进行传输。
- 净荷长度:指明除基本首部以外数据报的长度,包括扩展首部和数据部分。
- 下一个首部:在存在扩展首部的情况下指出下一个扩展首部的类型;当没有扩展首部时与IPv4数据报首部的“协议类型”字段的含义相同,指出数据部分中的数据来自于的协议类型。
- 相当于IPv4数据报首部的TTL字段,用来限制数据报在网络上无休止地传输。
如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔的个人空间