分组从客户机到服务器过程中的心酸故事(从完整的抓包数据来理解TCP三次握手四次挥手和数据传输过程)

计算机网络实验--Wireshark实验 计算机网络实验三–Wireshark实验 数据链路层 实作一 熟悉Ethernet帧结构 问题: Ethernet帧结构是包含目的MAC、源MAC、类型和字段等要素的,但是我们在使用Wireshark软件进行抓包时,因为有时校验和会由网卡计算,这时wireshark抓到的本机发送的数据包的校验和都是错误的,所以默认关闭了WireShark自己的校验。 实作二 了解子网内/外通信时的 MAC 地址 ... 阅读详情

三次握手

图片来源看水印

四次挥手

在这里插入图片描述

TCP报文段结构

在这里插入图片描述


看到这三张图你可能会说,教练我又被你的车牌骗上车咯,上个教练也是这样教的,各种标志位,序号(seq),确定号(Ack)的转换把我脑壳都搞晕了,你连图片都不换,也太敷衍了吧!

先别下车,不要把我和外面那些复制粘贴怪混为一谈,上面的三张只是作为对TCP连接建立和拆除的流程和报文结构大致了解,其他的具体内容我和你细细道来。

抓包获取到一个完整过程(三次握手+数据传输+四次挥手)的报文

ps:这里你可以尝试进行抓包,也可以直接参考我的抓包结果。具体抓包过程就不细致说了,大家可以查一下教程

我这里采用的抓包工具是WireShark,抓取TCP报文比较简单,
但想抓取到一个完整的过程的还是比较讲究的,原因在于现在大部分的服务器对于客户机的Socket都采用了各种各种各样的保活机制实现长连接,导致四次挥手的时机不太好把握,使用WireShark可以通过端口筛选一段时间内的所有包得到完整的报文。

我这里监控的是连接到我本地的服务端口8080的TCP连接,得到的结果如下:
在这里插入图片描述
到这里我们就得到了一个完整请求的TCP报文段,观察上图可以清楚的看出整体流程,
客户机的端口号为:32624
服务端的端口为:8080
具体过程中各种参数,我们先不细究
将注意转移到上图的Info字段,Info字段的字段既然软件优先显示,
即代表这些参数是协议中最重要的也是我们重点需要关注的。


重点了解的报文段结构

结合图三,重点关注TCP报文段的以下属性:

六个标志位(flag field,6 bit)

flag含义
确认ACK用于指定确认字段中的值有效,即该报文段包括一个对已被成功接收的报文段的确认,TCP 规定,在连接建立后所有传达的报文段都必须把 ACK 置 1
同步SYN[1]仅在三次握手建立 TCP 连接时有效。当 SYN = 1 而 ACK = 0 时,表明这是一个连接请求报文段,对方若同意建立连接,则应在相应的报文段中使用 SYN = 1 和 ACK = 1。因此,SYN 置 1 就表示这是一个连接请求或连接接受报文
终止FIN[2]用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放运输连接
复位RST[3]用于复位相应的 TCP 连接
推送PSH指示接收方应立即将数据交给上层
紧急URG指示报文段中存在被发送方上层实体设置为“紧急”的数据

PSH和URG和紧急数据指针都并没有使用,可能是为了扩展需要的保留位。
1 2 3标号的用于连接的建立与拆除。

序号(Seguence number,Seg,32 bit)

  • 该报文段的数据字段首字节的序号

确定号(Acknowledgment number,Ack,32 bit)

  • 主机期待的数据的下一个字节序号

数据长度(TCP Segment Len,Len)

  • TCP 首部结束之后的部分(报文总长度减去首部长度,其中首部长度也叫数据偏移)

数据传输过程

一般我们学习的过程都是从握手开始然后挥手,最后再看数据传输过程,但是我认为这样不太合理,我们应该先看数据传输过程,然后把握手和挥手当作服务器和客户机之间特殊的数据传输过程!这样就更方便我们的理解。

下面是一个基于TCP的简单Telent应用的确认号和序列号:
过程为 主机A向主机B发送一个"C",然后主机B返回"C"给主机A
在这里插入图片描述

图片来自 《计算机网络-自顶向下方法》p159

