IP很TCP包头都至少包含20个字节。每个byte=8bitIP属于网络层协议,TCP属于传输层协议,TCP数据包是包含在IP数据包中的。先看IP协议:
《这样的图片网上很多了,能看懂多少就看懂多少,后面会详细介绍。》
来一个实际的tcpdump抓包,把十六进制打印出来
tcpdump -i bond0 port 2021 -X -s0
tcp
TCP Timestamp选项 Description Protocol suite: TCP/IP. Protocol type: Transport layer protocol. Option length: 10 bytes. The TCP Timestamp option obsoletes the TCP Echo request and Ech...
转载
2013-06-02 11:08:00
314阅读
2评论
RTTM规定了一些使用TSecr计算RTT的原则,具体如下(英文水平有限,为保持原意就使用RFC中
转载
2022-12-14 11:00:25
448阅读
1 TCP关闭时的四次握手Tcp连接在关闭的的时候,执行的是一个四次握手的过程,下图是客户端发起的关闭时客户端和服务器的状态转换图 具体过程如下:1、 客户端发送FIN报文段,进入FIN_WAIT_1状态。2、 服务器端收到FIN报文段,发送ACK表示确认,进入CLOSE_WAIT状态。3、 客户端收到FIN的确认报文段,进入FIN_WAIT_2状态。4、 服务器端发送FIN报文端,进入
1.TCP连接的建立和终止1)三路握手客户端发送一个SYN(同步)分解,告诉服务器客户将在连接中发送的数据的初始序列号。服务器发送确认客户的SYN(ACK),同时自己也得发送一个SYN分节,它含有服务器将在同一连接中发送的数据的初始序列号。客户端发送确认服务器的SYN(ACK) 2)TCP连接终止-四路挥手主动端发送FIN分节被动端接受,并由TCP发送ACK一段时间后,被动端发送FIN分
TCP/IP中的协议
以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:
1. IP
网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。
IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任
转载
2024-10-21 16:49:49
43阅读
在Linux操作系统中,TCP时间戳(TCP timestamp)是一种用来跟踪TCP数据包的发送和接收时间的机制。通过在TCP数据包头部加入时间戳信息,接收方可以更准确地估计数据包的往返时间(RTT),从而提高数据传输的效率。
TCP时间戳在网络通信中起着重要的作用,尤其是在处理带宽较大、延迟较高的网络环境下更为重要。在Linux内核中,TCP时间戳的实现是通过内核模块“tcp_timesta
原创
2024-04-16 10:04:32
119阅读
监听网络流量命令——tcpdump一、tcpdump简介二、格式三、常用参数四、示例 一、tcpdump简介二、格式三、常用参数常用参数说明-a尝试将网络和广播地址转换成名称-c<数据包数目>收到指定的数据包数目后,就停止进行倾倒操作-d把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出-dd把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出-ddd把编译过的数据包编码转
一、TCP三次握手 传输控制协议(Transport Control Protocol)是一种面向连接的,可靠的传输层协议。面向连接是指一次正常的TCP传输需要通过在TCP客户端和TCP服务端建立特定的虚电路连接来完成,该过程通常被称为“三次握手”。可靠性可以通过很多种方法来提供保证,在这里我们关心的是数据序列和确认。TCP通过数据分段(Segment)中的序列号保证所有传输的数据可以在远端按
转载
2024-07-18 23:16:22
48阅读
tcp_timestamps是在RFC 1323中定义的一个TCP选项。这篇wiki介绍一下timestamps的设计目的和相关原理,尤其强调一些比较tricky的地方。关于RFC1323这是一篇介绍针对High-bandwidth, Long delay链路设计的一些TCP扩展选项的资料。强烈推荐阅读!但这篇RFC其实已经被RFC7323所取代,不过RFC1323对于了解timestamp相关的
转载
2017-03-21 22:47:59
3991阅读
TIME-WAIT 是 TCP 挥手过程的一个状态。很多地方都对它有说明,这里只贴两个图唤起记忆。下面是 TCP 完整的状态图:来自:http://www.tcpipguide.com/free/t_TCPOperationalOverviewandtheTCPFiniteStateMachineF-2.htm看到最下面有个 TIME-WAIT 状态。状态图可能看着不那么直观,可以看这个:来自:h
目录1、16位源端口号2、16位目的端口号3、16位序号和16位确认序号4、4位首部长度5、16位窗口大小 6、16位紧急指针7、6个标记位TCP是传输控制协议,TCP对数据传输的控制就要比UDP详细很多了,比如TCP的确认机制、错误重传、流量控制等,因此TCP所包含的字段要比UDP多出许多。下面着重介绍
这节我们就将这两个功能:丢包重发和流量控制。 一、数据包重发 1. 数据发送丢包重发的前提是发送方能够知道接收方是否成功的接收了消息。所以,在TCP协议中接收方会给发送方返回一个通知,也叫做确认应答(ACK),这表示接收方已经接收到了数据包。
根据之前对TCP首部的分析得知,ACK确认应答包中的Ack(确认应答号)应该与发送方下次发送的数据包的序列号(Seq)相等。因此Ack可以理解为:“发送方
转载
2024-07-14 20:51:42
84阅读
1.poweroffpoweroff命令用来关闭计算机操作系统并且切断系统电源。语法poweroff(选项)选项-n:关闭操作系统时不执行sync操作; -w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中; -d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录; -f:强制关闭操作系统; -i:关闭操作系统之前关闭所有的网络接口; -h:关闭
转载
2024-10-29 18:57:45
114阅读
1.linux MMC内核:linux 4.91.1 分析mxs-mmc.c从别人的驱动程序分析是最好入手的。直接找到mxs_mmc_probe来进行分析:static int mxs_mmc_probe(struct platform_device *pdev)
{
.....
struct mxs_mmc_host *host;
struct mmc_host *mmc;
.....
m
当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。之后TCP把数据包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。 [3] TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收
目录命令简介常用命令综合示例参考链接:https://man.linuxde.net/tcpdumptcpdump 官网:https://www.tcpdump.org/manpages/tcpdump.1.html命令简介tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。一般安装 Linux 都
转载
2024-07-11 07:31:53
58阅读
TCP应该是以太网协议族中被应用最为广泛的协议之一,这里就聊一聊TCP协议中的TimeStamp选项。这个选项是由RFC 1323引入的,该C建议提交于1992年,到今天已经足足有20个年头。不过相信大部分程序猿对这个建议还是相当陌生。要理解为啥需要用TimeStamp选项,还需要从TCP协议的几个基本设计说起。TCP协议的几个设计初衷,以及引发的问题:1. 协议规定收端不需要响应每一个收到的数据
转载
2024-03-21 12:38:58
384阅读
状态迁移
1. SO_LINGER/ SO_REUSEADDR
TCP正常的关闭过程如下(四次握手过程):
(FIN_WAIT_1) A ---FIN---> B(CLOSE_WAIT)
(FIN_WAIT_2) A <--ACK-- B(CLOSE_WAIT)
(TIME_WAIT)A <--FIN----
转载
2024-04-03 00:00:14
129阅读
TCP协议全称: transmission contril protocol,顾名思义,就是要对数据的传输进行一定的控制。 TCP协议报头如下: 各字段意义如下:源端口和目的端口:表示数据从哪个进程来,到哪个进程去。序号字段:seq,TCP是面向字节流的,所以TCP连接中传送的数据流中每一个字节都编上一个需要。序号字段的值则表示值得是本报文字段所发送的数
转载
2024-04-22 21:13:57
264阅读