千家信息网

TCP协议分析

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,TCP(Transmission ControlProtocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它
千家信息网最后更新 2025年12月01日TCP协议分析

TCPTransmission ControlProtocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETFRFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内 另一个重要的传输协议。在因特网协议族(Internetprotocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。

TCP头格式

---Source Port是源端口,16位。

---Destination Port是目的端口,16位。

---Sequence Number是发送数据包中的第一个字节的序列号,32位。

---Acknowledgment Number是确认序列号,32位。

---Data Offset是数据偏移,4位,该字段的值是TCP首部(包括选项)长度除以4

---标志位: 6位,URG表示UrgentPointer字段有意义:

ACK表示AcknowledgmentNumber字段有意义

PSH表示Push功能,RST表示复位TCP连接

SYN表示SYN报文(在建立TCP连接的时候使用)

FIN表示没有数据需要发送了(在关闭TCP连接的时候使用)

Window表示接收缓冲区的空闲空间,16位,用来告诉TCP连接对端自己能够接收的最大数据长度。

---Checksum是校验和,16位。

---Urgent Pointers是紧急指针,16位,只有URG标志位被设置时该字段才有意义,表示紧急数据相对序列号(Sequence Number字段的值)的偏移。

连接建立

TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答。


SYN+ACK ,并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。

TCP三次握手的过程如下:

客户端发送SYNSEQ=x)报文给服务器端,进入SYN_SEND状态。

服务器端收到SYN报文,回应一个SYN SEQ=yACK(ACK=x+1)报文,进入SYN_RECV状态。

客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。

三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。

连接终止

建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。具体过程如下图所示。



(1) 某个应用进程首先调用close,称该端执行"主动关闭"active close)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。

(2) 接收到这个FIN的对端执行 "被动关闭"passiveclose),这个FINTCP确认。

注意:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,因为,FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。

(3) 一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN

(4) 接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN

既然每个方向都需要一个FIN和一个ACK,因此通常需要4个分节。

窗口确认

TCP的一项功能就是确保每个数据段都能到达目的地。位于目的主机的TCP服务对接受到的数据进行确认,并向源应用程序发送确认信息。

配置TCP

修改建立TCP连接的超时时间

建立TCP连接需要经过三次握手:主动端先发送SYN报文,被动放回应SYN+ACK报文,然后主动端再回应ACK

在主动端发送SYN后,如果被动端一直不回应SYN+ACK报文,主动端会不断的重传SYN报文直到超过一定的重传次数或超时时间。

在主动端发送SYN后,被动端回应SYN+ACK报文,但主动端不再回复ACK,被动端也会一直重传直到超过一定的重传次数或超时时间。(SYN报文***会出现这种情况)

可以通过以下命令配置SYN报文的超时时间(发送SYN报文到三次握手成功的最大时间),也就是建立TCP连接的超时时间。


报文 数据 主动 应用 时间 传输 字段 进程 服务 服务器 功能 客户 客户端 序列 序列号 状态 目的 最大 成功 主机 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 逍遥网络安全手抄报 新吴区通用软件开发使用方法 密云区正规软件开发要求 内蒙古计算机网络技术专升本 手机 服务器出错 大副本数据库 欧阳娜娜唱歌软件开发 简述数据库技术的发展阶段 淄博市高新区网络安全培训基地 五大厂商数据库名 代理服务器主要在哪层实现 广东东莞东信网络技术有限公司 一念逍遥最新服务器开服时间 hcie网络安全认证工资 河南联想服务器虚拟化优化 服务器搭建云点播 企米网络技术有限公司怎么样 大学可以用的数学软件开发 网络安全信息泄露作文 泗阳小型网络技术哪家好 数据库统计数据 json导入数据库 网络安全与数据化 代理服务器主要在哪层实现 有软件开发的学校有哪些东西 计算机硬件与数据库关系 数据库的安全需求主要指 网店的网络安全包括哪几类 开发区网络技术有限公司 网络安全 等保定级 备案
0