观察上面的过程结合我的备注,值得特别注意的点有:

  • 首先上图是连接已经建立且不发生数据丢失的情况下发生的数据传输过程;
  • 第二个报文段由服务端发往客户机,目的有两个:
    1)为接收到的数据提供确认(Ack=43);
    2)回传数据;
    此时这种将对数据的确认被装载在一个承载服务器到客户机的数据的报文段中,这种确认被称为捎带在服务器到客户机的数据报文段中。
  • 第三个报文段的唯一目的是确认已从服务器收到数据。
  • 在当前的Telnet应用中需要TCP传输的数据的大小为一个字节,并且整个过程中存在我们上一点说的捎带的情况,当我们将需要传输的数据的大小和初始确认的报文段进行扩展:

在这里插入图片描述


解析报文

经过上节的对数据传输过程的理解,相信对序号和确认号的转换已经有了准确的理解,然后再来逐条分析上面我们抓取到的报文段!
在这里插入图片描述
再贴一下我抓取到的数据,观察字段名,值得注意以下几点:

  • No. 不是前面说的数据序号(它是软件对抓取数据的编号,无实际含义),Seg才是序号;
  • TCP连接建立在主机的8080和32624端口之间;
  • 注意协议的转换,HTTP是应用层协议建立传输层协议TCP上。
三次握手

在这里插入图片描述
在这里插入图片描述

重要的连接的状态的转换:

起初A和B都处于CLOSED状态
——>
1) B创建TCB,处于LISTEN状态(监听),等待A请求
——>
2) A创建TCB,发送连接请求(SYN=1,seq=x),进入SYN-SENT状态(同步已发送)
TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号
——>
3) B收到连接请求,向A发送确认(SYN=ACK=1,确认号Ack=x+1,初始序号seq=y),进入SYN-RCVD状态
这个也为SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号
——>
4) A收到B的确认后,给B发出确认(ACK=1,ack=y+1,seq=x+1),A进入ESTABLISHED状态
TCP规定,ACK报文段可以携带数据,如果不携带则不消耗序号
——>
5) B收到A的确认后,进入ESTABLISHED状态。


ISN
三次握手的一个重要功能是客户端和服务端交换ISN(Initial Sequence Number), 以便让对方知道接下来接收数据的时候如何按序列号组装数据。

如果ISN是固定的,攻击者很容易猜出后续的确认号。

ISN = M + F(localhost, localport, remotehost, remoteport)

M是一个计时器,每隔4毫秒加1。 F是一个Hash算法,根据源IP、目的IP、源端口、目的端口生成一个随机数值。要保证hash算法不能被外部轻易推算得出。

为什么A还要发送一次确认呢?可以二次握手吗?

答:
主要为了防止已失效的连接请求报文段突然又传送到了B,因而产生错误。如A发出连接请求,但因连接请求报文丢失而未收到确认,于是A再重传一次连接请求。后来收到了确认,建立了连接。数据传输完毕后,就释放了连接,A工发出了两个连接请求报文段,其中第一个丢失,第二个到达了B,但是第一个丢失的报文段只是在某些网络结点长时间滞留了,延误到连接释放以后的某个时间才到达B,此时B误认为A又发出一次新的连接请求,于是就向A发出确认报文段,同意建立连接,不采用三次握手,只要B发出确认,就建立新的连接了,此时A不理睬B的确认且不发送数据,则B一致等待A发送数据,浪费资源。

什么是SYN攻击?
答:
服务器端的资源分配是在二次握手时分配的,而客户端的资源是在完成三次握手时分配的,所以服务器容易受到SYN洪泛攻击,SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server则回复确认包,并等待Client确认,由于源地址不存在,因此Server需要不断重发直至超时,这些伪造的SYN包将长时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络拥塞甚至系统瘫痪。

防范SYN攻击措施:降低主机的等待时间使主机尽快的释放半连接的占用,短时间受到某IP的重复SYN则丢弃后续请求。


数据传输

在这里插入图片描述
过程:
首先由客户机发起一个GET请求,HTTP协议的请求报文以ASCII码传输,由图可知报文段总长度为682,数据长度为279,数据的首字节序号为1。结合三次握手结束时的状态,Ack=1;
——>
1) 服务器完整接收数据,则服务器答复ACK,且Ack=280为当前服务器的期待序号;
——>
2) 服务器处理HTTP请求的报文,得出响应结果为一个html文件,大小为525;
并没有采用前面提到的稍带的方式,答复后再传输数据
——>
3) 客户机接收到html,立即答复服务器,表示当前期待为526序号的数据,前525已经接收到了。

四次挥手

