TCP 的报头结构 和 三次握手---详解(看完必会)

news2024/11/15 9:15:32

TCP 的三次握手:

在搞懂三次握手前,必须要搞明白TCP报头的结构内容
TCP报头结构:
在这里插入图片描述

  • 源端口号 : 源计算机上的应用程序的端口号;
  • 目的端口号 : 目标计算机的应用程序端口号;
  • 序列号:客户端给服务端发送数据时,给分好的数据段在发送时标上一个序号,方便后面对数据段的排序;
  • 确认序列号:接收方给发送方返回一个确认序号,就代表确认序号之前的数据接收方已经接收到了,同时接收方告诉发送方接下来可以发送之后的数据;
  • 标志位
    • URG:紧急标记位,表示本报文段中发送的数据是否包含紧急数据,URG=1 时激活后面的紧急指针字段;
    • ACK:确认标记位,当 ACK=1 时,激活前面的确认号字段,TCP 规定,连接建立后,ACK 必须为 1;
    • PSH:告诉对方收到该报文段后是否立即把数据推送给上层,PSH=1,表示应当立即把数据提交给上层,而不是缓存起来;
    • RST:该位为1时代表TCP连接出现了异常,强制断开连接;
    • SYN:请求标记位,SYN=1 时表示想建立连接;
    • FIN:结束标记位,表示请求断开连接.;
  • 窗口大小:示当前接收端的接收窗口还有多少剩余空间;
  • 校验和:它用于确认传输的数据是否有损坏,发送端基于数据内容校验生成一个数值,接收端根据接收的数据校验生成一个值,两个值必须相同,才能证明数据是有效的,如果两个值不同,则丢掉这个数据包
  • 紧急指针:当 URG=1 时,激活紧急指针字段,它指出本数据段中为紧急数据的字节数,当所有紧急数据处理完后,TCP 就会告诉应用程序恢复到正常操作;
  • 选项:长度不定,但长度必须是 32bits 的整数倍;

三次握手:

目的:客户端和服务端要确认彼此都有收发数据的能力;

  • 第一次握手:客户端发出连接请求,服务端收到连接请求,至此,服务端知道客户端有发送能力
  • 第二次握手:服务端收到第一次客户端发出的连接请求后,向其发出收到连接请求的响应和连接请求,至此,客户端知道服务端有发送能力和接收能力
  • 第三次握手:客户端收到服务端对它第一次所请求的回应后,发送收到连接请求的响应,服务端收到后,至此,服务端知道客户端有接收能力

三次握手中标志位的详情:

  • 第一次握手:客户端Client发送位码为SYN=1,随机产生seq=x的数据包到服务器,服务器Server由SYN=1知道,客户端Client要求建立联机;
  • 第二次握手:服务器Server收到请求后要确认联机信息,向客户端Client发送ack=(客户端Client请求连接时的seq)+1,SYN=1,ACK=1,产生seq=y的包,代表接收到连接请求并且向客户端再次确认;
  • 第三次握手:客户端Client收到后检查ack是否正确,即第一次发送的seq+1,以及位码ACK是否为1,代表收到了服务器端发过来的确认信息。之后客户端Client会再向服务器发送ack=(服务器Server的seq+1),ACK=1,服务器Server收到后确认ack 值与ACK=1,连接建立成功。

在这里插入图片描述

补充:三次握手四次断开的详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/129611.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React 配置文件(二) 配置环境变量

