第17章TCP协议

TCP协议

TCP提供一种面向连接的、可靠的字节流服务。三个关键字:面向连接、可靠的(有超时重传、流量控制、拥塞控制等机制)、字节流(TCP对字节流的内容不做任何解释)。具体来讲可靠性的保证由以下机制保证:

  • 应用数据被TCP分割为最适合发送的数据块(主要是为了避免IP分片)(TCP数据段或者段segment),和UDP完全不同,应用程序产生的数据报长度将保持不变。
  • TCP发出一个段后,启动一个定时器,等待目的端确认收到这个段。
  • TCP的确认段不是立即发送出去的,通常会推迟几分之1秒(一般为200ms),这就是延迟确认或者捎带确认
  • TCP报文段会作为IP数据报来传输,IP数据报可能会失序到达,因此TCP报文段到达也会失序,TCP将对收到的数据进行重新排序。
  • IP数据报会生重复,TCP的接收端必须丢弃重复的数据。 TCP提供流量控制(TCP首部拥有窗口大小数据)
  • TCP拥塞控制(慢启动算法和拥塞避免算法

TCP首部

TCP首部有6个标志比特位。

  • URG
  • ACK
  • PSH
  • RST:重建连接
  • SYN:同步序号用来发起一个连接
  • FIN:发端完成发送任务

TCP的流量控制由连接的每一端声明的端口大小来提供,这个窗口的大小最大是65535字节,可以动态的改变。

TCP校验和

校验的内容包含TCP首部和TCP数据;

TCP可选字段:Option

最长报文长度:MSS(Maximum Segment Size),每个连接的第一个报文段(包含SYN的那个报文段)中指定这个选项。

小结

  • TCP提供了一种可靠的面向连接的字节流服务;
  • TCP将用户数据按照合适的长度分割为TCP报文段(Segment),发送完毕后启动一个定时器,另一端收到后进确认对失序的数据进行排序;
  • TCP提供端到端的流量控制,并计算和验证一个强制性的端到端的校验和;
  • 许多应用层协议都使用TCP:FTP、SMTP、Telnet、Rlogin;
原文地址:https://www.cnblogs.com/Spground/p/9567872.html