军队文职考试——第5期:什么是网桥?防火墙的端口防护是什么?| ARP地址解析协议的工作原理 | TCP的三次握手过程,若两次握手可以吗? | 差错检测及常见的差错检测技术

发布时间:2026/10/2 13:57:55
军队文职考试——第5期:什么是网桥?防火墙的端口防护是什么?| ARP地址解析协议的工作原理 | TCP的三次握手过程,若两次握手可以吗? | 差错检测及常见的差错检测技术 1.1 何为网桥防火墙的端口防护是指什么1. 网桥网桥是工作在数据链路层OSI 第 2 层的设备用于连接两个或多个网段根据MAC 地址转发数据帧。主要特点自学习根据收到帧的源 MAC 和进入端口建立 MAC 地址表。转发/过滤目标 MAC 在同一端口则过滤不在则转发。泛洪未知单播、广播、组播通常向其他端口泛洪。防环多网桥场景常用生成树协议 STP/RSTP 防止广播风暴。隔离冲突域不隔离广播域普通网桥/交换机每个端口隔离冲突域但默认仍处于同一广播域。交换机本质上可看作多端口网桥。2. 防火墙的端口防护端口防护是指防火墙针对TCP/UDP 端口进行的访问控制。它通常基于五元组源 IP、目的 IP、源端口、目的端口、协议常见措施默认拒绝只开放必要端口限制来源 IP/网段限制访问方向如仅允许入站或出站限制连接速率防扫描、暴力破解、SYN Flood状态检测只允许已建立连接的回包记录日志、告警和审计。作用减少暴露面防止未授权访问高危端口如 22、3389、3306、6379 等。3. Python 演示用 socket 做应用层端口防护严格来说下面不是“系统防火墙规则”而是应用层简易防火墙程序自己监听某端口只允许白名单 IP 访问其他连接立即关闭。pythonimport socket import threading LISTEN_IP 0.0.0.0 LISTEN_PORT 9999 ALLOWED_IPS {127.0.0.1, 192.168.1.10} # 白名单 def handle(conn, addr): ip, port addr if ip not in ALLOWED_IPS: print(f[拒绝] {ip}:{port}) conn.close() return print(f[允许] {ip}:{port}) try: conn.settimeout(5) data conn.recv(1024) conn.sendall(bOK: data) except Exception as e: print(异常:, e) finally: conn.close() def main(): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind((LISTEN_IP, LISTEN_PORT)) s.listen(50) print(f应用层端口防护监听 {LISTEN_IP}:{LISTEN_PORT}) while True: conn, addr s.accept() threading.Thread(targethandle, args(conn, addr), daemonTrue).start() if __name__ __main__: main()如果要创建真正的系统防火墙规则需要调用系统命令例如 Linuxpythonimport subprocess # 只允许 192.168.1.10 访问 9999其他丢弃 subprocess.run([ iptables, -A, INPUT, -p, tcp, --dport, 9999, -s, 192.168.1.10, -j, ACCEPT ], checkTrue) subprocess.run([ iptables, -A, INPUT, -p, tcp, --dport, 9999, -j, DROP ], checkTrue)注意这段使用的是subprocess不是socket库。追问网桥和路由器有什么区别网桥工作在数据链路层按 MAC 转发不隔离广播域路由器工作在网络层按 IP 转发隔离广播域并能连接不同网段。端口防护是否等于服务安全不等于。端口防护只是访问控制服务本身的漏洞、弱口令、权限配置错误仍需补丁、加固、WAF、最小权限等措施。socket 应用层过滤和 iptables 防火墙有什么区别socket 过滤通常在 TCP 三次握手完成后才判断无法防 SYN Flood也不能保护其他进程已监听的端口iptables 在内核网络栈更早丢弃报文效率更高能保护整个主机端口。1.2 谈一谈 ARP 地址解析协议的工作原理ARPAddress Resolution Protocol用于IPv4 地址到 MAC 地址的解析。同一局域网内主机发送 IP 包前需要知道下一跳的 MAC 地址。工作过程主机 A 要发送数据给同网段主机 B先查本机 ARP 缓存。若没有 B 的 MACA 广播 ARP Request发送方 IP/MACA 的 IP/MAC目标 IPB 的 IP目标 MAC全 0表示未知。局域网内所有主机收到广播但只有 IP 匹配的主机 B 处理。B 单播 ARP Reply告诉 A“B 的 IP 对应我的 MAC。”A 更新 ARP 缓存然后用 B 的 MAC 封装以太网帧发送数据。若目标不在同一网段A 解析的是网关的 MAC而不是远端主机 MAC。ARP 缓存有老化时间以减少广播并适应网络变化。免费 ARP 可用于检测 IP 冲突或更新缓存。安全风险ARP 欺骗、ARP 中间人攻击。防护静态 ARP、DHCP Snooping、动态 ARP 检测 DAI、端口安全、ARP 防火墙等。追问ARP 请求为什么广播而 ARP 应答通常单播请求时不知道目标 MAC必须广播询问应答时请求方的 IP/MAC 已知可以直接单播回复。ARP 缓存有什么作用缓存 IP 到 MAC 的映射减少重复广播提高转发效率老化机制可防止缓存长期过时。如何防止 ARP 欺骗可使用静态 ARP 绑定、DHCP Snooping、动态 ARP 检测 DAI、端口安全、ARP 防护网关以及网络分段和监控告警。1.3 谈一谈 TCP 的三次握手过程。为什么会采用三次握手若两次握手可以吗TCP 三次握手客户端发送SYN1, seqx进入SYN_SENT。服务器收到后回复SYN1, ACK1, seqy, ackx1进入SYN_RCVD。客户端收到后发送ACK1, seqx1, acky1双方进入ESTABLISHED。为什么需要三次确认双方都具备发送和接收能力同步双方初始序列号 ISN防止历史失效的连接请求突然到达导致服务器建立无效连接第三次 ACK 让服务器确认客户端已收到自己的 SYNACK。两次握手不行服务器发送 SYNACK 后若直接认为连接建立但客户端可能没收到旧的重复 SYN 可能让服务器建立“幽灵连接”浪费资源服务器无法确认客户端是否收到自己的初始序列号因此三次是最小可靠建立连接次数。追问SYN Flood 攻击与三次握手有什么关系攻击者大量发送 SYN 但不完成第三次 ACK服务器维护大量半连接耗尽队列资源。防护可用 SYN Cookie、限速、代理等。TCP 初始序列号为什么要随机防止攻击者预测序列号进行伪造报文、注入数据或会话劫持。TCP 关闭为什么通常需要四次挥手因为 TCP 是全双工两个方向要独立关闭。被动方收到 FIN 后先 ACK等应用处理完再发 FIN因此 ACK 和 FIN 常分开形成四次。1.4 面向连接和非面向连接服务的特点是什么面向连接服务代表TCP。特点通信前建立连接通信后释放连接提供可靠传输确认、重传、排序、去重提供流量控制、拥塞控制数据有序到达开销大时延相对高适合文件传输、网页、邮件、数据库等。非面向连接服务代表UDP。特点不建立连接每个报文独立发送不保证可靠、不保证顺序、不保证不重复开销小、时延低、实时性好适合音视频、DNS、实时游戏、广播/组播等可靠性可由应用层补充。追问TCP 一定可靠吗UDP 一定不可靠吗TCP 提供传输层可靠机制但不保证应用层业务一定成功UDP 本身不保证可靠但应用层可加 ACK、重传、序号来实现可靠。实时音视频为什么常用 UDP/RTP实时业务更怕延迟和重传抖动少量丢包可容忍。UDP 时延低配合 RTP/RTCP、FEC 可改善质量。如何基于 UDP 实现可靠传输可在应用层实现序号、确认、超时重传、去重、排序、拥塞控制如 QUIC、KCP、RUDP 等。1.5 什么叫做差错检测常见的差错检测技术有哪些差错检测是指在数据传输或存储过程中检测数据是否发生比特错误、丢失、篡改等。通常发送方附加冗余校验信息接收方重新计算并比对。常见技术奇偶校验增加 1 位检测奇数个比特错误简单但能力弱。校验和 Checksum如 IP/TCP/UDP 首部校验和反码求和检错能力一般。CRC 循环冗余校验多项式除法检错能力强广泛用于以太网帧、磁盘、压缩文件。汉明码不仅能检错还能纠正一位错常用于 ECC 内存。FEC 前向纠错发送冗余接收端直接纠错适合实时通信。哈希/MAC如 HMAC用于完整性认证和防篡改不单是传输差错检测。BCC 块校验字符用于某些通信协议。追问奇偶校验和 CRC 有什么区别奇偶校验简单只能检测部分错误CRC 用多项式运算能检测更多错误尤其突发错误检错能力更强。校验和为什么通常不能纠错校验和冗余信息少只能判断“可能出错”不能定位具体错误比特纠错需要更多冗余如汉明码、FEC。汉明码和 CRC 的典型应用场景是什么汉明码常用于内存 ECC 等需要纠错的场景CRC 常用于以太网、磁盘、文件传输等需要强检错的场景。