码迷,mamicode.com
首页 > 其他好文 > 详细

常见网络知识面试题

时间:2019-04-23 00:19:03      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:试题   三次握手   strong   资源   端口号   丢失   一个   传输   str   

Q1:为什么不采用“两次握手”建立连接呢?

A1:这主要是为了防止两次握手情况下已失效的连接请求报文段突然又传送到服务端而产生错误。考虑下面这种情况,客户A向服务器B发出TCP连接请求,第一个连接请求报文在网络的某个节点长时间滞留,A超时后认为报文丢失,于是再重传一次连接请求,B收到后建立连接。数据传输完毕后双方断开连接。而此时,前一个滞留在网络中的连接请求到达服务端B,而B认为A又发来连接请求,此时如果使用“三次握手”,则B向A返回确认报文段,由于是一个失效的请求,因此A不予理睬,建立连接失败。若采用“二次握手”,则这种情况下B认为传输连接已经建立,并一直等待A传输数据,而A此时并无连接请求,因此不予理睬,造成资源浪费甚至死锁

Q2:为什么不采用“三次握手”释放连接,且发送最后一次握手报文后要等待2MSL的时间呢?

A2:(1)保证A发送的最后一个确认报文段能够到达B,如果A不等待2MSL,若A返回的最后确认报文段丢失,则B不能进入正常关闭状态,而A此时已经关闭,也不可能再重传。

(2)防止出现“已失效的连接请求报文段”。A在发送最后一个确认报文段后,再经过2MSL可保证本连接持续的时间内所产生的所有报文段从网络中消失。

Q3:如何在Internet上识别唯一一个进程?

A3:通过“IP地址+端口号”来区分不同的服务。其中IP地址可以确定网络中唯一一台主机,而端口号可以确定主机中唯一的进程。

常见网络知识面试题

标签:试题   三次握手   strong   资源   端口号   丢失   一个   传输   str   

原文地址:https://www.cnblogs.com/Mered1th/p/10753945.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!