深入理解TCP三次握手

news2024/9/20 17:58:24

在网络通信中,TCP(Transmission Control Protocol,传输控制协议)是一个可靠的、面向连接的协议,它保证了数据包的顺序和完整性。为了建立一个稳定的连接,TCP 使用了一个被称为 三次握手(Three-Way Handshake)的过程。在本文,我们将深入剖析 TCP 三次握手的工作原理。

三次握手是啥?

是 TCP 协议用来建立连接的一种机制,这个过程由客户端和服务器之间的三个步骤组成,目的是在通信开始前双方确认对方的接收和发送能力

在这里插入图片描述

三次握手的三个步骤如下:

  • SYN(Synchronize):客户端向服务器发送一个带有 SYN 标志位的 TCP 报文段。该报文段包含一个随机生成的序列号 Seq=x,表示客户端的初始序列号。
  • SYN-ACK(Synchronize-Acknowledge):当服务器收到客户端的 SYN 请求后,它会向客户端发送一个带有 SYNACK 标志位的 TCP 报文段,表示它同意建立连接。同时,服务器也会发送自己的初始序列号 Seq=y,并且确认客户端的序列号 Ack=x+1,表示已经收到客户端的 SYN。
  • ACK(Acknowledge):当客户端收到服务器的 SYN-ACK 报文段后,客户端会向服务器发送一个确认报文 ACK 确认收到了服务器的序列号 Ack=y+1,并且使用自己原来的序列号 Seq=x+1

大白话版本:

  • 你:“嗨,最近有空吗?我们去吃个饭?”
  • 朋友:“好的,我有空,那你准备好了吗?”
  • 你:“好的,我也准备好了,我们去吃饭吧。”

在这三次通信完成后,TCP 连接就正式建立,双方可以开始传输数据。

口说无凭,事实说话(看看到底发了个啥)

我们在局域网内找一台 Ubuntu 20.04 并部署一个 nginx 服务。然后通过 http 请求看看连接数据。HTPP/1.1 和 HTTP/2 底层的网络通信用的都是 TCP,所以拿这个测试没啥毛病~

安装 nginx 并启动 tcpdump 抓包工具

  1. 更新软件包索引
sudo apt install nginx
  1. 安装 Nginx
sudo apt install nginx
  1. 配置防火墙
sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS'
  1. 查看 nginx 的状态
systemctl status nginx

状态如下所示就代表正在运行。

在这里插入图片描述

  1. tcpdump 捕获数据包
sudo tcpdump -i ens33 -S -c 3 port 80

参数说明:

  • -i ens33:指定网络接口 ens33(根据自己实际情况来)
  • -S:显示数据包的绝对序列号,这样更易懂
  • -c 3:只捕获 3 个数据包后停止(3 次握手)
  • port 80:HTTP 端口,nginx 默认是 80

访问

我们直接使用同一局域网内其他电脑的浏览器访问即可:

http://192.168.192.137:80

在这里插入图片描述

结果分析

tcpdump 抓包结果显示如下:

在这里插入图片描述
说明:

1 是客户端 -> 服务端
2 是服务端 -> 客户端
3 是客户端 -> 服务端

你可以仔细看一下结果中的 seq 和 ack,再对应三次握手的概念图,是不是一下就明白了!

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

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

相关文章

[项目实战]EOS多节点部署

