首页 > 其他分享 >TCP协议的首部结构?

TCP协议的首部结构?

时间:2023-07-13 16:23:12浏览次数:38  
标签:协议 字节 首部 报文 TCP 序号 连接

 

源端口:占2字节。
目的端口:占2字节。
序号:占4字节。序号范围是[0,2^23-1],共2^23个序号。当序号达到2^23-1时候,下一个序号就回到0。TCP是面向字节流的,在一个TCP连接中传送的字节流的每一个字节都按顺序编号。整个TCP的起始序号必须在建立时确认,首部中的序号字段指的是这个报文段所发送的数据的第一个字节的序号。例如报文序号是101,携带的数据共100个字节,所以这个报文的第一个字节序号是101,最后一个字节的序号是200。下一个报文段就从201开始。
确认号:占4字节。是希望收对方下一个报文段的第一个数据字节的序号。例如序号中讲的,序号就是201。
数据偏移:占4位。指出TCP数据的起始位置和TCP报文段的起始处相差多少。也可以理解为数据偏移就是TCP首部字段的长度。
保留:占6位。保留为以后使用,当前置为0。
紧急URG:当URG=1时,说明紧急指针字段有效。告诉系统这个报文中有紧急的数据,应该尽快处理,优先级最高。
确认ACK:仅当ACK=1时,确认号字段才有效。当ACK=0时,确认号无效。TCP中有规定在TCP连接建立之后,所有传送的报文段ACK都必须为1。
推送PSH:发送方将PSH置为1后,表示当前命令之后希望收到对方的相应,推送很少用,不做深究。
复位RST:当RST=1时,表示TCP中出现严重的差错,必须释放连接然后再重新建立连接。RST=1还可以用来拒绝一个恶意的报文段。
同步SYN:在连接建立时用来同步序号。当SYN=1并且ACK=0时,表示这是一个连接请求报文段。若对方同意连接,就应该在响应报文中使SYN=1并且ACK=1。所以SYN=1表示这是一个连接请求或者连接接受报文。
终止FIN:用来释放一个TCP连接。当FIN=1时,表示报文段的发送方的数据已经发送完毕,要求释放连接。
窗口:占2字节。指的是发送这个报文段那方的接收窗口。窗口值告诉对方从确认号算起,接收方目前允许对方发送的数据量,因为接收方的数据缓存空间是有限的。
检验和:占2字节。检验和字段的检查范围包括首部和数据两个部分。和UDP一样需要在首部之前添加12字节的伪首部,算法这里不做深究。
紧急指针:占2字节。只有URG=1时才有用,表示这个报文段中紧急数据的字节数。
选项:长度可变,最长可达40字节,当没有选项时,TCP首部长度就是20字节。

标签:协议,字节,首部,报文,TCP,序号,连接
From: https://www.cnblogs.com/lyfily-p-7439305/p/17551235.html

相关文章

  • 发送请求忘记指定协议方式,日志com.jcraft.jsch.JSchException: java.net.ConnectExcep
      2023-07-1319:06:51.487-ERROR17629---[http-nio-192.168.2.206-36093-exec-8]c.t.b.p.b.c.common.util.sftp.SftpPool:com.jcraft.jsch.JSchException:java.net.ConnectException:拒绝连接(Connectionrefused)_atcom.jcraft.jsch.Util.createSocket(......
  • EasyCVR平台Ehome协议接入,设备管理中出现新增通道按钮的问题优化
    EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。有用户反馈,通过海康Ehome接入的设备,在设备管理中出现了新......
  • 高性能网络SIG月度动态:virtio-net 支持动态中断调节,SMC v2 协议增加新扩展
    高性能网络SIG(SpecialInterestGroup):在云计算时代,软硬件高速发展,云原生、微服务等新的应用形态兴起,让更多的数据在进程之间流动,而网络则成为了这些数据流的载体,在整个云时代扮演者前所未有的重要角色。在这个万物互联的时代,云上的网络通信效率对各种服务至关重要,高性能网......
  • 传输层协议
    一、TCP协议1.什么是TCP传输控制协议(TCP,TransmissionControlProtocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议由IETF的RFC793定义。TCP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠......
  • FTP文件传输协议
    简述FTP:文件传输协议,FileTransferProtocol,是在互联网中进行文件传输的一种协议,基于C/S模式,客户端通过FTP协议与服务器建立连接,并进行文件的上传、下载和管理。在Linux系统下,有一款工具实现ftp协议,名为vsftpd,非常安全的FTP守护进程服务默认端口控制端口:默认端口号是21。该端......
  • 【网络面试题】你知道 TCP 和 UDP 区别吗?
    ......
  • 分布式多协议接入网关FluxMQ-2.0功能说明
    FluxMQ—2.0版本更新内容前言FLuxMQ是一款基于java开发,支持无限设备连接的云原生分布式物联网接入平台。FluxMQ基于Netty开发,底层采用Reactor3反应堆模型,具备低延迟,高吞吐量,千万、亿级别设备连接;方便企业快速构建其物联网平台与应用。FluxMQ官网:https://www.fluxmq.comFluxMQ......
  • NBD(Network Block Device)是一种用于网络存储的协议和技术。NBD服务器是一种提供网络块
    NBD(NetworkBlockDevice)是一种用于网络存储的协议和技术。NBD服务器是一种提供网络块设备服务的服务器,它允许用户通过网络连接来访问和管理块设备(如硬盘、SSD等),就像本地设备一样。NBD服务器的工作原理如下:NBD服务器将物理或虚拟块设备暴露为网络上的NBD设备。客户端使用NBD客......
  • nvm安装node报错Get "https://nodejs.org/dist/latest/SHASUMS256.txt": dial tcp 104
    windows上通过nvm管理node版本,在本地安装了nvm后,通过nvm安装node,报错了,信息:Couldnotretrievehttps://nodejs.org/dist/latest/SHASUMS256.txt.Gethttps://nodejs.org/dist/latest/SHASUMS256.txt:dialtcp104.20.23.46:443:i/otimeout 有了这样的信息,我......
  • GPIO协议
    GPIO协议定义GPIO(GeneralPurposeInputOutput)通用输入输出口可配置为8种输入输出模式引脚电平:0V~3.3V,部分引脚可容忍5V输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模......