运维岗面试题收集
运维岗网络面试题收集三次握手、四次挥手分别解释一下过程以及为什么是四次挥手?BGP有哪几种类型,分别用于哪些场景OSPF五包、七状态Linux超全命令总结Docker 常见问题汇总三次握手、四次挥手分别解释一下过程以及为什么是四次挥手?三次握手:PC1想与PC2建立连接,先发送SYN报文(SYN=1)请求建立连接PC1seq序号x。PC2接收到之后发送SYN和ACK报文,就是(ACK=1)确认并也
三次握手、四次挥手分别解释一下过程以及为什么是四次挥手?
三次握手:
-
PC1想与PC2建立连接,先发送SYN报文(SYN=1)请求建立连接PC1seq序号x。
-
PC2接收到之后发送SYN和ACK报文,就是(ACK=1)确认并也(SYN=1)请求建立连接PC2seq是y,Ack=x+1,这个Ack是确认号,代表前面PC1的x已经收到。
-
PC1收到PC2的请求建立连接,也进行(ACK=1)确认,并进行回复seq=x+1,Ack=y+1代表PC2的y已收到。

四次挥手:
-
PC1想要与PC2断开连接,先发送(FIN=1)请求断开和(ACK=1)确认。
-
PC2回复(ACK=1)同意断开。这是已成半断开,这时PC1已无法继续连接PC2,但是PC2仍能给PC1发送数据。
-
接着PC2也想断开与PC1的连接,发送(FIN=1)并(ACK=1)确认。
-
.PC1(ACK=1)确认断开。

为什么是四次挥手
因为tcp协议是面向连接的安全可靠的传输层协议,同时也是全双工通信,不能单方面完全断开连接,需要双方进行确认无误后,可以断开
顺序为PC1请求断开,PC2同意断开,此时半断开状态,PC2仍然可以发送数据给PC1,但是PC1无法回复,然后PC2请求断开,PC1确认断开,此时完全断开连接
BGP有哪几种类型,分别用于哪些场景
BGP按照运行方式分为EBGP和IBGP
EBGP:运行于不同AS之间的BGP称为EBGP。为了防止AS内产生环路。当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。
IBGP:运行于同一AS内部的BGP称为IBGP。为了防止AS内产生环路,BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题,BGP设计了反射器和BGP联盟
OSPF五包、七状态
五包:
| 包 | 说明 |
|---|---|
| 1.hello包 | 用于发现和维持邻居关系,选举DR和BDR |
| 2.数据库描述包(DBD) | 用于向邻居发送摘要信息以同步链路状态数据库 |
| 3.链路状态请求包(LSR) | 在路由器收到包含新的DBD后发送,请求更详细的信息 |
| 4.链路状态更新包(LSU) | 收到LSR后发送链路状态通告(LSA),LSA的集合体LSU |
| 5.链路状态确认包(LSACK) | 确认已经收到DBD/LSU,每个LSA需要被分别确认 |
七状态:
| 状态 | 说明 |
|---|---|
| 1.Down状态 | 初始状态 |
| 2.Init状态 | 收到第一个hello包,只有对方的route id,进行回复,将自己的route id发送给对方 |
| 3.2-way状态 | 建立邻接关系,开始选举DR,BDR |
| 4.ExStart状态 | 确认主从关系 |
| 5.Exchange状态 | 双方发送DBD数据库描述,并互相确认收到 |
| 6.Loading状态 | LSR互相请求新链路状态的详细信息,LSU互相发送关于新链路的链路状态包,LSACK互相收到确认 |
| 7.Full状态 | 双方达成一致,进入收敛状态 |
Linux超全命令总结
-
uname -m 显示机器的处理器架构
-
uname -r 显示正在使用的内核版本
-
dmidecode -q 显示硬件系统部件
-
arch 显示机器的处理器架构
-
uname -m 显示机器的处理器架构
-
uname -r 显示正在使用的内核版本
-
cat /proc/cpuinfo 显示CPU info的信息
-
cat /proc/interrupts 显示中断
-
cat /proc/meminfo 校验内存使用
-
cat /proc/version 显示内核的版本
-
date 显示系统日期
| 命令 | 说明 |
|---|---|
| cat | 全拼 concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。 |
| tac | tac 是 cat 的反向拼写,因此命令的功能为反向显示文件内容。 |
| more | 分页显示文件内容。 |
| less | 分页显示文件内容,more 命令的相反用法。 |
| head | 显示文件内容的头部。 |
| tail | 显示文件内容的尾部。 |
| cut | 将文件的每一行按指定分隔符分割并输出。 |
| split | 分割文件为不同的小片段。 |
| paste | 按行合并文件内容。 |
| sort | 对文件的文本内容排序。 |
| uniq | 去除重复行 |
| wc | 统计文件的行数、单词数或字节数。 |
Docker 常见问题汇总
- 如何批量清理临时镜像文件
可以使用sudo docker rmi $(sudo docker images -q -f danging=true)命令
- 如何查看镜像支持的环境变量
使用sudo docker run IMAGE env
- 本地的镜像文件都存放在哪里
Docker相关的本地资源存放在/var/lib/docker/目录下,其中container目录存放容器信息,graph目录存放镜像信息,aufs目录下存放具体的镜像底层文件。
- 构建Docker镜像应该遵循哪些原则
整体远侧上,尽量保持镜像功能的明确和内容的精简,要点包括:
-
尽量选取满足需求但较小的基础系统镜像,建议选择debian:wheezy镜像,仅有86MB大小
-
清理编译生成文件、安装包的缓存等临时文件
-
安装各个软件时候要指定准确的版本号,并避免引入不需要的依赖
-
从安全的角度考虑,应用尽量使用系统的库和依赖
-
使用Dockerfile创建镜像时候要添加.dockerignore文件或使用干净的工作目录
更多推荐




所有评论(0)