TCP&UDP

1. 传输层协议

  • TCP:传输控制协议
  • UDP:用户数据报协议

2. UDP特点

  • 无连接: 不用在数据传输之前连接和释放连接
  • 尽最大努力交付
  • 面向报文: 既不合并,也不拆分
  • 应用报文会原封不动作为传输层UDP数据报的数据部分和UDP首部组成运输层的UDP数据报


3. UDP功能

  • 复用:多个端口可以共用一个传输层UDP的数据报, 再经由IP层传输出去
  • 分用: IP数据报拆分成UDP数据包, 每个报文格式中有原有端口和目的端口的标识, 可以根据目的端口进行分发
  • 差错检测

    差错检测
TCP传输协议

4.TCP特点

  • 面向连接
  • 可靠传输
  • 面向字节流
  • 流量控制
  • 拥塞控制
4.1 面向连接

数据开始传输之前,需要建立连接三次握手, 数据传输完成后,需要释放连接,四次挥手

三次握手

三次握手
  • 为应对网络中存在的延迟: 如果1.SYN同步报文延迟发送到服务端,
  • 客户端超时连接机制会再次发送1.SYN同步报文,
  • 服务端发送同步确认报文2.SYN,ACK; 客户端发送3.ACK确认报文;
  • 如果此时服务端收到延迟的1SYN同步报文, 服务端会以为客户端要在进行一次TCP连接, 会发送同步确认报文到客户端,
  • 但此时客户端因为已连接, 是不会再次发送3ACK确认连接报文的. >- 这样服务端在一段时间后会认为 是超时报文, 客户端不想建立连接.

四次挥手

  • 为什么要四次挥手, 而不是两次?
    因为一条通道客户端和服务端都可以接收和发送, 所以要双向断开
4.2 TCP可靠传输
  • 无差错
  • 不丢失
  • 不重复
  • 按序到达

停止等待协议

  • 无差错情况


    无差错情况
  • 超时重传


    超时重传
  • 确认丢失


    确认丢失
  • 确认迟到


    确认迟到
4.3. TCP面向字节流
面向字节流
  • 发送方有一个缓冲区
  • 接收方也有一个缓冲区
  • 无论发送方一次给TCP缓冲区传递多少字节, 对TCP本身来说, 会根据实际情况进行划分一次传递多少字节, 并不是把发送方所有字节一次传递给接收方[和UDP不同]
4.4. TCP流量控制

基于滑动窗口协议






4.5. TCP拥塞控制



你可能感兴趣的:(TCP&UDP)