首页 > 其他分享 >面试必问-TCP三次握手

面试必问-TCP三次握手

时间:2024-03-28 18:05:19浏览次数:27  
标签:必问 ACK 握手 SYN TCP 面试 服务器 序列号 客户端

三次握手过程

1.客户端处于close状态,向服务器发送建立连接的请求SYN和初始序列号

2.服务器处于LISTEN状态,收到客户端发来的请求后回复SYN,服务器的初始序列号,ACK和确认应答序号为客户端初始序列号+1,服务器变为SYN_REVD状态

3.客户端收到服务器后,恢复ACK和确认应答号为服务器初始序列号+1,客户端变为ESTABLISHED状态,本次握手可以携带数据

4.服务器收到客户端的确认应答后,变为ESTABLISHED状态

为什么要三次握手而不是两次?

防止已失效的报文突然又传到服务器,引起错误;如果是两次的话,客户端第一次发的SYN包失效,又发了SYN2包。服务器发回SYN2+ACK;SYN1包突然恢复,发送给了服务器,服务器会认为是客户端又发起了新链接;服务器认为是两个连接,客户端认为是一个链接;

三次握手本质在不可靠的网络信道上建立起可靠的连接

标签:必问,ACK,握手,SYN,TCP,面试,服务器,序列号,客户端
From: https://blog.csdn.net/liiiiiiiiii123/article/details/137081981

相关文章

  • 面试必问流量控制
    问题:如果发送方一直保持很快的速度发送数据,容易导致接收方处理不过来,触发重传机制,导致流量浪费;解决方法:接收方根据自己剩余缓冲区的大小,通过TCP首部中的16位窗口大小字段,告诉发送方自己最多还能接收多少个字节的数据,发送方就知道自己当前阶段最多可以给接收方发送多少个字......
  • 2024最新最全Java和Go面经,面试了30多场,终于上岸了!
    ​>本文来自我们技术交流群群友的投稿,未经授权,禁止转载。原文链接:太难了,Java和Go,面试了30多场,终于上岸了!先听一下TA的故事2023年10月份我就做好了离职跳槽的准备,做了3年Java后端开发的我,对自己的技术能力还是很有底气的。之前虽不是一线大厂,也算是比较知名的中厂了。加上前公......
  • 经典的八个PHP高级工程面试题(附答案)
    更多:https://www.shanhubei.com/archives/55139.html1.php如何实现不用自带的cookie函数为客户端下发cookie。对于分布式系统,如何来保存session值。这个题有点绕。考的还是COOKIE和SESSION的基础知识。服务端通过set-cookie命令来通知客户端保存cookie。只要按照......
  • 15:00面试,15:06就出来了,问的问题有点变态了
    从小厂出来,没想到在另一家公司又寄了。到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到3月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降30%,这下搞的饭都吃不起了。还在有个朋友内推我去了一家互联网公司,兴冲冲见面试官,没想到一道......
  • 基于STM32的ModBus实现(二)移植FreeMODBUS TCP
    一、ModBusTCPModbusTCP是一种基于TCP/IP协议的Modbus通信协议的变种。它允许Modbus协议在以太网上进行通信,提供了一种简单而有效的方式来连接不同类型的设备,如传感器、执行器、PLC等。ModbusTCP使用标准的TCP/IP协议栈,因此可以在现有的以太网基础设施上运行,而无需额外的硬......
  • 温故而知新-基础课程篇【面试】
    温故而知新-基础课程篇【面试】前言推荐数据结构线性表树图查询排序算法题class034链表高频题目和必备技巧【算法】class035数据结构设计高频题【算法】class036二叉树高频题目-上-不含树型dp【算法】class037二叉树高频题目-下-不含树型dp【算法】class038经典递......
  • 面试准备-基础【面试】
    面试准备-基础【面试】数据结构二叉树完全二叉树满二叉树BST二叉排序树|二叉搜索树AVL平衡二叉树B树多路平衡查找树B+树红黑树哈夫曼树散列操作系统面试题并行和并发什么是进程?进程和程序的区别?进程的基本状态什么是线程?线程和进程的区别?哪些是线程的私有资源操作系......
  • 面试题——为什么vite打包速度比webpack快
    vite采用了不同的开发模式, 相较于webpack的先打包再启动服务器, vite则是直接启动, 在请求模块时再进行实时编译, 在大型项目中, 这种按需动态编译的模式极大地缩短了时间vite充分利用了现代浏览器对ESModules的支持, 将开发环境下的模块文件直接作为浏览器要执......
  • React— React面试题按照学习顺序持续更新
    1.React的特点采用组件化模式,命名式编码,提高代码复用率;在ReactNative中可以使用react语法进行移动端开发使用虚拟DOM(v-dom)和diff算法,减少DOM和浏览器的交互2.babel在React的作用ES6语法转ES5,如箭头函数、模板字符串、解构赋值等。Babel可以将这些高级语法转换为浏览器能......
  • web、keepalived、lvs、nginx 面试常问解析
    web、keepalived、lvs、nginx面试常问解析1.nginx代码状态代表啥意思--(工作可以快熟定位故障)200:服务器正常响应301:资源永久重定向302:资源临时重定向403:访问请求被禁止404:服务器找不到客户端请求的资源500:服务器内部错误502:代理服务器从后端收到了一条伪响应;badgateway......