计算机网络笔试面试题总结
转载自程序羊视频,学习复习自用
分层的概念
问题 1:OSI 有哪几层,会画出来,知道主要几层的各自作用
-
应用层(数据):确定进程之间通信的性质以满足用户需要以及提供网络与用户应用
-
表示层(数据):主要解决拥护信息的语法表示问题,如加密解密
-
会话层(数据):提供包括访问验证和会话管理在内的建立和维护应用之间通信的机 制,如服务器验证用户登录便是由会话层完成的
-
传输层(段):实现网络不同主机上用户进程之间的数据通信,可靠 与不可靠的传输,传输层的错误检测,流量控制等
-
网络层(包):提供逻辑地址(IP)、选路,数据从源端到目的端的 传输
-
数据链路层(帧):将上层数据封装成帧,用 MAC 地址访问媒介,错误检测与修正
-
物理层(比特流):设备之间比特流的传输,物理接口,电气特性等
问题 2:知道各个层使用的是哪个数据交换设备。(交换机、路由器、网关)
-
网关:应用层、传输层(网关在传输层上以实现网络互连,是最复杂的网络互连设 备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是 互连层。网关既可以用于广域网互连,也可以用于局域网互连)
-
路由器:网络层(路由选择、存储转发)
-
交换机:数据链路层、网络层(识别数据包中的 MAC 地址信息,根据 MAC 地址进 行转发,并将这些 MAC 地址与对应的端口记录在自己内部的一个地址表中)
-
网桥:数据链路层(将两个 LAN 连起来,根据 MAC 地址来转发帧)
-
集线器(Hub):物理层(纯硬件设备,主要用来连接计算机等网络终端)
-
中继器:物理层(在比特级别对网络信号进行再生和重定时,从而使得它们能够在 网络上传输更长的距离)
数据链路层
ARP 协议
问题 1:ARP 的作用? ARP 为 IP 地址到对应的硬件地址提供动态映射。 问题 2:点对点链路使用 ARP 吗? 不使用 问题 3:ARP 高效运行的关键是什么? 关键是每个主机上都有一个 ARP 的高速缓存。 问题 4:ARP 报文的各个字段以及含义?
[图片上传失败...(image-109474-1562648256499)]
- 帧类型:ARP:0x0806 (2)
- ARP 首部:
- 硬件类型:硬件地址的类型,1 表示以太网地址。(2)
- 协议类型:协议地址的类型,0x0800 表示 IP 地址。(2)
- 硬件地址长度:字节为单位 6 (1)
- 协议地址长度:字节为单位 4 (1)
- 操作类型:2 个字节。 ARP 请求 1,ARP 回复 2,RARP 请求 3,RARP 应答 4。(2)
- 发送者硬件地址:6 个字节(6)
- 发送者 IP 地址:4 个字节(4)
- 目标硬件地址:6 个字节(6)
- 目标 IP 地址:4 个字节(4)
- CRC 校验:4 个字节 (4)
总结: arp 总共 28 个字节。 记忆方法: 以太网先目地后源,ARP 先发送端后目地端。先硬件后协议。
** 问题 5:ARP 协议有什么弱点?**
-
缓存:主机的地址映射是基于高速缓存的,动态更新的。地址刷新是有时间限制的。 可 以通过下次更新之前修改计算机上的地址缓存,造成拒绝服务攻击或者 ARP 欺骗。
-
广播: 攻击者可以伪装 ARP 应答。
-
ARP 应答没有认证,都是合法的。可以在不接受到请求的时候就发出应答包。
** 问题 6:ARP 代理的概念和应用场景** 若 ARP 请求是从一个网络的主机发送给另一个网络上的主机,那么连接这两个网络的路由 器就可以回答该请求,这个过程叫做 ARP 代理。ARP 代理路由器响应 ARP 请求的 MAC 地 址为路由器的 MAC 地址而非 ARP 请求的主机的 MAC 地址。 ARP 代理的应用环境: 两个物理网络之间的路由是使用相同的网络号,两个路由器设置成 ARP 代理,实现相互隐 瞒物理网络
问题 7:免费 ARP 指主机发送 ARP 查找自己的 IP 地址,即数据链路层 SIP=DIP 作用有两个:
-
一个主机使用免费 ARP 确定是有存在有其他主机设置了相同的 IP 地址
-
如果发送免费 ARP 的主机改变了 MAC 地址,可以通过发送免费 ARP 的方式告知其他 主机端更新 ARP 表
问题 8:数据链路层 MTU 的最大值和最小值是多少?
-
数据链路层的最小MTU 为 64 字节。对于 IEEE802.3,两个站点的最远距离不超过 2500m,由 4 个中继器连接而成,其冲突窗口为 51.2us(2 倍电缆传播延迟加上 4 个中继器的双向延迟).对于 10Mbps 的 IEEE802.3 来说,这个时间等于发送 64 字节,即 512 位的时间,64 字节就是由此而来的。如果一个站点已经传输了 512bit,就认为它已经占用了这个信道。
-
数据链路层的最大 MTU 为 1500 字节,即数据字段的最大长度
网络层
IP协议
问题 1:如何理解 IP 的不可靠和无连接。 不可靠:指的是不能保证数据报能成功地到达目的地。 发生错误时候,丢弃该数据包,发送 ICMP 消息给信源端。 可靠性由上层提供。 无连接:IP 不维护关于后续数据报的状态信息。 体现在,IP 数据可以不按顺序发送和接收。A 发送连续的数据报,到达 B 不一定是连续的, 来回路由选择可能不一样,路线也不一样,到达先后顺序也不一样。
问题 2:IP 报文的格式和各个字段的含义。
[图片上传失败...(image-5db1c2-1562648256498)]
版本号: IPV4 就是 4,IPV6 就是 6 (4) 首部长度:4 个字节为单位。最小为 5,最大为 15。所以最小长度 20 个字节,最大为 60 个字节。(4) 服务类型: Qos 用,目前不怎么使用。(8) 总长度:字节为单位。 最多可以传送 65535 字节的 IP 数据包。(16) 标识字段(8) 标志 (3) 段偏移(5)与分片有关。 生存时间 TTL:经过一个路由器减一。 字段为 0 时,数据报被丢弃,并且发送 ICMP 报文 通知源主机。目的是防止数据报在选路时无休止地在网络中流动。(8) 协议:区分上层协议 (8) 首部校验和:仅对首部进行校验。(16)【对比: ICMP,IGMP,TCP,UDP:对首部和数 据进行校验】 源地址:(32) 目的地址:(32)
问题 3:为什么 IP 首部中要有总长度字段? 因为一些数据链路(以太网)需要填充一些数据以达到最小长度。因为以太网帧的最小长度 是 46 个字节,但是 IP 长度可能更短,所以需要总长度来确定 IP 数据部分的内容。
问题 4:IP 首部校验和怎么计算的,与 ICMP,IGMP,TCP,UDP 的首部校验和有什么区 别与共同点?
-
先把校验和字段置 0。
-
对首部中每个 16 位比特进行二进制反码求和。
-
结果存在检验和字段中。
-
收到一份 IP 数据包后,同样对首部中每个 16bit 二进制反码求和。
-
最后结果全为 1,表示正确,否则表示错误。 如果是错误的,IP 就丢弃该数据报,但是不生成差错报文,由上层去处理。 共同点:用到的算法都是一样的。 区别:IP 计算的时候没有将数据包括在内。 ICMP,IGMP,TCP,UDP 同时覆盖首部和数据检验码。
问题 5:主机和路由器本质区别是? 主机从不把数据报从一个接口转发到另一个接口,而路由器则要转发数据报。
问题 6:IP 路由选择的过程是怎么样的? 根据最长匹配原则,找到条目,发送到指定的路由器。如果不能找到,返回一个“主机不可 达”或“网络不可达”的错误。
问题 7:IP 路由选择的特性有什么?
-
IP 路由选择是逐跳进行的。 IP 并不知道到达任何目的的完整路径,只提供下一跳地址。
-
为一个网络指定一个路由器,而不是为每个主机指定一个路由器。 这样可以缩小路由表规模。
问题 8:IP 搜索路由表的步骤 搜索匹配的主机地址 ----》搜索匹配的网络地址 ----》搜索默认选项 IP 层进行的选路实际上是一种选路机制,它搜索路由表并决定向哪个网络接口发送分组。
问题 9:如果路由表中没有默认项,而又没有找到匹配项,这时如何处理? 结果取决于该 IP 数据报是由主机产生的还是被转发的。 如果数据报是由本机产生的,那么就给发送该数据报的应用程序返回一个差错,或者是“主 机不可达差错”或者是“网络不可达差错”。 如果是被转发的数据报,就给原始发送一份 ICMP 主机不可达的差错报文。
问题 10:IP 地址的分类,如何划分的,及会计算各类地址支持的主机数
-
A 类地址:首位为 0,1.0.0.1~~126.255.255.254;主机号 24 位
-
B 类地址:首位为 10,128.0.0.1~~191.255.255.254;主机号 16 位
-
C 类地址:首位为 110,192.0.0.1~~223.255.255.254;主机号 8 位
-
D 类地址(多播地址,也叫做组播地址):首位为 1110,224.0.0.1~~239.255.255.254
-
E 类地址:此类地址是保留地址,首位为 11110,240.0.0.1~~254.255.255.254
ICMP 协议
问题 1:ICMP 的层次和作用。
[图片上传失败...(image-4881a6-1562648256498)]
ICMP 一般认为是在三层的。主要传递一些差错报文和其他需要注意的信息。
问题 2:ICMP 报文的分类? ICMP 分为两类,一类是 ICMP 查询报文,另一类是 ICMP 差错报文。
[图片上传失败...(image-2c7f8a-1562648256498)]
问题 3:ICMP 的主机不可达报文是在什么情况下发出的? 三层设备(路由器)给该主机寻路时,没有找到相应路径,向源 IP 发回 ICMP 主机不可达
问题 4:什么情况不会导致产生 ICMP 差错报文?
-
ICMP 差错报文。
-
目的地址是广播地址或者多播地址的 IP 数据报。
-
链路层广播的数据报
-
不是 IP 分片的第一片
-
源地址不是单个主机的数据包。
问题 5:ICMP 重定向差错报文是怎么来的,在何种场合出现?
[图片上传失败...(image-218849-1562648256498)]
-
主机发送 IP 数据报给 R1,因为主机的默认路由指向的下一跳是 R1。
-
R1 收到数据报并且检查它的路由表,发现 R2 是发送该数据报的下一跳。当他将数 据报发送给 R2 的时候,发现发送的接口与接受的端口是一样的,因此同时发送一个 ICMP 重定向报文给主机。
-
R1 接受到 ICMP 重定向报文后,接下来的数据报就发送给 R2,而不再发送给 R1。
问题 6:重定向报文有什么规则? 重定向报文只能由路由器生成。 重定向报文是为主机而不是为路由器使用的。
问题 7:Ping 命令的具体过程是怎么样的? 参考文章:《对于 Ping 的过程,你真的了解吗?》 https://mp.weixin.qq.com/s/DfQT3Vw2xaq60YIil-7Yxw