省流版:计算机保研/考研面试题——计算机网络篇_计算机网络保研面试题 - CSDN博客
1 计算机网络体系结构
1.1 OSI和TCP/IP模型各个层之间的协议和功能
应用层:为应用程序提供数据传输服务,数据单位为报文。协议有HTTP、DNS、FTP、SMTP
传输层:为进程提供端到端的数据传输服务,包括复用/分用、可靠数据传输、流量控制、差错控制等,数据单位为报文段。协议有TCP、UDP
网络层:为主机提供数据传输服务,包括IP选址、路由选择等,数据单位为数据报。协议有IP、ICMP
数据链路层:为同一链路的主机提供数据传输服务,包括封装成帧、差错控制、流量控制等,数据单位为桢,协议有 ARP、RARP
物理层:在物理介质上传输数据比特流,尽可能屏蔽传输媒介和通信手段的差异,使数据链路层感觉不到这些差异。协议有IEEE 802
表示层:数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题
会话层:建立并管理会话

1.2 计算机网络为什么要分层
各层相互独立,下层为上层提供服务,上层无需知道下层如何实现,只需使用下层提供的接口,这样可以将复杂的问题分解为多个容易处理的子问题
灵活性好,当某层需要修改时,只需保持接口不变,不影响其他层的使用
易于实现和维护,整个系统被划分为多个独立的子系统
促进标准化工作,因为每层的功能及其提供的服务可以通过协议来说明,如RFC文档
分层使得计算机网络系统具有很强的可扩展性
分层网络协议的设计和实现使得网络运营商、网络设备供应商和网络应用开发商能够各司其职,功能分明,有益于网络的推广
1.3 时延有哪些
处理时延(processing delay):检查分组头部、差错检测、路由等处理所需的时间
排队时延(queuing delay):分组在链路上等待传输时所需的时间
传输时延(transmission delay):将所有分组的比特推向链路所需的时间
传播时延(propagation delay):从当前链路起点到下一个路由器传播所需要的时间
1.4 计算机网络和分布式系统的异同
同:
分布式系统是建立在计算机网络之上的,他们在物理结构上基本相同
他们都具有通信和资源共享的功能
异:
计算机网络是分布式系统的基础,分布式系统是计算机网络技术发展的高级阶段(应用)
他们的区别主要在高层软件上,分布式系统是建立在网络上的软件系统,用户不必关心网络环境中的资源分布和联网计算机的差异
2 应用层

2.1 网络应用模型有哪些,优缺点
C/S:有一个主机作为服务器,负责接受客户端的请求
优点:随时提供服务、方便管理
缺点:可扩展性差、服务器压力、会出现单点失效问题
P2P:每个主机既是客户端,又是服务器
优点:减轻了服务器的压力,提高了资源利用效率;可扩展性好;网络鲁棒性强,不会出现单点失效问题;去中心化
缺点:消息延迟(消息是随机转发给其他节点,需多次转发才能到达)、消息重复(每个节点都 转发,会重复收到消息)、不方便管理
2.2 DNS域名解析的过程
域名解析协议,将域名映射成为IP,基于UDP协议
1、客户端在本地缓存中查找,如果没有找到,则将查询请求发给DNS服务器
2、首先发送给本地DNS服务器,本地DNS服务器先在管辖的记录表查找,再在缓存中查找。如果找不到,则本地DNS服务器将请求发送给根域名服务器
3、根域名服务器返回下一级域名服务器,再依次递归查询,得到域名对应的IP地址
2.3 为什么DNS采用分布式层次数据库
集中式的问题包括:单点故障、通信容量有限、远距离的集中式数据库查询慢、不便于维护、可扩展性差
2.4 HTTP和HTTPS
HTTP:超文本传输协议,定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器,基于TCP
HTTP的特点:无状态(不记录用户访问状态,一般用cookie记录)、可以是持久性连接(所有请求和响应经相同的TCP连接发送),也可以是非持久性连接(每个请求/响应对是经一个单独的TCP连接发送)
HTTPS:使用SSL协议对HTTP传输的数据进行加密,比较安全
2.5 点击一下网页会发生什么
DNS域名解析
通过三次握手建立TCP连接
客户端发起HTTP请求
服务器响应请求
浏览器解析HTML代码,并请求代码中的资源
通过四次挥手断开TCP连接
2.6 Cookie和Session有什么区别
存放位置不同:cookie存放在客户端;session存放在服务器
安全性不同:cookie不安全,别人可以用本地的cookie进行非法登录
数据大小限制不同:cookie的大小有限制;session没有限制
3 传输层

3.1 TCP和UDP的异同点
同:都是传输层的协议,都是为进程间的端对端数据传输提供服务
异:
TCP是面向连接的,需要通过三次握手建立连接,四次挥手接除连接;UDP是无连接的,即发送数据之前不需要建立连接
TCP是可靠数据传输,它通过超时重传、数据校验等方法来确保无差错;UDP是不可靠的,会出现丢失、重复等差错
TCP的资源负载比较大,UDP的资源负载比较小
TCP由于有流量控制、拥塞控制、超时重传等机制,传输速度比UDP慢
TCP的报文段的头部(20bytes)比UDP(8bytes)的长
3.2 三次握手和四次挥手的过程
三次握手:
客户端发送一个SYN报文段,发起TCP连接
服务器在收到SYN后进行响应,回复一个SYN-ACK报文段
客户端在收到服务器的响应后,回复一个ACK报文段,表示收到