开发环境一般分为: UAT(测试环境) PRE(预上线环境) PROD(生产环境) 所以本地开发分别搭建相对应环境 2.安装 dotenv 3.在package.json文件中配置环境 "scripts": { "start": "react-app-rewired start", "uat": "dotenv…

【Linux】文件系统与inode

一、文件系统 理解文件系统前首先我们要来先了解一下磁盘结构。 接下来我们看看以水平、垂直角度来看看磁盘结构,并将其区域进行划分。 磁盘的垂直分布 (此图最上面的一面和最下面的一面无磁头,则不存储数据): 磁头数:磁头就是在…

LeetCode303.区域和检索 - 数组不可变

LeetCode刷题记录 文章目录📜题目描述💡解题思路⌨C代码📜题目描述 给定一个整数数组 nums,处理以下类型的多个查询: 计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 ,其中…

Windows nc命令下载使用与使用bash建立反弹shell

今天继续给大家介绍渗透测试相关知识,本文主要内容是Windows nc命令下载使用与使用bash建立反弹shell。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强…

磨金石教育摄影技能干货分享|王汉冰摄影作品欣赏—《沙狐之眼》

一、偏爱新疆风光的摄影师王汉冰 王汉冰是新疆人,身为摄影师的他对新疆的大好风光有着强烈的偏爱。 因此经常驾车游历,期望寻找到好的风景,将它记录下来,让世人都能感受到大美新疆的壮丽。 在今年七月,王汉冰来到巴音郭…

C语言 内存函数 自定义类型 结构体 枚举 联合

perror #include <stdio.h> #include <errno.h> #include <string.h>//strerror //perror与上相关 更加方便直接打印错误信息 上边需要先将错误码转换为错误信息 再用printf打印 // int main() {//打开文件失败的时候&#xff0c;会返回NULLFILE* pf fo…

同为(TOWE)IPS系列工业插头插座、连接器的选型及特点

所谓工业插头插座、连接器&#xff0c;即欧洲标准插头插座&#xff0c;主要用于实现电信号的传输和控制以及电子与电气设备之间的电源连接。它可以通过连接器插头与插座之间的插合和分离&#xff0c;使电路产生接通和断开&#xff0c;适用于对安全、寿命和性能具有高要求的应用…

5款OCR文字识别软件推荐_分享好用的OCR(图片转文字)工具

5款OCR文字识别软件推荐 不知道大家是不是不知道OCR单词识别这个词。 小编认为&#xff0c;经常处理各种办公文件的朋友&#xff0c;对OCR文字识别这个词肯定有一定的了解&#xff0c;因为在处理办公文件的时候&#xff0c;很有可能会遇到对OCR文字识别的需求。 而当我们遇到O…

ubuntu16.04运行YOLOV5并部署

运行环境 环境&#xff1a;ubuntu 16.04 CUDA: 10.2 执行模型推理 1. 下载yoloV5 repo git clone https://github.com/ultralytics/yolov52. 用conda新建python环境 conda create -n yolo python3.83. 安装需求包 pip install -r requirements.txt 4. (requremets中包含…

@Configuration如何保证@Bean单例语义?

1. 前言 Spring允许通过Bean注解方法来向容器中注册Bean&#xff0c;如下所示&#xff1a; Bean public Object bean() {return new Object(); }默认情况下&#xff0c;bean应该是单例的&#xff0c;但是如果我们手动去调用Bean方法&#xff0c;bean会被实例化多次&#xff0…

iServer使用影像服务(二)——影像服务发布为wmts和wms服务的加载

前言 自从SuperMap iServer10.2.0版本开始新增影像服务模块&#xff0c;并支持大规模影像&#xff08;栅格&#xff09;数据快速发布为影像服务&#xff0c;之后推出的版本中都陆陆续续对影像服务模块扩充了新功能、增强了新特性&#xff1b;如在SuperMap iServer10.2.1版本中…

JAVA注解使用

JAVA注解使用简介概念说明自定义注解注解格式元注解注解本质属性注解生成文档案例生成的源代码生成Doc简单的自定义反射演示注解定义调用类定义测试通过注解实现配置类定义枚举类定义注解配置类使用注解测试自动生成数据库生成演示数据库注解定义使用注解创建数据表使用注解创建…

[Java安全]—fastjson漏洞利用

前言 文章会参考很多其他文章的内容&#xff0c;记个笔记。 FASTJSON fastjson 组件是 阿里巴巴开发的序列化与 反序列化组件。 fastjson 组件 在反序列化不可信数据时会导致远程代码执行。 POJO POJO是 Plain OrdinaryJava Object 的缩写 &#xff0c;但是它通指没有使用 …

ZGC 垃圾收集器详解(过程演示)

理论部分就不细讲了&#xff0c;具体可以看《 jvm 虚拟机原理》&#xff0c;下面直接画图来演示 ZGC 垃圾回收过程。 第一步 初始状态&#xff0c;视图由 mark0 切换为 Remapped &#xff0c;其中&#xff0c;大方块是 region&#xff0c;小方块是对象&#xff0c;小方块上面数…

Win11的几个实用技巧系列之不能玩植物大战僵尸、如何彻底删除360所有文件

目录 Win11不能玩植物大战僵尸怎么办?Win11玩不了植物大战僵尸的解决方法 Win11玩不了植物大战僵尸的解决方法 win11如何彻底删除360所有文件?win11彻底删除360所有文件方法分享 win11如何卸载360&#xff1a; Win11不能玩植物大战僵尸怎么办?Win11玩不了植物大战僵尸的解…

记一次H3CIE实验考试

一、前言 直接上图 IE机试在12月19号考的&#xff0c;为避免成为小羊人&#xff0c;没去北京/杭州这2个固定地点&#xff0c;就在本省的协办单位考的。但是&#xff0c;还是中招了&#xff0c;5个同学一起去考的&#xff0c;全阳了。 华三机试一共有三套图&#xff0c;ACD&am…

1343:【例4-2】牛的旅行

1343&#xff1a;【例4-2】牛的旅行 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 农民John的农场里有很多牧区。有的路径连接一些特定的牧区。一片所有连通的牧区称为一个牧场。但是就目前而言&#xff0c;你能看到至少有两个牧区不连通。现在&#xff0c;John…

【特殊的一年,过去了】再见2022,你好2023

现在是2022年12月30日&#xff0c;提前的新年快乐&#xff01; 各位阳过了吗&#xff1f;&#xff08; tips:最近新学会的打招呼方式:) &#xff09; 我已经阳康啦&#xff0c;所以本文是带有奥密克戎抗体的&#xff0c;各位不用担心~ – 2022可算是快接近尾声啦&#xff01;…

虹科案例|Vuzix辅助和增强现实技术的全球领导者

当今企业的新现实 Vuzix 大多数科技业内人士都认为&#xff0c;未来将是免提时代。总有一天&#xff0c;智能手机、平板电脑、台式电脑和笔记本电脑将被更直观的设备所取代。 然而&#xff0c;对于未来免提的条件&#xff0c;各方意见并不一致。未来的免提设备是将数字信息覆盖…