[Http]对Http中tcp基于连接和udp无连接的理解

来源:互联网 发布:淘宝商品下面的优惠券 编辑:程序博客网 时间:2024/06/06 18:23

一直以来没太懂tcp基于连接的通信方式的理解,以为连接就是指物理意义上的连接,两个东西,拿一根线联通起来。但是想到tcp层虽然分连接和无连接但是ip层可是都是面向无连接啊,怎么可能这里是物理上的连接的理解。于是在网上找了找基于连接和无连接的理解。发现了一些大牛的解答,记录下来,分享给自己。

在现实生活中,“要想富,先修路”;同时人总要“居有定所”,于是盖起了N多的房子。但是当你和同事商量好去做客的时候却发现,兜了半天就是找不到他家的房子。原因是路上没有指示牌,且所有的房子都没有门牌号码。所以你一怒之下,将有关部门举报了。几天过后门牌号码都钉在了房子的显著位置上。于是你再次和同事约定,按照朋友给的地址,顺利找到他家。可是,当你到了他家门口又遇到问题了:他家的房子非常的大,所以四处都装了门,有N个,你不知敲哪个门。

上面的比喻里:道路就不要说了,都是指网络中的硬件,光线、海底电缆…,路由器做指示牌,地址有现实中的xx省xx市xx路xxx号xx楼统一变为xxx.xxx.xxx.xxx的IP地址了;而那房子就是计算机/服务器,房子的N个门就是计算机的65535个端口。

说到你问的TCP,你不能单纯的去用TCP连接理解网络实际工作过程。在我上面的例子中,代表“TCP连接”的是”你和朋友面对面接触并商量好”这个过程而已。如果你换个方式:你没见到他本人,只是给他留个便条,说你要去做客,然后你就去了,那这个过程就是一个UDP的过程,因为你到了他的办公桌前,留下了纸条,就视作建立了“UDP连接”。

TCP是可靠的连接,因为你和他当面锣对面鼓的商定了那件事情;而UDP是不可靠连接,因为你只是留了个便条给他,你不知道他是否收到了你的便条,天知道纸条是否被风扇吹到垃圾篓去了:))。但是显而易见的是,UDP更便当而TCP很麻烦。

说到这些就不能不提到SOCKET这个重要的概念。一个著名的比喻是:你要打电话,首先必须要先把电话线接到电话插槽。然后你拿起电话给朋友打电话,电话通了,你问:“你是赵二吗?”,对方回答“是”,这样你们就建立了一次可靠连接;然后你说:“周六我去你家做客,准备好酒菜”;赵二回答:“好的”,这样你们就建立了三次可靠的连接—事情敲定!这就是TCP连接(三次握手)。然而当你拿起电话给朋友打电话,电话通了但一直没人接,几声之后转到录音电话上,你只好留言说我要去做客了云云,然后就挂断电话了。你也并不知道赵二是否听到了你的录音留言,这就是UDP的不可靠连接。

一开始的理解建立在物理层上的交换方式,而tcp和udp的差比则显然是已经在传输层了,所以理解会有偏差。至于说现在的以太网交换,则显然是分组交换的方式了。

0 0
原创粉丝点击