【计算机网络 | 第十三篇】网络层服务的两种实现方式:无连接和面向连接

文章目录

网络层向运输层提供的服务主要分为两种:无连接的数据报服务面向连接的虚电路服务。互联网选择了前者,而早期的 ATM 等网络技术则选择了后者。

1. 无连接服务:数据报 (Datagram)

数据报服务 的设计思路是网络层向上只提供简单灵活的、无连接的、尽最大努力交付 的服务。

核心特性
  • 无需建立连接:发送分组时不需要预先建立连接,每一个分组(即数据报)独立发送。
  • 独立路由:相同源-目的的数据报可能经过不同的路径传输。
  • 无 QoS 承诺 :网络层不提供服务质量的承诺。传输网络不提供端到端的可靠传输服务,数据报可能出现丢包、乱序、错误
  • 尽力而为:如果网络发生拥塞,路由器会根据策略丢弃分组。
实现机制

在无连接服务中,主机 H1 发送给 H2 的分组可能沿着不同的路径传送。例如,当网络中某个节点发生故障或拥塞时,后续的分组可以动态调整路径。

  • 优点:网络的造价大大降低,运行方式灵活,能够适应多种应用。
  • 缺点:不能保证分组按序到达,接收端可能需要进行重组和排序。
转发策略

数据报的转发决策是基于分组的目的地址。路由器根据转发表,查找目的地址对应的下一跳出口。


2. 面向连接服务:虚电路 (Virtual Circuit)

虚电路服务的设计思路是模仿电信网的电话通信,认为网络应当提供可靠的传输服务。

核心特性
  • 逻辑连接 :虚电路是一条逻辑上的连接。分组都沿着这条逻辑连接按照存储转发方式传送,而不是建立了一条真正的物理连接(这与电路交换不同)。
  • 可靠性:结合可靠传输的网络协议,保证所发送的分组无差错、按序到达终点。
  • 资源预留:在连接建立过程中,如由需要,可以预留网络资源。
工作阶段

面向连接的服务分为三个阶段:

  1. 建立连接:发送方发送"请求分组",接收方回送"确认分组",在沿途路由器中建立转发表项(虚电路表)。
  2. 数据传送:所有分组都沿着同一条虚电路传送。
  3. 释放连接:通信结束后,拆除虚电路,释放资源。

面向连接的服务端三阶段图示:

转发策略

虚电路的转发决策基于分组标签,即虚电路号。

  • 标签交换:路由器根据输入端口和输入标签,查找转发表,确定输出端口和输出标签。
  • 开销较小:相比于查找长的 IP 地址,交换短的标签通常处理速度更快。

3. 两种服务的对比

特性 数据报服务 虚电路服务
连接的建立 不需要 必须有
目的地址 每个分组都有完整的目的地址 仅在建立连接阶段使用,之后使用简短的虚电路号
路由选择 每个分组独立选择路由 建立连接时确定,所有分组沿同一路由
分组顺序 不保证按序到达 保证按序到达
可靠性 尽最大努力交付 (不可靠) 可以由网络保证可靠性
对故障的适应性 强 (节点故障时可重新路由) 弱 (节点故障导致虚电路中断)

互联网的发展历史证明,无连接的数据报服务由于其灵活性和低成本,成为了当今网络层的主流设计思路。

数据报转发策略:

相关推荐
searchforAI7 分钟前
网盘视频转文字后,如何高效做笔记并长期归档?
人工智能·笔记·学习·ai·音视频·语音识别·网盘
长河8 分钟前
APISIX
java·网络
FBI HackerHarry浩11 分钟前
在Python中TCP网络程序开发的步骤流程
运维·服务器·开发语言·网络·python·pycharm
土狗TuGou18 分钟前
SQL内功笔记 · 第9篇:UPDATE FROM 进阶——告别逐行子查询,拥抱集合更新
java·数据库·笔记·sql·mysql
wanhengidc25 分钟前
服务器 数据恢复
运维·服务器·网络·智能手机·云计算
代码地平线27 分钟前
C++ 入门篇类和对象·上篇:从本质深剖类与对象与C++基本用法
c语言·开发语言·数据结构·c++·笔记·算法
黑猫警长丶36 分钟前
Git 操作笔记
笔记·git
数智工坊41 分钟前
周志华《Machine Learning》学习笔记--第四章--决策树
笔记·学习·机器学习
百万小涵1 小时前
从零接入大模型:通义千问、Ollama 与 OpenAI SDK 入门(RAG与Agent实战学习笔记①)
笔记·学习
我命由我123451 小时前
BOM 极简理解
运维·经验分享·笔记·物联网·学习·运维开发·学习方法