每个TCP段都有一个目的,这是借助于TCP标志选项来确定的,允许发送方或接收方指定哪些标志应该被使用,以便段被另一端正确处理。

我们来看看TCP标志字段来开始我们的分析:

您可以看到在3次握手(SYN,ACK)和数据传输期间使用的2个标志。

与所有标志一样,值“1”表示特定标志为“设置”,或者如果您喜欢,则为“开”。在此示例中,只有“SYN”标志被设置,表示这是新的TCP连接的第一个段。

除此之外,每个标志长一位,由于有6个标志,所以标志部分总共6位。

您必须同意最流行的标志是“SYN”,“ACK”和“FIN”,用于建立连接,确认成功的段传输,最后终止连接。虽然其余的标志帜不是众所周知的,但它们的作用和目的在某些情况下也同样重要。

我们将开始分析,检查从顶部开始的所有六个标志:

1 FLAG - 紧急指针(URGENT POINTER)

第一个标志是紧急指针标志,如上一屏幕截图所示。此标志用于将输入数据标识为“紧急”。这样的进入段不必等待直到先前段被接收端消耗,而是直接发送并立即处理

在数据传输流中,主机正在向远程机器上运行的应用程序发送数据,可以使用紧急指针。如果出现问题,主机需要中止数据传输,并在另一端停止数据处理。在正常情况下,中止信号将在远程机器发送和排队,直到所有先前发送的数据都被处理,但是在这种情况下,我们需要立即处理中止信号。

通过将中止信号的段紧急指针标志设置为“1”,远程机器将不会等待所有排队的数据被处理,然后执行中止。相反,它会给出特定的段优先级,立即处理它,并停止进一步的数据处理。

如果您发现很难理解,请考虑这个现实生活中的例子:

在当地的邮局,数以百计的卡车正在卸载来自世界各地的信件。因为进入邮局大楼的卡车数量很多,他们排队一个,等待轮到他们卸下行李。

结果,队列结束了很久。然而,一辆大红标志的卡车突然加入队伍,安全人员的工作是确保没有卡车跳过排队,看到红标志,并且知道它载有非常重要的信件,需要紧急到达目的地。按照正常程序,安全人员向卡车发出信号,跳过队列,一路向前,优先于其他卡车。

在这个例子中,卡车表示到达其目的地并在等待处理的缓冲器中排队的段,而具有红标志的卡车是设置了紧急指针标志的段。

另外要注意的是存在指针指针字段。这个字段在第5节中有所描述,但是我们可以简单地提到,当紧急指针标志设置为'1'(这是我们在这里分析的那个)时,紧急指针字段指定紧急数据结束的段中的位置。

第二标记- 确认(ACKNOWLEDGEMENT)

确认标志用于确认数据包的成功接收

如果在使用TCP传输数据的同时运行数据包嗅探器,您会注意到,在大多数情况下,对于发送或接收的每个数据包,都会进行确认。因此,如果您从远程主机收到数据包,那么您的工作站最有可能将ACK字段设置为“1”。

在发送方每发送一个数据包需要一个确认的情况下,接收端将发送一次预期的ACK(接收到第三个连续的数据包)。这也称为窗口化,并在以下页面中广泛介绍。

第三标志 - PUSH

存在推送标志,如紧急标志,以确保数据被给予优先级(它应得的),并在发送或接收端处理。这个特定的标志在数据传输的开始和结束时被非常频繁地使用,影响数据在两端处理的方式。

当开发人员创建新的应用程序时,他们必须确保它们遵循RFC的特定指导,以确保其应用程序正常工作,并且无缺陷地管理进出OSI模型的应用程序层的数据流。使用时,推送位确保数据段被正确处理,并在虚拟连接的两端给出适当的优先级。

当主机发送其数据时,它将暂时排队在TCP缓冲区中,即存储器中的一个特殊区域,直到该段达到一定大小,然后发送到接收器。这种设计保证数据传输尽可能高效,而不需要通过创建多个片段而不需要花费时间和带宽,而是将它们组合成一个或多个较大的片段。

当段到达接收端时,它被传递到应用层之前被放置在TCP传入缓冲器中。在进入缓冲区中排队的数据将保留在那里,直到其他段到达,并且一旦完成,数据就被传递到等待它的应用层。

