首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
何止hz
2020-09-11 14:15
已编辑
腾讯_cdg_后台开发
关注
已关注
取消关注
tcp三次握手,为什么不是两次,这个面试题到底该咋回答?
请教下各位牛油的答案,到底该怎么答?
我一般会回答,这是由tcp的机制决定的,只有通过三次握手,才能完成序列号的同步,用于后续的数据传输。
各位是咋回答的,想听听大佬们的标准答案。
提示
全部评论
推荐
最新
楼层
我是真的菜得1P
字节跳动_基础架构_后端开发工程师
3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。 现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机S和C之间的通信,假定C给S发送一个连接请求分组,S收到了这个分组,并发 送了确认应答分组。按照两次握手的协定,S认为连接已经成功地建立了,可以开始发送数据分组。可是,C在S的应答分组在传输中被丢失的情况下,将不知道S 是否已准备好,不知道S建立什么样的序列号,C甚至怀疑S是否收到自己的连接请求分组。在这种情况下,C认为连接还未建立成功,将忽略S发来的任何数据分组,只等待连接确认应答分组。而S在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
3
回复
分享
发布于 2020-09-18 16:15
宝宝可乖了
米哈游_引擎开发
三次握手不是TCP独有的,所有的端到端的全双工通信要确认各自的发送和接受通道是畅通的,双发都至少需要两次交互,加起来就是4次。因为第二次被动方的确认回复和第三次的发送可以合并为一次,就变成三次交互了。
3
回复
分享
发布于 2020-09-11 21:43
E·M·T
天津工业大学 Java
https://mp.weixin.qq.com/s/rX3A_FA19n4pI9HicIEsXg 在快到页面中间的位置,很详细
2
回复
分享
发布于 2020-09-11 20:22
繁花蓝
广州大学 前端工程师
假设A、B两方进行TCP握手 如果是两次握手A->B(第一次握手因为某些原因迟到了很久) A->B(A再次进行一次握手请求) B->(响应握手建立连接) 而此时第一次握手请求这个时候才到了B端,那么B端也要响应这个握手连接啊,于是就返回响应,但是这个时候的A已经将第一次的握手请求作废,所以这一条连接就纯属于浪费服务器的资源。 如果是三次握手 A->B(请求握手)、B->A(同意握手 但是不确定A能否收到这个同意握手的回应)、A->B(已收到回应 TCP连接建立),如果A将第一次握手请求作废,那么就不会有第三次的握手,而TCP连接也不会建立起来 我的理解是这个样子的
2
回复
分享
发布于 2020-09-11 15:55
野猪佩琪🐗
西安交通大学 Java
大概意思是防止已失效的连接请求到达服务器建立连接浪费资源。计算机网络谢希仁教材作出了解释。
2
回复
分享
发布于 2020-09-11 14:48
Keepen
西安工业大学 golang
我一般是通过举例加上分析来回答。 生活中:小明、小李 小明:在吗? 小李:在的(表示小李可以进行通信)(这就相当于是既应答了,也提问了) 小明:那个.....(表示小明现在也是在线的,因为可能上一步小李过了很久才回复小明,小明可能已经离线了) 可以进行数据通信了!!!!!!! 再下来就是分析包序啥的,个人觉得这样表达的就比较清晰了 仅供参考,大佬轻喷!!!😂
1
回复
分享
发布于 2020-09-11 16:51
飞翔的鸵鸟
门头沟学院 C++
1. 两次握手会出现, 当第一次发送信号在网络中被隔置,第二次再发此时建立链接,断开链接后第一次链接信号又到了,此时会导致建立连接 2. 另外就是三手握手保证的是让对方知道我已经知道了,两次不行
1
回复
分享
发布于 2020-09-11 14:46
我在上塘河边
浙江工业大学 Java
源端需要知道自己发送无问题,自己接收无问题,对端发送无问题,对端接收无问题。 对端需要知道自己发送无问题,自己接收无问题,源端发送无问题,源端接收无问题。 一共8个问题 第一次解决了:6,7 第二次解决了:1,2,3,4,8 第三次解决了:5
7
回复
分享
发布于 2020-09-11 16:13
mler
北京邮电大学 大数据开发工程师
我觉得可以从全双工这个角度+一端建立/断开链接需要一次请求响应,去解释,本来应该是四次,c->s一次请求响应,s->c一次请求响应,建立连接没有数据要传输,所以第二三次可以合为一次。总共就三次了。 两次只能确保c->s是建立了连接,无法保证s->c建立了连接。 同一挥手需要四次,也是因为两端传输数据不是同时完毕的,所以各负责各的。
1
回复
分享
发布于 2020-09-11 16:01
光辉岁月v
门头沟学院 golang
三次握手,应该叫三次报文交换,实际上是确认通信双方的收发数据能力,确认序列号,二次握手就确认tcp连接的话,客户端的收发能力可以确认,服务端不知道自己发的数据客户端能否收到,用三次握手既可高效(中间的SYN,ACK合并一起发),又可确保可靠。同理断开连接的四次挥手如果服务端已没有数据发送,也可退化成三挥
点赞
回复
分享
发布于 2020-09-11 22:38
牛客69143547号
哈尔滨工业大学(深圳) C++
m
点赞
回复
分享
发布于 2020-09-11 19:52
疯轻扬
阿里巴巴_CRO技术部_开发工程师
两个将军问题,本质是在不可靠信道上通过交换信息达到一致是不可能的,一致就是双方都建立连接
点赞
回复
分享
发布于 2020-09-11 19:48
拖泥带水
度小满_基础架构研发工程师
一个是死锁问题,一个是资源浪费问题。
点赞
回复
分享
发布于 2020-09-11 16:00
啦啦啦啦咯咯
西安邮电大学 Java
我一般是从两次握手会引发的问题这个角度回答的
点赞
回复
分享
发布于 2020-09-11 14:26
暂无评论,快来抢首评~
相关推荐
05-26 21:01
杭州电子科技大学 Java
一分钟A出来6k薪资
今天下午打算拒了A公司的offer,选择B公司,因为A的薪资比B公司每个月少了5.5k。A公司的hr打电话问我拒offer的原因,我如实说明了情况,薪资问题。A公司立马向我了解B公司的薪资,直接抬高了6k,反超B公司500块钱每个月,继续问我意向。这网上A薪资那么多话术,到我这没想A,怎么一下变高了那么多?!无心插柳柳成荫啊。😁总结来看:到了招聘末期,hr并不关心给你开多少钱,他只关心你能不能来,他能不能完成业绩,看来是越晚的时间,薪资越好A,这不比前期一堆话术香多了。
备战秋招春招:
两家都是大厂吗
毕业季,给职场新人一些建...
点赞
评论
收藏
分享
06-04 16:18
已编辑
湖南科技大学 Java
27届双非-Cider一面-/6/4
1.简单介绍一下你自定义的协议2.讲讲怎么做的Benchmark3.你的测试是在什么配置的机器上进行的?4.你在启动参数部分:配置了哪些参数?JVM内存是怎么分配的。除了堆/栈/元空间。你是如何考虑堆外内存的?有考虑过SurvivorRatio和newRatio么5.你做了哪些性能优化?从应用层的角度来谈6.我其实更想知道,你在TCP这一层做了哪些优化?7.从序列化的角度来看,你做了哪些优化?8.除了Nagel算法呢?在TCP层面还能做什么优化?9.你对哪一块比较了解?——答:MySQL10.那你讲讲建索引有哪些考虑?11.你给学校建索引,那假如这个学校字段不被查询呢?你再想想在实战中,建立索引要考虑哪些因素?12.给用户-活跃状态建立联合索引可行,在建表的时候,除了建立索引,你还会考虑哪些因素?13.讲讲OOM怎么排查的?14.我知道你可以jmap或者启动参数配置输出堆转储信息,但是我们用的k8s,服务器半夜崩溃了,整个container都消失了,那我怎么去查日志或者堆转储文件呢?15.假设我有A服务和B服务,不同的服务之间有TraceID,然后我的TraceID在A服务时是TraceA,在B服务突然变成traceB,你怎么排查出这个ID的变更?16.你用了Seata,那我想问问你:什么情况下需要用分布式事务,除了Seata你还能用什么来实现分布式事务?如果我不处理分布式事务会怎么样?什么业务场景需要一致性?17.手撕:给定仓库位置码:形如// A101-052-001 // J01-002-001。如何进行排序呢?18.你项目用的JDK版本是多少?答:1719.你认为JDK17和JDK8相比有哪些优势?1.有二面的话联系你。答:我答成这样还有二面机会?反问:A.您好像对我的业务项目不感兴趣?答案:太玩具了,和我们生产用的差异太大,没什么好问的。B.对我的建议?答案:实战经验欠缺,但是现在这行业比较病态,实习机会需要有产出的实习做铺垫,努力多干活吧。八股文背的挺好的,可惜我不太喜欢问八股, 我的面试风格和其他人不太一样。C.评价一下我?答:你比大二的我强,但是现在这个行情确实比我当年卷了非常多。你还得多练练。总结:A.聊了挺久,总共60minB.面试官人很幽默,但是对面试主动权把握的很好,我惯用的掌握面试节奏的技巧失效了。多次尝试吟唱八股都被打断了。C.感觉这会是我面试的第一寄。
采集想要offer:
问八股还行,问实***就gg了,希望面我的不是这个面试官
Java求职圈
点赞
评论
收藏
分享
06-12 17:25
华为_HR
Python开发面试经验贴-华为OD(零经验非科班自学Python拿下Offer)
背景:24届西安电子科技大学,光电信息科学与工程本科毕业生,由于想要转行做开发,毕业后没有去找工作,在家里一边帮忙看店一边自学python的编程,后面家里人催找工作了,经过4个月的编程学习,自己也觉得掌握的差不多了,决定投一下开发岗位试试。在BOSS上投了好几家公司,简历基本上是石层大海,已读不回复。自己本身的bug也叠满,一是非科班,二是空档无任何的工作经验。后面在牛客网上有了解到华为OD,可以接受无经验以及非科班的人选,当时也是抱着试一试的心态私信联系到了香云,打算试试OD。机考:机考准备了20天左右,发现没有想象中得那么难,三道题AC了,拿到了满分400分!一星题有题是遇到了原题,还好刷...
查看19道真题和解析
点赞
评论
收藏
分享
06-18 12:04
北京理工大学 实验室研究员/技术员
不喜欢找工作是因为感觉自己处于下位者视角,感觉像屠宰场的猪被挑选。但是找工作是必须要经历的一件事情,所以最好能够转换心态,不要认为你是在被挑选,化被动为主动,这是一个双向的过程。第二点是虽然好的工作历经很多磨难,但是高的平台一定有他的优势,你会遇到更多机会,和更多优秀的人公事,更容易获得积极的正反馈和实现自我价值。虽然觉得出去玩,退休生活很好,但是没有工作,在别人努力的时候自己无所事事,也会感觉到被边缘化和巨大的空虚,只有在工作之后的休息才有休息的意义。
点赞
评论
收藏
分享
06-06 14:10
已编辑
门头沟学院 Java
信也科技一面
拷打项目,涉及到表的设计,感觉是那种很实际开发的感觉,但我没实习过有些方面确实考虑不周常规八股文spring常用注解有哪些,controller和service能否互换位置乐观锁和悲观锁介绍hashmap底层原理 hashmap长度为何是16什么是面向对象,面向对象的三大属性代码题判断考官没开摄像头,感觉像kpi啊
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
3
41
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
怎样才叫幸福
5224
2
...
七牛云海笔
5035
3
...
这样的实习,我还有必要坚持下去吗?
4200
4
...
去哪儿旅行又打复活赛了
4141
5
...
26届秋招在即,分享我的Offer经验
3017
6
...
深圳挣钱深圳花,一分别想带回家
2984
7
...
依旧认为前端是版本答案
2974
8
...
制造业提前批合集(个人版,大伙速投哇
2891
9
...
突然不想去实习了
2804
10
...
字节日常实习拿下offer
2601
创作者周榜
更多
正在热议
更多
#
你觉得现在还能进互联网吗?
#
1931次浏览
65人参与
#
如何准备秋招
#
4776次浏览
73人参与
#
现代汽车前瞻技术研发急速编程挑战赛
#
18622次浏览
167人参与
#
实习,不懂就问
#
15308次浏览
219人参与
#
如果中了500万,你会离职吗?
#
86327次浏览
676人参与
#
你觉得实习能学到东西吗
#
7026次浏览
163人参与
#
哪个瞬间让你对大厂祛魅了?
#
379485次浏览
2777人参与
#
面试时被问的最奇葩的问题
#
21521次浏览
124人参与
#
秋招什么时候开投比较合适?
#
2962次浏览
58人参与
#
软开人,秋招你打算投哪些公司呢
#
99481次浏览
934人参与
#
来聊聊你认为的薪资天花板是哪家?
#
30318次浏览
173人参与
#
每个月的工资都是怎么分配的?
#
6901次浏览
134人参与
#
预测一下26届秋招形势
#
11149次浏览
121人参与
#
腾讯工作体验
#
473600次浏览
3489人参与
#
打工人的精神状态
#
51697次浏览
934人参与
#
职场情商大赛
#
131174次浏览
655人参与
#
高考出分的那一天,我__
#
9664次浏览
142人参与
#
非技术2024笔面经
#
384577次浏览
4732人参与
#
一觉醒来,秋招难度下降一万倍……
#
83520次浏览
642人参与
#
京东美团大战,你怎么看?
#
92481次浏览
569人参与
#
安利/避雷我的专业
#
75421次浏览
522人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务