Java 面试知识点解析(五)——网络协议篇 (4)

Java 面试知识点解析(五)——网络协议篇

11)TCP 的拥塞避免机制

答:

拥塞:对资源的需求超过了可用的资源。若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随之负荷的增大而下降。

拥塞控制:防止过多的数据注入到网络中,使得网络中的路由器或链路不致过载。

拥塞控制的方法:

(1). 慢启动 + 拥塞避免:

慢启动:不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小;

拥塞避免:拥塞避免算法让拥塞窗口缓慢增长,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍,这样拥塞窗口按线性规律缓慢增长。

Java 面试知识点解析(五)——网络协议篇

(2). 快重传 + 快恢复:

快重传:快重传要求接收方在收到一个 失序的报文段 后就立即发出 重复确认(为的是使发送方及早知道有报文段没有到达对方)而不要等到自己发送数据时捎带确认。快重传算法规定,发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待设置的重传计时器时间到期。

Java 面试知识点解析(五)——网络协议篇

快恢复:快重传配合使用的还有快恢复算法,当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把ssthresh门限减半,但是接下去并不执行慢开始算法:因为如果网络出现拥塞的话就不会收到好几个重复的确认,所以发送方现在认为网络可能没有出现拥塞。所以此时不执行慢开始算法,而是将cwnd设置为ssthresh的大小,然后执行拥塞避免算法。

Java 面试知识点解析(五)——网络协议篇

12)浏览器中输入:“” 之后都发生了什么?请详细阐述。

解析:经典的网络协议问题。

答:

由域名→IP地址 寻找IP地址的过程依次经过了浏览器缓存、系统缓存、hosts文件、路由器缓存、 递归搜索根域名服务器。

建立TCP/IP连接(三次握手具体过程)

由浏览器发送一个HTTP请求

经过路由器的转发,通过服务器的防火墙,该HTTP请求到达了服务器

服务器处理该HTTP请求,返回一个HTML文件

浏览器解析该HTML文件,并且显示在浏览器端

这里需要注意:

HTTP协议是一种基于TCP/IP的应用层协议,进行HTTP数据请求必须先建立TCP/IP连接

可以这样理解:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

两个计算机之间的交流无非是两个端口之间的数据通信,具体的数据会以什么样的形式展现是以不同的应用层协议来定义的。

13)什么是 HTTP 协议无状态协议?怎么解决Http协议无状态协议?

答:HTTP 是一个无状态的协议,也就是没有记忆力,这意味着每一次的请求都是独立的,缺少状态意味着如果后续处理需要前面的信息,则它必须要重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就很快。

HTTP 的这种特性有优点也有缺点:

优点:解放了服务器,每一次的请求“点到为止”,不会造成不必要的连接占用

缺点:每次请求会传输大量重复的内容信息,并且,在请求之间无法实现数据的共享

解决方案:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwxwww.html