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报文

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

OSI Data Link Layer

OSI层次数据链路层

关键词介质访问控制

刻画了通过物理链路提供可靠的数据传输的过程

1. 数据链路层概述

1.1. 概述

如何在不稳定的链路上传输数据

如下图Node 指的是网络中所有的路由器和主机Link 指的是连接相邻节点的通道

  • [数据链路层](https://baike.baidu.com/item/数据链路层/4329290#:~:text=数据链路层是 OSI参考模型 中的第二层介乎于%20物理层%20和%20网络层%20之间%E3%80%82,数据链路层在物理层提供的服务的基础上向网络层提供服务其最基本的服务是将源自物理层来的%20数据%20可靠地%20传输%20到%20相邻节点%20的目标机网络层%E3%80%82%20数据链路层定义了在单个链路上如何传输数据%E3%80%82)协议定义了链路上数据交换的格式 和 链路上两个节点的行为
  • 数据链路层提供对网络介质的访问 和 通过介质的物理传输
  • 数据链路层最基本的服务是将源自物理层来的数据可靠地传输相邻节点的目标机网络层

1.2. LANS 和数据链路层

1.主要任务

  • 错误通知
  • 网络拓扑
  • 数据流控制

2.第一层和第二层之间的不同之处

  • 第一层不能和更高层沟通第二层通过 LLC (Logic Link Control, 逻辑链路控制) 与上层沟通
  • 第一层根据传输介质发送信号第二层通过 MAC (Media Access Control介质访问控制) 发送信号
  • 第一层不能命名或定义主机第二层有命名过程
  • 第一层只能描述比特流第二层用帧 (frame) 组织比特

1.3. 第二层提供的服务

三个由 LLC 提供给网络层的服务:

  • LLC1: 无应答的无连接服务不需要对方同意用于可靠的链路(上层来保证数据正确性)实时任务绝大部分用于LAN
  • LLC3: 有应答的无连接服务用于不可靠的链路如无线网络
    • 确认会降速降低50%
  • LLC2: 有应答的连接服务比如蓝牙

1.4. 在普通 LAN 中的 MAC

注意这里的 以太网, 令牌环FDDI 指的都是 LAN 的类型

以太网 (IEEE802.3)逻辑总线拓扑 (信息流在线性总线上) 和物理星型或扩展星型 (布线是星型)

令牌环 (IEEE802.5)逻辑环形拓扑 (信息流在环中) 和一个物理星型 (布线是星型)

FDDI (Fiber Distributed Data Interface Network)逻辑环形拓扑 (信息流在环中) 和物理双环拓扑 (布线是双环形)

1.5. MAC 的访问方式

1.5.1. 两个宽泛的种类

  • 决定性-轮流令牌环 和 FDDI
  • 非决定性 (概率性)-先来先服务以太网

1.5.2. 决定性MAC协议

  • 一个特殊的数据令牌在环中循环
  • 当主机收到令牌它可以传输数据而不是令牌这叫抓住令牌
  • 当被传输的帧传了一圈回到发射机处站点会发射一个新令牌原来的帧会从环上被抛弃

1.5.3. 非决定性MAC协议

  • 这个MAC协议被称为带冲突检测的载波监听多路访问技术(载波监听多点接入/碰撞检测) Carrier Sense Multiple Access with Collision Detection (CSMA/CD)

为了使用这个分享介质的技术以太网允许网络设备仲裁传输的权利

1.6. LAN传输方式

单播 (发送方只有一个人): —收到的帧的MAC地址与本站硬件地址相同

多播: 发送给本局域网上部分站点的帧

广播: 发送给本局域网上所有站点的帧

2. 以太网 和 CSMA/CD

2.1. LAN标准

  1. 定义了物理介质和用于将设备连接到介质的连接器
  2. 定义了设备在数据链路层通讯的方式
  3. 数据链路层定义了数据怎样通过物理介质传输
  4. 数据链路层也定义了在通信使用同一个通道去上层时却用了不同的上层协议的情况下怎样封装使用了特定协议的通信
  5. 数据链路层由 IEEE 分成了两个部分
    • 介质访问控制 Media Access Control (MAC) (向下层介质传输)
    • 逻辑链路控制 Logical Link Control (LLC) (向上层网络传输)

2.2. MAC子层

MAC 子层是帧中的域

  • 报头

    • 由01交替出现的开头被称为报头 (10101011)以字节byte为单位 7+1. 报头preamble通知接收站帧已经来了
  • 目的地址和源地址域

    • 源地址通常是一个单播地址

    • 目的地址单播多播广播48位

    • 目的地址在源地址之前快速转发

  • 长度域暗示了这个域后面跟着的数据的字节并先于帧校验序列域

    • 由于数据长度可计算改为type

    • 小于0x0600表示length大于0x0600表示type0x0600=1536B

  • 数据域包括你想要发送的信息

    • 数据域长度可变最大是1500字节最小是46字节

    • 争用窗口长度: 6+6+2+46+4=64B 确保发送一次数据占满100m双绞线不会同时发送

      上面具体可以看这篇文章 (USTC郑烇老师的课件)

  • FCS域4字节包括了一个循环冗余校验值cyclic redundancy check

    • 发送设备发送CRC

    • 接受设备重新计算CRC来检查传输中帧可能受到的损失

2.3. LLC子层

LLC子层管理通过一条链路上设备的通讯

LLC被定义在IEEE 802.2说明书中支持无连接和面向连接的服务

LLC子层允许数据链路层的一部分运作独立于已有技术

一个单独的LLC子层可以和不同的MAC子层相配

2.4. MAC地址的十六进制数字

MAC地址有48位通常表示为12个十六进制

IEEE要求前6个十六进制数从左到右指出制造商或供应商的身份还包括了组织唯一标识符

剩下的6个十六进制数由特定的供应商管理包括接口编号

对应MAC子层的目的地址

2.5. 以太网802.3广播

  • 一种特殊的MAC地址

  • 广播所有端口转发做成总线的方式

  • MAC目的地址: 全是1(FFFF.FFFF.FFFF)

  • 广播可以通过不必要的打断严重影响站点的表现

  • 所以广播仅在以下情况应该被使用

    • 目的地的MAC地址未知

    • 目的地是全体主机

2.6. 组帧framing

  • 组帧是数据链路层封装的过程

  • 帧是第二层的协议数据单元

  • 帧的部分叫做域每个域由字节构成

2.7. 以太网MAC-CSMA/CD

这篇文章详细地介绍了CSMA/CD工作的全部过程

以太网传输数据时所有的PC都会接收数据再根据需求考虑是否丢弃数据

JAM SIGNAL冲突信号32位或者更多的1所有的设备都会接收该信号

CSMA/CD传输流程

3. 无线LAN和CSMA/CD

3.1. 无线LAN标准

一个小故事

  • IEEE 802.11
    • 一个关键技术直接序列扩频 Direct Sequence Spread Spectrum (DSSS)
    • DSSS 适用于操作在1到2 Mbps范围内的无线设备
    • DSSS 可能操作高达11 Mbps 但超过2Mbps的操作是不兼容的
    • WIFI从此产生
  • IEEE 802.11b
    • 也叫 Wi-Fi™
    • 它将传输能力提升至11 Mbps
    • 所有802.11b系统都是向后兼容的所以他们也支持802.11的 1~2 Mbps数据传输率
    • 通过使用802.11一个不同的编码技术获得更高的数据吞吐率
    • 操作在2.4 GHz之内
  • IEEE 802.11a
    • 覆盖使用 5 GHz传输带宽的WLAN设备
    • 使用 5 GHz
    • 802.11a 有能力提供 54 Mbps 的数据吞吐率若是使用叫做双倍率的专利技术可以到达
    • 实际上更标准的速率为 20-26 Mbps.
  • IEEE 802.11g
    • 提供和802.11a (54Mbps)一样的吞吐率但能向后兼容802.11b
    • 使用正交频分多路复用技术(OFDM)技术
  • IEEE 802.11nWLAN的下一代目前主要使用的
    • 提供和802.11g相比两倍的带宽108Mbps理论上可达500-600Mbps

4. 第二层设备

4.1. 网卡 NIC

NIC: Network Interface Card

NIC 在数据链路层扮演了重要的角色

  • LLC——在计算机中与上层通讯
  • MAC——提供对共享访问介质的结构化访问
  • 命名——提供一个独特的MAC地址
  • 组帧——封装过程的一部分为了传输将比特打包
  • 信号传递——通过使用内置的收发器来产生信号和介质接口
  • 网卡解析01序列

4.2. 网桥

网桥将通信划分成段基于MAC地址而不是协议过滤通信. 网桥可以通过减少大的冲突域来改进网络表现. 当从网络中一个段到其它段的通信量比较低时网桥工作的更好. 当网段之间的通信量变得繁重网桥会成为瓶颈减慢通讯. 网桥可以识别帧了.

透明网桥

透明是指局域网上的站点并不知道所发送的帧将经过哪几个网桥因为网桥对各站来说是看不见的

透明网桥是一种即插即用设备其标准是 IEEE 802.1D

目前以太网中使用得最多的网桥

问题当网络上的设备想要发送数据的时候但是它不知道目的地址

发送一个广播给网络上的所有设备

因为网络上每一个设备都要关注这种广播网桥总是向前传输广播
​ 太多广播可能会导致广播风暴这又会导致

  • 网络超时

  • 通信减慢

  • 无法接受的网络表现

源路由网桥

源路由(source route)网桥在发送帧时将详细的路由信息放在帧的首部中,从而使每个经过的网桥都了解帧的路径

在令牌环网络中被广泛使用

透明网桥容易安装但网络资源的利用不充分

源路由(source route)网桥在发送帧时将详细的路由信息放在帧的首部中

源站以广播方式向欲通信的目的站发送一个发现帧每个发现帧都记录所经过的路由

发现帧到达目的站时就沿各自的路由返回源站

源站在得知这些路由后从所有可能的路由中选择出一个最佳路由

凡从该源站向该目的站发送的帧的首部都必须携带源站所确定的这一路由信息

4.3. 交换机

  • 有两个基本操作

    • 交换数据帧帧被输入介质接收然后被输出介质传输

    • 交换操作保持交换机建立和保持交换表搜索循环路由器建立和保持路由表和服务表

  • 交换是一种通过减少通信量增加带宽减轻Ethernet LANs中的网络拥堵的技术

    • 交换机创造专用网段或点对点连接然后将这些网段在交换机内的虚拟网络中连接起来

    • 这叫虚拟回路因为它仅在两个节点需要通讯时存在并且是建立在交换机内的

    • 你可以把每个交换机端口想象成一个微型网桥这个过程叫微分段 microsegmentation

    • 每一个交换机端口给予每个主机全部的介质带宽

  • 局域网交换机减小了冲突域的大小

  • 然而所有连接到交换机的主机仍然在同一个广播域中

    • 也就是说从一个节点发出的广播仍然会被其他所有连接这个局域网交换机的主机接收

4.4. 冲突域

4.4.1. 冲突域的桥分割

用网桥来分割局域网的以太网给每个用户提供更多带宽因为每个网段上用户更少

网桥不管第3层用什么协议都会把数据帧继续传输下去

网桥增加了10%~30%的网络延迟因为需要做决定

网桥被看做是存储转发设备因为它必须接收全部帧然后在转发之前验证循环冗余校验CRC

4.4.2. 冲突域的交换机分割

交换机更快因为他们在硬件中交换然而网桥在软件中交换

一个10 Mbps的以太局域网和一个100 Mbps以太局域网可以用交换机连接

在一个交换式以太网实现中可用带宽可达100%

当因为CSMA/CD使得分享式以太网络只使用了全满容量的30%~40%时网络表现最好

网桥仅仅支持存储转发而有些交换机支持直通转发这样减少了延迟

4.4.3. 冲突域的路由器分割

路由器可以构造最高等级的分割

构造更小的冲突域

构造更小的广播域除非编写的程序要求否则路由器不会继续向前传送广播

路由器通过检查数据包上的目的逻辑地址完成向前传输包然后在它的路由表中查找向前的指令

因为路由器比网桥有更多的功能所以操作时有着更大的延迟

路由器可以像网关一样工作

用于连接不同的网络介质和不同的局域网技术

OSI Physics Layer

OSI层次物理层

关键词信号和介质

物理层定义了在系统之间为了链路所需的电气的功能的特征 (包括介质)

也定义了电压级别电压变化时机物理数据速率最大传输距离物理连接器以及其他相似性质

1. 网络连接类型

两种网络连接类型的图示
  1. 多路复用共享介质

    • 多个主机可以访问同一介质
    • 这意味着它们都共享相同的介质 —— 即是"wire"
  2. 点对点 (Point To Point) 网络

    • 一个设备通过链路连接到另一个设备
    • 最广泛地应用于拨号网络连接使用电信号来完成传输也是大家最熟悉的一种

2. 局域网介质

什么是局域网

局域网是一种网络种类覆盖范围一般是方圆几千米之内其具备的安装便捷成本节约扩展方便等特点使其在各类办公室内运用广泛局域网可以实现文件管理应用软件共享打印机共享等功能在使用过程当中通过维护局域网网络安全能够有效地保护资料安全保证局域网网络能够正常稳定的运行

常见的局域网介质包括双绞线无屏蔽双绞线和屏蔽双绞线同轴电缆光缆以及一些无线通信手段激光红外线收音机

2.1. 屏蔽双绞线

STP的图示

什么是屏蔽双绞线 (Shielded Twisted Pair, STP)

STP是一种通信电缆

P.S. 电缆光缆光纤的区别

2.2. 无屏蔽双绞线

UTP的图示

什么是**无屏蔽双绞线** (Unshielded Twisted Pair, UTP)

UTP是一种通信电缆UTP 的妙处在于利用四对不同颜色的传输线相互缠绕所组成每对相同颜色的线传递者来回两个方向的电脉冲利用电磁感应相互抵消的原理来屏蔽电磁干扰

一般认为 UTP 的有效范围是100米

2.2.1. 双绞线的的分类

维基百科给出的UTP种类

一般地我们认为目前投入使用的双绞线包括三类四类五类超五类六类七类线

  • 一类线主要用于语音传输不用于数据传输

  • 二类线传输频率 1 MHz用于语音和最高 4 Mbps 的数据传输常见于令牌网

  • 三类线EIA / TIA568 标准指定电缆传输频率 16 MHz 用于语音传输及最高传输速率为 10 Mbps 的数据传输主要用于10BASE-T

  • 四类线传输频率为 20 MHz 用于语音传输和最高传输速率 16 Mbps的数据传输主要用于令牌网和 10BASE-T/100BASE-T

  • 五类线增加了绕线密度外套高质量绝缘材料用于语音和数据传输 (主要为100/1000BASE-T)是最常用的以太网电缆

  • 超五类线衰减小串扰少具有更高的衰减/串扰比和信噪比更小的时延误差主要用于1000BASE-T

  • 六类线传输频率为1MHz~250MHz性能远高于超五类标准适用于高于1Gbps的应用

  • 七类线带宽为600MHz可能用于今后的10G比特以太网

2.2.2. UTP的特点

  • 优点
    • 易于安装成本低
    • 每米的成本要低于其他任何类型的局域网线
    • 体积小不易于迅速阻塞布线管道
    • 使用 RJ-45接头 (也就是所谓的水晶头)大大减少潜在的网络噪声源也能确保优质可靠的连接
  • 缺点
    • 电缆的普遍缺点与其他类型的网络媒体相比电缆更容易产生电噪声干扰
    • 双绞线的信号增强距离比同轴电缆和光缆更短

2.3. 同轴电缆

什么是同轴电缆 (Coaxial Cable)

img

  1. 薄/厚
  2. 与双绞线相比不使用中继器的网络运行时间更长
  3. 比光纤便宜但比双绞线贵
  4. 中间是铜导线在外面缠上一层金属网防止外部干扰细导线传输相对近粗导线传输相对比较远
  5. 500m左右无论如何比双绞线传输更加远成本也要高一点
  6. 内置无线网卡肯定没有同轴电缆同轴电缆是比较落后的工艺

2.4. 光缆

光缆
  1. 传导调制(modulated)光传输
  2. 不易受到电磁干扰或射频干扰并且能够比其他网络媒体更高的数据速率
  3. 电磁波(electromagnetic wave)通过光纤被引导
  4. 比较可靠中间是二氧化硅(光导体)外面是塑料套两个接口一个接收一个发送
  5. 成本比较高

光缆模式(Mode Type)

  1. 单模式单个光传输
    • 也称为轴(axial)光沿着电缆的轴传播
    • 由于多模中的色散(dispersion)比多模(高达10 Gbps)更快
    • 通常用于广域网
    • 直径小于多模(色散较小)
    • 最常使用ILD但也使用LED
    • 光导体直径比较细相对于多模式光缆要细一个数量级认为光传输近似直射能量损耗少多用于广域网
  2. 多模式 多根光不同角度传输 Multimode Multimode
    • 光以不同的角度进入玻璃管并沿非轴方向传播这意味着它从玻璃管壁上来回反射
    • 大于单光模式最常用于局域网
    • 易受更大分散性的影响
    • 光导体直径大一些同时传输多光信号按照角度进行识别一个上面实现多路传输能量损失大一些(反射)
  3. 都需要用注入式激光二极管或者发光二极管进行发射

2.5. 无线通信

什么是无线通信 (Wireless Communication)

3. 网线的分类

直通线

在所有末端使用T568A或者T568B

用于连接PC和交换机以及连接交换机和路由器

反转线控制线

用于把PC连接到交换机或者路由器

一端的插脚1连接另一端的插脚8然后插脚2连接到插脚7插脚3连接到插脚6以此类推

交叉线

一端是T568A另一端是T568B

可用于PC与路由器直连也可用于连接两个或多个集线器或交换机

连接两个独立的工作站以创建迷你局域网

4.数据通信基本知识

4.1. 基本术语

信号数据的电气或者电磁的表现

码元在使用时间域或简称为时域的波形表示数字信号时代表不同离散数值的基本波形

4.2. 信号处理

模拟信号可以被分为简单信号和复合信号

简单信号正弦波不能被分解为更简单的模拟信号

复合信号可以被分解为多个正弦波

复合模拟信号的分解傅立叶分析

任何一个周期为T的有理周期性函数 g(t)可分解为若干项 可能无限多项正弦和余弦函数之和

$$g(t) = \frac12c+\sum_{i = 1}^{\infty}a_n\sin(2\pi nft)+\sum_{i = 1}^{\infty}b_n\cos(2\pi nft) $$

数字信号一般是非周期性的通常在传输介质上表现为方波

一个数字信号可以分解为无穷多个被称为谐波的简单正弦波每个谐波都具有不同的频率与相位

在介质上发送数字信号时其实质是在发送无穷多的简单谐波如果某些分量未能忠实地通过介质传输则在接收端将产生信号畸变

由于介质本身的限制信号畸变是难以完全避免的

任何实际的信道都不是理想的在传输信号时会产生各种失真以及带来多种干扰

码元传输的速率越高或信号传输的距离越远在信道的输出端的波形的失真就越严重

4.3. 理论基础

波特率和比特率

波特率调制速率信号每秒钟变化的次数

比特率每秒钟传送的二进制位数

波特率与比特率的关系取决于信号值与比特位的关系

每个信号值表示为3位则比特率是波特率的3倍每个信号值表示为1位则比特率和波特率相同

对于比特率为a bps的信道发送8位所需的时间为 8/a秒若8位为一个周期T则一次谐波的频率是:

$$ f = \frac a 8 Hz $$

4.4. 数据通信技术编码方式

编码方式可分为三类

  • 单极性编码

  • 极化编码

    • NRZ(Non-Return to Zero不归零制码)

    • RZ(Return to Zero归零制码)

    • 双相位编码

      • 曼彻斯特码

      • 差分曼彻斯特码

  • 双极性编码

    • 传号交替反转码(AMI)

    • 双极性8连0替换码(B8ZS)

    • 3阶高密度双极性码(HDB3)

Routing & Routers

路由和路由器

1. 路由器基础

1.1. 路由器

路由器Router又称路径器是一种电讯网络设备提供路由转送两种重要机制可以决定数据包由来源端到目的端所经过的路径host到host之间的传输路径这个过程称为路由将路由器输入端的数据包移送至适当的路由器输出端在路由器内部进行这称为转送路由工作在OSI模型的第三层——即网络层例如网际协议IP

1.2. 内部组成

pic80

1.1.1. RAM

用于暂时存储路由器配置文件, 一旦失去动力或重启RAM的内容就丢失了. 存储的内容包括:

  • 路由表
  • ARP地址解析协议缓存
  • 快速交换缓存
  • 包缓存
  • 包保留队列

1.1.2. NVRAM

非易失性RAM (Non-Volatile Random Access Memory), 存储备份/启动配置文件. 在路由器关闭或者重启时内容不会丢失可做文件恢复

1.1.3. FLASH

FLASH是一种特殊的EEPROM (Electronically Erasable Programmable Read-Only Memory), 这里用于保存思科 IOS (Internet Operating System). 允许不替换闪存芯片的软件更新, 可以保存多种 IOS 版本, 关闭时也可以保存

1.1.4. ROM

  • 包含POST(Power On Self Test)
  • 一个引导程序(加载思科IOS)
  • 运行系统软件
    • 备份削减IOS的版本
    • 更新需要安装的新芯片组

1.1.5. Interfaces接口

  • 通过网络连接包进入或离开路由器

  • 连到底板上或作为单独的模块

2. 路由器启动流程

2.1. 系统启动流程

  • 进行一个自身通电测试(POST): 在这个测试期间路由器执行来自所有硬件模块的ROM的诊断程序

  • 验证CPU存储器和网络连接端口的基础操作

  • 软件初始化

2.2. 软件启动流程

  • 步骤1 – ROM里的通用引导程序在CPU芯片上执行
  • 步骤2 – 操作系统(Cisco IOS)可以在几个地方之一位置在配置寄存器的引导区域显示
  • 步骤3 – 加载操作系统的镜像
  • 步骤4 –保存在NVRAM里的配置文件被加载到主存并且一次执行一行
  • 步骤5 – 如果NVRAM里没有有效的配置文件那么执行一个问题导向的初始配置程序即系统配置对话也被称为setup mode设置模式.

2.3. 路由器启动流程

  • 设置模式并不应该进入有着复杂协议的路由器
  • 应该用设置来生成最小的配置然后用各种各样的配置模式命令而不是设置来完成大部分路由器配置任务
  • pic83

2.4. 基本的路由配置

路由器基本配置命令语法

2.5. 执行基本的编址方案

2.6. 检验基本的路由配置

  • 使用 show running-config 命令
  • 存储路由器基本配置 copy running-config startup-config
  • 其他检验路由器的命令:
    • Show running-config – 显示当前随机访问存储器中的配置
    • Show startup-config – 显示NVRAM中的配置文件
    • Show IP route – 现实路由表
    • Show interfaces – 显示所有接口的配置信息
    • Show IP int brief -显示接口的简要信息

3. 路由

3.1. 基本概念

  • 路由器通常使用path determination路径选择和switching转换两个基础功能将包从一个数据链路转发到另一个

  • Switching转换功能允许一个路由器接受来自接口的包然后将它通过第二个接口转发出去

  • path determination路径选择功能使得路由器可以选择最合适的接口来转发包

  • 路由器使用地址的网络部分来选择转发包到下一个路由器的路径

  • 路由器直接使用地址的节点部分来连接目的网络来发送包到正确的主机

    pic86

3.2. 静态和动态

  • 为了安全的原因你可能想要隐藏部分网络然而动态路由想要显示所有关于网络的信息

  • 当一个网络只能被一条路径连接时静态路由就足够了

  • 这种类型的分割被称为桩网络stub network.

  • 静态路由

    pic88

    • 静态路由配置
      • 静态路由允许手动配置路由表
      • pic90
      • pic89
    • 管理距离
      • 管理距离是一个对于路由信息来源的信任度等级表示为一个从0到255的数值
      • 数值越高信任度等级越低
      • 所以静态路由的管理距离通常较低1是默认值
  • 动态路由

    • pic91
    • 动态路由协议在网络不同路径之间重定向load share荷载分配通信量
    • pic92
    • 动态路由依赖路由协议来在路由器间共享信息
    • 动态路由依赖两个基础的路由器功能
      • 保持路由表
      • 把信息分发给其它路由器
    • 收敛发生时间
    • pic93

3.3. 路由协议的分类

  • Distance-Vector Protocol 距离矢量协议

    • pic94

    • 距离矢量算法不允许路由器了解网络拓扑的确切结构

    • 基于距离矢量的路由算法 (也被称为Bellman-Ford algorithms) 将路由表的周期性副本从路由器转发到另一个路由器

    • 问题

      • 问题1路由成环

        pic95

      • 问题2无限计数

      • pic96

      • 问题描述

        • 无效的网络1更新会持续循环直到其它进程停止这个循环
        • 这种情况称为无限计数count to infinity尽管基础事实是目的网络1已经关闭包仍旧被不停地在网络中循环
        • 尽管路由器不停地计数无效信息允许一个路由循环退出
      • 解决方案

        • 方案一定义最大
          • pic97
        • 方案二路由中毒
          • 当网络5停止路由器E通过给网络5添加一个表条目16或不可达
          • 当路由器C收到来自路由器E的路由中毒它反过来发送一个称为毒性逆转的更新给路由器这保证了段上所有路由器都收到了有毒的路由信息
          • pic98
        • 方案三水平分割
          • pic99
        • 方案四挂起计数器
          • pic100
    • 阻断发送路由更新

      • 为了阻止接口发送任何路由更新信息使用以下命令行
        • Router(config-router)#Passive-interface f0/0
      • 它只在使用距离矢量协议的时候有效因为链路状态路由协议并不直接从邻居的路由表中获得拓扑信息
  • 链路状态协议

    • 基于路由算法也被称为SPF (最短路径优先) 算法的链路状态维持了一个复杂的拓扑信息数据库
      链路状态路由使用了
      • link-state advertisements(LSAs)链路状态广播
      • 一个拓扑数据库
      • SPF算法和基于SPF算法生成的树
      • 一个到各个网络的路径和端口的路由表
    • RFC 1583包括OSPF链路状态概念和操作的描述
    • 具体描述
      • 路由器互相交换LSAs 每个路由器由直连网络开始
      • 每个并行路由器建立一个拓扑数据库由互联网中所有LSAs组成 router in parallel with the other
      • SPF算法计算网络可达性. 路由器把这个逻辑拓扑建立成树以自己为根由链路状态协议互联网中所有可能到达每个网络的路径组成接着它按照SPF给路径分类
      • 路由器在路由表中列出它的最佳路径和通往这些目的网络的端口它也维持其它拓扑元素和状态细节的数据库
      • pic101
    • 链路状态涉及方面
      • 处理和内存需求
        • 大多数情况下运行链路状态路由协议比用距离矢量路由协议需要路由器使用更多内存处理更多事务
      • 带宽需求
        • 在最初的链路状态包洪泛flood的时候所有路由器使用链路状态路由协议来发送LSA包到其它路由器当路由器需要带宽时这个行为像洪水一般冲刷了互联网并且暂时减少了给携带用户数据的路由通信可用的路由带宽
    • 问题链路状态更新
      • 链路状态路由必须保证所有路由器获得了需要的LSA包
      • 有不同LASs集合的路由器基于不同的拓扑数据计算路由
      • pic102
    • 比较链路状态和矢量协议
      • 距离矢量
        • 从邻居的视角来看网络拓扑
        • 从路由器到路由器增加距离矢量
        • 周期性频繁的更新汇聚慢
        • 向相邻的路由器发送路由表的副本
      • 链路状态
        • 获得整个网络拓扑的整体构造
        • 计算到达其它路由的最短路径
        • 事件触发更新汇聚快
        • 把链路状态更新的部分发给其它路由器
  • 混合协议

    • pic103
    • 混合协议的实例
      • OSI’s IS-IS 中间系统到中间系统协议
      • Cisco’s EIGRP增强内部网关路由协议
  • 路由routing协议

    • pic104

    • IP路由协议包括:

      • RIP – 一个距离矢量路由协议
      • IGRP – 思科的路由矢量路由协议
      • OSPF – 一个链路状态路由协议
      • EIGRP – 一个平衡的混合路由协议
    • 路由routing协议的主要目标

      • 最优路径—选择最好的路由
      • 高效性—最小化带宽和路由器处理器资源的使用
      • 快速汇聚Convergence—更快更好有些比其他汇聚更快
      • 灵活性—可以处理大多数情况如高频率使用和失效路由
    • pic105

    • 定义默认路由

      • pic106
      • 默认路由使得路由表更短
      • 当一个目的网络条目不在路由表中的时候包就被发往默认网络
        • 定义默认路由(1)
          • 定义一个默认路由使用动态路由协议
          • Router(config)# ip default-network [network-number]
          • pic107
        • 定义默认路由(2)
          • 定义一个默认路由为静态路由
          • Router(config)# ip route 0.0.0.0 0.0.0.0 [next-hop-ip-address| exit-interface]
          • 在配置默认路由后使用show ip route 会显示 (172.16.1.2 is the default next-hop address)
            • 0.0.0.0网络的最后一个网关是172.16.1.2
    • RIP历史

      • RIP v1被看做是经典的内部网关协议

        • RIP v1是一个距离矢量协议在已经决定好的时间间隔里把它整个路由表广播给每一个相邻路由器 默认时间间隔为30s
        • RIP 使用跳数作为度量标准最大跳数为15
        • RIPv1 有以下限制
          • 更新中不发送子网掩码信息
          • 它在255.255.255.255上广播更新
          • 它不支持鉴别authentication
          • 它不能支持VLSM或CIDR.
        • RIP v1配置
          • pic108
            • 路由器的rip命令选择RIP作为路由协议
            • network命令分配一个基于网卡的网络地址就是被直连的网络
          • pic109
            • router rip
              • network 1.0.0.0
              • network 2.0.0.0
      • RIP v2 是 RIP v1的进阶版共享以下优点

        • 它是一个距离矢量协议使用跳数作为度量标准

        • 它用挂起计数器来防止路由循环 – 默认180s

        • 它用水平分割来防止路由循环

        • 它用16跳来表示无限距离

        • RIP v2配置

          • router命令开始路由过程
          • network命令实现以下三个功能
            • 路由更新通过一个接口多播出去
            • 如果路由更新进入同一个接口它进入队列
            • 子网直接连到通知的接口
        • RIP v2配置示例

          • pic111
        • 核查&解决纷争

          • 核查 RIP v2
            • Router# show ip protocols
              • 核查RIP配置
            • Router# show ip route
              • 展示IP路由表
          • 解决纷争RIP v2
            • Router# debug ip rip
              • 展示RIP发送和收到的路由更新
            • Router# undebug all (/no debug all)
              • Router# 关闭所有调试
      • 对比RIP v2和RIP v1

        • pic110
    • OSPF概览

      • 最短路径优先(OSPF) 是一个基于开放标准的链路状态路由协议
      • 它在IETF的多个标准中被描述
        • 最近的描述是RFC 2328
      • 当和RIP v1 and RIP v2相比时OSPF正在变成最好的IGP协议因为它可扩展
    • 路由信息

      • 链路状态用于描述接口和到相邻路由器之间的关系
      • 链路状态的集合形成了一个链路状态数据库有时叫拓扑数据库
      • 路由器以它们自己为根实行Dijkstra shortest path first (SPF) 算法来建立SPF树 tree
      • 路由器通过SPF树计算最佳路径然后选择最佳路径存入路由表
    • OSPF vs RIP

      • OSPF RIP
        使用带宽作为度量衡
        适用于大型网络
        可以进一步划分网络
        支持 VLSM
        快速汇聚
        支持等耗的多种路径 使用跳数来计数
        适用于小型网络 (15跳)
        宽等级设计
        不支持 VLSM (RIP v1)
      • A到B的最佳路径是什么

      • pic128
    • OSPF好处

      • OSPF 克服以下限制
        • 更鲁棒
        • 更可扩展
      • 大型OSPF网络使用层级设计
        • pic129
    • OSPF术语

      • 链路两个网络设备之间的物理连接
      • 链路状态两个路由器之间链路的状态包括关于路由器接口和它与相邻路由器之间关系的信息
      • 开销cost每个链路被分配的值链路状态协议基于链路带宽而不是跳数分配给链路一个开销
      • 区域有着同样区域ID的网络/路由器集合在同一个区域的每个路由器有着同样的链路状态信息
      • 自治系统
        • 邻居关系数据库邻居列表一个有着所有和本路由器建立双向通讯的邻居的列表
        • 拓扑数据库所有路由的列表一个关于互联网中其他所有路由器信息的列表它展示了互联网的拓扑
        • 路由表最佳路径列表优势叫做转发数据库每个路由器的路由表都是独特的
      • 指定路由器(DR)一个在OSPF多路访问网络中的路由器被选中代表网络中所有路由器
      • 备份指定路由器(BDR)一个备用的路由器如果DR挂了它就成DR了
    • OSPF地区

      • 地区被定义为32位数
        • 要么IP形式要么单独十进制值
        • Area 0 or Area 0.0.0.0
      • Area 0一个单独地区地区号为0
      • OSPF使用2级分层模型
      • 在多地区OSPF网络中所有地区需要连接到area 0(backbone)
      • 示例
        • pic130
    • OSPF操作

      • OSPF使用邻居邻接来获得对于整个网络的认知
      • OSPF操作有5步
        • Step1: 开始邻接关系
        • Step2: 选择DR和BDR 如果需要
        • Step3: 发现路由
        • Step4: 选择合适路由
        • Step5: 维持路由信息
      • OSPF有7种状态它们是
        • Init, 2Way, Ex Start, Exchange, Loading, Full
    • 最短路径算法

      • 最短路径算法计算了一个没有循环的拓扑把当前节点作为开始点来检查返回的关于邻接节点的信息
      • pic131
    • 选择DR和BDR

      • OSPF网络类型
        • 广播多路访问如以太网
        • 点对点网路
        • 无广播多路访问NBMA
      • pic132
      • DR&BDR
        • pic133
        • 然后每个路由器与DR和BDR建立邻接
        • DR 发送链路状态信息到网段上其它所有路由器用多播地址224.0.0.5 给所有OSPF路由器
        • 为了保证DR/BDR看见网端上所有路由器发送的链路状态给所有DR/BDR的多播地址是224.0.0.6
    • OSPF在多路访问介质中

      • Giga/Fast/Ethernet, FDDI, Token Ring
      • pic134
    • 基本OSPF配置

      • 允许路由器使用OSPF
        • Router (config) # router ospf process-id
          • process-id
            • 1 ~ 65535
            • 识别路由器上的多个OSPF进程
            • 通常整个AS保持同样的进程ID
      • 识别路由器上的IP
        • Router (config-router) # network address wildcard-mask area area-id
        • 网络地址可以是一整个网络子网或接口地址
    • OSPF开销=度量单位

      • 开销应用与所有路由器链路
      • 16位数(1 – 65,535)
      • 低开销 = 更令人满意
      • 路由选择是基于路径总开销制定的
      • 度量源自带宽
      • pic135
    • OSPF路径开销

      • 连接到同一个链路的接口必须有一致的开销否则链路要被挂起
        • 思科路由器对一个链路的默认开销是1784 ( 56Kbps 带宽 )
          • Router (config-if) # ip ospf cost number1-65535
        • 如果链路由更低的速度你必须指明实际链路速度
          • Router (config-if) # bandwidth numberkbps