IP协议提供了在各个主机之间传送数据报的功能,但是数据的最终目的地是主机上的特定应用程序。传输层协议就承担了这样的责任,典型的传输层协议有UDP和TCP两种。
UDP只为应用程序提供了一种无连接的、不可靠的传输服务。
TCP适用于可靠性要求很高的场合。TCP将所有数据看作数据流按照编号的顺序组织起来,采用正面确认以及重传等机制,保证数据流能全部正确到达,才把数据递交给应用层。许多著名的上层协议都是基于TCP实现的,如DNS、HTTP、FTP、SMTP、TELNET等。
报文格式

源端口号和目的端口号:用于标识发送端和接收端应用进程
序号:从发送端到接收端的数据的第一个字节编号。新连接建立时(SYN为1),发送方随机一个初始序号ISN
确认序号:ACK为1时有效,表示上次已成功收到数据字节序号加1
首部长度:TCP首部长度,以4字节为长度。如果没有任何选项字段,首部长度应该为5(20字节)
6个标志比特:
TCP是一种面向连接、可靠的传输层协议,用于确保数据流在互联网上的正确传输。本文深入介绍了TCP的报文格式、连接建立与断开、紧急数据、数据交互机制、差错控制、流量控制、拥塞控制等关键特性,并通过LWIP(Lightweight IP)的实现来阐述这些概念。重点讨论了如确认与重传、滑动窗口、慢启动与拥塞避免等机制,以及如何处理糊涂窗口和实现保活机制。
订阅专栏 解锁全文
1228

被折叠的 条评论
为什么被折叠?



