网络层服务

2025-12-04

网络层 — 网络层服务

https://blog.csdn.net/weixin_45847073/article/details/124249821

一、网络层服务概述

(一)网络层服务的实现

  1. 网络层实现端系统间多跳传输可达。
  2. 网络层功能存在每台主机和路由器中:
    • 发送端:将传输层数据单元封装在数据包中;
    • 接收端:解析接收的数据包,取出传输层数据单元,交付给传输层;
    • 路由器:检查数据包首部,转发数据包。

(二)网络层关键功能

  1. 转发(forwarding,数据面):将数据包从路由器的输入接口传送到正确的输出接口。
  2. 路由(routing,控制面):选择数据包从源端到目的端的路径。
    • 核心:路由算法与协议。
    • 路由算法(协议):确定通过网络的端到端路径;
    • 转发表确定在本路由器如何转发分组(确定输出链路)。
    • 转发表:由所有路由器动态运行的路由算法计算而得
首部值 输出链路
0100 3
0101 2
0111 2
1001 1

到达分组首部的值包含寻址信息。

二、无连接服务的实现

  1. 无连接服务:不需要提前建立连接。
  2. 数据报服务
    • 网络层向上只提供简单灵活无连接的、尽最大努力交付的数据报服务;
    • 发送分组时不需要先建立连接,每个分组独立发送;
    • 数据报独立转发,相同源-目的的数据报可能经过不同的路径;
    • 网络层不提供服务质量的承诺。
    • 注:H1发送给H2的分组可能沿着不同路径传送,在数据包分片的情况下,尽量还是沿相同路径。
  3. 尽力而为交付
    • 传输网络不提供端到端的可靠传输服务:丢包、乱序、错误;
    • 优点:网络的造价大大降低,运行方式灵活,能够适应多种应用。

三、面向连接服务的实现

  1. 面向连接服务
    • 通信之前先建立逻辑连接:在此过程中,如有需要,可以预留网络资源;
    • 结合使用可靠传输的网络协议,保证所发送的分组无差错按序到达终点。
  2. 虚电路是逻辑连接
    • 虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接;
    • 注:电路交换的电话通信是先建立了一条真正的连接;
    • 因此分组交换的虚连接和电路交换的连接只是类似,但并不完全相同。
    • 注:H1发送给H2的所有分组都沿着同一条虚电路传送。

四、虚电路与数据报网络

(一)面向连接的虚电路

  1. 虚电路:面向连接的方法。
    • 发送方A通过R1、R2、R3、X、R5(或其他路径)向接收方B发送分组,分组按序到达。
  2. 面向连接的方法也不一定能完全保证数据的可靠传输,链路中的任何一个组成环节仍有可能失效,而这种失效是严重的,可能导致所有数据丢失。
  3. 虚电路的转发策略:虚电路转发决策基于分组标签,即虚电路号。
输入   输出  
端口 标签 端口 标签
1 L1 3 L2
  1. 面向连接的过程
    • 第一阶段:建立连接(请求分组 + 确认分组)
    • 第二阶段:发送数据
    • 第三阶段:释放连接(发送方A发送拆除分组,接收方B确认)

(二)无连接的数据报

  1. 数据报(datagram):无连接的方法。
    • 发送方A通过R1、R3、X、R5(或其他路径)向接收方B发送分组,可能出现失序情况。
  2. 无连接的方法允许分组有选择不同路径的可能性,但这样可能会导致接收数据的失序。
    • 说明:为避免增加额外的开销进行数据排序,网络并不会完全随意地发送数据,在大多数情况下,仍然会尽量沿着一条路径发送。
  3. 数据报的转发策略:数据报转发决策基于分组的目的地址。
目的地址 输出端口
A 1
B 3

(三)虚电路与数据报网络的比较

| 对比内容 | 虚电路服务 | 数据报服务 | | — | — | — | | 可靠传输的保证 | 可靠通信由网络保证 | 可靠通信由主机保证 | | 连接的建立 | 必须要 | 不需要 | | 地址 | 每个分组含有一个短的虚电路号 | 每个分组需要有源地址和目的地址 | | 状态信息 | 建立好的虚电路要占用子网表空间 | 子网不存储状态信息 | | 路由选择 | 分组必须经过建立好的路由发送 | 每个分组独立选择路由 | | 分组顺序 | 总是按序到达 | 可能乱序 | | 路由器失效 | 所有经过失效路由器的虚电路都要终止 | 失效结点可能丢失分组 | | 差错处理和流量控制 | 网络或用户主机负责 | 用户主机负责 | | 拥塞控制 | 容易控制 | 难控制 |

1. 性能比较

例子:假设总带宽100Mbps,有2个数据源共享带宽。

  • 场景1:每个数据源按50Mbps的恒定速率发送数据
    • 虚电路服务:带宽不浪费,每个数据源发送数据的带宽都可被保证。
  • 场景2:每个数据源都是突发流量,且最高可达70Mbps
    • 虚电路服务:a. 丢掉一部分数据;b. 按预留带宽提供服务,若频繁流量突发,必定导致频繁过载。
    • 数据报服务:性能完全不受影响,也不会过载。

2. 效率比较

例子:假设不考虑过载,发送同样多的数据,消耗的时间比较。

  • 前提:不考虑A的发送时延和链路传播时延,3个转接节点,链路上的数据传输速率B bps,每个分组的长度P bit,每个分组的开销H bit,虚电路分组交换的呼叫建立时间S s,每个转接点的转接延迟时间D s。
  • 虚电路分组交换总时延:T=S+3[D+(P+H)/B]
  • 数据报分组交换总时延:T=3[D+(P+H)/B]

3. 发展历史比较

  • 70-80年代:分组交换(X.25,帧中继);
  • 80年代末-90年代:研究人员和工业应用认为电路交换更好(认为语音/电视直播将成为互联网真正的杀手级应用);
  • 分组交换已经成为互联网的实际服务方式,电路交换最终没有广泛应用于互联网(人们重新编写应用程序以适应网络(应用程序并不需要保证带宽),Email和Web广泛应用(突发流量));
  • 虚电路仍有使用。