常见的面试网络基础题

1. 什么是计算机网络?计算机网络的功能有哪些?

答:计算机网络是计算机技术与通信技术结合的产物,是自主计算机的互连集合。自主是指每个计算机都是独立的,不存在一台计算机控制另外一台的情况。互连是指两台计算机能够通信,交换数据,而不是指简单地用线缆连接在一起。

计算机网络的功能有:资源与数据共享、信息交换、娱乐和分布式计算等。

3.简述分组交换的原理

答:当一台主机有消息要发送给另一台主机时,消息首先被分割成若干个小块(消息较小时,也可以不分割),每个数据块前面添加一些控制信息(其中包括接收方的地址),这些信息组成首部。首部和数据共同构成一个分组。一个消息可以被分成若干个分组。发送方将这些分组依次交给与之相连的分组交换机,分组交换机将收到的分组放入缓存,根据分组中首部的控制信息,依次转发每个分组,将分组传递给下一个分组交换机,就这样像传递信件一样,分组一步一步向下传递,最终到达目的地。当组成一个消息的所有分组都到达目的地后,再被组合成原来的消息。

2-3 简答题

1. 什么是网络协议?网络协议由哪几部分组成?

网络协议是通信双方为了实现通信而商定的一些规则。具体而言,网络协议可以理解为由三部分组成:

(1)     语法:通信时双方交换数据和控制信息的格式。

(2)     语义:每部分控制信息和数据所代表的含义。

(3)     时序:通信如何发起;在收到一个数据后,下一步要做什么。

4.简述OSI参考模型和TCP/IP参考模型

       OSI参考模型,共分七层,从上到下依次为应用层、表示层、会话层、运输层、网络层、数据链路层和物理层。

       应用层直接面向用户,用来实现特定的应用。表示层用来对应用层的数据进行格式转换,对应用层数据的压缩、解压缩,加密、解密。会话层用来管理会话过程,包括会话的建立、维持和结束。运输层为通信的两个进程之间提供端到端(end to end)的通信服务。网络层的主要功能是为分组选路。发送方和接收方之间会间隔其他的网络,网络层的作用就是为分组找到一条合适的路径,使得分组能够到达目的地。数据链路层的任务是在相邻节点间传输帧。物理层的任务就是将0、1比特从物理链路的一端发送到另一端。

       TCP/IP模型共分四层,从上到下分别是应用层、运输层、互联网层和网络接口层。

       TCP/IP模型的应用层和OSI参考模型的应用层类似,包括具体的应用,对应许多应用层协议,如HTTP、FTP、SMTP、POP3等。运输层同样也提供端到端的通信服务,TCP/IP体系的运输层里包含两个协议,TCP协议和UDP协议。TCP协议提供可靠的端到端通信。UDP协议比较简单,不能保证数据的可靠性,但效率比较高。互联网层相当于OSI参考模型中的网络层,它的职责是将运输层交给它的数据送到目的地,中间可能会跨越多个网络,互联网层要为数据找到一条正确的路. 互联网层是整个TCP/IP协议体系的关键部分,主要的协议是IP协议。网络接口层相当于OSI参考模型中的数据链路层和物理层。TCP/IP模型没有明确描述网络接口层,只是指出主机要使用某种协议与具体的网络连接,从而能够传递IP分组。

3-3 简答题

8.   什么是DNS,它的作用是什么?

       DNS是指域名系统。域名系统是一个全球性的分布式的数据库,有许多域名服务器组成,这些域名服务器相互连接,组成了一个分布式系统,主要完成将域名解析成IP地址的工作。

9.简述DHCP的工作原理

(1)客户端启动后,向网络中广播一个DHCP Discover报文,寻找DHCP服务器。

(2)DHCP服务器收到DHCP Discover后,向客户端发送DHCP Offer报文,向客户端提供IP地址、子网掩码、默认网关、域名服务器的信息。