在这里插入图片描述
在这里插入图片描述
注意上图我的关闭请求是由服务器发起的,因为我在发送了文件后对Socket进行了close,为HTTP短连接,其实过程和客户机发起的区别不大
过程详述:
假设Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。所以你先发送ACK,“告诉Client端,你的请求我收到了,但是我还没准备好,请继续你等我的消息”。
这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。当Server端确定数据已发送完成,则向Client端发送FIN报文,“告诉Client端,好了,我这边数据发完了,准备好关闭连接了”。
Client端收到FIN报文后,"就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。“,Server端收到ACK后,“就知道可以断开连接了”。Client端等待了2MSL(最大报文段生存时间) 后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。
注意是主动关闭方等待2MSL,即服务器发起则服务器等待进入TIME_WAIT状态,可以结合抓包理解服务器主动关闭的状态变化


状态的转换:
服务器和客户机的起始状态都是ESTABLISHED
1) A的应用进程先向其TCP发出连接释放报文段(FIN=1,序号seq=u=),并停止再发送数据,主动关闭TCP连接,进入FIN-WAIT-1(终止等待1)状态,等待B的确认。
TCP规定,FIN报文段(FIN=1的报文段)不能携带数据,但需要消耗掉一个序号
——>
2) B收到连接释放报文段后即发出确认报文段,(ACK=1,确认号ack=u+1,序号seq=v),B进入CLOSE-WAIT(关闭等待)状态,此时的TCP处于半关闭状态,A到B的连接释放。
——>
3) A收到B的确认后,进入FIN-WAIT-2(终止等待2)状态,等待B发出的连接释放报文段。
——>
4) B没有要向A发出的数据,B发出连接释放报文段(FIN=1,ACK=1,序号seq=w,确认号ack=u+1),B进入LAST-ACK(最后确认)状态,等待A的确认。
——>
5) A收到B的连接释放报文段后,对此发出确认报文段(ACK=1,seq=u+1,ack=w+1),A进入TIME-WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,A才进入CLOSED状态。
结合过程可以看出,主动关闭方,会接收TCP连接晚,需要在2MSL内确定对方完全真实的关闭了才进入CLOSED状态


为什么A在TIME-WAIT状态必须等待2MSL的时间?

MSL最长报文段寿命Maximum Segment Lifetime,MSL=2

答:  
假象网络不可靠。
两个理由:
1)保证A发送的最后一个ACK报文段能够到达B。2)防止“已失效的连接请求报文段”出现在本连接中。
1)这个ACK报文段有可能丢失,使得处于LAST-ACK状态的B收不到对已发送的FIN+ACK报文段的确认,B超时重传FIN+ACK报文段,而A能在2MSL时间内收到这个重传的FIN+ACK报文段,接着A重传一次确认,重新启动2MSL计时器,最后A和B都进入到CLOSED状态,若A在TIME-WAIT状态不等待一段时间,而是发送完ACK报文段后立即释放连接,则无法收到B重传的FIN+ACK报文段,所以不会再发送一次确认报文段,则B无法正常进入到CLOSED状态。
2)如果Client直接CLOSED,然后又再向Server发起一个新连接,我们不能保证这个新连接与刚关闭的连接的端口号是不同的。也就是说有可能新连接和老连接的端口号是相同的。一般来说不会发生什么问题,但是还是有特殊情况出现:假设新连接和已经关闭的老连接端口号是一样的,如果前一次连接的某些数据仍然滞留在网络中,这些延迟数据在建立新连接之后才到达Server,由于新连接和老连接的端口号是一样的,又因为TCP协议判断不同连接的依据是socket pair,于是,TCP协议就认为那个延迟的数据是属于新连接的,这样就和真正的新连接的数据包发生混淆了。

为什么连接的时候是三次握手,关闭的时候却是四次握手?
答:
因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。


扩展

本篇简述的是分组从客户机到服务器过程的心酸故事,
那TCP和Socket之间的又有那些不为人知的爱恨情仇?分组如何嫁入应用层的豪门?
下回分解!
在这里插入图片描述

计算机网络---网络层 网络层网络层功能数据交换方式电路交换报文交换分组交换三种数据交换方式比较总结 网络层功能 主要任务 把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务 传输单位:数据报(数据报和分组的关系:分组将数据报切割,可以变成数据帧) 功能一:路由选择与分组转发(找最佳路径) 功能二:异构网络互联(使得不同的网络可以互相通信,wifi和宽带互相发消息等) 功能三:拥塞控制(就是控制流量,网络太过于拥堵的时候,采取一定的措施) 解决措施:开环控制(静态,先搞掉可能性)和闭环控制(动态,出了问题在搞) 数据交换 阅读详情

相关推荐

