OSI Network Layer

OSI层次网络层

关键词路径选择路由寻址

刻画了寻址和最优路径选择

这些存在于地理上分离的网络

1. 网络层概述

1.1. 网络层的责任

  • 网络层通过网络传递数据
  • 使用分层的寻址方案不同于水平的MAC寻址
  • 网段数据流控制
  • 减少拥塞 (Reduce Congestion)
  • 与其他网络连通

1.2. 面向连接的网络服务

面向连接 (Connection Oriented)在传输任何数据之前在发送方和接收方之间建立连接

面向连接类似的概念是电路交换 (Circuit Switching, CS) 但是两者不是一个空间的概念

  • 面向连接首先与接受者建立连接然后开始数据传输所有的数据依次通过同一个通道或者更常见的是通过同一个虚拟电路
  • 电路交换

1.3. 无连接网络服务

​ 在无连接网络服务 (Connectionless Oriented) 中是指通信双方不需要事先建立一条通信线路而是把每个带有目的地址的包报文分组送到线路上由系统自主选定路线每个包会被区别对待进行传输邮政系统是一个无连接的模式天罗地网式的选择路线天女散花式的传播形式IPUDP就是无连接协议的例子

和无连接网络类似的概念是**分组交换技术** (Packet switching technology)但是两者也不是一个空间的概念

  • 当数据包从源传递到目标时它们可以
    • 切换到不同的路径
    • 不正常到达
  • 设备根据各种标准确定每个包的路径有些函数可能因数据包而异

1.4. 网络设备-路由器

关于路由器与路由协议更详细的内容可以查看这篇文章

路由器的功能是

  • 物理地互连网段形成逻辑段 或者 互联网络

  • 根据IP地址做出逻辑决策

  • 确定最佳路径

  • 将数据包从传入端口切换到传出端口

2. IP 地址和子网

一个难蚌的相关协议

2.1. IP 数据报

  • 版本——4位

    • 指的是IP协议的版本
    • 目前的IP协议版本号为4IPv4
  • 首部长度——4位

    • 可表示的最大数值是15个单位 (一个单位为4字节) 因此IP的首部长度的最大值是60字节最小值是20字节
  • 服务类型——8位

    • 用来区分服务以获得更好的服务这个字段之前一直没有被人们使用
    • 区分服务Delay = 1 延迟小Throughput = 1吞吐量大Reliability = 1 质量比较高Cost = 1 最小代价
  • 总长度——占16位

    • 指的是首部和数据之和的长度单位为字节因此数据报的最大长度为65536字节总长度必须不超过MTU (Maximum Transmission Unit, 最大传输单元)
  • 标识 (identification)——16位

    • 它是一个计数器用来产生数据报的标识
  • 标志——3位

    注意发送数据报过大就要对其数据报分片处理每一个分片都会含有一个标识IP地址 + 标识到达目的地要对其所有的分片进行重新组装

    • 最高位为0标志字段MF (More Fregment), MF = 1表示后面还有分片MF = 0 表示最后一个分片
  • 片位移——13位

    • 指出较长的分组在分片之后某片在原分组中的相对位置片位移以8个字节为偏移单位
  • 生存时间——8位

    • 记为TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值
  • 协议——8位

    • 指出此数据报携带的数据使用何种协议TCP协议还是UDP协议
    • 以便目的主机的 IP 层将数据部分上交给哪个处理过程
  • 首部检验和——16位

    • 只检验数据报的首部不包括数据部分这里不采用 CRC 检验码而采用简单的计算方法
  • 源地址和目标地址——8位

    • 源地址数据向外发送发送机器本身的IP地址也成为逻辑地址
    • 目的地址数据具体要发送目标及其的IP地址

2.2. IP地址

2.2.1. IP 地址组成

IP地址由32位二进制数组成为便于使用常以XXX.XXX.XXX.XXX形式表现每组XXX代表小于或等于255的10进制数该表示方法称为点分十进制IP地址由两部分组成

  • 网络ID

  • 由**ARIN** (American Registry for Internet Numbers, 美国因特网号码注册中心) 分配

  • 标志设备连接到的网络

  • 可以由前三个八位中的一个两个或者三个识别出

  • 主机ID

  • 由**网络管理员** (Network Administrator) 分配

  • 标志了该网络中的被连接的设备

  • 可以由后三个八位中的一个两个或者三个识别出 (与网络ID互补)

