计算机网络-网络层

1. 概述

网络层,介于传输层和数据链路层,把数据或分组数据经过适当的路径发送到目的地。从s到t,中间可能要经过若干个中间节点,需要在通信子网中进行路由选择。

  • 数据链路层是线缆或信道内一端传到另一端(相邻节点之间的数据传送)
  • 网络层则是端到端的数据传输服务。
  1. 如何数据分组跨越通信子网,即路由选择?
  2. 如何流量控制、分组,以解决网络阻塞?
  3. 网际互联?

网络层的设计问题:

  1. 存储转发数据包交换 Store-and-Forward Packet Switching
  2. 提供给传输层的服务Services Provided to the Transport Layer
    2.1 面向连接的通信方式, 虚电路(Virtual Circuit), 如电话机。
    2.2 无连接的计算机网络, 无连接的、尽最大努力交付的数据报服务,如因特网。
    虚电路服务与数据报服务的对比

2. 路由/路由器/路由协议

路由:为到达目的网络所进行的最佳路径选择。
路由器:网络层完成路由功能的设备,某些交换机里也集成了路由模块,某些操作系统中实现的软件路由。
路由器内部结构
https://yq.aliyun.com/articles/636245
分组丢弃:若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间会被耗尽,再后面的分组只能被丢弃。队列溢出是早晨分组丢失的重要原因。

路由协议:网络层用于动态生成路由表信息的协议。
路由协议使得网络中的路由设备能够相互交换网络状态信息,从而在内部生成关于网络连通性的映像(Map)并由此计算出到达不同目的网络的最佳路径或确定相应的转发端口。
路由协议的核心是路由选择算法。不同的路由选择算法通常会采用不同的评价因子及权重来进行最佳路径的计算,常见的评价因子包括带宽、可靠性、延迟、负载、跳数和费用等。

路由算法:

The Optimality Principle 优化原则: 如果路由器 J 在从 I 到 K 的最优路径上,那么从 J 到 K 的最优路径也必定遵循同样的路由。

  • Shortest Path Routing最短路径算法
  • Flooding(泛洪扩散)
  • Distance Vector Routing(距离矢量路由)

例题:
路由器A的路由表有如下内容:
目的网络 距离 下一跳路由器
N1 7 E
N2 2 C
N6 8 F
N8 4 E
N9 4 F
现在A收到从B发来的路由信息:
目的网络 距离
N2 4
N3 8
N6 4
N8 3
N9 5
试求出路由器A更新后的路由表。
路由器A更新后的路由表:

目的网络 距离 下一跳路由器
N1 7 E (无新信息,不改变)
N2 2 C (不同的下一跳,更大(6),不改变)
N3 9 B (来自B的新增路由项,添加)
N6 5 B (不同的下一跳,更小(5),更新)
N8 4 E (不同的下一跳,相等(4),不改变)
N9 4 F (不同的下一跳,更大(6),不改变)

  • Link State Routing(链路状态路由)

  • Hierarchical Routing(层次路由)
    切分路由层次,在层次上的最优解,不一定是点到点的最优解。

  • Broadcast Routing 广播路由
    给每个目标单独发送数据包
    多目标路由(存储转发)
    逆向路径转发: 如果广播数据包是沿着最佳路径被转发过来,则转发到所有其他线路上,否则丢弃(非最佳路径会被丢弃)(无需知道整棵生成树)
    生成树:路由器知道这颗生成树,将到达的数据包复制到其他生成树线路上。

  • Multicast Routing 组播路由
    修建整个生成树,分成不同组,把通往不同组的链路从树中删除。得到组播生成树。
    组播OSPF:构建修剪后的生成树
    距离矢量组播路由协议DVMRP: 逆向路径转发
    每个路由器,分成n组,魅族平均m个节点,则需要mn棵生成树。

  • 选播路由 Anycast Routing
    节点分发数据包,只选择目的地小组的最短路由。

  • 移动主机路由 Routing for Mobile Hosts

3. 拥塞控制

由于流量太多导致性能急剧下降,所以可以从以下方面控制拥塞:

  • 网络供给 (升级设备和带宽)
  • 流量感知路由 (选择路由、远离拥堵)
  • 准入控制(虚电路网络中拒绝新连接)
  • 流量限制(通知源端减缓速率)
  • 负载脱落(丢包)
  1. 流量调节 Traffic Trottling
    抑制包:路由器选择一个被拥塞的数据包,给其源主机返回choke packet
    显式拥塞通知:拥塞的路由,加上ECN标识,主机返回告知host 拥塞的发生,以便于控制发送方的速率。
    逐跳后压:抑制包影响途经的每一跳路由器。

  2. 负载脱落 Load Shedding
    当路由器来不及处理时,丢弃部分数据包
    丢弃旧数据、丢弃新数据、按照发送方确定重要性、随机早期检测RED,在缓冲区溢出前就丢弃部分数据包。

  3. 流量整形 Traffic Shaping

网际互联 internetwork

