TCP协议(一)

TCP协议的特点

  • 面向连接。
  • 点对点,一个TCP连接只能有两个端点。
  • 提供可靠交付,提供流量控制、拥塞控制。
  • 全双工通信。
  • 面相字节流。

TCP报文格式

TCP协议(一)

首部:前20个字节固定有,后面跟随可选部分(可变长)和填充部分。

  • 源端口:16位。
  • 目的端口:16位。
  • 序号:填入数据部分第一个字节在整个传输文件中的位置,32位。
  • 确认号:填入数据部分最后一个字节在整个传输文件中的位置加一(即下一个要发送的位置),32位。
  • 数据偏移:记录报文中数据部分从哪一个字节开始,1单位4字节,最大为15,4位。
  • 保留:6位。
  • 状态位:6位。URG:提高发送优先级时为1。PSH:提高接收优先级时为1。ACK:确认号有效为1。SYN:建立连接请求时为1。RST:TCP连接出错。FIN:释放连接。
  • 窗口:16位。通信前,相互确认对方的接收缓存。用于存放剩余的接收缓存。
  • 校验和:需要加上伪首部。
  • 紧急指针:URG为1时有效,紧急处理的字节长度。
  • 选项:可以规定最大数据报长度。是否支持选择性确认(SACK)。时间戳。等等。

可靠传输的原理

停止等待协议

接收方每次收到报文后需要回复确认报文,否则发送方重传。

TCP协议(一)

TCP协议(一)

缺点:信道利用率太低,有一半的时间,都在等待。

连续ARQ协议

流水线传输:维持一个发送窗口,连续发送窗口内的数据包,等待对方回复确认后,将窗口向前滑动。

TCP协议(一)

累积确认:可以用一个数据包确认连续的n个数据包。