`
隐形的翅膀
  • 浏览: 496614 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TCP包头结构

 
阅读更多

TCP包头结构 传输控制协议(TCP)向上与用户应用程序进程接口,向下与网络层协议IP接口。用户应用程序采用首先调用TCP(或UDP),然后将应用程序数据递交给TCP这一方式,在IP网络上传送数据。TCP将这些数据打包分段并调用IP模块向目的主机传送每个数据段。接收方的TCP将段中的数据放入接收缓冲器,然后将段重装为应用程序数据,再将这些数据发送到目的的应用程序进程。 尽管T C P和U D P都使用相同的网络层(I P),T C P却向应用层提供与U D P完全不同的服务。 T C P提供一种面向连接的、可靠的字节流服务。



 

源端口号(16位),标识主机上发起传送的应用程序;目的端口(16位)标识主机上传送要到达的应用程序。源端和目的端的端口号,用于寻找发端和收 端应用进程。这两个值加上I P首部中的源端I P地址和目的端I P地址唯一确定一个T C P连接。一个I P地址和一个端口号有时也称为一个插口( s o c k e t),插口对(s o c k e t p a i r)(包含客户I P地址、客户端口号、服务器 I P地址和服务器端口号的四元组 )可唯一确定互联网络中每个T C P连接的双方。IP+TCP端口唯一确定一个TCP连接。


  TCP协议通过使用"端口"来标识源端和目标端的应用进程。端口号可以使用0到65535之间的任何数字。在收到服务请求时,操作系统动态地为客户端的应用程序分配端口号。在服务器端,每种服务在"众所周知的端口"(Well-Know Port)为用户提供服务。


  ●顺序号字段:占32比特。用来标识从TCP源端向TCP目标端发送的数据字节流,它表示在这个报文段中的第一个数据字节。
  
  ●确认号字段:占32比特。只有ACK标志为1时,确认号字段才有效。它包含目标端所期望收到源端的下一个数据字节。
  
  ●头部长度字段:占4比特。给出头部占32比特的数目。没有任何选项字段的TCP头部长度为20字节;最多可以有60字节的TCP头部。


  预留:由跟在数据偏移字段后的6位构成,预留位通常为0.
  
  ●标志位字段(U、A、P、R、S、F):占6比特。各比特的含义如下:
  
  ◆URG:紧急指针(urgent pointer)有效。
  
  ◆ACK:确认序号有效。
  
  ◆PSH:接收方应该尽快将这个报文段交给应用层。
  
  ◆RST:重建连接。
  
  ◆SYN:发起一个连接。
  
  ◆FIN:释放一个连接。
  
  ●窗口大小字段:占16比特。此字段用来进行流量控制。单位为字节数,这个值是本机期望一次接收的字节数。
  
  ●TCP校验和字段:占16比特。对整个TCP报文段,即TCP头部和TCP数据进行校验和计算,并由目标端进行验证。
  
  ●紧急指针字段:占16比特。它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。
  
  ●选项字段:占32比特。可能包括"窗口扩大因子"、"时间戳"等选项。

 

三次握手:

 



 

 

 

 

 

 

 

  • 大小: 38.8 KB
  • 大小: 24.5 KB
  • 大小: 31.5 KB
分享到:
评论

相关推荐

    抓包分析TCP的三次握手(建立连接)和四次挥手(关闭连接)

    TCP 三次握手和四次挥手机制详解 TCP(Transmission Control Protocol,传输控制协议)是一种可靠的连接服务,采用三次握手确认建立一个连接。在本节中,我们将详细介绍 TCP 三...TCP 包头结构的最小长度为 20 字节。

    IP包头结构详解.doc

    IP 包头结构详解 IP 包头结构是 Internet 协议(IP)的核心组件之一,它提供了基本的寻址、路由和数据传输机制。IP 包头结构由固定部分和可变长的可选部分组成,固定部分长度至少为 20 字节,最大为 60 字节。 ...

    爬虫面试爬虫面试爬虫面试

    **TCP包头结构**: - 源端口 (16位) - 目标端口 (16位) - 序列号 (32位) - 确认序号 (32位) - TCP头长度 (4位) - 控制位 (6位) - 窗口大小 (16位) - 偏移量 (16位) - 校验和 (16位) - 选项 (32位,可选) **UDP包头...

    【QT】自定义协议解决TCP粘包和拆包问题

    在计算机网络编程中,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。然而,TCP并不保证数据包的边界,即发送方发送的数据可能会被粘连在一起或者拆分成多个小块,这种现象被称为“粘包...

    TCP收发json. 客户端和服务端

    3. **数据编码**:在发送JSON数据之前,我们需要将数据结构转化为JSON格式的字符串。QT库没有内置的JSON模块,但可以借助第三方库如QJson或直接使用标准库如Qt5的`QJsonObject`、`QJsonDocument`来实现。 4. **发送...

    TCPIP数据包结构详解

    TCP数据包结构: 1. 源始端口(16位):发送方的端口号,范围当然是0-65535。 2. 目的端口(16位):接收方的端口号。 3. 数据序号(32位):TCP为发送的每个字节都编一个号码,这里存储当前数据包数据第一个字节...

    TCP_IP协议资料.rar

    TCP包头包括源端口号、目的端口号、序列号、确认号、数据偏移、保留、标志、窗口大小、校验和、紧急指针等字段。这些字段确保了数据包的有序接收和有效通信。 最后,ICMP协议是IP协议的一部分,用于报告网络通信...

    信息安全技术:TCP协议体系结构.pptx

    【TCP协议体系结构】 TCP(Transmission Control Protocol,传输控制协议)是互联网协议栈中的关键组件,主要用于在两台计算机之间提供可靠的数据传输服务。TCP协议确保数据的有序、无损传输,通过序列号、确认应答...

    tcp 粘包 拆包解决思路以代码

    在TCP协议中,由于其流式传输的特性,可能会出现“粘包”和“拆包”的问题。这两个术语是网络编程中的常见概念,主要涉及到数据在网络传输过程中的封装与解析。 **TCP粘包**:当发送方连续发送多个数据包时,接收方...

    TCP协议与UDP协议的区别

    4. **包头结构**:TCP包头包含源端口号、目标端口号、序列号、确认序号等字段。 #### 三、UDP协议详解 **UDP**(用户数据报协议)是一种无连接的、不可靠的、基于数据报的传输层协议。相比之下,UDP的主要特点有:...

    TCPIP协议数据报结构详解

    TCP/IP 协议数据报结构详解 TCP/IP 协议中各层的数据报结构是一个比较抽象的内容,大家在日常学习过程中往往难以理解和掌握,常常是死记硬背把它记住了事。为此,本文将利用 Sniffer 工具捕获了 FTP 命令操作过程中...

    unity实现Socket通讯(内含tcp粘包/拆包解决)

    1. 设计消息结构:定义消息的格式,如固定长度、包头+包体或特殊分隔符。 2. 创建数据序列化/反序列化函数:将业务数据转换成字节流,反之亦然。 3. 编写发送函数:使用NetworkStream.Write()将数据写入网络流。 4. ...

    TCP 粘包解决办法

    - **包头结构**:包头通常包含一个固定的结构体,其中至少包含一个字段用于表示包体的长度,此外还可以包含其他必要的信息,如校验码、类型标识等。 2. **拆包**: - **动态缓冲区暂存方式**:这是一种常用的拆包...

    TCP.rar_tcp 包

    在这个"TCP.rar/tcp 包"中,我们将深入探讨TCP包的相关知识点,包括其结构、主要字段以及如何通过这些字段来分析TCP会话的完整性和错误恢复。 首先,TCP包是网络层IP包的上层协议,它包含了更多的控制信息,以实现...

    基于TCP/IP协议的Socket编程

    TCP/IP协议的基本传输单位是数据包(datagram),TCP协议负责把数据分成若干个datagram,并给每个datagram加上包头,IP协议在每个包头上再加上接收端主机地址,以确定数据传输的目的地。 TCP/IP协议的数据传输是...

    车牌识别一体机Tcp通讯协议说明文档1

    TCP通讯协议的基础是数据包的结构,通常包括包头和包体两部分。包头通常包含命令码、包长度、序列号等关键信息,用于确保数据的正确发送和接收。包体则携带实际的数据,如车牌识别结果、设备状态等。在TCP连接建立后...

    Java心跳包功能TCP实现

    - 使用JSON或XML等结构化格式封装心跳包,包含版本号、发送时间、类型(心跳)等信息,提高可读性和扩展性。 4. **异常处理**: - 对于客户端,如果连续几次没有收到服务器的响应,可以认为连接已断开,尝试重新...

    互联网技术与应用--tcp\ip技术

    设计的核心在于首先截获IP数据包,然后根据解析的IP包头信息判断数据部分遵循TCP、UDP还是ICMP协议进行解析。程序采用模块化设计,分别在对话框中实现各个功能,最后集成到单文档程序中,使得整体结构清晰。 三、...

    NetFrame TCP

    数据包头通常用来标识数据的类型和结构,数据长度帮助接收方知道何时结束读取,校验和用于检测数据在传输过程中是否出错。 在C#中,可以使用结构体或类来定义这些协议格式,并通过序列化和反序列化工具(如...

    TCP.IP路由技术[第二卷](CCIE职业发展系列).pdf

    IPv6具有更大的地址空间、简化的包头结构、改进的多播功能和内置的安全性。 - **路由器管理**:有效的路由器管理不仅包括路由器的配置,还包括性能监控、故障排除、安全性管理和网络时间同步等。 - **故障排除方法...

Global site tag (gtag.js) - Google Analytics