最新消息:阿里云双12优惠,史上最低折扣。

大厂面试指南——TCP协议相关篇

服务器租用 aliyun 244浏览

云计算公司Salesforce是SaaS鼻祖?SaaS的驱动发展是什么?

云计算是一个巨大的行业,其最大组成部分是软件即服务(SaaS)部门。SaaS服务的崛起引起了全球的关注,这一场变革逐渐影响到了中国市场,冲击着人们的传统观念。

一、UDPTCP有什么区别?

UDP与TCP最大不同之处在于UDP是无面向对象连接的,在数据传递之前不需要确认对方是否可以连接,不保证其数据有效性!没有任何控制流量的办法,不过其优点也很突出那就是轻便高效。

TCP则不同,每次连接或者断开连接的时候都需要进行握手,确保双方都知道对方的状态,而且在数据的传输过程中,其是可以控制流量,通过算法保证传递数据的有效性。

二、请你自己谈谈对TCP协议所谓“三次握手,四次挥手”这期间过程的理解?

1.1三次握手

客户端与服务器之间进行正常连接的时候,TCP客户端会发出一个SYN的消息,而服务器端会使用SYN+ACK作为回答告诉客户端自己已经接到这个消息,客户端再次以ACK消息响应。服务器知道客户端收到自己到底回答了,这样可靠的TCP便建立起来了。

建立连接时,客户端发送SYN包到服务器,等待服务器响应。(SYN 同步序列编号,是建立连接时使用的握手信号)。

服务器收到SYN包,使用ACK包进行确认应答,同时自己也会发送一个SYN包,即发送SYN+ACK包。

客户端收到服务器的SYN包,向服务器发送确认包ACK。此包发送完毕,代表TCP连接完成,完成了三次握手。

 

三次握手图解

1.2四次挥手

四次挥手是释放TCP连接的握手过程。

当传输结束的时候,客户端向服务端发送报文FIN等待服务器确认,并且自己主动停止发送数据。

服务器接到了客户端释放报文后,会发送ACK包表示自己知道其请求。

注意:虽然这个时候是收尾阶段,服务器与客户端都已经释放了,但服务器还在发送数据,客户端依旧会接收!

服务器将最后的数据发送完毕后,就向客户端发送连接释放报文FIN,等待客户端确认。

客户端收到服务器连接释放报文后,发出ACK包表示确认。此时客户端会进入TIME_WAIT状态,该状态将持续2MSL(最大报文段生存时间,指报文段在网络中生存的时间,超时将被抛弃)时间,若该时间段内没有服务器重发请求的话,就进入关闭状态,当服务端接收到ACK应答后,立即进入关闭状态。

 

三次握手与四次挥手图解

转载请注明:小猪云服务器租用推荐 » 大厂面试指南——TCP协议相关篇