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

时间:2010-12-26 11:42:03

标签: networking network-programming tcp

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

感谢。

更新 - 1 - 20:21 2010/12/26

我认为,为了更好地回答我的问题,最好解释“连接”在物理上和逻辑上的实际含义。

更新 - 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是无连接的。

7 个答案:

答案 0 :(得分:14)

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

  1. 无法保证会发送
  2. 无法确定是否
  3. 没有什么可以让目的地知道期待一个包
  4. 其他很多东西
  5. 所有这一切都是指定一个最小数据包格式,这样你就可以从一个点到另一个点获取一些数据(例如,路由器知道数据包格式,因此他们可以查看目的地并在下一跳发送数据包)。 / p>

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

答案 1 :(得分:9)

TCP / IP表示“TCP over IP”。

TCP
--
IP
  • TCP提供“面向连接”的逻辑,排序和控制
  • IP提供从A到B的数据包,但它可以:“无连接”

注意:

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

编辑:

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

  • “无连接”意味着“发送它,看看会发生什么”。例如,通过蜗牛mail.a发送信件

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

答案 2 :(得分:2)

TCP是TCP / IP的连接部分。 IP是寻址。

或者,作为类比,IP是写在信封上的地址,TCP是邮政系统,它使用地址作为从A点到B点获取信封的工作的一部分。

答案 3 :(得分:2)

无连接意味着不需要设置专用的端到端连接,而面向连接意味着当设备通信时,它们会执行握手以建立端到端连接。

IP是无连接协议的一个示例,在这种协议中,您通常在一个方向上从源到目的地发送信息,而不检查目的地是否仍在那里,或者是否准备接收信息。

当您不关心某些数据包是否丢失时,无连接协议(如IP和UDP)用于视频会议,而您在发送时必须使用面向连接的协议(如TCP) a文件,因为您要确保所有数据包都已成功发送(实际上我们使用FTP传输文件)。

编辑

  

在电信和计算领域   一般来说,连接是   顺利完成必要的   安排使两个或更多   派对(例如,人或   程序)可以长时间沟通   距离。在这种用法中,术语有   强大的物理(硬件)   内涵虽然合乎逻辑   (软件)元素通常   也参与其中。   

     

物理连接是第1层   OSI模型,是媒介   通过它传输数据。   即电缆   

     

逻辑连接是第3层   OSI模型,是网络   一部分。使用网络   协议(IP),每个主机分配一个   32位IP地址。例如192.168.1.1

答案 4 :(得分:1)

当两个主机想要使用面向连接的协议进行通信时,其中一个主机必须首先启动连接,另一个必须接受它。逻辑上,在一个主机中的端口与另一个主机中的其他端口之间建立连接。一台主机中的软件必须执行连接套接字操作,另一台必须执行接受套接字操作。物理上,启动器主机发送SYN数据包,其中包含所有四个连接标识号(源IP,源端口,目标IP,目标端口)。另一个接收它并发送SYN-ACK,发起者发送ACK,然后建立连接。建立连接后,可以在两个方向上传输数据。 另一方面,无连接协议意味着我们不需要建立连接来发送数据。这意味着从一个主机发送到另一个主机的第一个数据包可能包含数据有效负载。当然对于诸如UDP的上层协议,接收者必须首先准备好(例如)它必须执行listen udp套接字操作。

  • 无连接IP成为上层
  • 中TCP的基础
  • 在TCP中,只需要最少2倍的往返时间即可发送一个数据包。即:a-> b用于SYN,b-> a用于SYN-ACK,a-> b用于ACK用DATA,b-> a用于ACK。对于流量控制,Nagle算法适用于此处。
  • 在UDP中,只需要0.5次往返时间:a-> b,带有DATA。但要做好准备,一些数据包可能会无声地丢失,并且没有进行流量控制。可以以大于接收系统能力的速率发送数据包。

答案 5 :(得分:1)

据我所知,每一层都愚弄了它上面的那个。 TCP从Application层获取HTTP消息并将其分解为数据包。让我们称他们为数据包。 IP从TCP逐个获取这些数据包并将其抛向目的地;此外,它收集传入的数据包并将其传递给TCP。现在,TCP在发送数据包后,等待来自另一方的确认数据包。如果它来了,它说上面的层,嘿,我已经建立了连接,现在我们可以沟通!整个通信过程在两侧的TCP层之间进行,彼此发送和接收不同类型的分组(例如数据分组,确认分组,同步分组,blah blah分组)。它使用其他技巧(所有数据包发送)来确保实际数据包在被破坏和组装时按顺序传送。组装后,将它们传送到上面的应用层。那个傻瓜认为它在已建立的连接中有一条HTTP消息,但实际上只是正在传输数据包。

答案 6 :(得分:-2)

我今天刚遇到这个问题。它整天在我的脑海里蹦蹦跳跳,没有任何意义。 IP不处理传输。为什么有人甚至会认为IP是无连接或面向连接的?它在技术上是无连接的,因为它没有可靠性,也没有保证交付。但我的烤面包机也是如此。我的烤面包机没有保证交货,所以为什么不打电话给烤面包机呢?

最后,我发现它只是一些愚蠢的标题,某个地方的某个人附加到IP并且卡住了,现在每个人都称IP无连接,没有充分的理由。

调用IP无连接意味着还有另一个面向连接的第3层协议,但据我所知,没有,并且指定IP是无连接的只是简单的愚蠢。 MAC是无连接的。 LLC是无连接的。但这是无用的,技术上正确的信息。