IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 详解TCP三次握手(详细到不能再详细了,能不能吊打面试官就靠你自己了) -> 正文阅读

[网络协议]详解TCP三次握手(详细到不能再详细了,能不能吊打面试官就靠你自己了)

面试官问此问题的原因:

作为一个中高级,甚至是资深程序猿,大家在面试的过程中可能经常被面试官问到<HTTP的三次握手和四次挥手>这个问题,这个问题是网络基础中的经典问题,尤其作为面试官考察面试人员对HTTP协议的了解程度是非常有参考意义的,同时关于TCP/IP和HTTP协议这一类问题,由于初中级程序员在常规开发中不需要了解其中的原理也不影响相关开发,因此面试时问到此类问题是非常能够考察面试人员在平时中的知识积累和对技术的研究程度的。(写了一大段废话,让我们进入正题)

TCP的三次握手的目的是什么?

三次握手是为了建立TCP连接
四次挥手是为了断开TCP连接

三次握手后的结果是什么?

首先,HTTP三次握手的本质是为了确认客户端(client)与服务端(server)收发数据的能力,也就是说三次握手是为了确保数据能够到达指定目标。

简单描述一下三次握手的过程(简单易懂的语言描述)(由于作者刚看过大话设计模式,因此特别喜欢有"剧情"的讲解!)

就使用古时候吴签在大狱和网红通过飞鸽传书这个典故来介绍吧。

  • 第一次握手:吴签把牙签绑在鸽子腿上发给网红

当网红能收到牙签:

此时由于网红收到牙签,因此网红知道吴签的发件能力没问题,网红的收件能力没问题

  • 第二次握手:

当吴签能收到网红回复的牙签:

此时吴签收到牙签,说明吴签知道网红的发件和收件能力没问题,同时也知道自己的发件和收件能力没问题。

  • 第三次握手:

当网红收到吴签的回复的牙签:

此时网红收到牙签,说明网红知道吴签的收件能力没问题,自己的发件能力也没问题

吴签的发件能力吴谦的收件能力网红的发件能力网红的收件能力
第一次握手网红知道未知未知网红知道
第二次握手吴签知道吴签知道吴签知道吴签知道
第三次握手双方已知网红知道网红知道双方已知

总结:双方都知道各自和对方的收件和发件能力,确保数据能够到达指定目标

三次握手中的专业术语

首先我们先了解一下三次握手中的一些名词定义:

关键名词含义
SYNsynchronous建立联机标志位
SEQ(非TCP标志位)Sequence number顺序号码,为了让上下游的命令串起来
ACKacknowledgement 确认

总结:SYN,ACK是TCP标志位,TCP标志位共有6种,具体6种的详情描述我会在后面的文章中特别描述,还望朋友们尽情期待。

三次握手交互图:

事先说明,如果你不是完全掌握三次握手流程,建议自己手画此交互图,这样在面试的时候你直接画出来,然后给面试官打趴下。

请添加图片描述

三次握手中客户端和服务端的状态都有哪些?

客户端服务端
Closed关闭状态
Listen监听状态
SYN_SENT请求连接状态
SYN_RCVD服务端被动打开后,接收到了客户端的SYN并且发送了ACK时的状态
ESTABLISHED连接成功状态连接成功状态

本文到这里就暂时结束了,其实我还想写一些关于三次握手的实际面试题,奈何面试次数太少,涉及这个知识点的面试题我了解的也不多,望请各位看官们把自己在面试中遇到的面试题留言在评论区,本人会根据面试题补充本文内容,还望看官们多多评论点赞,手打博客不易。
关于四次握手的详解,后续更新

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:47:32  更:2021-08-11 12:47:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 6:15:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计