美文网首页
TCP和UDP的区别

TCP和UDP的区别

作者: 卖毛玉的小贩 | 来源:发表于2019-07-18 23:33 被阅读0次
    • 上一篇大概的描述了下常见的协议,以及网络模型后
    • 这里当要依次描述下了,先说最熟悉的socket啊不,是应用层里的TCP和UDP了!

    TCP和UDP的区别

    - TCP 
        - Transmission Controller Protocol是传输控制协议
        - 提供的是面向连接、可靠的字节流服务。
        - 面向连接的可靠的 流式数据包传递,流式协议
    - UDP 
        - User Data Protocol是用户数据协议
        - 是一个简单的面向数据包的运输层协议。
        - 无连接的 不可靠的 报文传输,报式协议
    


    • 相同点:

      • 都是传递数据的通信协议
    • 不同点:

      • TCP是面向连接的通信协议,UDP则面向非连接

        • TCP在连接时,会进行3次握手
          • 主动发起连接请求端(客户端),发SYN标志位,携带序号
          • 被动接受连接请求段(服务器) 回复ACK标志位,携带确认序号,发SYN标志位,携带序号
          • 主动发起连接请求端(客户端),回复ACK标志位,携带确认序号
            • ——第二个ACK发送完成,标志三次握手完成,连接建立成功
            • ——服务器:Accept 函数方法
            • ——客户端:Dial函数返回
        • TCP在断开连接时,则会4次挥手
          • 主动关闭连接请求端(客户端),发FIN标志位 携带序号
          • 被动关闭连接请求端(服务器),接受FIN标志位,发送ACK标志位 携带确认序号
            • 客户端 "半关闭" 完成 底层一来内核实现socket原理
          • 被动关闭连接请求段(服务器),发送FIN标志位 携带序号
          • 主动关闭连接请求端(客户端),接受FIN标志位,发送ACK标志位 携带确认序号
            • 最后一个ack被被动关闭连接请求段接收到,标志着4次挥手完成,关闭连接
      • TCP可以保证不丢包,数据顺序,所以是相对可靠的网络协议,而UDP会丢包,不能保证顺序,所以不可靠

      • TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,而且UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低

      • TCP需要的资源比较多,相对而言,UDP就要的比较少

      • TCP建立对多连接需要开并发,这是因为TCP是点对点连接协议,而UDP可以做到一对一,一对多交互

      • 由于TCP数据稳定,可靠,所以自然为了维护稳定的数据,传输速度没有UDP快

        最后简答的用表格总结下

    • TCP UDP
      优点 稳定(顺序、速度)、可靠 传输效率高、系统资源占用少、实现简单
      缺点 传输效率低、系统资源占用多、程序实现复杂 不稳定(顺序、顺序)、不可靠
      使用场景 对数据的准确性、稳定性较高的场合。上传、下载,普通请求数据等 对数据实时性较高的场合,可适当允许丢包、游戏、在线视频,电话会议

    相关文章

      网友评论

          本文标题:TCP和UDP的区别

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