面向连接与电路交换,无连接与分组交换

lam*_*kie 4 networking network-programming

正如标题所暗示的那样,我无法看到我大学网络课程中不断提到的以下概念之间的区别:

  • 面向连接的服务和(虚拟)电路交换有什么区别?
  • 无连接服务和数据包交换有什么区别?

我觉得各个术语都在不断地使用相同的类比来解释。由于我无法在网上找到明确的答案,我认为在这里提及这一点可能是个好主意。

谢谢!

Jam*_*son 9

大多数人都了解经典的 Internet (IP) 和电话线 (POTS) 示例,但不幸的是,这些示例还不足以完全区分这四个术语:

                         | Packet-switching (PS)        | Circuit-Switching (CS) |
                         |------------------------------|------------------------|
Connectionless (CL)      | IP                           | -                      |
Connection-oriented (CO) | ...                          | Telephone (POTS)       |
Run Code Online (Sandbox Code Playgroud)

从上面很容易看出人们如何将 CO 等同于 CS 并将 CL 等同于 PS。然而,这是等同起来错的,因为它的出现,但是也有一些协议,面向连接的分组交换:

                         | Packet-switching (PS)        | Circuit-Switching (CS) |
                         |------------------------------|------------------------|
Connectionless (CL)      | IP                           | -                      |
Connection-oriented (CO) | TCP, ATM, X.25               | Telephone (POTS)       |
Run Code Online (Sandbox Code Playgroud)

左下角现在填充了第三种类型的网络,乍一看似乎令人困惑。
为了理解,请比较三个:

  1. (CO, CS) : 数据流走相同的路径——这一层和下面的所有层都使用相同的路径。
  2. (CL, PS):数据流采用不同的路径——对于这一层和较低的层本身可能会分解数据并分支到更多的替代路径。
  3. (CO, PS):数据流显然采用相同的路径——这一层和下层通过一个细节紧密耦合:下层协议采用上层的数据流并分解为采用不同路径的“数据包” . 低层协议必须在最后重新排序,以便“欺骗”高层认为它们走的是同一条路径(这里高层协议暂时认为按顺序到达的数据包与它们走相同的路径是一样的)小路)。

第一种情况太死板,不再使用。第三种情况被 Internet 大量使用——在 TCP 中,数据流是一条微不足道的路径,由从主机到主机的一条边组成。在这一层,这只是一个可能的路径,因此数据确实总是沿着相同的路径(平凡地)流动。但是,它使用较低层协议 IP,它将我们的数据流分解为采用不同路径的“数据包”。(CO, PS) 网络有一个更花哨的名称虚拟电路。还要注意 (CL, CS) 网络不存在。

  • 数据包交换/电路交换- 数据被/不分成“数据包”
  • 无连接/面向连接- 数据可能不/确实采用相同的路径,或等效地:数据可能无序到达/总是按序到达

不要通过编写“(虚拟)电路交换”来混淆电路交换虚拟电路这两个术语。它们是完全不同的两种东西。例如,POTS 电话线是电路交换,但与虚电路无关!

我看到的最大错误是假设所有分组交换网络都是无连接的。在学校,他们告诉我,数据包交换网络必须接收数据包并单独路由它们,从而导致不同的路径和无序交付。这是错误的!这仅适用于 CL 分组交换。来自维基百科

分组交换可分为无连接分组交换,也称为数据报交换,和面向连接的分组交换,也称为虚电路交换。

事实上,当您在浏览器中访问网站时,您将使用 CO 数据包交换(准确地说是 TCP)。

如果你喜欢类比:

  • (CO, CS):老式电话。你的话是按照你说的顺序来的。电话呼叫数据没有分解成“数据包”进行路由(实际上,路由是由电话运营商使用交换板手动完成的)。
  • (CL, PS):使用邮寄方式发送信件。您的信件可能无法按顺序送达。字母是“数据包”。
  • (CO, PS):X 给助手一份文件。助理将文件的每一页都用一封信发送。在另一端,另一位助手重新整理文档的页面并将其交给 Y。X 和 Y 可以将所有页面按顺序发送给对方;但实际上他们被打乱了,在邮局走不同的路线;并最终被破解。


Adr*_*ian 0

你有点不对劲。基于数据包的通信可以是无连接的或面向连接的。例如,原始 IP 通信是无连接的。IP 不保存有关接收主机的任何状态信息,数据包只是被发送。另一方面,TCP 通过交换 SYN 和 ACK 消息来实现基于 IP 的连接,以确保两个主机都知道正在进行的通信。

据我了解,基于电路的通信始终是面向连接的。