2、tcp
TCP (Transmission Control Protocol) 是互联网中的核心协议之一,它位于OSI模型的传输层,提供了面向连接的、可靠的数据传输服务。下面是TCP协议的基本架构和工作流程的概述:
2.1 TCP基本架构
TCP建立在IP协议之上,它负责在不可靠的IP网络中提供一个可靠的端到端的数据传输服务。TCP通过三次握手建立连接,通过四次挥手终止连接,并在数据传输过程中保证数据的顺序、完整性和错误检测。
2.2 TCP工作流程
-
连接建立(三次握手)
- 第一步:客户端发送一个SYN(同步序列编号)包到服务器,请求建立连接。
- 第二步:服务器接收到SYN包后,回应一个SYN+ACK(确认)包。
- 第三步:客户端再发送一个ACK包给服务器,至此连接建立完成。
-
数据传输
- 在连接建立后,客户端和服务器可以通过TCP连接进行数据的双向传输。
- TCP使用序列号和确认机制确保数据包的正确顺序和完整性。
- 如果数据包丢失或损坏,TCP将重新发送数据包直到对方确认为止。
-
连接释放(四次挥手)
- 当数据传输完毕后,任一方都可以提出终止连接。
- 发起方发送一个FIN(结束)标志的包。
- 接收方确认FIN包,并在所有数据传输完毕后也发送自己的FIN包。
- 最终,发起方确认接收方的FIN包,连接完全释放。
2.3 TCP报文段结构
TCP报文段由以下几个部分组成:
-
源端口和目的端口
- 源端口号和目的端口号用于标识发送端和接收端的应用进程。
-
序号和确认号
- 序号用于标识数据包中第一个字节的序列号。
- 确认号是接收端期望从发送端接收到的下一个字节的序列号。
-
数据偏移量
- 数据偏移量指明了TCP报头的长度,因为选项字段的长度是可变的。
-
保留字段
- 这些字段目前未被使用,通常设置为0。
-
控制位
- 包括URG、ACK、PSH、RST、SYN、FIN等标志位,用于控制TCP连接的不同方面。
-
窗口大小
- 窗口大小指明了接收方当前可用的缓冲区大小,用于流量控制。
-
校验和
- 用于检测数据传输过程中的错误。
-
紧急指针
- 当URG标志位被设置时,紧急指针指出紧急数据的末尾位置。
-
选项
- 可选字段,用于实现额外的功能,如窗口扩大、时间戳等。
-
数据
- 载荷数据,即应用程序传递给TCP的数据。
总结
TCP协议提供了可靠的数据传输,通过连接建立、数据传输、连接释放的过程确保了数据的准确性和顺序性。TCP的三次握手和四次挥手机制确保了连接的建立和终止都是明确且安全的。在数据传输过程中,TCP通过序列号和确认机制以及重传策略来保证数据的可靠送达。此外,TCP还具备拥塞控制和流量控制功能,以适应网络的动态变化和避免拥塞。
文章原创首发于微信公众号 软件测试微课堂,更多内容欢迎关注微信公众号查看