TCP/UDP传输层协议

TCP和UDP是传输层协议。

七层协议

image.png

image.png

UDP :(用户数据报协议)

01 UDP特点:

  • 无连接
  • 尽最大努力交付
  • 面向报文
面向报文:
面向报文.png

02 UDP功能:

  • 复用
  • 分用
  • 差错检测
复用、分用:
image.png
差错检测:
差错检测.png

TCP:(传输控制协议)

TCP特点:

  • 面向连接
  • 可靠传输
  • 面向字节流
  • 流量控制
  • 拥塞控制
TCP特点——01 面向连接
面向连接.png
三次握手.png

为什么要进行三次握手???
假设建立连接只需要两次,客户端发送syn请求报文超时了,客户端有超时重传机制,此时服务端收到重传的syn建立连接,同时超时的那次syn也到达了,服务端以为客户端又想建立连接,这样就会建立2次话会。
使用三次握手可以解决同步请求连接建立报文超时的问题。

四次挥手.png

为什么要进行四次挥手???
全双工:一条通道双方面的接受和发送。所以需要双方面的确认。

TCP特点——02 可靠传输
  • 无差错
  • 不丢失
  • 不重复
  • 按需到达

停止等待协议:实现可靠传输

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

标准情况:客户端发送请求报文m1,服务端收到确认m1,客户端再发送m2

超时重传.png

超时重传:保证不丢失,差错校验
客户端发送请求报文m1,超时重传m1,服务端收到确认m1,客户端再发送m2

确认丢失.png

客户端发送请求报文m1,服务端确认m1丢失,超时重传m1,丢弃重传的m1,重传确认m1,客户端再发送m2

确认迟到.png

客户端发送请求报文m1,服务端确认m1丢失,超时重传m1,丢弃重传的m1,重传确认m1,客户端再发送m2,对于服务端超时回来的m1,收到什么也不做。

TCP特点——03 面向字节流

image.png

不管发送方给发送多少个字节数据,比如发送方发送10个字节,TCP会根据实际情况,可能一次或者拆分成多次发送给接收方

TCP特点——04 流量控制

滑动窗口协议:(难点)


image.png

按序到达通过字节编号控制,从左到右排序序号增大
发送窗口的大小一方面取决于发送缓存的大小 另一方接收方的接受窗口的大小控制
比如:发送方是wifi网络,接收方2g3g,发送太快,接受方的接受缓存会大量累计数据,缓存溢出。
接收方可以反向制约(动态调整)发送方的发送窗口大小。体现出来流量控制的特点。
TCP报文首部字段控制窗口值
例如:接受窗口较小,发送方发送窗口较大,会以很快的速率发送,需要由接口窗口通过向TCP报文首部字段更改窗口值,去调整发送方的发送速率!

TCP特点——05 拥塞控制

  • 慢开始、拥塞控制

纵轴代表:交互次数或者轮询次数
横轴代表:窗口值的大小

image.png

1、开始发送2个报文,没发生拥塞继续发送4个报文,指数增长。此阶段是慢开始
2、当增长到门限值的时候,会采用拥塞避免的算法,16,17~24线性增长
3、如果连续3个ack都没收到的话,就认为发生了网络拥塞。使用乘法减小,恢复到只发送一个报文,重新慢开始
同时门限值降低为原来的一半(24降级为12)重复上述流程。

  • 快恢复,快重传
    到达拥塞上限时,在新的门限值,进行操作,不重新进行慢开始

你可能感兴趣的:(TCP/UDP传输层协议)