首页 > 其他分享 >从输入URL到页面展示到底发生了什么?--02 握手的故事:三次握手详解

从输入URL到页面展示到底发生了什么?--02 握手的故事:三次握手详解

时间:2024-07-21 12:40:34浏览次数:13  
标签:02 小明 URL 握手 SYN 小红 ACK Server

在这个数字化时代,网络通讯就像人类之间的交流,需要一种方式来确保彼此能够顺利对话。在计算机网络中,TCP三次握手就是这样一种确保双方通信顺畅的机制。今天,我们将通过一个生动有趣的故事来讲解这个重要的过程。

引子:约会前的准备

想象一下,你要和朋友约个饭,但由于时间久了彼此不太确定对方的电话号码是否还在用。因此,你们需要确认彼此能联系上。这就像TCP三次握手的前奏。

第一握:SYN(Synchronize)

某天,小明想约小红吃饭。小明拿起电话,拨通了小红的号码,这是第一次尝试联系。对于TCP协议来说,这个过程就是客户端发送一个SYN包。

sequenceDiagram
    participant Client as 小明 (Client)
    participant Server as 小红 (Server)
    Client->>Server: 发送SYN包 (小明拨号)

在技术层面上,小明发送的这个SYN包包含了一个序列号,用来标记接下来的通信序列。

第二握:SYN-ACK(Synchronize-Acknowledge)

小红接到了电话,她想确认对方是小明,并且同意和他见面。于是,她给小明回了个电话,这个电话里说:“嘿,小明,是你吗?我这边是小红,可以通话。” 这相当于服务器接收到SYN包后,发送一个SYN-ACK包。

sequenceDiagram
    Server-->>Client: 发送SYN-ACK包 (小红回拨电话)

 

在技术上,小红的SYN-ACK包不仅确认了小明的请求,还附带了自己的序列号,表示她也准备好了通信。

第三握:ACK(Acknowledge)

小明接到了小红的回拨电话,现在他确认了对方是小红。于是,他对小红说:“好的,那我们见面吧!” 这就是客户端发送的ACK包,确认了整个通信过程。

sequenceDiagram
    Client->>Server: 发送ACK包 (小明确认)

 

在技术上,这个ACK包告诉小红,小明已经收到了她的回应,一切就绪,正式通信可以开始了。

握手后的正式通信

现在,小明和小红已经确认了彼此的身份,并且都准备好进行对话。他们可以畅所欲言,分享彼此的生活趣事,畅聊一顿愉快的午餐。

sequenceDiagram
    Client->>Server: 正式通信开始 (小明和小红聊天)
    Server-->>Client: 正式通信开始 (小明和小红聊天)

 

 

三次握手的技术细节

回到技术角度,TCP三次握手确保了数据传输的可靠性和顺序性:

  • 第一次握手(SYN):客户端向服务器发送一个SYN包,请求建立连接,并带有一个初始序列号。
  • 第二次握手(SYN-ACK):服务器接收到SYN包后,回应一个SYN-ACK包,确认收到请求并发送自己的初始序列号。
  • 第三次握手(ACK):客户端接收到SYN-ACK包后,发送一个ACK包,确认连接建立。

为什么需要三次握手?

三次握手的主要目的是防止重复的连接初始化。如果没有三次握手,那么可能会出现服务器误以为客户端要重新建立连接的情况,从而导致资源浪费和错误的数据传输。

 

握手资源不要浪费

标签:02,小明,URL,握手,SYN,小红,ACK,Server
From: https://www.cnblogs.com/zx618/p/18314358

相关文章

  • 为什么必须使用三次握手?
    TCP(传输控制协议)的三次握手是建立可靠连接的关键步骤,其设计目的是确保通信双方都准备好,并且避免重复的连接初始化。三次握手并不是随意设定的,而是有其重要的技术理由。1.防止重复的连接初始化假设只使用两次握手,会存在以下问题:旧的重复SYN包问题:如果网络中的一个旧的SYN包(因......
  • 2024最新子比主题源码zibll-V7.9(含教程) | WordPress主题
    内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍2024最新Zibll子比主题V7.9版本源码开心版|WordPress主题安装教程在压缩包内V7.7更新日志:新功能新增数字翻页输入页码跳转的功能(注:总页数超过8页才会显示)新增后台......
  • (20240719)无机非金属材料工学(2) 水泥
    一、胶凝材料(复习)1.胶凝材料:通常把在一定条件下能产生凝固作用,同时能将块状物料、颗粒状物料或纤维状物料粘结成整体,并最终形成具有一定机械抵抗能力的硬化体的材料,称为胶凝材料。(分类)2.以无机物为主要成分的称为无机胶凝材料,如:水泥、石灰、石膏等。3.以有机物为主的称......
  • B3956 [GESP202403 三级] 字母求和 题解
    B3956[GESP202403三级]字母求和题解当时在考试,3分钟A了,结果第二题T了。#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+2;constintN1=1e3+2;typedeflonglongll;typedefunsignedlonglongull;#definefo(i,n,m)for(inti=n;i<=m;i++)......
  • )D(4202ION 记游
    9.7至4.7在广州市第二中学(科学城校区)进行集训。因为刚刚中考完,状态不是很好,认识的人不在同一机房,感觉很自闭。到中间的时候打了一场很爽的模拟赛,过了个全场只过一个人的T3,感觉就好起来了。这次集训感觉就是很少交流,当然也有可能是我的问题。21.7至01.7在广东实验中学(荔湾......
  • 【科大讯飞笔试题汇总】2024-07-20-科大讯飞秋招提前批(研发岗)-三语言题解(Cpp/Java/
    ......
  • springcolud学习02
    新建consumer模型修改一下模型pom.xml<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven......
  • Centos7出现问题Cannot find a valid baseurl for repo: base/7/x86_64
    问题现象:在操作yuminstallhttpd报错Centos7下yum安装报错:Cannotfindavalidbaseurlforrepo:base/7/x86_64报错原因:1、检查网络ping2、检查DNS解析nslookip会发现能ping通,DNS解析正常!3、yum源有问题!解决:循环破除下载国内yum源配置文件到/etc/yum.re......
  • 猫头虎推荐2024最新AI副业大全 :50个AI项目任你选
    猫头虎......
  • VBA 实现从 URL 下载图片并重命名保存
    使用VBA在Excel中实现图片自动下载1.准备1.1MSXML2.XMLHTTPXmlHttp提供客户端同http服务器通讯的协议1.2ADODB.StreamADODB.Stream属于ADODB组件中的一个对象,它是一种数据流对象,用于处理二进制数据流2.MSXML2.XMLHTTP介绍参考:https://www.jianshu.com/......