2.2.2. IPv4 地址分类

IPv4 地址包括 ABCDE 五类

N表示NetworkH表示Host

A类IPv4地址 B类IPv4地址 C类IPv4地址 D类IPv4地址 E类IPv4地址
网络标志位 0 10 110 1110 11110
四个字节的含义 N.H.H.H N.N.H.H N.N.N.H N.N.N.N N.N.N.N
IP地址范围 0.0.0.0 ~ 127.255.255.255 128.0.0.0 ~ 191.255.255.255 192.0.0.0 ~ 223.255.255.255 224.0.0.0 ~ 239.255.255.255 240.0.0.0 ~ 247.255.255.255
可用IP地址范围 1.0.0.1 ~ 127.255.255.254 128.0.0.1 ~ 191.255.255.254 192.0.0.1 ~ 223.255.255.254
是否可以分配给主机使用
网络数量 126 ($2^7-2$) 16384 ($2^{14}$) 2097152 ($2^{21}$)
每个网络中可容纳主机数 16777214 ($2^{24}-2$) 65534 ($2^{16}-2$) 254 ($2^8-2$)
适用范围 大量主机的大型网络 中等规模主机数的网络 小型局域网 留给IAB (Internet体系结构委员会)使用组播地址 保留仅作为搜索Internet的实验和开发用
备注 0.0.0.0为特殊地址表示本网主机 255.255.255.255为特殊地址用于定向广播

2.2.3. 主机数量

  • 不同类别的主机最大数量是不同的
  • A类网络中最多有 16,777,214 个主机 ($2^{24}–2$)
  • B类网络中最多有 65,534 个主机 ($2^{16}–2$)
  • C类网络中最多有 254 个主机 ($2^8–2$)
  • 每个网络中的第一个地址即主机号全为0是预留的网络地址表示本机所连接的网络地址
  • 最后一个地址即主机号全为1预留的用于表示所有主机

2.2.4. 预留地4址

  • 网络地址

  • 主机号部分地址全为0

  • A类网络地址实例: 113.0.0.0

  • 网络中的主机只能在网络号相同的时候与其它主机直接通讯

  • 广播地址

  • 用于给该网络中所有设备发送数据

  • 广播IP地址是主机号全为1的地址

  • B类地址示例: 176.10.255.255

  • 受限网络地址255.255.255.255

2.2.5. IP寻址

私有地址空间

有一些IP地址范围预留给私有IP地址空间下面是IPv4地址下全部的私有IP地址空间

  • 10.0.0.0 ~ 10.255.255.255
  • 172.16.0.0 ~ 172.31.255.255
  • 192.168.0.0 ~ 192.168.255.255

为什么有了 IP 地址还要用 MAC 地址?

① IP地址一般情况下容易修改和变动具有随意性不能在网络上固定标识一台设备

② MAC地址一般情况出厂时由厂家烧录到网卡中不容易修改在局域范围内容易唯一定位一台设备

③ 从拓扑结构和分层上分析IP地址属于网络层主要功能在广域网范围内路由寻址选择最佳路由而MAC地址在网络接口层要形成适合于网络媒体上传输的数据帧

注意标识一个设备的三种方式① 域名访问www.baidu.com应用层② 设备的IP地址访问网络层③ 设备的MAC地址在局域网当中唯一标识该设备实际不用其访问在网络接口层具有固定的特性不易发生紊乱现象

参考文章: IP协议及IP数据包详解

IP地址耗尽 和它的解决办法 :

1981年IETF定义了32位IP地址的IPv4随着互联网的发展网络位置IPv4渐渐被消耗殆尽虽然当前的网络地址转换无类别域间路由等技术可延缓网络位置IPv4匮乏之现象但为求解决根本问题从1990年开始互联网工程工作小组开始规划IPv4的下一代协议除要解决即将遇到的IP地址短缺问题外还要发展更多的扩展为此IETF小组创建IPng以让后续工作顺利进行

