TCP和UDP

2019-07-14  本文已影响0人  sydneywhatever

TCP是面向连接的协议,UDP是无连接的协议。

A给B送快递,A不管B在不在家,先送了再说,B碰巧在家快递就能收到,B不在家,快递就直接丢掉。这就是无连接的UDP协议。

A给B送快递,送之前先电话问问B在不在家,B不接电话不送,B接了电话回复不在家不送,问到一半信号不好还会重播,B接了电话并明确回复在家才约定时间派送,送之前先建立连接。这就是面向连接的TCP协议。

看起来UDP很不靠谱,这样的协议还有人用吗?UDP协议也有自身优势:效率高,速度快,占资源少。视频聊天、语音聊天、即时消息对速度要求高,丢几个包画面丢失几帧影响不大。但是视频网站使用的又是TCP协议,相比画面有马赛克,看视频时缓冲几秒再播放稍微能接受些。

TCP建立连接叫三次握手,断开连接时四次挥手。

三次握手过程:

1)A问B:你在家吗?

2)B回复A:我在的!

3)A再回复B:我知道你在家了。

接下来就可以愉快地派送快递了。

四次挥手过程:

1)A告诉B:我没有东西要送给你了;

2)B回复A:我知道了,你关闭连接吧,我再想想有没有东西需要发走的;

3)B告诉A:我没有需要发的快递,你走吧;

4)A回复B:我知道了,再见。

为什么建立连接三次就可以,断开连接需要四次?

因为TCP连接是全双工的,每个方向都必须要单独进行关闭。(单工通信:只能A向B发送数据;半双工:AB可以互发,但是同时只能有一个人在发;全双工:AB可以同时发送数据)

假设四次挥手的第二步,B有快递要发走,可以告诉A:帮我发一个快递,虽然A关闭了向B发送的连接,但是能收到B发过来的消息。

上一篇下一篇

猜你喜欢

热点阅读