四次挥手:
客户端发送FIN,准备断开连接
服务器在收到FIN后,回复一个ACK,进入半关闭状态
待服务器没有向客户端发送的数据时,服务器发送FIN
客户端收到FIN后,回复一个ACK,然后等待2MSL后关闭,服务器收到ACK后也关闭

3.3 为什么握手要三次,挥手要四次
三次握手:要保证连接是双工的,至少要握手3次。如果握手2次,则只能保证服务器能收到客户端的信息,而不能保证客户端能收到服务器的信息;如果握手4次,则多余了。
四次挥手:还是因为连接是双工的,前两次只是保证了客户端发送的数据传输完了,服务器需要等它发送的数据也传输完,再断开连接。
3.4 为什么四次挥手时,客户端在发送ACK后需等待2MSL
因为网络是不可靠的,客户端回复给服务器的ACK可能会丢失,如果丢失的话,服务器会重新发送FIN,客户端需要等一会
MSL指一个片段在网络中最大的存活时间;2MSL:发送 + 回复所需的最大时间
3.5 TCP如何保证可靠传输
校验和机制
序列号:TCP将数据中的每个字节编上序号
累积确认:接收方收到数据后,都会发送一个带有期待下一次接收的序号的ACK
超时重传:发送方每发送一个报文段,都要设置一次计时器,如果到一定时间后还未收到ACK,则重传
计时器重传间隔一般比RTT大一点,TCP采用指数加权移动平均算法估算RTT
RTT:往返时间,即一个报文发出的时间与收到对应ACK的时间的间隔
快速重传:防止超时重传周期过大,发送方如果收到连续3个冗余的ACK,则立即重传
3.6 TCP的流量控制
作用:使发送方的发送速率与接收方的应用程序读取速率相匹配,防止发送方发得太快
实现:接收方根据自己的接收缓存大小,通过报文段头部的接收窗口rwnd字段,动态地调整发送方的发送速率
3.7 TCP拥塞控制
拥塞控制:发送方根据通信的时延,估算出网络的拥塞程度,计算一个拥塞窗口cwnd,来减小发送速率,防止网络中的路由器或链路过载
慢启动:TCP连接刚建立时,设置拥塞窗口为1 MSS;之后每收到一个新的ACK,拥塞窗口就加1,这样的话,每个RTT内拥塞窗口就呈指数增加;当拥塞窗口达到一个阈值时,进入拥塞避免阶段

拥塞避免:每经过一个往返时延RTT,拥塞窗口就增加一个MSS,即线性增长;当出现超时(网络拥塞)时,让慢启动阈值等于当前拥塞窗口的一半,并进入慢启动阶段
快速恢复:发送方收到连续3个冗余ACK时,让慢启动阈值等于当前拥塞窗口的一半,当前窗口再减半,并进入拥塞避免阶段
快速重传:防止超时重传周期过大,发送方如果收到连续3个冗余的ACK,则立即重传

3.8 TCP的流量控制和拥塞控制有什么异同
同:都是通过改变发送方的发送速率,以此达到控制的
异:
流量控制解决的是发送方和接收方速率不匹配的问题,是通过接收窗口来实现的
拥塞控制解决的是避免网络负载过大的问题,是通过拥塞窗口来实现的
4 网络层

4.1 路由器有什么作用
路由选择:根据路由协议构造出路由表,确定分组从源主机到目的主机的最佳路径
分组转发:根据转发表,将分组从路由器的输入端口转移到合适的输出端口
4.2 路由算法有哪些
链路状态路由算法(如OSPF算法)
距离-矢量路由算法(如RIP算法)
层次路由:将网络分为若干个自治系统,同一自治系统内的路由器运行相同的路由协议。每个自治系统有一些网关路由器,负责自治系统之间的路由。
内部网关协议:自治系统内的路由协议,如OSPF、RIP
外部网关协议:自治系统间的路由协议,如BGP
4.3 DHCP协议
动态主机配置协议,即插即用,如手机带在身上,移动一定距离后,需要接入新的路由或者基站,IP地址就自动更新了
协议过程:手机先播DHCP发现报文,服务器响应一个DHCP提供报文,手机再请求IP地址,最后服务器发送一个ACK,携带有分配的IP地址
4.4 ICMP协议
互联网控制报文协议,用于差错检验和网络探询,如ping
4.5 ipv6出现的动力是什么,报文头哪些字段发生了变化
动机:IPv4的IP地址数量不够用了、改进报文头,加快转发速率
报文头:20字节-->40字节、源地址和目的地址从32位-->128位,去除了校验和
5 数据链路层
5.1 IP地址和MAC地址的区别
IP地址是网络层的地址,是分层次的;MAC地址是数据链路层的地址,是平面式的
IP地址是逻辑地址;MAC地址是物理地址
IP地址不具备唯一性;MAC地址具有唯一性
MAC帧中封装了IP数据报
5.2 ARP协议
解决的问题:在同一个局域网内,如何在已知目的接口的IP的情况下,确定其MAC地址
ARP是一个即插即用的协议,每个节点(主机或路由器)维护一个ARP表,存放节点的IP/MAC映射关系;假设A要给B发一个数据,则A广播一个分组,其中包含B的IP,B接收到后,IP匹配成功,向A回复其MAC地址,A将该IP/MAC映射信息记录下来。