• 计网第五章(运输层)(三)(TCP和UDP的对比)


    一、UDP协议和TCP协议的对比

    1、UDP无连接,TCP面向连接

    使用UDP协议的通信双方可以随时发送数据,使用TCP协议的通信双方必须先进行3次握手建立连接,才能发送数据,最后还要进行4次挥手才能释放连接。

    2、UDP支持单播、多播以及广播,TCP只支持单播

    可以和第一点联系起来,TCP要想发送数据得先建立起连接,也就是说双方没有建立连接自然不能发送数据。但是UDP可以随时发送数据,没有那么多的局限性,也就支持单播、多播和广播。

    3、UDP面向应用报文,TCP面向字节流

    UDP:

    通信双方使用UDP协议,发送方的运输层给从应用层传下来的应用报文添加一个UDP首部,使之成为UDP数据报(上一节提到的UDP复用),随后经过下面各层处理后进行发送。

    接收方收到后,在运输层去除UDP数据报的UDP首部,并交付给上一层(上一节提到的UDP分用)。

    很明显可以看到,整个过程UDP对应用报文并没有进行合并,也没有进行拆分,发送方仅仅只是添加一个UDP首部,就交给下一层;而接收方也仅仅只是将UDP首部去掉,随后交付给上一层。所以UDP是面向应用报文的。

    TCP:

    如果通信双方使用TCP协议,发送的运输层将应用层传下来的数据块看成一连串的、无结构的字节流。TCP将它们编号并存储在自己的发送缓存中,TCP根据发送策略从发送缓存中提取一定数量的字节,构成TCP报文段并发送。

    接收方从接收到的报文段中取出数据载荷部分并存储在接收缓存中,同时将接收缓存中的一些字节交付给上层。

    所以TCP是面向字节流的。这也是TCP实现可靠传输、流量控制和拥塞控制的基础。

    4、UDP提供不可靠传输,TCP提供可靠传输

    5、UDP数据报首部仅有8字节,TCP报文段首部最小20字节、最大为60字节。

  • 相关阅读:
    WWW‘22 推荐系统论文之序列推荐篇
    在Node.js中,什么是事件发射器(EventEmitter)?
    第二十一条:为传诸后世而设计接口
    嵌入式进阶——EEPROM读写
    修改/etc/fstab文件导致Linux无法正常启动解决方法
    【机器学习项目实战10例】(三):基于K近邻的葡萄酒质量检测项目
    【Spring源码】13. 国际化处理initMessageSource()源码解析
    Redis学习
    Android 状态栏显示运营商名称
    java理论知识之Kafka
  • 原文地址:https://blog.csdn.net/ylxb2234/article/details/132874133