• TCP与UDP的区别


    UDP

    什么是UDP

    UDP(User Datagram Protocol)用户数据报协议

    特点:

    1. 面向无连接的,也就是通信双方不需要像TCP那样先建立连接才能发送数据

    2. 尽最大努力交付,不可靠,没有确认也没有重传机制。

    3. 面向报文,应用层传下来的报文有多大,都统一接收,既不合并,也不拆分,

      所以IP很可能由于传输层的UDP报文过大,加上IP头后,大于MTU,出现分片的情况

      而TCP在这里会有一个MSS的功能,他还有一个缓存,可以等到一个MSS的长度时,再一并

      组成一个报文发下去。

    4. 没有拥塞控制,所以通常能胜任一些实时性需求较高的服务,比如IP电话和视频传输,

      而TCP通过拥塞窗口和慢开始,拥塞避免等算法实现拥塞控制,会降低发送方的发送速度。

    5. 从开销的角度看,UDP报文首部只有8个字节,和TCP固定首部长度20字节比起来小了,

      而且不用建立连接,所以开销更小。

    6. 通信方式:一对多,多对多,多对一的。而TCP是端到端的

    几个技术

    伪头部:用于实现传输层对传输层报文的校验,不会出现在网络层,只是到达传输层的时候,

    临时加上这个伪头部,根据伪头部 + UDP头部 + UDP数据部分 计算UDP校验和。

    为什么? 因为IP地址传输过程中可能出现差错,而路由器重新计算校验和后,传给错误的主机,

    而主机最终还可以在这一层通过校验和,发现差错,并丢弃报文。

     

    TCP

    1. Transmission Control Protocol 传输控制协议

    2. 面向连接 ,区别于UDP,使用TCP的发送方和接收方发送数据之前需要先建立连接,(三次握手)

      数据传输完毕后,还要释放连接 (四次握手)

    3. 端对端的通信方式,是一个Socket连接到另一个Socket,这里的Socket指IP:端口号

    4. 面向字节流,应用层交给传输层的时候,是一个字节一个字节这样的,区别于UDP,他不是

      一整个报文这样接受下来的,因此他可以当应用层交下来的字节过多,大于MSS(Maximum Segment Size)最大报文段长度的时候,分段,组成多个报文;又或者字节过少,小于1个MSS,则等待一会,利用缓存,这样可以提高报文的利用率,而避免首部过长,数据过短,头重脚轻。

    5. 可靠。具有确认,重传等功能确保可靠。

    6. 具有流量控制和拥塞控制。以提供很可靠的网络质量。(可以展开来写)

  • 相关阅读:
    聊聊 print 的前世今生
    在树莓派里搭建 Lighttpd 服务器
    如何重复执行一条命令直至运行成功?
    手把手教你Windows Linux双系统的安装与卸载
    你以为只有马云会灌鸡汤?Linux 命令行也会!
    Linux 下三种提高工作效率的文件处理技巧
    太高效了!玩了这么久的Linux,居然不知道这7个终端快捷键!
    Linux下分析bin文件的10种方法
    Linux下几个与磁盘空间和文件尺寸相关的命令
    如何让你的脚本可以在任意地方都可执行?
  • 原文地址:https://www.cnblogs.com/zhanp/p/10931322.html
Copyright © 2020-2023  润新知