土地利用数据从1972到2023:如何利用Landsat和Sentinel数据构建长期变化监测模型

本文详细解析了如何利用1972至2023年的Landsat和Sentinel遥感数据构建土地利用长期变化监测模型。通过多源数据融合策略、时间序列预处理流程和深度学习算法,实现高精度的土地利用分类与变化检测,为生态评估和城市规划提供科学依据。文章还探讨了验证方法和实际应用案例,展示了长期遥感数据在环境建模中的独特价值。

weixin_28720573的博客 443

抓包:IP分组

ip分组前两位通常是45,代表ipv4和默认的首部长度(选项字段为0,首都长度=首部值*4字节) 服务类型指示期望获得哪种类型的服务(TOS后更名为 Differentiated Services Field 区分服务),且只有在网络提供该服务时使用。 总长度字段16位,最大可指示65535字节(B),理论上可封装的最大数据65535-20=65515B。 IP分片与重组 标识(ID):使用源i...

Big_Study_Father的博客 2488

企业微信/飞书/钉钉扫码连WiFi保姆级教程(附访客授权技巧)

本文提供了一份企业微信、飞书、钉钉扫码连接WiFi的实战部署教程。通过集成标准Radius协议与OAuth 2.0,企业可实现基于身份的无密码网络认证,并详细介绍了访客授权、权限分级等精细化管理技巧,有效提升无线网络的安全性与员工体验。

t4y5u6i7o的博客 1194

tcp/ip协议 卷一知识点整理

