TCP/UDP区别以及UDP如何实现可靠传输

TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。

UDP(用户数据报协议)

特点:

  • 无连接
  • 尽最大努力交付
  • 面向报文(既不合并,也不拆分)

功能:

复用,分用,差错检测

TCP(传输控制协议)

特点

  • 面向连接
    • 数据传输前需要建立连接
    • 数据传输结束后断开连接
  • 可靠传输
  • 面向字节流
  • 流量控制
  • 拥塞控制

为什么要进行三次握手

超时问题,客户端超时重传策略,又发一次sync,造成多次建立连接

如何保证可靠传输

主要需要保证报文无差错,不丢失,不重复,按序到达。 TCP主要靠停止等待协议实现的

  • 无差错情况
  • 超时重传
  • 确认丢失
  • 确认迟到

TCP与UDP区别总结

1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接

2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付 3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的 UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等) 4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信 5、TCP首部开销20字节;UDP的首部开销小,只有8个字节 6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

UDP如何实现可靠传输

由于在传输层UDP已经是不可靠的连接,那就要在应用层自己实现一些保障可靠传输的机制

简单来讲,要使用UDP来构建可靠的面向连接的数据传输,就要实现类似于TCP协议的

超时重传(定时器)

有序接受 (添加包序号)

应答确认 (Seq/Ack应答机制)

滑动窗口流量控制等机制 (滑动窗口协议)

等于说要在传输层的上一层(或者直接在应用层)实现TCP协议的可靠数据传输机制,比如使用UDP数据包+序列号,UDP数据包+时间戳等方

results matching ""

    No results matching ""