通信网络
教材里总是在说TCP的特性就是面向连接的,是可靠传输,可以差错控制和流量控制,还总说TCP的数据传送是建立在虚电路的基础上的,我就不明白了,主机到主机的通信需要网络层的支持,而IP协议是不面向连接的,也就是网络层发送的分组到接受端是不一定有序,而且走的线路也是错综复杂,这样的话TCP怎么就能保证这些数据在传送中沿着建立好的虚电路有序地送到接收端,根本不可能嘛,教材里说连接的建立就是三次握手,握手就能建立虚电路了?
还是我理解的虚电路有问题?
我在复旦版的指南里物理层那一章讲义的最后一部分查到了关于虚电路的相关叙述,说数据沿着虚电路有序地发送到接收端,这样的话我的理解就没什么偏差,到底是怎么一回事?
为面向连接的会话建立的通信信道自然是逻辑的,常被称作虚电路(virtual circuit),它关心的是端点。与在网络上寻求一条实际的物理路径相比,这条信道更关心的是保持两个端点的联系。在有多条到达目的地路径的网络中,物理路径在会话期间随着数据模式的改变而改变,但是端点(和中间节点)一直保持对路径进行跟踪。
虚电路,应该是指“意”的虚。就是存在那么一条电路,逻辑上好象是固定的存在的,但事实它是随着会话的不同而使用不同的路径。也就是说没有一条固定的路径。它是在通信过程中灵活地变动的。具体使用哪条路径以及如何操作,通过三次握手来进行建立。在发握手信号的过程中,知道了发送方与接收方,然后建立一条路径。这条路径是一条逻辑上的电路。以后的传输就由此来进行。::71:: ::73::
面向连接的会话的建立过程如下:
1.源应用程序请求一个面向连接的通信会话。
2.建立会话(需要一段时间,是选用无连接的协议的一个原因)。
3.在逻辑连接上开始数据传输。
4.传输结束时,信道解除连接。
今天我又查阅了一些资料,发觉一个问题,TCP所谓的面向连接的特性以及建立虚电路,与网络层虚电路服务好像有着本质的区别,网络层的带有虚电路的服务的协议典型的有曾经应用在广域网的X.25和帧中继,这两个协议在建立连接时要建立所谓的虚电路号,在传输的数据单元中有已经填好的虚电路号,数据单元沿着既定的虚电路沿着既定的方向(一定的路由器序列)到接收端,这样能够保证数据单元到达接收端是有序地,而且也能很好的保障可靠传输
而TCP的面向连接服务在建立连接时只是进行了三次握手,具体主机到主机的传输以来网络层,也就是IP层提供的路由服务,而IP层在发送以及转发分组是无序的,举个简单的例子,如果IP协议和X.25协议(假设这两个协议应用在同一个案例中)在建立连接时指定了一段A到B得链路,如果A到B得链路在某个时刻出现拥塞,IP协议可能会让分组到达A以后选择另外一条路由,而X.25就只能利用一些流量控制等措施来控制发送端的发送速度,但是不会选择A到B以外的路径,所以TCP所谓的虚电路和网络层的虚电路服务这样理解的话完全不是一个概念。
网络层的虚电路服务时真正指明了一条链路序列,数据只能在这个指明的链路中有序地发送到接收端,而TCP的虚电路只是依靠他的拥塞控制,流量控制和差错控制来令收到的报文段看起来是有序地(在滑动窗口机制里可能出现后面的字节流先到或者字节丢失的情况,所以可以看出来TCP不能保证真正的传输的可靠性,只是依靠差错控制来保证能可靠地收到正确的数据流),而TCP的报文段实际在网络中传输时不可靠且无需的。
我现在是这样理解的,你觉得有道理没?
全部0条评论
快来发表一下你的评论吧 !