首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
在迎接offer的候选人1
西安工程大学 计算机类
关注
已关注
取消关注
@黎笛:
【重点讲解】三次握手
三次握手TCP协议目的是为了保证数据能够在两端准确连续的流动,可以想象两个建立起TCP通道的设备如同接起了一根水管,数据就是水管种的水由一头流向了另一头。然而TCP为了能让一个设备连接多个水管,也就是让一个设备同时与多个设备交互信息,它必须保证不同水管之间不能产生串联或相互影响。为了确保数据能够正确分发,TCP用一种叫TCB(传输控制块)的数据结构把发给不同设备的数据封装起来,我们可以把该结构看作是信封。一个TCB数据块包含了数据发送双方对应的socket信息以及拥有装载数据的缓冲区。在两个设备要建立连接发送数据之前,双方都必须做一些准备–分配内存建立起TCB数据块0)准备工作最开始的客户端和服务器都处于CLOSE状态。主动打开连接的是客户端,被动打开的是服务器TCP服务器进程先创建传输控制块TCB,时刻准备接收客户端进程的请求,此时服务器就进入LISTEN状态1)一次握手TCP客户端也是先创建了传输控制块TCB,然后向服务器发出连接请求报文,SYN,报文首部种的同部位(SYN=1),同时选择一个序列号seq=x此时,TCP进入SYN-SENT(同步已发送状态)。TCP规定,SYN报文段不能携带数据,但需要消耗一个序号如果是发送,则需要发送一个标志位SYN=1,同时选择一个初始序列号seq=x(随机,客户端或服务器每发送一次+1)2)二次握手TCP服务器收到请求报文后,如果同意连接,则发出确认报文。收到报文,则需要发送一个确认标志位ACK=1,并且确认序列号ack=x+1,然后发出报文,需要一个发送标志位SYN=1,同时选择一个初始序列号seq=y(随机)3)TCP客户端收到确认后,还要向服务器给出确认。收到报文,发送一个确认标志位ACK=1,确认序列号ack=y+1,seq=x+1 。为什么TCP客户端还要最后再发一次确认呢主要防止已经失效的连接请求报文又突然传送到了服务器,从而产生错误四次挥手数据传输完毕后,双方都可释放连接。最开始的时候,客户端和服务器都是处于established状态。然后客户端主动关闭,服务器被动关闭。1)TCP客户端收到一个FIN(关闭连接),用来关闭客户端到服务器的数据传送2)服务器收到这个FIN,它发回一个ACK客户端发送完所有的数据,请求关闭连接,向服务器申请关闭,但与此同时,服务器未必就把所有的数据全部向客户端发送完毕,所以在第二步和第三步之间,服务器可以继续数据传输3)服务器关闭客户端的连接,发送一个FIN给客户端4)客户端发回ACK报文确认,并将确认序号设置为收到序号+1为什么客户端最后还要等待2MSL去向ACK消息最大存活时间(MSL)+ 来向FIN消息的最大存活时间(MSL)第一,保证客户端发送的最后一个ACK报文能够到达服务器第二,释放的端口可能重连刚断开的服务器端口,这样依然存活在网络里的老的TCP报文可能与新的TCP连接报文冲突如果已经建立连接了,但是客户端突然出现故障了怎么办TCP还设有一个保活计时器。客户端出现故障,服务器不能一直等下去12.TCP协议是如何保证可靠传输的数据包校验:目的是检测数据在传输过程中的任何变化,若校验出包有错,则丢弃报文段并且不给出响应,这时 TCP 发送数据端超时后会重发数据;对失序数据包重排序:既然 TCP 报文段作为 IP 数据报来传输,而 IP 数据报的到达可能会失序,因此 TCP 报文段的到达也可能会失序。TCP 将对失序数据进行重新排序,然后才交给应用层;丢弃重复数据:对于重复数据,能够丢弃重复数据;应答机制:当 TCP 收到发自 TCP 连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒;超时重发:当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段;流量控制:TCP 连接的每一方都有固定大小的缓冲空间。TCP 的接收端只允许另一端发送接收端缓冲区所能接纳的数据,这可以防止较快主机致使较慢主机的缓冲区溢出,这就是流量控制。TCP 使用的流量控制协议是可变大小的滑动窗口协议。
点赞 3
评论 1
全部评论
推荐
最新
楼层
滴滴
校招火热招聘中
官网直投
相关推荐
牛客442266701号
05-13 03:26
湖南工商大学 计算机类
简历拷打,听劝,求求了
简历被挂麻了,求建议
点赞
评论
收藏
转发
Fintech砖
05-10 19:00
兴业银行_金融科技部_Fintech金融科技岗
担心毕业论文盲审挂?
到了毕业季,很多同学都会提交毕业论文,现在这个时间点距离盲审结果回来还有一到两周,很多同学都很焦虑,那么应该怎们办? (1)提前了解学院及学校的盲审要求及盲审结果要求和盲审后的后续事宜 (2)了解历年学院的毕业通过率以及本专业通过率,给自己信心和勇气 (3)提前准备制作答辩PPT和后续答辩材料 (4)趁闲暇时间培养爱好,完成自己的愿望,出去旅行和度假。
校招过来人的经验分享
牛客在线求职答疑中心
点赞
评论
收藏
转发
菜鸟成长历程
04-09 11:20
哈尔滨工程大学 能源动力类
嵌入式,25届,听劝
1.想问问大家这个简历怎么改去找暑期实习,大家都说简历最好一页,但是这个好难缩成一页呀。2.大家能提提建议简历怎么修改嘛,拜托了。3.还有能源动力这个专业愁死我了,本科是自动化,调剂来的能源动力,一直害怕找嵌入式工作因为能源动力卡我4.想冲暑期实习的大厂,就是找暑假的日常实习不是暑期实习,但是感觉就能源动力这都能把我卡死5.其实我是想找偏linux驱动的岗位,但是我这个学历和专业......#嵌入式##实习##听劝,这个简历怎么改#
听劝,这个简历怎么改
点赞
评论
收藏
转发
等我打完这场仗
05-12 19:14
天津大学 管理科学与工程类
化身手黑
真被ex到了,五一前二面结束,结束了我说什么时候有后续,那个面试官说帮我催一下hr,我以为节后就是hr面了,还把美团,腾讯,飞猪,高德的面试都推了。结果节后还是技术面,三面结束后一天没动静,给hr发邮件也不回,打电话了和我说“你三面是OK的,但那个组招满了,只能换个组加面”,加面完又是一整天没反馈,给hr发微信也不回,又是打了个电话,说只剩一个hc了,想再看看,结果要等下周。然后刚刚去官网上看已经是流程结束了。。。四轮技术面加上推了一堆其他面试,我真是~$@,*_&#快手##快手挂#
投递快手等公司10个岗位 >
点赞
评论
收藏
转发
点赞
收藏
评论
分享
回复帖子
全站热榜
1
...
携程oc了
2.5W
2
...
美团-Java后端-平台技术部-一面凉经(复活赛)
1.3W
3
...
比亚迪机械面经&薪资爆料&面试题目&解答思路
1.2W
4
...
【话术建议】求职者和企业的互骗话术?
8741
5
...
瑞幸java校招二面(史诗级80min)
7762
6
...
快手二面g
4927
7
...
【进面核心】如何紧盯个人简历与企业需求的契合度
4863
8
...
滴滴秋储后端(秒挂)
4701
9
...
字节抖音电商后端日常实习一二三面已oc
4484
10
...
腾讯 后台开发 一面
4015
正在热议
#
牛客帮帮团来啦!有问必答
#
710017次浏览
11527人参与
#
许愿池
#
77174次浏览
1541人参与
#
通信硬件人笔面经互助
#
107717次浏览
2178人参与
#
你的秋招进展怎么样了
#
500796次浏览
13423人参与
#
找工作时遇到的神仙HR
#
177632次浏览
1744人参与
#
如何写一份好简历
#
259242次浏览
3918人参与
#
铜五铁六真的存在吗?
#
27337次浏览
293人参与
#
找工作,你会甘心进小厂还是猛冲大厂
#
35036次浏览
352人参与
#
产品实习,你更倾向大公司or小公司
#
35944次浏览
548人参与
#
非技术岗是怎么找实习的
#
73848次浏览
1385人参与
#
市场营销面经
#
4530次浏览
125人参与
#
互联网公司评价
#
79516次浏览
1087人参与
#
通信硬件薪资爆料
#
196266次浏览
1759人参与
#
你的秋招进行到哪一步了
#
352918次浏览
6269人参与
#
硬件兄弟们 甩出你的华为奖状
#
27510次浏览
180人参与
#
无实习如何秋招上岸
#
224649次浏览
3518人参与
#
投了多少份简历才上岸
#
56636次浏览
947人参与
#
面试中的破防瞬间
#
82553次浏览
1015人参与
#
通信/硬件的薪资开多少,才值得去?
#
10730次浏览
140人参与
#
产品人求职现状
#
50577次浏览
745人参与
牛客网
牛客企业服务