博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常见网络知识面试题
阅读量:5298 次
发布时间:2019-06-14

本文共 660 字,大约阅读时间需要 2 分钟。

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地址可以确定网络中唯一一台主机,而端口号可以确定主机中唯一的进程。

转载于:https://www.cnblogs.com/Mered1th/p/10753945.html

你可能感兴趣的文章
mobx react
查看>>
Windows Phone 7你不知道的8件事
查看>>
Eclipse配置Maven
查看>>
无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证--2.1使用Azure AD需要了解几个概念]...
查看>>
python字符串函数总结
查看>>
linux查看是否安装JDK(转载)
查看>>
游戏开发设计模式之状态模式 & 有限状态机 & c#委托事件(unity3d 示例实现)
查看>>
[新]最近用unity5弄的一些渲染
查看>>
mybatis-servlet.xml配置SpringMVC样板
查看>>
启动eclipse是报 no java virtual machine was found after searching the following location
查看>>
ZOJ Problem Set Vol 1(Update paste)
查看>>
头文件dirent.h
查看>>
lol人物模型提取(八)
查看>>
USACO / Factorials (简单模拟)
查看>>
5月4日上午学习日志
查看>>
(译)IOS block编程指南 2 block开始
查看>>
Data Structure Binary Tree: Lowest Common Ancestor in a Binary Tree
查看>>
java第二次作业
查看>>
Java 9 揭秘(14. HTTP/2 Client API)
查看>>
麦包包也看到了个性化推荐:数据驱动销售——个性化推荐引擎
查看>>