一、TCP/IP参考模型   ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用。如图2-1所示,是TCP/IP参考模型和OSI参考模型的对比示意图。             图2-1  TCP/IP参考模型   2.1 TCP/IP参考模型的层次结构   TCP/IP协议栈是美国国防部高级研究计划局计算机网(

Invoker's Tower 5830

一文搞懂STM32定时器翻转模式(产生多路频率、占空比的PWM)

(产生多路频率、占空比的PWM)

weixin_56688599的博客 7934

【目标检测】yoloV5算法详解

一、与yoloV4相比,yoloV5的改进 输入端:在模型训练阶段,使用了Mosaic数据增强、自适应锚框计算、自适应图片缩放 基准网络:使用了FOCUS结构和CSP结构 Neck网络:在Backbone和最后的Head输出层之间插入FPN_PAN结构 Head输出层:训练时的损失函数GIOU_Loss,预测筛选框的DIOU_nns 二、yoloV5结构框架 CBL:CBL模块是由Conv+BN+Leaky_relu激活函数组成 Res unit:借鉴ResNet中的残差结构,用来构建深层网络,CBM是

qq_40373651的博客 2万+

网络原理题+复习资料

1.试说明运输层在协议栈中的地位和作用,运输层的通信和网络层的通信有什么重要区别?为什么运输层是必不可少的? 答:运输层处于面向通信部分的最高层,同时也是用户功能中的最低层,向它上面的应用层提供服务运输层为应用进程之间提供端到端的逻辑通信,但网络层是为主机之间提供逻辑通信(面向主机,承担路由功能,即主机寻址及有效的分组交换)。各种应用进程之间通信需要"可靠或尽力而为"的两类服务质量,必须由运输层以复用和分用的形式加载到网络层。 2.试用画图解释运输层的复用。画图说明许多个运输用户复用到一条运输连接上,而这条

zeng_jun_yv的博客 3171

微信对话开放平台智能对话模块的几个亮点

微信AI首席科学家牛成公布了最新开放方案,并重磅宣布全面开放各层次 NLP 能力。具体说来,微信 AI 迈出了“三大步”: 以硬件合作为核心的智言小微硬件开放平台 2.0 正式亮相; 公开以对话开放能力为核心的微信对话开放平台; 全面开放以自然语言处理能力为核心的 NLP 基础技术平台。 参考:微信9年:张小龙指明方向,微信AI全面开放NLP能力 今天公开课上隆重介绍了...

素质云笔记 1万+

【计算机网络 (谢希仁) 习题题解】第5章 运输层 (1)——UDP

计算机网络 (谢希仁) 第7版 习题题解 第5章 运输层 UDP 协议

HPP_优快云的博客 1万+

YOLO11,ultralytics-main源代码目录结构详解

本文详细介绍了YOLO11框架的ultralytics-main源代码目录结构,帮助用户更好地理解和使用YOLO模型。主要目录包括:docker文件夹,包含多种Docker镜像文件,适用于不同硬件环境;docs文件夹,存放YOLO的说明文档;examples文件夹,提供YOLO使用的示例代码;tests文件夹,包含单元测试模块;ultralytics文件夹,为核心代码所在,包含推理逻辑、配置、数据处理等模块。其中,engine文件夹负责训练和推理引擎,models文件夹存放模型架构,nn定义神经网络结构

qq_30279827的博客 1282

基于截图详解:SAP GUI for Java 如何设置登录链接,以及 conn= 连接字符串该怎么写

摘要:SAP GUI for Java 的连接属性配置关键是在"高级"页签的"conn="后填写连接字符串。连接字符串格式取决于网络拓扑:直连应用服务器使用"/H/主机/S/端口";通过消息服务器负载均衡使用"/M/消息服务器/S/端口/G/组名";经SAProuter访问则需添加路由器前缀。配置时需注意专家模式会覆盖其他页签设置,且连接字符串还支持附加参数如客户端、语言和默认事务码。具体填写内容应根据Basis团队提供的系统信

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 250

计算机网络习题解答5-49

下面是以十六进制格式存储的一个UDP首部:CB84000D001C001C试问:a.源端口号是什么?b.目的端口号是什么?c.这个用户数据报的总长度是什么?d.数据长度是多少?e.这个分组是从客户到服务器还是从服务器到客户?解a.源端口号是最前面的四位十六进制(CB84),代表着源端口号为52100。b.目的端口号是第二个四位十六进制(000D),代表着目的端口号为13。c.第三个四位十六进制(0...

luoawai的博客 2万+

实测可复现|2026 Cloudflare盾v4.0反反爬全实战:从JS/WASM逆向到JA3指纹伪装,手把手突破拦截(附完整逆向代码+避坑手册)

本文以2026年Cloudflare盾v4.0(集成Shield Synapse v2.0)为核心,全程以实战复盘为视角,拆解了从JS/WASM混合逆向、全维度指纹伪装(JA3+浏览器指纹)、人类行为模拟,到代理池搭建的全流程,整合了完整可复现的代码,所有步骤和踩坑点均为实测所得,无任何AI套话,新手也能跟着复现,最终实现爬取成功率从12%提升至95%+。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1686

TCP、UDP、IP 协议分析

互连网早期的时候,主机间的互连使用的是NCP协议。这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能。为了改善这种缺点,大牛弄出了TCP/IP协议。现在几乎所有的操作系统都实现了TCP/IP协议栈。 TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图 所谓的协议就是双方进行数据传输的一种格式...

高明的专栏 1353

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

udp服务器端客户端

参考网址: http://www.cnblogs.com/qxhcpp/archive/2012/04/27/2473756.html http://www.cnblogs.com/fantasy-blog/archive/2013/04/21/3033935.html

SUNNYXIAOYANAN的专栏 1104

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

计算机网络习题——第5章 运输层

TCP每发送一个窗口,需要进行等待确认信息回来,所以每发送完一个窗口,最快需要经过一个往返时延才可以发送下一个窗口(确认信息很小不考虑发送时延),所以在一个传输轮次中,包含一个发送时延和一个往返时延,而传输的数据量是一个窗口的大小(这里不考虑TCP、IP首部和帧的构成)。进入慢开始,设置cwnd=1,重复(2),慢开始阶段窗口依次为1,2,4,6,进入拥塞避免阶段窗口大小依次为7,8,9;所以,第1次到第15次传输的各拥塞窗口大小依次为1,2,4,8,9,10,11,12,1,2,4,6,7,8,9。...

lazyn的博客 5742

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

计算机网络复习(五)

UDP 拥塞控制 TCP三次握手四次握手 P247 熟知端口号 P215 TCP报文计算

一只不想做程序员的程序猿的日常摸鱼分享 4484

计算机网络学习笔记:第二章

计算机网络学习笔记:第二章 学习书籍:《计算机网络:自顶向下方法》 文章目录计算机网络学习笔记:第二章前言2.1、应用层协议原理2.1.1 网络应用程序体系结构2.1.2 进程通信2.1.3 可供应用程序使用的运输服务2.1.4 因特网提供的传输层服务 前言 本章介绍有关网络应用的原理和实现方法;定义关键的应用层概念,包括程序所需要的网络服务、客户和服务器、进程和运输层接口;详细考察几种网络应用程序,包括WEB、电子邮件、DNS、对等文件分发和视频流;并设计开发运行在TCP和UDP上的网络应用程序;

Dr3stark的博客 5230

TCP和UDP

UDP和TCP UDP:用户数据报协议 TCP:传输控制协议 UDP TCP 有无连接 没有连接,尽最大可能交付 面向连接,提供可靠交付 拥塞控制 无拥塞控制 有流量控制、拥塞控制 面向 报文,对应用程序传下来的报文不合并不拆分,只添加UDP首部 字节流,把应用层报文看成字节流,组织成大小不等的数据块 一对几 支持一对一、一对多、多对一、多对多的加护通信 只支持一对一 首部格式 源端口+目的端口+长度+检验和(2字节16位*8) 较UDP更复杂,下面再说 什么是TCP的

qq_41265365的博客 2409

Http请求中请求头和响应头

一、HTTP头引入: 正确的设置HTTP头部信息有助于搜索引擎判断网页及提升网站访问速度。通常HTTP消息包括:客户机向服务器的请求消息和服务器向客户机的响应消息。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。 Http协议定义了很多与服务器交互的方法,即HTTP请求的种类中,最基本的有4种,分别是G

Jay的博客 1864

计算机网络第四章 网络层

4.1.1 网络层功能概述 网络层 主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务,网络层传输单位是数据报。 功能 路由选择与分组转发(最佳路径) 异构网络互联 拥塞控制 4.1.2 数据交换方式:电路交换、报文交换与分组交换 电路交换 e.g.:电话网络 步骤/阶段: 建立连接(呼叫/电路建立)=>通信=>释放连接(拆除电路) 是独占资源的。 优点:1.通信时延小 2.有序传输 3.没有冲突 4.实时性强 缺点:1.建立连接时间长 2.链路独占,使用效率低 3.灵

QER 的博客 1298

计算机网络教程-传输层(十四)UDP协议、TCP协议【上】

传输层协议通常有很多责任。一个是创建进程到进程通信;这些协议使用端口号来完成这项责任。一、UDP        用户数据报协议( User Datagram Protocol, UDP)是无连接不可靠传输层协议。它不提供主机到主机通信,它除了提供进程到进程之间的通信之外,就没有给 IP 服务增加任何东西。此外,它进行非常有限的差错检验。 1.用户数据报        UDP 分组称为用户数据报( ...

duan_2018的博客 3562

使用wireshark抓包,验证客户端和服务端SSL通信时指定的算法套件

使用wireshark抓包,验证客户端和服务端SSL通信时指定的算法套件

CHYabc123456hh的博客 2901

wireshark:怎么知道抓包文件是在哪一端抓取的?

问题:怎么判断抓包文件是在服务端抓取的,还是在客户端抓取的? 可以利用IP的TTL属性。显然,无论是在哪一端,它的报文在发出时,其TTL就是原始值,也就是64、128、255中的某一个。而对端报文的TTL,因为会经过若干个网络跳数,所以一般都会比64、128、255这几个数值要小一些。 所以,我能只要看一下抓包文件中任何一个客户端报文(也就是源端口为高端口)的TTL,如果它的值是64、128或者255,那说明这个抓包文件就是在客户端做的。反之,就是在服务端做的 关于TTL属性 TTL的作用是限制.

OceanStar的博客 1726

抓包分析AP、客户端和服务器三者之间数据的传输过程

1. 客户端发出eapol-start报文; 2. ap发出request,identity报文,请求客户端发送用户名过来; 3. 客户端将用户名通过response报文发出去; 4. ap将EAP数据封装在radius协议的eap-Message属性中,发送给radius服务器进行认证; 5. 服务器收到设备转发的用户名信息后,将该信息与数据库中的用户名表比对,找到该用户名对应的密码信息,用随机...

zryoo_k的博客 2087

计网复习题和知识点+最终版

分析题:出处 1.以太网交换机进行转发决策时使用的 PDU 地址是 _________。 (A ) A.目的物理地址 B.目的 IP 地址 C.源物理地址 D.源 IP 地址 分析:以太网交换机属于数据链路的设备,用的是MAC地址/物理地址/硬件地址。交换机实质上是一个多端口网桥,工作在数据链路层,数据链路层使用物理地址进行转发,而转发通常都是根据目的地址来决定出端口。 在转发过程中,使用的是目的地址来进行转发决策的,因此,PDU地址就是目的物理地址。 路由器在网络层用的是目的IP地址。 2.下列协议中,属

zeng_jun_yv的博客 1万+
上一篇: Java-请求资源接口(REST API)的工具类(HttpUtil)
下一篇: Ajax请求不能下载文件的原因及解决方法
define_YIDA
博客等级 码龄9年 323粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值