1994年各IPng领域的代表们于多伦多举办的IETF会议中正式提议IPv6发展计划该提议直到同年的11月17日才被认可并于1996年8月10日成为IETF的草案标准最终IPv6在1998年12月由互联网工程工作小组以互联网标准规范RFC 2460的方式正式公布

  • NATNetwork Address Translation, 网络地址转换

  • CIDRClassless Inter-Domain Routing, 无类别域间路由

  • IPv6Internet Protocol Version 6, 互联网协议

2.3. 子网

网络管理员有时候需要把网络划分成更小的网络子网 (subnet)来提供额外的灵活性

从主机号的地址域借了几位用于表示子网地址域

2.3.1. 子网基础

  • 子网是网络的小划分

  • 提供寻址的灵活性

  • 子网地址通常由网管分配

  • 子网减少了广播域

2.3.2. 子网的借位

子网的借位指的是从主机位中借几位出来作为子网位$N + H \rightarrow N + S + H'$

为什么至少要借两位

取一位的话无法区分 subNetIDmasterNetID如果你只借了一位来构造子网那么你只有一个网络号0以及广播号1

主机域大小 最多借位
Class A 24 22
Class B 16 14
Class C 8 6

2.3.3. 副产品浪费的地址

我们必须在需要的子网数量可接受的每个子网中主机的数量和导致的地址浪费中保持平衡

以C类网络为例

借的位数 构造的子网数量 每个子网中主机的个数 主机的总个数 利用率
2 2 62 124 49%
3 6 30 180 71%
4 14 14 196 77%
5 30 6 180 71%
6 62 2 124 49%

构造子网的数量 = $2^{借的位数}−2$ 注意要去掉全为 0 的网络号和全为 1 的广播地址

2.3.4. 子网掩码

子网掩码 (subnet mask) 决定了我们用多少位来构建网络以及多少位描述主机地址

特殊地我们有

  • A类 IP 地址的子网掩码: 255.0.0.0

  • B类 IP 地址的子网掩码: 255.255.0.0

  • C类 IP 地址的子网掩码: 255.255.255.0

一般地我们有

  • 含子网的子网掩码: 与主机位对应的都为0与网络位和子网位对应的都为1

3. 网络层设备

在这里网络层设备指的就是路由器

关于路由器与路由协议更详细的内容可以查看这篇文章

  • 路由器的功能是路径选择更详细地说是基于链路带宽距离延迟等等因素来选择传递数据包到目的地的下一个路径

3.1. IP 地址与路由器

  • IP 地址被应用在软件层面用于指出设备所在的网络

  • 路由器连接到网络每一个网络必须有一个独特的网络号使得路由能成功地连接

  • 独特的网络号包含于IP地址中被分配给每一个连接到该网络的设备

3.2. 路由接口

​ 一个路由器通过接口连接到网络接口也可能指IP路由 (IP Routing) 中的一个端口每一个接口都有一个独一无二的网络地址

​ 举例如下

3.4. 路由功能

以下图为例

  • 剥离框架中的数据链路报头数据链路报头包括来源 MAC 地址和目的 MAC 地址

  • 检查网络层地址来决定目的地网络

  • 查询它的**路由表** (Routing Table) 来决定使用哪一个接口来发送数据使得数据可以到达目的地网络

  • 通过B1接口发送数据路由器会将数据封装在合适的数据链路框架(帧)中

3.6. IP地址分配

这针对的是网络中的每一个节点不仅仅是路由器

  • 静态地址分配

    • 给每一个设备配置一个IP地址

    • 但缺点也很明显需要保留非常细致的记录以避免使用重复的IP地址

  • 动态地址分配

    • RARP (Reverse Address Resolution Protocol, 反向地址转换协议)

    • BOOTP (Bootstrap Protocol, 引导程序协议)

    • DHCP (Dynamic Host Configuration Protocol, 动态主机配置协议): 这是最常使用的

    • etc.

4. ARP 协议

ARP (Address Resolution Protocol, 地址解析协议)

4.1. 作用

