传输控制协议

TCP、UDP区别

  1. 连接

    1. TCP面向连接,如打电话要先拨号建立连接
    2. UDP是无连接的,即发送数据之前不需要建立连接
  2. 可靠性

    1. TCP提供可靠的服务,通过TCP连接传送的数据,无差错且按序到达
    2. UDP尽最大努力交付,即不保证可靠交付
  3. 实时性

    1. TCP通过校验和、重传控制(丢包重发)、序号标识(顺序控制)、滑动窗口、确认应答实现可靠传输
    2. UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信
  4. 资源占用

    1. TCP对系统资源要求较多
    2. UDP对系统资源要求较少
  5. 各自优势

    1. TCP优势

      1. TCP通过校验和、重传控制(丢包重发)、序号标识(顺序控制)、滑动窗口、确认应答实现可靠传输
    2. UDP优势

      1. UDP以其简单、传输快的优势,在越来越多场景下取代了TCP,如实时聊天、实时游戏

      2. UDP在网络较好时,丢包率很低,如果再使用应用层重传,能够确保传输的可靠性

      3. 虽然TCP实现了网络通信的可靠性,但是使用了复杂的拥塞控制算法、建立了繁琐的握手过程且内置在系统 协议栈中,极难对其进行改进

      4. 采用TCP,一旦发生丢包,TCP会将后续的包缓存起来,等前面的包重传并接收到后再继续发送,延时会越 来越大,基于UDP对实时性要求较为严格的情况下,采用自定义重传机制,能够把丢包产生的延迟降到最低,尽 量减少网络问题对数据实时性造成影响

  6. 传输控制

    1. TCP传输控制

      1. 服务器端

        1. 创建一个socket

        2. 设置socket属性

        3. 绑定IP、端口等信息到socket

        4. 开启监听

        5. 收发数据

        6. 关闭连接

        7. 关闭监听

      2. 客户端

        1. 创建一个socket

        2. 设置socket属性

        3. 绑定服务端IP、端口

        4. 连接服务端

        5. 收发数据

        6. 关闭连接

    2. UDP传输控制

      1. 服务器端

        1. 创建一个socket

        2. 设置socket属性

        3. 绑定IP、端口等信息到socket

        4. 循环收发数据

        5. 关闭连接

      2. 客户端

        1. 创建一个socket

        2. 设置socket属性

        3. 绑定服务端IP、端口

        4. 连接服务端

        5. 收发数据

        6. 关闭连接

  7. 头部差别

    1. TCP头部20字节

    2. UDP头部8字节

results matching ""

    No results matching ""