TCP和UDP协议的区别 ------- TCP/IP协议如何实现可靠性传输

1.TCP和UDP的区别:

1.是否面向连接?

  • TCP通过三次握手,建立连接。
  • UDP是不用建立连接。

2.是否可靠?

  • TCP传输的是可靠并有序的数据
  • UDP只是尽最大努力交付,不一定可靠

3.UDP具有较好的实时性  适用场景:短消息,多客户端,对信息可靠性要求不高,对效率要求高。

4.每一条TCP是点对点的,UDP支持更广泛 一对一,多对一,多对多。

5.TCP对资源要求较高,UDP对资源要求较少。

6.TCP面向数据流,  UDP面向数据报。

2.TCP/IP 实现可靠传输的方式:

  1. 序列号,ACK信号:发送方给每个要发送的数据包都标有一个序列号。接受方在接收到数据包后,给发送送发送一个ACK信号包含了,要求的下一个数据包的序列号。
  2. 超时重发:当发送方在规定时间内没有接收到接收方的ACK时,将会重发送该数据包,并下一次等待重发的时间成指数增长。当重发一定次数后,若还没有收到ACK,就会强制的断开连接。
  3. TCP的连接管理:三次握手,四次挥手。
  4. 以段为单位发送数据包:在通信双方建立连接的同时,协商数据包的单位即(最大的消息长度(MSS))。
  5. 滑动窗口:包括前端已发送未收到ACK的数据包,和后端待发送的数据包。接收端收到ACK后,窗口向前滑动,直到有数据未确认时停止。
  6. 流量控制:TCP数据报首部字段来控制滑动窗口的大小。
  7. 拥塞控制:发送端通过拥塞窗口主动控制数据流量。 慢启动:防止通信双方一开始就发送大量的数据包,拥塞窗口一开始的大小为:1MSS,每收到一个ACK拥塞窗口就扩大两倍,发送数据包时选择拥塞窗口和滑动窗口的较小值。拥塞避免算法:相比慢启动,拥塞窗口的增长速度更慢。快速重传:当在规定时间限度内没有收到ACK,那么很可能就是网络出现问题。此时将拥塞窗口减小为一,重新慢开始。

猜你喜欢

转载自www.cnblogs.com/xbfchder/p/11442196.html