​ 值得注意的是发送方的设备必须同时有有目的设备的IP地址和MAC地址才能与目的设备进行通讯ARP 使得一台电脑可以获取与一个IP地址相关的MAC地址

4.2. ARP操作

  • 发送设备广播询问同一网段下的所有设备的MAC地址 (请求)

  • 所有的设备进行IP地址匹配 (检查)

  • 如果某一设备发现自己的IP地址符合请求报文中的IP地址就对应主机回复自己的MAC地址 (应答)

  • 发送设备将该IP地址和物理地址存入本机ARP缓存中并保留一定时间下次请求时直接查询ARP缓存以节约资源(ARP缓存表中每个条目具有一定的生命周期) (缓存)

​ 我们不难发现ARP 是建立在网络中各个主机互相信任的基础上的局域网络上的主机可以自主发送ARP应答消息其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存由此攻击者就可以向某一主机发送伪ARP应答报文使其发送的信息无法到达预期的主机或到达错误的主机这就构成了一个ARP欺骗

4.3. 网际通讯

一个平凡的问题是怎么与不在一个物理网段的设备通讯

有两种常见的方法

  • 默认网关 (Default Gateway)
  • 默认网关是连接来源主机所处的网段的路由接口的IP地址
  • 为了让一个设备可以给其它网段上的设备发送数据来源设备将数据发送到默认网关
  • 代理 ARP (Proxy ARP)
  • 代理ARP是ARP的一种变化形式
  • 这种情况下来源主机没有配置默认网关 (有较大的局限性)

5. 路由与被动路由协议

5.1. 网络协议操作

5.2. 被动路由协议

什么是被动路由协议 (Passive Route protocol)

通俗地说可路由表示这个协议的信息包格式能被路由器接受

  • 给网络层提供帮助的协议被称为被动 (routed) 路由协议或可路由 (routable) 协议
  • IP是一个网络层协议因此它可以被互联网发送

下图展示了访问可路由协议的步骤

5.3. 不可路由协议

什么是不可路由协议

通俗地说不可路由表示这个协议的信息包格式不能被路由器接受

  • 不可路由协议不支持网络层

    不得不提到网路层的一个任务就是进行网络之间的通讯可以认为是 主机到主机 的通讯对比之下传输层的重大任务就是 进程到进程 的通讯

  • 其中最常见的不可路由协议是NetBEUI (NetBios Enhanced User Interface, 网络BIOS扩充用户接口)

    • NetBEUI 是一个小高效的协议但只能在一个网段上运行

5.4. 路由协议

路由 (routing) 协议决定了被动路由 (routed) 协议前往目的地的路径

用于路由器之间的协议以便它们可以动态地获知路由信息并将它们添加到路由表中

5.5. 路由协议的分类

路由协议可以分为静态路由和动态路由也可以分成 DVP (这就是大名鼎鼎的 Bellman-Ford-Fulkerson 算法) 和 LSP (这也是大名鼎鼎的 Dijkstra 的 SPF 算法)

要将 路由协议的动静态IP地址分配的动静态 区别开来

5.5.1. 静态和动态

  • 静态路由:
    • **网关**手动将路由信息输入路由器
  • 动态路由:
    • 路由器可以联机 (on the fly) 交换彼此信息
    • 使用如下的路由 (routing) 协议来更新路由信息
      • RIP, IGRP, EIGRP, OSPF
      • 上述协议会在下面有详细介绍

静态路由VS动态路由

  • 静态路由:
    • 隐藏了部分互联网
    • 测试网络中某个特定的链接
    • 当只有一条路径到达目的网络时便于维持路由表
  • 动态路由:
    • 维持路由表
    • 定时更新路由信息
    • 基于路由 (routing) 协议共享路由信息
    • 路由器可以适应变化的网络条件

5.5.2. 动态路由的 IGP 和 EGP

  • IGP (Interior Gateway Protocols, 内部网关协议)

    • RIP, IGRP, EIGRP, OSPF (下文会有介绍)

    • 用于自治系统管理局域网中的路由器校园网公司内网……

  • EGP (Exterior Gateway Protocols, 外部网关协议)

    • EGP, BGP (Border Gateway Protocal, 边界网关协议)

    • 是一种在自治系统的相邻两个网关主机间交换路由信息的协议