文章总览:YuanDaiMa2048博客文章总览 EOS多节点部署 (一)环境设计(二)节点配置(三)区块信息同步(四)启动节点并验证同步EOS单节点的环境如何配置 (一&#xf…

828华为云征文|华为云Flexus X搭建借贷管理系统、二次开发借贷小程序 前端源码uniapp

在华为云828 B2B企业节的盛宴中,Flexus X实例以其卓越的算力性能和灵活的资源配置脱颖而出。对于追求极致性能、渴望在借贷管理、电商交易等场景中脱颖而出的您来说,Flexus X无疑是最佳拍档。搭载创新加速引擎,让您的自建MySQL、Redis、Nginx…

MYTHOLOGICAL CREATURES PACK

这个包收集了5种神话生物:奇美拉、狮鹫、哈比、螳螂和狼人。型号注定是高端设备。支持PBR和LEGACY着色器。高分辨率4096*4096纹理,根运动动画以及到位。 下载:​​Unity资源商店链接资源下载链接 效果图:

C++里面的“百变怪”:模板

🌞0.前言 言C之言,聊C之识,以C会友,共向远方。各位博友的各位你们好啊,这里是持续分享C知识的小赵同学,今天要分享的C知识是模板 ,在这一章,小赵将会向大家聊聊C的模板知识 。✊ 相…

实时音视频之医疗手术示教技术方案探究

背景与重要性 医疗手术示教是现代医学教育中不可或缺的一环,它通过将手术室内医生的手术过程以及手术室内的各种医疗设备的视频资料真实呈现给实习医生或观摩人员,以达到教学或学术交流的目的。随着医疗技术的不断进步和医学教育的深入发展,…

各类软件在Linux上的安装

mysql安装 5.7版本 mysql的程序在centos官方的库中是没有的,需要切换到淘宝的镜像,这个前面有教程或者配置mysql的源 yum -y install rpm rpm --import https://repo.mysql.Com/RPM-GPG-KEY-mysqL-2022 rpm -Uvh http://repo.mysql.com//mysql57-commun…

自定义EPICS在LabVIEW中的测试

继续上一篇:LabVIEW中EPICS客户端/服务端的测试 变量定义 You can use CaLabSoftIOC.vi to create new EPICS variables and start them. CA Lab - LabVIEW (Realtime) EPICS INPUT: PV set Cluster-array of names, data types and field definitions to crea…

web前端-HTML常用标签(三)

一、表格标签 表格是实际开发中非常常用的标签: 1.表格的主要作用: 表格主要用于显示、展示数据,因为它可以让数据显示的非常的规整,可读性非常好。特别是后台展示数据的时候,能够熟练运用表格就显得很重要。一个清爽简约的表格…

多少岁转行网络安全不算晚?零基础想跳槽(转行)网络安全,看这篇就够了

🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 奉劝所有零基础想入门(转行)网络安全的朋友,麻烦转行前,一定要对网络安全行业做一个大概了解,不要一点…

WriteUp - hackthebox-Labyrinth Linguist

题目靶场地址:https://ctf.hackthebox.com/ 先启动环境再下载项目文件: 项目文件压缩包解压密码:hackthebox 访问项目环境页面,是一个简单的web,输入什么就输出什么,直接看项目文件,是一个ja…

八叉树,分裂空间的魔法师【Unity】

八叉树,分裂空间的魔法师 前往我的博客阅读,享受免费无广告的体验 诞生 当我们要做物理碰撞检测的时候,例如一枚子弹射了出去,我们或许会选择遍历所有的物体,通过运算判断是否相交,是否发生碰撞,但这不理想,尤其是面对成千上万物体的时候,计算量极其恐怖。 同样的,…

在近一年内获得过新融资的中国独角兽企业

独角兽公司的概念源于 2013 年美国著名的 Cowboy venture 的投资人 Aileen Lee她将“成立时间较短、由投资人或者估值机构估值超过10 亿美元的未上市公司”定义为独角兽公司。独角兽也就是那些创业公司中的佼佼者。21 世纪至今,人类多个领域取得了显著的技术进步和突…

FreeRTOS(速记版)

第一章 初识 FreeRTOS 1.1 FreeRTOS简介 FreeRTOS 采用了 MIT 开源许可,这允许将 FreeRTOS 操作系统用于商业应用,并且不需要公开源代码。此外,FreeRTOS 还衍生出了另外两个操作系统:OpenRTOS 和 SafeRTOS,其中 OpenR…

探究文本完全对齐技术:从理论到代码

文本完全对齐算法解析与实现 引言 在编辑文档、设计书籍版面或网页时,通常需要将文本进行格式化对齐,以提升视觉吸引力和易读性。 一种广泛采用的对齐技术是所谓的“完全对齐”,这意味着文本的每一行的起始和结束位置都要对齐整齐。 虽然许多…

暴雨液冷服务器硬刚液冷放量元年

AI(人工智能)不断向前,作为AI三驾马车之一,算力需求始终如影随形。 近日,财经记者走访了河南郑州多家服务器厂商、大模型公司和算力中心。在走访中,记者发现,液冷技术正被算力行业青睐&#xf…

3GPP How to manage a project?

有人问:"3GPP 每个release都做了哪些方面的增强?应该有专门的文档介绍吧?"那肯定是有的,其实按照 https://t.zsxq.com/zbSox 中的方法就能找到那个文档。这篇我们整体浏览看下3GPP是如何handle project,这其中就会具体涉及哪些内…

ctfshow-web入门-sql注入(web244-web247)error 报错注入

目录 1、web244 2、web245 3、web246 4、web247 1、web244 在它查询框这里随便输什么都没有回显 还是在 api 接口下传参,输入存在 id: /api/?id1 查询成功 输入不存在的 id: /api/?id0 查询失败 追加单引号后,报 sql 语法…

从零到一,数字文创IP是如何在基地中孵化成长的?

在数字时代的浪潮下,数字文创IP孵化基地正成为培育创新的肥沃土壤,见证着一个个数字文创 IP 从无到有、茁壮成长。 数字文创IP孵化基地首先为创意的萌发提供了空间。这里汇聚了各路富有创造力的人才,他们的思想在这里碰撞,灵感的火…

网络原理(3)—— 应用层、传输层(TCP)

1. 应用层 日常开发中最常用到的一层,主要涉及到两种情况: 1) 使用现成的应用层协议 2) 自己定义应用层协议 1.1 自定义应用层协议的流程 1. 明确前后端交互过程中需要传递哪些信息 实例:开发一个外卖软件 打开软件,首先需要展…

Win11安装mysql5.7.24

Win11安装mysql5.7.24 资源文件mysql安装过程 资源文件 mysql5.7.24免安装压缩包 下载链接: https://download.csdn.net/download/weixin_44174685/89738053 DirectX(用来修复缺失dll) 下载链接:https://download.csdn.net/downl…