如果TCP是面向连接的,为什么包遵循不同的路径?(If TCP is connection orie

2019-07-23 02:30发布

据我所知,如果互联网应用必须设计,我们应该使用一个面向连接的服务或无连接的服务,但不能同时使用。

互联网的连接的面向服务是TCP和无连接的服务是UDP,和两个位于因特网协议栈的传输层英寸

互联网唯一的网络层是IP,这是一种无连接的服务。 因此,这意味着任何应用程序,我们设计它最终使用IP来传送数据包。

面向连接的服务,使用相同的路径来传输所有的数据包,无连接的没有。

因此,我的问题是,

如果一个面向连接的应用程序已被设计的,它应当发送使用相同的路径的报文。 但是IP打破通过使用不同的routes.So这个规则怎么办TCP和IP一起工作在此意义? 它完全混淆了我。

Answer 1:

你,我的朋友,是在混淆的两个不同层的功能。

TCP是在这个意义上,有一个连接建立,两端在那里他们可以协商不同的东西像除其他事项外拥塞控制机制之间的面向连接。
传输层协议的一般目的是提供进程到进程交付的意义,它不知道什么航线; 你的数据包如何到达终端系统是超出了他们的范围,他们只关心如何被两个端进程之间传输的数据包。

IP,在另一方面,该网络层协议,用于互联网,涉及端系统之间的数据传送但它是无连接的,它保持不连接,因此每个分组的其它分组的独立处理。
离开你的系统中,每个路由器会选择其认为合适的每个数据包的路径,而这个路径可能视情况而定/拥挤改变。

那如何回答你的问题?
TCP将确保数据包到达其他进程,也不会怎么在意,他们到了那里。
IP,而另一方面,也不会在意他们到达另一端的话,那会简单地转发根据它所认为最适合特定的数据包的每个不同的数据包。

注意:
让我们假设IP是面向连接的,将是平均数据包将遵循同样的路径? 不一定,要看是什么在这一层单词“连接”的意思,如果这意味着谈判与安全相关的某些选项,例如,你可能仍然有你的包正在通过在互联网上不同的路径转发。

编辑:
但是不要迷惑你,在网络层最面向连接的服务,下面是指建立在连接,还规定,所有的“包”必须遵循,为了解进一步信息的虚拟路径:
虚电路和帧中继网络



Answer 2:

此链接回答您的问题非常好http://www.tcpipguide.com/free/t_ConnectionOrientedandConnectionlessProtocols-3.htm

有些人认为这(TCP)要像在较高网络层电路交换“仿真”; 这也许是有点可疑的比喻。 即使一个TCP连接可以用来发送数据来回设备之间,所有的数据确实仍然被发送的数据包; 有在设备之间没有真正的电路。 这意味着,TCP必须处理的分组交换通信的所有潜在的隐患,如不正确的顺序数据丢失或接收的数据块的潜力。

随着IP数据包无序到达或丢失的问题TCP协议的交易,给你他们通过一个单一的FIFO通道到达的感觉。 是的,TCP是足够聪明,这样做,有没有需要专用的基础通道。



Answer 3:

该TCP protocal由发送/接收设备来实现,一旦包离开发送机,它们沿行进一无所知TCP路由器,他们只是用IP来从源头到目的地获取数据包。 然后,它是目标机器作业,使用TCP,确保所有的数据包到达,他们在正确的顺序到达。 互联网本身并不知道什么TCP,它只是提供了连接到连接介质(互联网)层(通常软件)。

所以onces分组离开的目的地,它可以沿着任何路径(大部分),只要它到达desintation,无论是高层协议(如TCP或UDP)的去。

我的意思是,它更复杂那么一点,但据我记得是这样的总体思路。



Answer 4:

路由器工作在三层只(物理层,数据链路层和网络层),所以路由器将只取决于信息采取的决定。 网络层(IP协议)的,因此没有可用的关于它的TCP或UDP在路由器信息



文章来源: If TCP is connection oriented why do packets follow different paths?