下图展示了 EGP 和 IGP 的直观区别

pic25

5.5.3. DVP 和 LSP

  • DVP (Distance Vector Protocol, 距离矢量协议)

    RIP 和 IGRP 都算是典型的 DVP DP算法

    • 相邻的视角看网络拓扑
    • 路由器之间添加距离矢量
    • 周期性频繁的更新
    • 复制一份路由表传给相邻路由器
  • LSP (Link State Protocol, 链路状态协议)

    OSPF 算是典型的 LSP (朴素的贪心算法)

    • 了解整个网络拓扑
    • 计算去其它路由的最短路径
    • 由事件触发更新
    • 把链路状态路由的更新信息发给其它路由

5.6. 常见的路由协议

5.6.1. RIP

RIP (Route Information Protocol, 路由信息协议) 是基于距离矢量算法内部网关路由协议利用跳数来作为计量标准在带宽配置和管理方面要求较低主要适合于规模较小的网络中也是目前最受欢迎的路由协议

  • 跳数hop是唯一的度量标准

    • 最大跳数为15

    • 每30秒更新一次

    • 不总是选择最快路径

    • 产生很多网络拥塞

  • RIP v2 是 RIP v1的一个很重要的改进版本

5.6.2. IGRP & EIGRP

IGRP (Interior Gateway Routing Protocol, 内部网关路由选择协议) & EIGRP (Enhanced Interior Gateway Routing Protocol, 增强内部网关路由选择协议) 是基于距离矢量算法内部网关路由协议且都是思科 (Cisco) 专利

  • 综合以延迟带宽负载可靠性为度量标准

    • 最大跳数为255

    • 每90秒更新一次

  • EIGRP 是 IGRP的进阶版, 混合了路由routing协议

5.6.3. OSPF

OSPF (Open Shortest Path First, 开放最短路径优先) 是基于链路状态协议内部网关路由协议

  • 综合以代价速度可靠性安全性为衡量

  • 由事件触发更新

7. VLSM

什么是 VLSM (Variable Length Subnet Mask, 可变长子网掩码)

  • VLSM 指的是允许一个自治系统使用不同的子网掩码
  • 与之相对的概念是有类路由一个网络只能使用一个子网掩码

7.1. VLSM概述

  • 有了VLSM网管可以在少量主机的网络上使用长子网掩码大量主机的网络上使用短子网掩码

  • 如果路由协议允许VLSM

    • 在网络连接上使用一个30位的子网掩码255.255.255.252

    • 给用户网络一个24位的掩码255.255.255.0

    • 或者是22位的掩码255.255.252.0给有着近1000用户的网络

  • 优点:

    • 更有效地使用IP地址

    • 使用路由汇总的能力更强

  • 支持 VLSM 的路由协议:

    • OSPF

    • Integrated IS-IS (Integrated Intermediate System to Intermediate System, 集成化中间系统到中间系统)

    • EIGRP增强内部网关路由选择协议

    • RIP v2

    • 静态路由 (显然动态路由是不支持VLSM的)

过去建议不要使用第一个和最后一个子网但是我们可以在Cisco IOS ver12.0中使用子网 0

在 IOS ver12.0 中, 思科路由器默认使用子网 0

**router(config)#**no ip subnet-zero

7.2. VLSM的优势

  • VLSM 允许一个组织在一个网络地址空间使用不只一个子网掩码

  • 使用 VLSM 通常被理解为给子网划分子网可以用来使得寻址效率最大化

  • VLSM 是帮助缩小 IPv4 和 IPv6 之间差距的修正之一

7.3. 示例

  已知一个C类地址192.168.10.0/24 (表示前24位为网络号) 已经被分配珀斯悉尼新加坡分别有一个连接到KL的广域网珀斯需要60个主机KL需要28个主机悉尼和新加坡各需要12个主机

  为了计算VLSM子网和各自的主机数在地址范围中先分配最大的需求需求水平应该按照从大到小的顺序排列