虽然这个过程在大多数情况下运行良好,但是有很多情况下这种“排队”的数据是不期望的,因为排队期间的任何延迟都可能导致等待应用程序出现问题。一个简单的例子将是一个TCP流,例如真正的播放器,其中数据必须立即发送和处理(由接收器),以确保平滑的流,没有任何切断。

这里提到的最后一点是,Push标志通常设置在文件的最后一段,以防止缓冲区死锁。当用于通过代理发送HTTP或其他类型的请求时也可以看到,确保请求得到适当和有效的处理。

第4标志 - 复位(RST)标志

段到达不用于当前连接时,使用复位标志。换句话说,如果要向主机发送数据包以建立连接,并且没有这样的服务等待在远程主机上回答,则主机将自动拒绝您的请求,然后向您发送回复RST标志置1。这表示远程主机已重置连接

虽然这可能是非常简单和合乎逻辑的,但事实是在大多数情况下,这个“特征”被大多数黑客使用,以便扫描“打开”端口的主机。所有现代端口扫描仪都能够通过“复位”功能检测“打开”或“收听”端口。

用于检测这些端口的方法非常简单:当尝试扫描远程主机时,将使用SYN标志位(1)构建有效的TCP段,并将其发送到目标主机。如果没有服务监听特定端口上的入站连接,则远程主机将回复ACK和RST标志设置(1)。另一方面,如果端口上有服务监听,则远程主机将构造一个具有ACK标志位的TCP段(1)。这当然是我们已经涵盖的标准三次握手的一部分。

一旦主机扫描开放端口接收到该段,它将完成三次握手,然后使用FIN(见下文)标志终止它,并将特定端口标记为“活动”。

第5标志 - 同步标志(SYNCHRONISATION FLAG)

TCP标志选项中包含的第五个标志可能是TCP通信中使用最知名的标志。您可能会注意到,在建立两台主机之间的经典3次握手时,SYN标志是初始化的:

在上图中,主机A需要使用TCP作为其传输协议从主机B下载数据。协议需要进行三次握手,以便双方建立虚拟连接才能交换数据。

在三次握手期间,我们可以统计每个主机发送的SYN标志总数为2个。随着文件的交换和新连接的创建,我们将看到更多的SYN标志被发送和接收。

第六标志- FIN 标志

可用的最后一个标志是FIN标志,代表“完成”一词。该标志用于拆除使用上一个标志(SYN)创建的虚拟连接,因此,由于这个原因,当连接之间交换最后一个数据包时,总是出现FIN标志。

重要的是要注意,当主机发送FIN标志来关闭连接时,它可能会继续接收数据,直到远程主机也关闭了连接,尽管这仅在特定情况下发生。一旦连接被双方削减,则释放用于连接的每端的缓冲区。

正常的拆卸过程如下所示:

上图显示了主机A和B之间的现有连接,两个主机正在交换数据。一旦数据传输完成,主机A发送一个包含FIN,ACK标志的数据包(步骤1)。

使用此数据包,主机A确认先前的流,同时启动TCP关闭过程以终止此连接。此时,Host A的应用程序将停止接收任何数据,并将关闭此端的连接。

为了响应主机A关闭连接的请求,主机B将发送确认(STEP 2),并通知其应用程序连接不再可用。一旦完成,主机(B)将发送自己的FIN,ACK标志(步骤3)以关闭其部分连接。

如果您想知道为什么需要执行此过程,则可能需要记住,TCP是一个全双工连接,这意味着有两个方向的数据流。在我们的示例中,这是从主机A到主机B的连接流,反之亦然。另外,它需要两个主机关闭它们的连接,因此两个主机必须发送一个FIN标志并且另一个主机必须确认它的原因。

最后,在步骤4,主机A将确认在步骤3发送的主机B的请求,并且双方的已关闭程序现在已经完成!

原文地址:http://www.firewall.cx/networking-topics/protocols/tcp/136-tcp-flag-options.html

