TCP和UDP

作者: sydneywhatever | 来源:发表于2019-07-14 22:53 被阅读0次

    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发过来的消息。

    相关文章

      网友评论

          本文标题:TCP和UDP

          本文链接:https://www.haomeiwen.com/subject/natwkctx.html