步骤一

  珀斯需要 $60$ 个主机$6$因为这样有 $2^6-2=62$ 个可用主机地址因此第四个八位中的前两位将表示/26的扩展网络前缀剩余的 $6$ 位用来表示主机地址

  将VLSM用在地址192.168.10.0/24上

IP: 192.168.10.00hhhhhh /26

SM: 255.255.255.192 (11000000)

步骤二

  KL 需要 $28$ 个主机在 192.168.10.63/26 后下一个可用的地址是 192.168.10.64/26因为需要 $28$ 个主机所以需要 $5$ 位表示主机地址这样有 $2^5-2=30$ 个可用的主机因此需要 $5$ 位来表示主机$3$ 位用于/27的扩展网络前缀

  将VLSM使用在192.168.10.64/26上

IP: 192.168.10.010hhhhh /27

SM: 255.255.255.224 (11100000)

步骤三

  现在悉尼和新加坡各需要12个主机下一个可用地址从192.168.10.96/27开始因为需要12个主机所以需要4位表示主机地址$2^4-2=14$ 个可用地址因此4位代表主机4位用于/28的扩展网络前缀

  将VLSM用在192.168.10.96/27上

192.168.10.0110hhhh /28

255.255.255.240 (11110000)

步骤四

  现在给广域网分配链接地址记住每个广域网链接需要 $2$ 个IP地址下个可获取的子网是192.168.10.128/28因为每个广域网链接需要 $2$ 个网络地址所以 $2$ 位用于表示主机$2^2-2=2$ 个可用地址因此需要 $2$ 位表示链接$6$ 位表示 /30 的扩展网络前缀

  将VLSM用在192.168.10.128/28上

192.168.10.100000hh /30

255.255.255.250 (11111100)

result

pic33
  • 只有没有被使用的子网可以被进一步划分子网

  • 如果一个子网的任何地址被使用了那么这个子网不能再被划分

7.4. 路由聚合

路由聚合 (Route Summarization) 是让路由选择协议能够用一个地址通告众多网络旨在缩小路由器中路由选择表的规模以节省内存并缩短IP对路由选择表进行分析以找出前往远程网络的路径所需的时间的方法

CIDR (无类别域间路由)VLSM 的使用不仅防止了地址浪费还促进路由聚合

示例

计算

优点

  • 减少路由表条目数

  • 用于隔离拓扑的变化

  • 为了让聚合正确工作要仔细地在层次结构中分配地址使得汇总的地址分享同样的高位比特

  • VLSM 允许路由聚合通过将聚合完全基于左边共享的高位来增加灵活性即使网络是不连续的

8. ICMP

8.1. 一些概念

ICMPInternet Control Message Protocol, 因特网控制报文协议TCP/IP协议簇的一个子协议用于在IP主机路由器之间传递控制消息控制消息是指网络通不通主机是否可达路由是否可用等网络本身的消息这些控制消息虽然并不传输用户数据但是对于用户数据的传递起着重要的作用

ICMP 报文作为 IP 层数据报的数据加上数据报的首部组成 IP 数据报发送出去提高了 IP 数据报交付成功的机会

8.2. ICMP报文的格式

8.3. 两种ICMP报文

8.4. 目的站不可到达

  • 网络不可到达(net unreachable)

  • 主机不可到达(host unreachable)

  • **协议不可到达**protocol unreachable

  • **端口不可到达**port unreachable

  • **源路由选择不能完成**source route failed

  • **目的网络不可知**unknown destination network

  • 目的主机不可知unknown destination host

8.5. ICMP差错报告报文的数据字段的内容

8.6. 不应发送ICMP差错报告报文的几种情况

  • 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文

  • 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文

  • 对具有多播地址的数据报都不发送 ICMP 差错报告报文

  • 对具有特殊地址如127.0.0.0或0.0.0.0的数据报不发送 ICMP 差错报告报文

8.7. PING