TCP标志位详解(TCP Flag)相关推荐

  1. 计算机寄存器及标志位详解

    以下是计算机内部寄存器阵列图: 以下FR控制标志位及其含义: 1.     CF 进位标识位 进行加减运算时, 如果最高二进制位产生进位或错位, CF则为1, 否则为0. 程序设计中, 常用条件转移指 ...

  2. TCP/IP协议详解、TCP三次握手

    TCP/IP协议详解:TCP/IP协议详解_王佳斌-CSDN博客_tcp/ip协议认识HTTP协议它是互联网协议(Internet Protocol Suite),一个网络通信模型,是互联网的一个基本 ...

  3. 计算机网络知识详解之:TCP连接原理详解

    网络知识详解之:TCP连接原理详解 计算机网络相关知识体系详解 网络知识详解之:TCP连接原理详解 网络知识详解之:HTTP协议基础 网络知识详解之:HTTPS通信原理剖析(对称.非对称加密.数字签名 ...

  4. ewsa握手包怎么获得_三次握手和四次挥手以及TCP标志位的详细介绍

    一.TCP标志位 在讲TCP三次握手和四次挥手之前,先说一下TCP标志位,方便后续的理解. 简单来说,TCP标志位的值代表了当前请求的目的. 标志位一共有6种,分别是: SYN(synchronous ...

  5. 详解 TCP/IP 协议

    什么是TCP/IP协议 TCP/IP通信协议是目前最完整.最被广泛支持的通信协议,它可以让不同网络架构.不同操作系统的计算机之间通信,是Internet的标准通信协议. TCP的介绍 TCP也叫传输控 ...

  6. 《TCP IP协议 详解》思考总结 · 三

    前言 这一篇文章主要围绕了IP协议,ICMP协议和UDP协议展开,希望可以在这里大概做一个总结,将<TCP/IP协议详解 卷一>书中TCP相关章节前面的内容做一个结束,在下一篇文章专心的去 ...

  7. TCP /IP协议详解【转】

    转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...

  8. 传输层两大协议:TCP与UDP详解(两者的联系与区别)

    一.TCP协议 1.TCP协议报文格式 TCP协议报文格式详解 2.TCP"三次握手"建立连接 位码即tcp标志位,有6种标示: SYN(synchronous建立联机) ACK( ...

  9. 4-4:TCP协议之TCP头部格式详解

    文章目录 一:TCP头部格式详解 (1)4位首部长度 (2)序列号和确认应答号 A:可靠性问题 B:32位序号和确认号 (3)窗口大小 (4)标志位 (5)紧急指针 A:带外数据(out_of _ba ...

最新文章

  1. vb6 数据自动生成excel文件_Excel随机生成数据
  2. Proteus仿真STM32F103R6微控制器的GPIO(按键控制LED开关)
  3. 【Flask项目】sqlalchemy原生sql查询,返回字典形式数据
  4. 深度解读!时序数据库HiTSDB:分布式流式聚合引擎
  5. UNIX(进程间通信):01---Linux进程通信方式
  6. 市场上血糖仪的测试原理和优缺点评价
  7. openoffice将html转成pdf,通过openOffice将office文件转成pdf
  8. 计算机专业入学教育报告,信息工程学院20级计算机专业入学教育大会和专业介绍会顺利召开...
  9. USB大容量存储设备无法启动--这个设备(服务)的驱动程序已被禁用。另一个驱动程序可以提供这个功能。 (代码 32)
  10. 我家淇淇-学习穿衣服
  11. JSP学习笔记(八):使用ArrayList
  12. 学会3招缓解家务病 身体才能更健康
  13. 像素(px)与厘米的关系
  14. AM4379 EDMA相关总结
  15. 力扣765——情侣牵手(贪心+BFS)
  16. 论文笔记(十七):Brax - A Differentiable Physics Engine for Large Scale Rigid Body Simulation
  17. 【经验】短接 Flash 解决二次量产金士顿 DTI G2 4GB U盘(群联PS2251-39)问题
  18. 简单电子病历功能设计
  19. 商汤科技2023届校招!AI先锋顶尖人才计划招募重磅启动!
  20. html分享qq好友app接口,iOS-QQ分享功能实现

热门文章

  1. 16.引言篇——自定义过滤器及标签
  2. java 截取字符串第一个字符
  3. JavaSE 15 IDEA美化
  4. 保研面试/考研复试:英语口语面试必备话题及常用句型句式整理(一)
  5. Cryptology
  6. Cannot spawn .husky/pre-commit: No such file or directory
  7. 最新-开源可视化安全管理平台Ossim5.0使用
  8. 放大器的传递函数_所谓传递函数
  9. [STM32F103C8T6] 超声波测距
  10. Facebook广告如何精准投放呢?Facebook广告投放方案