TCP

  • 点对点
    • 一个发送方,一个接收方
  • 可靠的,按序的字节流
  • 流水线机制
    • TCP拥塞控制和流量控制机制
    • 设置窗口大小
  • 发送方/接收方缓存
  • 全双工
  • 面向连接
    • 通信双方在发送数据之前必须建立连接
    • 连接状态只在连接的两端中维护,在沿途节点中并不维护
    • TCP连接包括:两台主机上的缓存,连接状态变量,socket等
  • 流量控制机制

触发重传的事件

- 超时
- 收到重复ACK

TCP流量控制

  1. 接收方为TCP连接分配buffer
  2. 速度匹配机制

TCP连接管理

  • TCP sender和 receiver在传输数据前需要建立连接
  • 初始化TCP变量
  • Client:连接发起者
  • Server:等待客户连接请求
  • Three way handshake
    1. Client host sends TCP SYN segment to server
      • specifies initial seq
      • no data
    2. Server host receivers SYN, replies with SYNACK segment
      • server allocates buffers
      • specifies server initial seq
    3. client receives SYNACK, replies with ACK segment, which may contain data
  • Four way handwave
    1. Client host sends TCP FIN(controls segment) to server
    2. Server host receives FIN and replies ACK, then close the connection and sends FIN to client host
    3. Client receives FIN, replies ACK, At the same time, Client will be waitting state. If Client receives another FIN, it will resend ACK to server
    4. Server host receives ACK, Connection close.

TCP拥塞控制

拥塞(congestion):太多发送主机发送了太多数据或者发送速度太快,以至于网络无法处理。表现为:分组丢失,分组延迟过大。

  • 端到端拥塞控制

    • 网络层不需要显式的提供支持
    • 端系统通过观察loss,delay等网络行为判断是否发生拥塞
    • TCP采用这种方法
  • 网络辅助的拥塞控制

    • 路由器向发送方显式地反馈网络拥塞信息
    • 简单的拥塞指示:SNA,DECbit,TCP/IP
    • 指示发送方应该采取何种速率

      传输层总结

  • 传输层服务的基本原理
    • 复用/解复用
    • 可靠数据传输
    • 流量控制
    • 拥塞控制
  • Internet的传输层
    • UCP
    • TCP