当前位置: 首页 > news >正文

安徽专业网站建设长春能开发网站的公司

安徽专业网站建设,长春能开发网站的公司,杭州装饰网站建设方案,WordPress本地可以调出点赞功能吗什么是TCP TCP是一种可靠的端到端的传输层协议,仅应用于单波通信。 采用TCP协议作为传输方式的应用层服务,再进行数据传输前,都需要进行TCP协议的创建。 TCP报文的格式 sequence number(序列号) 占4个字节&#x…

什么是TCP

TCP是一种可靠的端到端的传输层协议,仅应用于单波通信。

采用TCP协议作为传输方式的应用层服务,再进行数据传输前,都需要进行TCP协议的创建。

TCP报文的格式

sequence number(序列号)

占4个字节,32比特,序列号是指报文里面data数据中第一个字节的编号。

acknowlegment number(确认号)

该字段指的是,希望接受对端下一个数据段的序列号。

header length(头部长度)

这个字段以4个字节为单位来标示TCP

ACK(确认)

标志位,判断确认号字段是否有效,1标示有效。

SYN(同步)

也是一个标志位,用来向对方请求建立TCP连接,对端要是也同意建立回回复一个SYN+ACK=1的确认数据段。

FIN(最后)

也是一个标志位,用来请求对方释放TCP连接,标示没有数据要发送了。

实验配置

第一步配置环境

配置环境的流程和这个一模一样,华为hcia——Datacom实验指南——以太网帧和IPV4数据包格式(一),再配置完成后,我们还需要的操作是,在桌面建立一个文件夹,里面随便放一个.html网页的文件。

启动服务。

第二步对数据进行抓包

随便选择一个地方进行抓包

第三步,访问服务器

我们之前配置的服务器ip是192.168.2.10,html服务端口是80,所以我们访问的网站是

http://192.168.2.10:80

当我们配置正确,点击获取后是这样的

分析

TCP协议分为2部分,建立服务,由3次握手组成,释放服务由4次挥手。

在我们抓获的这个流量包中,可以很明显的看到3次握手和四次挥手。

我们分别进行分析

三次握手

第一次握手

客户端向服务器发送一个SYN=1的报文。

我们重点关注几个地方

第一个是sequence number,

一个是0还有一个是6659,之所以有两个,是因为,在wireshark中,为了方便用户好判断,所以默认是0,但是实际上,这个值是下面这个6659,这个数值是随机的。

第二个是acknowledgment nubmber,

因为这是第一次握手,所以不存在需要确认的地方,默认为0

第三个是flags字段

在flags字段里面我们看到只有syn=1,可以判断出这是第一次握手。

第二次握手

还是和第一次握手关注的一样

第一个是sequence number,

一个是0还有一个是42012,之所以有两个,是因为,在wireshark中,为了方便用户好判断,所以默认是0,但是实际上,这个值是下面这个42012,这个数值是随机的。

在这里,这个seq的值也是随机的,且这个值是服务器这边随机的初始值。

第二个是acknowledgment nubmber,

这是第二次握手,所以ack的值是第一握手中seq值加一。

第三个是flags字段

在flags字段里面我们看到syn=1和ack=1

可以判断出这是第二次握手。

第三次握手

第一个是sequence number,

有两个值一个是1,一个是6660,这是在第一次握手的基础上序列号加一

第二个是acknowledgment nubmber,

它的值是1,这是在上一个报文的seq值加一的出来的

第三个是flags字段

在flags字段里面我们看到ack和seq值=1

可以判断出这是第三次握手,也是最后一次握手

说完三次握手,接下来分析一下四次挥手

四次挥手

挥手和握手有一个小区别,在客户端接受完所有数据后,会向服务器发送一个ack标签的报文,告诉服务器,我已经接受完毕了。

这里的seq和ack的值和中间发送数据相关联

第一次挥手

客户端发送一个带有FIN和ack=1的标签报文给服务器,告诉服务器我想要释放TCP协议

第一个是sequence number,

有两个值一个是159,一个是6818,和上一个ack报文的值是一模一样

第二个是acknowledgment nubmber,

它的值是308和上一个ack报文的值也是一模一样

第三个是flags字段

在flags字段里面我们看到ack和FIN的值为1

第二次挥手

服务器会回复一个ack报文,告诉客户端,我同意你的释放TCP请求

第一个是sequence number,

有两个值一个是308,一个是42320,这是在上个客户端向服务器发送释放TCP协议的ack值

第二个是acknowledgment nubmber,

这是在上个客户端向服务器发送释放TCP协议的seq+1的值为160

第三个是flags字段

在flags字段里面我们看到ack和的值为1

第三次挥手

服务器发送一个带有FIN和ack=1的标签报文给客户端,告诉服务器我想要释放TCP协议

第一个是sequence number,

有两个值一个是308,一个是42210,是上一个报文的seq+1值

第二个是acknowledgment nubmber,

它的值是160和上一个ack报文的值也是一模一样

第三个是flags字段

在flags字段里面我们看到ack和FIN的值为1

第四次挥手

客户端会回复一个ack报文,告诉服务器,我同意你的释放TCP请求

第一个是sequence number,

有两个值一个是160,一个是6819,这是在上个客户端向服务器发送释放TCP协议的ack值

第二个是acknowledgment nubmber,

这是在上个客户端向服务器发送释放TCP协议的seq+1的值为309

第三个是flags字段

在flags字段里面我们看到ack和的值为1

结束

这就是完整的TCP协议的三次握手和四次挥手的所有细节。

http://www.dtcms.com/a/596343.html

相关文章:

  • hadoop-3.4.1 单机伪部署
  • Nginx(4)--Nginx与tomcat反向代理和负载均衡
  • 37负载均衡介绍和nginx模块编译安装
  • 网站开发成本都有哪几项北京app建设 网站开发公司
  • 01-总结
  • VR党建赛车模拟系统:让党史学习“开“出沉浸式新体验
  • Logstash 从 MySQL 同步数据到 Kafka
  • 通过 HelloWorld 深入剖析 JVM 启动过程
  • css-文字背景渐变色
  • Tailwind CSS的grid布局
  • LangGraph基础教程(4)---LangGraph的核心能力
  • 百度网站推广费用多少物流网站前端模板下载
  • Docker-镜像存储机制-网络
  • 线性代数 - 从方程组到行列式
  • 景德镇做网站公司中国邮政做特产的网站
  • 【Linux】进程间通信(三)System V 共享内存完全指南:原理、系统调用与 C++ 封装实现
  • 记一次cssd无法启动故障处理
  • 开源 Objective-C IOS 应用开发(一)macOS 的使用
  • ElasticSearch详解(篇一)
  • flash网站价格网站推广的特点
  • 【C++ 面试题】内存对齐
  • busybox:启动阶段的静态 IP 配置过程
  • k8s 中遇到Calico CrashLoopBackOff 的解决方法
  • zookeeper单机版安装
  • 【Excel导入】读取WPS格式嵌入单元格内的图片
  • 福清建设银行网站网红营销的作用
  • 34节点配电网牛顿-拉夫逊潮流计算 + 分布式电源(DG)多场景分析的 MATLAB
  • 分布式专题——53 ElasticSearch高可用集群架构实战
  • 电子商务网站建设与设计网站常州建设
  • 学习编程好么 | 编程的好处与学习路径分析