PING (Packet InterNet Groper, 因特网包探索器) 是一种因特网包探索器用于测试网络连接量的程序Ping是工作在[ TCP/IP](https://baike.baidu.com/item/ TCP%2FIP/214077?fromModule=lemma_inlink)网络体系结构中应用层的一个服务命令测试目的站是否可达及了解其有关状态

  • PING 是用 ICMP 的 “Echo request” 和 “Echo reply” 消息来实现的

  • PING 使用了 ICMP 回送请求与回送回答报文

  • PING 是应用层直接使用网络层 ICMP 的例子没有通过运输层的 TCP或UDP

可见上层可以跳过邻近的下层而直接使用底层协议未必要一层一层地自顶向下

9. 移动IP

9.1. 基本概念

移动IP (Mobile IP) 是由互联网工程任务组 (IETF) 制定的一种网上传输协议标准由于移动终端的互联网接入点会不断发生变化所以其IP地址在两方面发生分离一是移动节点需要一种机制来唯一标识自己另一是需要这种标识不会被用来路由移动IP便是为了能让移动节点能够分离IP地址这两方面功能而又不彻底改变现有互联网的结构而设计

  • 移动 IP 让电脑可以在从一个因特网接入点换到另一个接入点的时候保持网络连接

  • 移动 IP 和 nomadic (不定) IP 是不同的:

  • 移动 IP 可以无视接入点的变化自动保持电脑的网络

  • 不定 IP 在接入点变化时必须先停止连接然后初始化新的电脑连接

9.2. 移动IP的运作

  • 本地网络移动节点被分配给名为本地网络 (home network) 的特定网络,在该网络里名为本地地址的IP地址是静态的.
  • 外部网络移动节点移至另一个网络 该网络被认为是此主机的外部网络
  • 外部代理移动节点通过网络节点(路由器) 注册如果路由器在外部网络名为外部代理

移动节点与用户本地网络的名为本地代理的类似代理通信, 将移动节点的转交地址(care-of address) 给予本地代理

9.3. 转交地址

移动 IP 提供两种获取转交地址的模式

9.3.1. 外地代理转交地址

  • 该地址通常是发送通告的外地代理的 IP 地址

  • 通过代理通告消息被通告给移动节点

  • 外地代理是隧道的端点

  • 外地代理通过隧道接收数据报时会对收到的数据报解除封装然后外地代理会将内部数据报传送到移动节点

  • 许多移动节点可以共用同一转交地址

9.3.2. 协同定位转交地址

  • 由移动节点通过一些方法 (e.g. DHCP) 获取作为自身临时IP

  • 移动节点充当隧道的端点

  • 移动节点对通过隧道传来的数据报解除封装

  • 协同定位转交地址可使移动节点在没有外地代理的情况下正常工作

  • 如果某个移动节点正在使用协同定位的转交地址则该移动节点必须与该转交地址处于同一网段否则发往该转交地址的数据报将无法传送

9.4. 基本功能

9.4.1. 发现

移动节点使用发现程序来标识期望的本地代理和外部代理

使用ICMP协议

  • 移动节点可能在IP层不知道的情况下由于某些切换机制的作用从一个网络移到另一个网络

  • 代理发现进程的目的是使代理能检测到这样的移动

  • 作为代理的路由器或其他网络节点周期性发布带广播扩展的路由器广播ICMP报文报文包括路由器的IP地址

  • 移动节点监听这些广播报文将路由器的网络部分与自身本地地址的网络部分比较如果不匹配就说明移动节点在外部网络

  • 如果移动节点未能接收到代理信息允许其发布一个ICMP路由器请求报文来寻求路由器响应

9.4.2. 注册

移动节点使用认证注册程序将它的转交地址告知它的本地代理

用UDP协议

  • 注册程序的不安全性

  • 移动IP被设计成能抵挡两类攻击

  • 一个节点可能伪装成外部代理,并向本地代理发送注册请求,以求将目的为移动节点的通信转到自己.

  • 恶意代理可能重发旧的注册报文,有效地将移动节点由网络中除去

  • 为达到报文认证,每个注册请求和回应包含认证扩充

9.4.3. 隧道

用于将IP数据报由本地地址发至转交地址

使用IP协议

  • 将原来整个数据报封装入一个首部带有转交地址的新IP数据报中

  • 隧道将原有的IP报文作为载荷在外面包上一层新的IP包头转换成为一个新的IP报文

  • 在一定程度上提高了安全性