为什么我们说TCP/IP套件中的IP协议是无连接的?

smw*_*dia 13 networking network-programming tcp

为什么IP称为无连接协议?如果是这样,那么面向连接的协议是什么呢?

谢谢.

更新 - 2010年12月21日20:21

我认为,为了更好地回答我的问题,最好解释一下"连接"在物理上和逻辑上的实际意义.

更新 - 2 - 9:59 AM 2/1/2013

根据以下所有答案,我认为这里提到的"联系"应被视为一系列行动/安排/纪律.因此,它更像是一个抽象的概念,而不是一个具体的对象.

更新 - 3 - 2015年6月18日上午11:35

这是一个更实际的解释:

  • IP协议是无连接的,因为IP网络中的所有分组都是独立路由的,它们可能不一定经过相同的路由,而在面向连接的虚拟电路网络中,所有分组都经过相同的路由.这条单一路线就是"虚拟电路"的意思.

  • 通过连接,因为只有1条路由,所有数据包的到达顺序与发送时的顺序相同.

  • 如果没有连接,则无法保证所有数据包都会以与发送时相同的顺序到达.

更新 - 2016年1月9日上午9点55分/ 1月20日/周三

其中一个特征connection-oriented是保留了包顺序.TCP使用序列号来实现这一目标,但IP没有这样的功能.因此,TCP是面向连接的,而IP是无连接的.

Jer*_*fin 15

基本思路非常简单:使用IP(单独使用 - 无TCP,UDP等),您只需发送一个数据包.您只需使用目标地址将一些数据发送到网络上,但就是这样.IP本身就是:

  1. 不保证它会被交付
  2. 没办法弄清楚它是不是
  3. 什么都不让目的地知道期待一个包
  4. 其他很多东西

它所做的只是指定一个最小的数据包格式,这样你就可以从一个点到另一个点获取一些数据(例如,路由器知道数据包格式,因此他们可以查看目的地并在下一跳发送数据包).

TCP是面向连接的.建立连接意味着在TCP会话开始时,它执行"三次握手",因此(特别是)目标知道已建立与源的连接.它在内部跟踪该地址,因此它可以/将要/期望从中获得更多数据包,并且能够发送回复(例如)确认它收到的每个数据包.源和目的地还协作对确认方案的所有分组进行序列号编码,因此每一端都知道它发送的分组是否在另一端接收.这在物理上并不多,但逻辑上它涉及在两端分配一些内存.这包括用于元数据的存储器,例如要使用的下一个包序列号,以及用于可能重新传输的有效载荷数据,直到另一方确认收到该包.


gbn*_*gbn 9

TCP/IP表示"TCP over IP".

TCP
--
IP
Run Code Online (Sandbox Code Playgroud)
  • TCP提供"面向连接"的逻辑,排序和控制
  • IP提供从A到B的数据包,但它可以:"无连接"

笔记:

  • UDP是连接较少但与TCP相同的级别
  • 其他协议(如ICMP(由ping使用))可以通过IP运行,但与TCP无关

编辑:

  • "面向连接"意味着建立端到端连接.例如,你拿起电话,打电话给某人=你有连接.

  • "无连接"意味着"发送它,看看会发生什么".例如,通过蜗牛mail.a发送一封信

因此,IP可以以任何顺序从A到B获取数据包,而不是最终.TCP对它们进行排序,确认它们,请求重新发送并提供"连接"