TCP和UDP的区别

  • 上一篇大概的描述了下常见的协议,以及网络模型后
  • 这里当要依次描述下了,先说最熟悉的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是传输控制协议,提供的是面向连接,可靠的字节流服务,当客户和服务器彼此交换数据前,必须先在双方之间建立一个T...
    牛奶红茶阅读 5,513评论 0 0
  • 趁这今天,忙里偷闲的温习一下TCP和UDP TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与...
    守候的流年阅读 3,462评论 0 4
  • TCP协议与UDP协议的区别首先咱们弄清楚,****TCP****协议和****UCP****协议与****TCP...
    职场过客阅读 4,042评论 0 3
  • 注: 本文参考极客时间《趣谈计算机网络》 TCP和UDP的区别 首先TCP是面向连接的,UDP是无需连接的,TCP...
    ChaLLengerZeng阅读 14,818评论 0 6
  • 执行安装brew 进入终端之后,执行brew的安装。 安装 wget 执行完毕之后,我们就可以用wget命令下载远...
    鄒賢阅读 10,901评论 1 0