IP为什么叫无连接协议(protocol)?如果是,那么什么是面向连接的协议(protocol)?
谢谢。
更新 - 1 - 20:21 2010/12/26
我认为,为了更好地回答我的问题,最好从物理上和逻辑上解释“连接”的实际含义。
更新 - 2 - 2013 年 2 月 1 日上午 9:59
根据下面的所有回答,我觉得这里所说的“联系”应该被视为一组行动/安排/纪律。因此它更像是一个抽象的概念,而不是一个具体的对象。
更新 - 2015 年 6 月 18 日 3 - 11:35
这是一个更物理的解释:
IP 协议(protocol)是无连接的,因为 IP 网络中的所有数据包都是独立路由的,它们不一定经过相同的路由,而在面向连接的虚电路网络中,所有数据包都经过相同的路由。这条单一路线就是“虚拟电路”的意思。
有了连接,因为只有1条路由,所以所有的数据包都会按照发送的顺序到达。
没有连接,不保证所有数据包都能到达 按照发送顺序相同。
更新 - 2016/1/20/周三 4 - 9:55
面向连接
的特征之一是保留了数据包顺序。 TCP 使用序列号来实现,但 IP 没有这样的设施。因此,TCP 是面向连接的,而 IP 是无连接的。
最佳答案
基本思想非常简单:使用 IP(就其本身而言——没有 TCP、UDP 等),您只需发送一个数据包。您只需将一些带有目标地址的数据发送到网络上,仅此而已。 IP 本身提供:
- 不保证一定会送达
- 没办法知道是不是
- 没有让目的地知道等待数据包的东西
- 很多其他的
它所做的只是指定一个最小的数据包格式,这样您就可以从一个点到另一个点获取一些数据(例如,路由器知道数据包格式,因此它们可以查看目的地并在下一跳发送数据包)。
TCP 是面向连接的。建立连接意味着在 TCP 对话开始时,它会进行“三次握手”,因此(特别是)目标知道与源的连接已经建立。它在内部跟踪该地址,因此它可以/将/确实期望来自它的更多数据包,并且能够发送回复以(例如)确认它收到的每个数据包。源端和目标端还合作为确认方案对所有数据包进行序列号,因此每一端都知道它发送的数据包是否在另一端收到。这在物理上并不涉及太多,但逻辑上它涉及在两端分配一些内存。这包括用于元数据的内存,例如要使用的下一个数据包序列号,以及用于可能重新传输的有效负载数据,直到另一方确认收到该数据包。
关于networking - 为什么说TCP/IP族中的IP协议(protocol)是无连接的呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4533686/