首页 > TCP/IP通信协议的小疑惑

TCP/IP通信协议的小疑惑

一般说基于TCP/IP的Socket编程是在通信的两端建立了一个虚拟链路,然后就可以通过虚拟链路进行通信。怎么理解这说的虚拟链路,为什么说是虚拟的? 既然是虚拟的为什么还能通信?又不是虚拟链路的连接么?


虚拟链路的意思是TCP/IP只用管source和target的ip/port,并不用管物理上经过的是以太网这种局域网抑或是广域网,TCP也不用管数据包的路由。TCP的发起连接有握手,并且有序号和超时来保证收到的数据总能是完整的,就好像有一个连接一样,所以叫虚拟链路。


你说的虚拟链路就是一个连接 因为它不能保证每个数据包都经由同样的一条路由到达目的地 也不是一个专用的通信信道 但是 TCP协议通过一个连接 提供了数据的保障 保证数据能够准确的发送到目的地,相比之下UDP就不是一个可靠的传输方式 因为他没有事先建立连接 所以无法保证数据到达目的地


举个简单的例子给你,比如你在北京过年想回家,假设你在北京北站,你的目的地在昆明汽车站,ok,你出发到家的方式有多种,你可以先坐火车到美国,再坐汽车到家(开玩笑了),就是不管你中间去了哪里,只关心你从哪里出去,然后目的地在哪里,这里北京就相当于源ip,北站相当于源站绑定的port,昆明相当于目的ip,汽车站是目的port,中间的线路就是你所谓的虚拟链路。有问题随时补充~~~

【热门文章】
【热门文章】