tcp和udp的区别

半兽人 发表于: 2015-10-08   最后更新时间: 2019-02-15  

在现实生活中,“要想富,先修路”;同时人总要“居有定所”,于是盖起了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的不可靠连接。



您需要解锁本帖隐藏内容请: 点击这里
本帖隐藏的内容




上一条: Form too large 270867>200000 jetty 8
下一条: ?号的css