(3)客户端可能会收到一个或多个DHCP Offer报文(网络中可能有多个DHCP服务器),客户端从中选择一个DHCP服务器,并广播DHCP Request报文。在DHCP Request报文中必须指明要选择的DHCP服务器。

(4) 被选中的服务器收到DHCP Request后,回应DHCP Ack报文,地址分配完成。

4-3 简答题

4.   简述TCP流量控制的原理。

       TCP主要使用首部中的窗口字段来进行流量控制。首部中的窗口字段用来将自己目前的接收缓存大小通知对方的TCP,在数据传递过程中,接收缓存会随时变化,TCP在向对方发送确认或发送数据时,都将现在的接收缓存大小写入首部的窗口字段中,发送给对方,对方收到后,所发送数据的大小不会超过窗口字段的值,从而保证了接收方缓存不会溢出,TCP依此实现了流量控制。

5.   TCP是如何保证数据传输的可靠性的?

       TCP主要采用确认和重传机制来实现数据传输的可靠性。每一方的TCP都要为所传输的数据编号,编号是以字节为单位的。发送字节的起始编号是在建立连接的过程中确定的,并且已经通过三次握手过程告知了对方。

   如果收到了编号正确的数据,那么就要给对方发送确认。收到确认后,就可以继续发送后面的数据。发出一个TCP报文段后,就启动一个定时器,如果定时器时间到了但确认还没有来,那么就重传一次这个报文。

       如果数据中途丢失,那么发送端会收不到确认,定时器超时就会重传。

       如果数据出错,接收端会丢弃这个报文,发送端会同样收不到确认,定时器超时也会重传。

       如果确认丢失了,发送方会因为定时器超时而重传报文,这样接收方会收到重复的报文,接收方将直接丢弃重复的报文,并发送确认。

       对于乱序到达的TCP报文段,TCP会缓存这些乱序的报文,将其排好序后在上传给应用层。

6.   为什么要进行拥塞控制?TCP是怎样进行拥塞控制的?

       当大量的数据涌入网络时,网络中的部分路由器可能会因为过载而被迫丢弃一些分组,产生拥塞。同时,发送方会因为定时器超时重传那些被路由器丢弃的分组,从而引起更严重的拥塞,使整个网络陷入瘫痪。因此,发送端要进行拥塞控制。

       TCP认为,如果出现了丢包现象,确认没有及时回来,就发生了拥塞。一个连接两端的TCP都维持一个变量,称为拥塞窗口,用来限制TCP向网络中注入数据的大小和速率。当网络的状况很好,每个确认都能及时回来时,就增大拥塞窗口,增加注入网络的数据;如果产生了拥塞,确认没有及时回来,就主动减小拥塞窗口,以缓解网络的压力。

       当刚刚建立TCP连接后,TCP拥塞窗口的大小为最大报文长度MSS。开始阶段每收到一个确认,拥塞窗口大小就增加一个MSS,拥塞窗口的大小是以1,2,4,8,…指数方式递增的,即每经过一个RTT,拥塞窗口的大小就翻倍。这个过程称为慢启动。

       当拥塞窗口的值达到一定大时,发送速率就超过了网络的接收能力,这时丢包现象就产生了。一旦发现丢包,TCP就要减小拥塞窗口。如果连续若干个数据包的确认都没有收到,说明网络拥塞状况比较严重,那么TCP迅速将拥塞窗口的大小降为1,并进入慢启动阶段;同时还要设置一个门限值,这个值是发生拥塞时拥塞窗口大小的一半。当慢启动以指数方式增加到这个门限值后,拥塞窗口的增长变为线性增长。此后在一个RTT内不论收到多少确认,只增加一个MSS,直到再次发生丢包。如果TCP收到了连续的几个相同的确认,TCP会将拥塞窗口的大小降为原来的一半,同时拥塞窗口的增加变为线性增长,在一个RTT内,拥塞窗口最多只增加一个MSS,直到再次发生丢包。

猜你喜欢

转载自www.cnblogs.com/laohantui/p/11227772.html