计算机网络-部分面试题(流量控制、拥塞控制等)

1、TCP的流量控制原理

流量控制就是让发送方的发送速率不要太快,让接收方来得及接收。利用滑动窗口机制实现对发送方的流量控制。TCP的窗口单位是字节,不是报文段。

原理这就是运用TCP报文段中的窗口大小来控制,发送方的发送窗口不可以大于接收方给出的接收窗口的大小。窗口两个边沿的相对运动增加或减少了窗口的大小。当接收方没有缓存可用,会发送零窗口大小的报文,此时发送方不能够发送任何数据。

2、TCP拥塞控制原理

在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。

拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制是一个全局性的过程,和流量控制不同,流量控制指点对点通信量的控制。

进行拥塞控制的四种算法:

1)慢开始(Slow-start) 2)拥塞避免(Congestion Avoidance) 3)快重传(Fast Restrangsmit) 4)快恢复(Fast Recovery)。

发送方维持一个叫做拥塞窗口cwnd(congestion window)的状态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口,另外考虑到接受方的接收能力,发送窗口可能小于拥塞窗口。

1.慢开始和拥塞避免
1)慢开始算法的思路就是,不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小。一次传输轮次之后拥塞窗口就加倍(2的指数倍增加)。

为了防止窗口cwnd增长过大引起网络拥塞,还需设置一个慢开始门限ssthresh状态变量。ssthresh的用法如下:

当cwnd<ssthresh时,使用慢开始算法。 当cwnd>ssthresh时,改用拥塞避免算法。

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

3)无论是在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有收到确认,虽然没有收到确认可能是其他原因的分组丢失,但是因为无法判定,所以都当做拥塞来处理),就把慢开始门限设置为出现拥塞时的发送窗口大小的一半。然后把拥塞窗口设置为1,执行慢开始算法。

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

2)快恢复算法,有以下两个要点:

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

3、ARP 工作原理

IP地址到MAC的转化。

1)首先,每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系
2)当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址。
3)当本网络的所有主机收到该ARP数据包时,首先检查数据包中的 IP 地址是否是自己的 IP 地址。如果不是,则忽略该数据包。如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖,然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址。
4)主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据

4、DNS 工作原理

DNS 客户机需要在程序中使用名称时,它会查询 DNS 服务器来解析该名称。

域名解析过程:当某个应用进程需要将主机名解析为IP地址时,该应用进程就调用解析程序,并成为DNS的一个客户,将待解析的域名放在DNS 请求报文中,以UDP数据报方式发给本地域名服务器。本地域名服务器在查找域名后,将对应的IP地址放在回答的报文中返回。应用进程获得目的主机的IP地址后即可进行通信。

5、网关的作用?

网关(Gateway)又称协议转换器,用于两个高层协议不同的网络互连。网关是一种充当转换重任的计算机系统或设备。在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同时,网关也可以提供过滤和安全功能。

6、交换机和路由器的实现原理?分别在哪个层次?

1)交换机用于局域网,利用主机的MAC地址进行数据传输,而不需要关心 IP数据包中的IP地址,它工作于数据链路层

2)路由器识别网络是通过 IP 数据包中 IP 地址的网络号进行的,所以为了保证数据包路由的正确性,每个网络都必须有一个唯一的网络号。路由器通过 IP 数据包的 IP 地址进行路由的(将数据包递交给哪个下一跳路由器)。路由器工作于网络层。由于设备现在的发展,现在很多设备既具有交换又具有路由功能,两者的界限越来越模糊。

你可能感兴趣的:(计算机网络-部分面试题(流量控制、拥塞控制等))