传输层及以上 - 网关
网络层 - 路由器
数据链路层 - 交换机
物理层 - 中继器
隧道 Tunneling: 隧道被广泛使用于连接那些被其它网络隔离的同类型网络和主机覆盖(overley)网络:例如“IPv4 之上的IPv6”(IPv6 over IPv4)

数据包分段Packet Fragmentation : 如果信息包太长,路由器就分成更小的包,即分段。
MTU: 路径最大传输单元。

IPV4数据报格式

在这里插入图片描述
IP 地址具有层次性: 网络部分 + 主机部分
IP地址 ::= {<网络前缀>, <主机号>}
使用“斜线记法”,又称为 CIDR 记法
IP 地址 / 前缀位数 (e.g. 128.208.0.59 / 24)
子网掩码(subnet mask)
前缀全 1 + 主机号全 0 (e.g. 111…11 . 00000000)
网络前缀都相同的连续的 IP 地址空间组成“CIDR 地址块”

例题:
已知地址块中的一个地址是 140.120.85.24 / 20
试求:
这个地址块中的最小地址和最大地址是什么?
地址掩码是什么?
地址块中一共有多少个地址?

答:
转换第三个字节即可得140.120.(0101 0101).24,
因此,最小地址是140.120.(0101 0000).0/20=> 140.120.80.0/20
最大地址是140.120.(0101 1111).255/20=> 140.120.95.0/20
子网掩码是255.255.240.0 ( 11111111 11111111 11110000 0000)
后缀部分共有12位,地址数为212=232323*23=4096个相当于16个C类地址

例题: 某一路由器的路由表中含有如下的CIDR项:
地址/子网掩码(Address/mask) 下一跳(Next hop)
142.39.152.0/21 Router 1
142.39.156.0/22 Interface 0
175.34.148.0/23 Interface 1
Default Router 2
带有下列IP地址的分组到达路由器后,该路由器将如何处理它们?
142.39.153.32
142.39.146.5
142.39.158.2

答:142.39.152.0/21 (计算得到子网号为 142.39.10011000.0)
142.39.156.0/22 (计算得到子网号为 142.39.10011100.0)
175.34.148.0/23 (计算得到子网号为 175.34.10010100.0)

下列是达到该路由器的一些IP分组包含的目的地址:
142.39.153.32 — 展开得到 142.39.10011001.32,因此跳转至 Router 1。
142.39.146.5 — 展开得到 142.39.10010010.5,因此跳转至 Router 2。
142.39.158.2 — 展开得到 142.39.10011110.2,因此跳转至 Interface 0。

Internet 路由选择协议:RIP、OSPF、BGP

路由信息协议 RIP(Routing Information Protocal)
  • 概况
    RIP 是内部网关协议 IGP中最先得到广泛使用的协议。
    基于距离向量,每一个路由器维护从它到其它目的网络的距离记录。
  • 运行要点
    仅和相邻路由器交换信息。
    交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
    按固定的时间间隔(例如每30秒)交换路由信息,应对网络拓扑变化。
  • 优缺点
    RIP 协议最大的优点就是实现简单,开销较小。
    RIP 存在的慢收敛问题:是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
    RIP 限制了网络的规模,它能使用的最大距离为 15 。
内部网关协议 OSPF(Open Shortest Path First)

每一个路由器向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric),度量用来表示费用、距离、时延、带宽等。
只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。

  • 五种报文: Hello、DD、LSR、LSU、LSACK
    Hello报文
    携带参数,建立和维持邻居关系
    在多路访问网络中选举DR、BDR,建立邻接关系
    DD(Database Description)报文
    携带LSA头部信息,向邻居描述LSDB
    LSR(LSA Request)报文
    向邻居请求特定的LSA
    LSU(LSA Update)报文
    携带LSA,向邻居通告拓扑信息
    LSAck(Link State Ack)报文
    对LSU中的LSA进行确认

  • 三个阶段

  1. 邻居发现
    通过Hello报文发现并形成邻居关系、邻接关系
    形成邻居表
  2. 路由通告
    邻接路由器之间通过LSU洪泛LSA,通告拓扑信息,最终同一个区域内所有路由器LSDB完全相同-----同步
    通过DBD、LSR、LSACK辅助LSA的同步
    形成LSDB
  3. 路由选择阶段
    LSDB同步后,每台路由器独立进行SPF运算,把最佳路由信息放进路由表。
    形成路由表
  • 三张表
  1. 邻居表(neighbor table)
    用邻居机制来维持路由
    通过Hello包形成邻居,邻居表存储双向通信的OSPF路由器列表信息
  2. 拓扑表(LSDB)
    描述拓扑信息的LSA存储在LSDB中
    路由表(包含OSPF路由表、全局路由表)
  3. OSPF路由表
    对LSA进行SPF计算,而得出的OSPF路由表
    全局路由表
    路由器的全局路由表,用于数据包转发;
    OSPF把计算出来的路由,安装到全局路由表。

——End——

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值