首页 > 其他分享 >tcp报文

tcp报文

时间:2023-04-18 17:46:55浏览次数:42  
标签:字节 报文 SYN tcp TCP 连接

TCP 报文详解_测试开发-海励的博客-CSDN博客_tcp报文

1、介绍

tcp,transmission control protocol传输控制协议是一种传输层协议,向上为http/https等服务,向下由ip协议支持。

2、数据格式

(1)源端口,2字节

(2)目的端口,2字节

(3)序列号,4字节,表示本报文数据部分第一个字节的编号。在tcp连接中,传送的每个字节都会进行顺序编号

  • SYN为1时,该值为初始化序列值,用于对序列号同步,使用时对其+1
  • SYN不为1时,表示当前数据的第一个字节编号

(4)确认号,4字节。表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。其值是接收计算机即将接收到的下一个序列号,也就是下一个接收到的字节的序列号加1。

(5)数据偏移,4位,表示数据部分开始的字节,由tcp首部(包括选项)除以4得到,也可以理解为首部总长度

(6)保留4位,默认为0

(7)标志位,8位

(8)缓冲区,2字节,用来告诉TCP连接对端自己能够接收的最大数据长度。

它表示从 Ack Number 开始还可以接收多少字节的数据量,也表示当前接收端的接收窗口还有多少剩余空间。该字段可以用于 TCP 的流量控制。

(9)校验和,2字节,根据伪头部+tcp头部+tcp数据三部分计算

(10)紧急指针,2字节。urg为1时有意义,指出本数据段中未紧急数据的字节数。

(11)可选字段,必须是4字节的整倍数

3、标志位

(1)CWR

Congestion Window Reduce,拥塞窗口减少标志

用来表明它接收到了设置 ECE 标志的 TCP 包。并且,发送方收到消息之后,通过减小发送窗口的大小来降低发送速率

  • 理解:告知发送方,我方拥堵,你降低一下窗口发送速率

(2)ECE

用来在 TCP 三次握手时表明一个 TCP 端是具备 ECN (显式拥塞通告)功能的。在数据传输过程中,它也用来表明接收到的 TCP 包的 IP 头部的 ECN 被设置为 11,即网络线路拥堵。

理解:数据传输过程中,TCP包头部的ECN字段设置为11,表示网络线路拥堵

(3)URG

表示本报文段中发送的数据是否包含紧急数据。URG=1 时表示有紧急数据。当 URG=1 时,后面的紧急指针字段才有效

(4)ACK

表示前面的确认号字段是否有效。ACK=1 时表示有效。只有当 ACK=1 时,前面的确认号字段才有效。TCP 规定,连接建立后,ACK 必须为 1

(5)PSH

告诉对方收到该报文段后是否立即把数据推送给上层。如果值为 1,表示应当立即把数据提交给上层,而不是缓存起来

(6)RST

表示是否重置连接。如果 RST=1,说明 TCP 连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。

(7)SYN

在建立连接时使用,用来同步序号。

  • 当 SYN=1,ACK=0 时,表示这是一个请求建立连接的报文段;
  • 当 SYN=1,ACK=1 时,表示对方同意建立连接。
  • SYN=1 时,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中 SYN 才为 1。

(8)FIN

标记数据是否发送完毕。如果 FIN=1,表示数据已经发送完成,可以释放连接。

4、wireshark

 

标签:字节,报文,SYN,tcp,TCP,连接
From: https://www.cnblogs.com/wd404/p/17330473.html

相关文章

  • udp报文
    1、介绍udp,userdatagramprotocol用户数据报协议,属于传输层协议。上层是dns等应用层协议,下层是ip协议。2、结构(1)源端口号,2字节(2)目标端口号,2字节(3)总长度,2字节,单位是字节(4)校验值,2字节,保证数据安全3、wireshark ......
  • ICMP报文
    参考:http://c.biancheng.net/view/6399.html1、介绍ICMP,InternetControlMessageProtocol网络控制消息协议。用于在IP主机和路由器之间传递控制消息,描述网络是否通畅、主机是否可达、路由器是否可用等网络状态。一般可分为请求报文和响应报文。一般在计算机普通用户或者管......
  • dns报文
    1、介绍属于应用层协议,用于查询域名对应的ip地址。分为请求和响应报文。一般来说,局域网中的主机查询dns,都是直接与备注的域名服务器进行通信,而不会直接与外部dns通信。比如我这里本地主机是192.168.0.18,dns报文都是与192.168.0.1交互,即使是查询完全陌生的域名也是如此。2、数......
  • http/https报文
    1、基本2、https不确定是否是wireshark自动对https的http部分进行解码,但是可以确定wireshark可以捕获https协议数据,标志是TransportLayerSecurity层,可以直接查看头部内容和体部内容。 ......
  • 抓包显示”TCP Port number reused“端口重复使用
    访问linux指定端口失败在一次调试中,在windows平台下使用软件,访问linux系统的8554端口失败,于是使用windows系统抓包查看;看到linux系统8554端口回复给windows系统14676端口的内容:win=0滑动窗口大小为0、Len=0长度为0;并且windows系统访问linux系统时“TCPPortnumberreused:重......
  • NDP常用报文格式
    邻居发现协议(NeighborDiscoveryProtocol,NDP)是IPv6协议体系中最重要的基础协议之一,很多IPv6功能都依赖NDP来实现。一般说来,NDP可以实现的功能包括:替代IPv4的ARP来形成邻居表;默认网关的自动获取;无状态地址自动配置;路由重定向等。NDP定义了5类ICMPv6报文,即路由器请求(RouterSolicito......
  • 从1写TCPIP协议栈8:网页结构与设计简介
    概述  在完成传输层的开发后,我们进入应用层HTTP超文本传输协议的开发,这部分对于使用者来说就是网页浏览器。网页浏览器实际上是对HTML内容解析的结果。HTML简介  HTML超文本传输协议本质上是描述文本与文本之间的关联关系,您可以随机打开一个网页按下Ctrk+U就能查看Web网页......
  • Linux系统知识(十一)-Ubuntu使用TCP/UDP并限制最大连接数
    一、Ubuntu使用TCP1、使用TCP的命令:  /dev/[tcp|upd]/host/port;例如::cat</dev/tcp/127.0.0.1/222、查看当前监听的端口  -bash:connect:拒绝连接  -bash:/dev/[tcp|upd]/host/port:拒绝连接  例:-bash:connect:Connectionrefused-bash:/dev/tcp/127.......
  • TCP三次握手和四次挥手
    文章目录TCP三次握手TCP四次挥手TCP三次握手序列号:建立连接时计算机随机生成的随机数作为初始值,通过SYN包传给接收端主机,每发送一次数据就累加一次该数据字节数的大小。用来解决网络包乱序问题。确认应答号:指下一次期望收到的数据的序列号,发送端收到这个确认应答以后认为在这个序......
  • TCP为什么可靠,采用了什么方法
    首先对比IP层,IP层不可靠,不保证网络包的交付,不保证网络包的按序交付,也不保证网络包的数据完整性。而TCP在传输层进行可靠的数据传输服务,接受到的网络包无损坏,无间隔,非冗余按序。TCP无论网络链路出现了怎样的链路变化,TCP都可以保证一个报文一定能够到达接收端。通过TCP连接保证可......