计算机网络-5传输层-学习笔记

5.0 重点

5.1 传输层提供的服务

进程间的逻辑通信

传输层寻址与端口

  • 端口 是传输层的 TSAP (Transport Service Access Point)
  • 端口号长度 16 bit
  • 套接字 = (主机 IP, 端口号)

5.2 UDP

首部

  • 固定长度 8B
  • 16 位源端口号
  • 16 位目的端口号
  • 16 位 UDP 长度:包括首部和数据,于是最小为 8
  • 校验和(可选)

校验和

  • 添加伪首部
  • 按二进制反码计算和

5.3 TCP 协议

特点

  • 面向连接
  • 每条 TCP 仅对应两个端点
  • 可靠服务
  • 全双工通信
  • 面向字节流

TCP 报文段

  • 组成
    • 源端口 2B
    • 目的端口 2B
    • 序号字段 seq 4B
    • 确认号字段 ack 4B
    • 数据偏移(首部长度) 4b,单位4B,即最长首部 60B
    • 保留字段 6b
    • 紧急位URG:为1时应尽快发送
    • 确认位ACK
    • 推送位PSH:为1时需尽快交付给进程
    • 复位位RST:为1时表示连接有严重差错
    • 同步位SYN:为1时表示是连接请求或者连接接收报文
    • 终止位FIN:为1时表示要求释放连接
    • 窗口子段 2B,单位为 1B,即最大表示 65535B 大小的窗口
    • 校验和 2B
    • 紧急指针字段 2B:指明报文首部紧急数据的位数
    • 选项字段 可变长
    • 填充字段 使首部长度为4B整数倍
  • 建立连接
    • SYN = 1, seq =x
    • SYN = 1, ACK = 1, seq = y, ack = x + 1
    • ACK = 1, seq = x + 1, ack = y + 1
  • 连接释放
    • FIN = 1, seq = u
    • (如果还有数据) ACK = 1, seq = v, ack = u + 1
    • FIN = 1, ACK = 1, seq = w, ack = u + 1
    • ACK = 1, seq = u + 1, ack = w + 1

TCP 可靠传输

  • 序号
  • 确认
  • 重传
    • 超时
    • 冗余重传(快速重传)

TCP 流量控制

  • 动态修改 接受窗口 字段值

TCP 拥塞控制

  • 动态计算 拥塞窗口 上限值
  • 最终 发送窗口 = min(接受窗口,拥塞窗口)
  • 慢开始算法
    • 从 $2^0$ 开始按指数上升至门限 ssthresh
  • 拥塞避免算法
    • 每次窗口仅增加一个 MSS(最大报文段长度)
    • 出现超时后 当前窗口大小归 1 ,重新慢开始,且将门限 ssthresh 砍半
  • 快恢复
    • 当出现快速重传时,将当前窗口大小砍半,不改变门限,直接进行拥塞避免算法

Leave a Comment