计算机科学与技术专业(某大型集团公司)面试题题库解析.docxVIP

计算机科学与技术专业(某大型集团公司)面试题题库解析.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

计算机科学与技术专业面试题(某大型集团公司)题库解析

面试问答题(共20题)

第一题

请描述一下什么是TCP协议的“三次握手”(Three-wayHandshake)?在建立TCP连接的过程中,如果不能收到某个步骤的回应,会有什么后果?为什么说“四次挥手”比“三次握手”更复杂?

答案:

TCP的三次握手:

TCP的三次握手是初始化一个TCP连接的过程,确保通信双方都愿意建立连接并能够发送和接收数据。它包括以下三个步骤:

第一次握手(SYN):客户端(发起方)向服务器(监听方)发送一个SYN(SynchronizeSequenceNumbers)报文段。该报文段包含一个客户端随机选择的初始序列号client_isn。客户端进入SYN_SENT状态,等待服务器确认。这一步SYN报文通常还需要占用一个TCP连接的“资源”或“状态”,占用了少量服务器资源,这也是为什么全双工连接需要4个“TCP资源”(两个方向各占用两个)。如果服务器资源不足,可能不会响应这个SYN请求。

第二次握手(SYN-ACK):服务器收到客户端的SYN报文后,如果愿意建立连接,则向客户端回复一个SYN-ACK(SynchronizeSequenceNumbersAcknowledgment)报文段。该报文段包含服务器的初始序列号server_isn和客户端SYN报文sequencenumber(client_isn)的确认号client_isn+1。服务器进入SYN_RCVD状态。这一步服务器也需要占用一个“资源”。

第三次握手(ACK):客户端收到服务器的SYN-ACK报文后,向服务器发送一个ACK(Acknowledgment)报文段。该报文段包含确认号server_isn+1,表明客户端已收到服务器的SYN。这一步ACK报文通常不需要占用连接资源(有时也占用一个)。客户端进入ESTABLISHED状态,服务器收到ACK后也进入ESTABLISHED状态。此时,客户端和服务器都准备好收发数据。

总结:三次握手通过这三个交互步骤,客户端和服务器互相确认了各自的发送和接收能力,并同步了初始序列号,从而建立了一个可靠的数据传输连接。

不能收到某个步骤的回应的后果:

如果客户端未能收到服务器的第二次握手回应(SYN-ACK):客户端认为服务器没有收到自己的SYN报文,或者服务器拒绝了连接请求。客户端会认为连接建立失败,继续等待一段时间后(不断重发SYN报文,并配合退避算法),最终放弃连接尝试。这通常发生在服务器宕机、地址错误或者服务器忙拒绝连接等情况下。

如果客户端未能收到服务器的第三次握手回应(ACK):客户端会认为服务器的SYN-ACK虽然收到了,但服务器的ACK报文在传输过程中丢失了,或者服务器ACK报文的确认号不正确。客户端会重新发送第二次握手的SYN-ACK报文,尝试完成连接建立。如果持续失败,最终也会放弃。这可能导致短暂的服务器资源占用。

如果服务器未能收到客户端的第一次握手(SYN):服务器端没有发生任何动作,只是资源没有被占用。

如果服务器未能收到客户端的第二次握手(ACK):服务器会发送重传机制,不断重发最后一次发出的SYN-ACK报文。如果在超时时间内没有收到客户端的ACK,服务器会认为客户端无法到达,回收刚刚分配给这个连接的半连接资源(SYN_RCVD状态转为CLOSE_WAIT或TIME_WAIT等,取决于具体的超时和重传逻辑)。如果服务器资源耗尽,可能也无法继续建立连接。

为什么说“四次挥手”比“三次握手”更复杂?

虽然四次挥手最终能让两个方向的数据传输通道都关闭,但它的交互过程和时序更复杂,主要体现在以下两点:

能够双向独立关闭:TCP是面向连接的、可靠的、全双工的协议。“四次挥手”对应关闭从客户端到服务器、以及从服务器到客户端这两个独立的数据流通道。每个方向的关闭是一个独立的事件,需要经历一个完整的、但可以是异步的关闭过程。

第一次挥手(FINfromClient):客户端完成数据发送后,向服务器发送FIN(Finish)报文段,表示数据发送完毕。客户端进入FIN_WAIT_1状态。

第二次挥手(ACKforClient’sFINfromServer):服务器收到客户端的FIN报文后,如果确认没有数据要发送给客户端了,回一个ACK报文段,确认号是客户端FIN的sequencenumber+1。服务器进入CLOSE_WAIT状态。此时,从客户端到服务器的数据流已关闭(客户端触发CLOSE_WAIT),但服务器到客户端的数据流仍可能继续。

第三次挥手(FINfromServer):当服务器也完成数据发送后,向客户端发

文档评论(0)

wkwgq + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档