DNS解析 HTTP TCP/IP ICMP/NAT/NAPT相关知识点

DNS解析 HTTP TCP/IP ICMP/NAT/NAPT


文章目录

  • [DNS解析 HTTP TCP/IP ICMP/NAT/NAPT](#DNS解析 HTTP TCP/IP ICMP/NAT/NAPT)
    • [📌 一、DNS相关面试题答案](#📌 一、DNS相关面试题答案)
      • [1. DNS解析过程是怎样的?](#1. DNS解析过程是怎样的?)
      • [2. DNS使用的是TCP还是UDP?为什么?](#2. DNS使用的是TCP还是UDP?为什么?)
      • [3. 什么是DNS缓存污染?如何防止?](#3. 什么是DNS缓存污染?如何防止?)
      • [4. DNS负载均衡是如何实现的?](#4. DNS负载均衡是如何实现的?)
      • [5. 什么是DNS劫持?如何解决?](#5. 什么是DNS劫持?如何解决?)
    • [📌 二、HTTP相关面试题答案](#📌 二、HTTP相关面试题答案)
      • [1. HTTP请求报文和响应报文的格式是什么?](#1. HTTP请求报文和响应报文的格式是什么?)
      • [2. GET和POST的区别是什么?](#2. GET和POST的区别是什么?)
      • [3. HTTP/1.0、HTTP/1.1、HTTP/2.0的区别?](#3. HTTP/1.0、HTTP/1.1、HTTP/2.0的区别?)
      • [4. 什么是HTTP长连接?如何实现?](#4. 什么是HTTP长连接?如何实现?)
      • [5. HTTPS是如何保证安全的?](#5. HTTPS是如何保证安全的?)
    • [📌 三、TCP/IP相关面试题答案](#📌 三、TCP/IP相关面试题答案)
      • [1. TCP三次握手和四次挥手的过程?](#1. TCP三次握手和四次挥手的过程?)
      • [2. 为什么需要三次握手?两次不行吗?](#2. 为什么需要三次握手?两次不行吗?)
      • [3. TCP和UDP的区别?](#3. TCP和UDP的区别?)
      • [4. 什么是粘包和拆包?如何解决?](#4. 什么是粘包和拆包?如何解决?)
    • [📌 四、ICMP & NAT相关面试题答案](#📌 四、ICMP & NAT相关面试题答案)
      • [1. ICMP的主要作用是什么?](#1. ICMP的主要作用是什么?)
      • [2. ping命令的原理是什么?](#2. ping命令的原理是什么?)
      • [3. NAT和NAPT的区别是什么?](#3. NAT和NAPT的区别是什么?)
      • [4. NAT对P2P通信有什么影响?](#4. NAT对P2P通信有什么影响?)
  • 总结

好的,我给你补充每个面试题的详细答案,方便你准备面试:


📌 一、DNS相关面试题答案

1. DNS解析过程是怎样的?

答案(分步说明):

  1. 浏览器缓存:浏览器先检查自己的DNS缓存
  2. 操作系统缓存:检查本机hosts文件和系统DNS缓存
  3. 本地DNS服务器:向ISP提供的本地DNS服务器查询
  4. 根域名服务器:本地DNS向根服务器查询,返回顶级域名服务器地址
  5. 顶级域名服务器:向TLD服务器(如.com)查询,返回权威域名服务器地址
  6. 权威域名服务器:向域名解析商(如万网)的服务器查询,得到最终IP
  7. 缓存结果:本地DNS将结果缓存,返回给客户端

2. DNS使用的是TCP还是UDP?为什么?

答案

  • 主要用UDP(端口53)
    • UDP更快,开销小
    • 大多数DNS查询数据量小(<512字节)
  • 特殊情况下用TCP
    • 响应数据超过512字节(如DNS SEC)
    • 区域传输(主从DNS服务器同步)

3. 什么是DNS缓存污染?如何防止?

答案

  • 定义:攻击者伪造DNS响应,让DNS缓存错误的IP地址,将用户引导到恶意网站
  • 防止措施
    • DNSSEC(DNS安全扩展):对DNS响应进行数字签名
    • 缓存清理:定期清理DNS缓存
    • 配置安全DNS:使用114.114.114.114、8.8.8.8等可信DNS

4. DNS负载均衡是如何实现的?

答案

  • 一个域名对应多个IP地址,DNS服务器轮询返回不同IP
  • 例如:www.baidu.com 可能返回多个IP,用户轮流访问不同服务器
  • 优点:简单、无需修改代码
  • 缺点:无法感知服务器健康状态

5. 什么是DNS劫持?如何解决?

答案

  • 定义:运营商或攻击者篡改DNS响应,返回错误IP
  • 表现形式:访问正常网站却跳转到广告页或无法访问
  • 解决方法
    • 修改DNS为公共DNS(如114.114.114.114、223.5.5.5)
    • 使用DNS over HTTPS(DoH)加密DNS查询
    • 使用VPN绕过运营商DNS

📌 二、HTTP相关面试题答案

1. HTTP请求报文和响应报文的格式是什么?

答案

请求报文格式

复制代码
请求行(方法 URL 版本)
请求头(key: value)
空行
请求体(可选)

示例:

复制代码
POST /api/login HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 30

{"username":"admin","password":"123"}

响应报文格式

复制代码
状态行(版本 状态码 状态描述)
响应头
空行
响应体

示例:

复制代码
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 123

<html><body>Hello</body></html>

2. GET和POST的区别是什么?

答案

对比项 GET POST
数据传输 URL参数 请求体
数据长度 有限制(浏览器/服务器限制) 理论上无限制
安全性 低(参数暴露在URL) 较高
幂等性 幂等 不幂等
缓存 可以被缓存 一般不缓存
后退/刷新 无害 会重新提交表单

3. HTTP/1.0、HTTP/1.1、HTTP/2.0的区别?

答案

版本 主要特点
HTTP/1.0 短连接,每个请求都需要新建TCP连接
HTTP/1.1 长连接(keep-alive)、管道化、更多缓存控制
HTTP/2.0 二进制分帧、多路复用、头部压缩、服务器推送

4. 什么是HTTP长连接?如何实现?

答案

  • 定义:一个TCP连接可以发送多个HTTP请求和响应
  • 实现方式
    • HTTP/1.1默认开启长连接(Connection: keep-alive)
    • 服务器和客户端都要支持,并在空闲超时后关闭连接
  • 优点:减少TCP握手开销,提高性能

5. HTTPS是如何保证安全的?

答案

  1. 身份验证:通过CA证书验证服务器身份
  2. 加密传输:混合加密(非对称加密交换密钥 + 对称加密传输数据)
  3. 数据完整性:通过MAC(消息认证码)防止篡改

工作流程

  1. 客户端请求HTTPS连接
  2. 服务器返回证书(包含公钥)
  3. 客户端验证证书合法性
  4. 客户端生成对称密钥,用服务器公钥加密发送
  5. 后续通信使用对称密钥加密

📌 三、TCP/IP相关面试题答案

1. TCP三次握手和四次挥手的过程?

答案

三次握手(建立连接)

  1. SYN:客户端发送SYN包(seq=x),进入SYN_SENT
  2. SYN+ACK:服务器回复SYN+ACK(seq=y, ack=x+1),进入SYN_RCVD
  3. ACK:客户端发送ACK(ack=y+1),双方进入ESTABLISHED

四次挥手(断开连接)

  1. FIN:客户端发送FIN,进入FIN_WAIT_1
  2. ACK:服务器回复ACK,进入CLOSE_WAIT,客户端进入FIN_WAIT_2
  3. FIN:服务器发送FIN,进入LAST_ACK
  4. ACK:客户端回复ACK,进入TIME_WAIT,服务器关闭

2. 为什么需要三次握手?两次不行吗?

答案

  • 防止已失效的连接请求报文突然又传到服务器
    • 如果两次握手,服务器收到一个失效的SYN就会建立连接,浪费资源
  • 确保双方都有收发能力
    • 第一次:客户端能发,服务器能收
    • 第二次:服务器能发,客户端能收
    • 第三次:确认双方都能正常通信

3. TCP和UDP的区别?

答案

对比项 TCP UDP
连接性 面向连接 无连接
可靠性 可靠(确认重传) 不可靠
有序性 保证顺序 不保证
流量控制
拥塞控制
速度
应用场景 HTTP、FTP、SMTP DNS、视频通话、游戏

4. 什么是粘包和拆包?如何解决?

答案

  • 定义:TCP是流式协议,多个消息可能粘在一起(粘包)或被拆开(拆包)
  • 解决方法
    1. 固定长度:每个消息固定长度
    2. 分隔符:如\n、\r\n
    3. 长度字段:消息头包含消息体长度

📌 四、ICMP & NAT相关面试题答案

1. ICMP的主要作用是什么?

答案

  • 网络诊断:ping、tracert等工具
  • 错误报告:网络不可达、端口不可达、超时等

2. ping命令的原理是什么?

答案

  1. 发送ICMP Echo Request报文
  2. 目标收到后回复ICMP Echo Reply
  3. 计算往返时间(RTT)
  4. 根据是否收到回复判断网络连通性

3. NAT和NAPT的区别是什么?

答案

  • NAT (网络地址转换):
    • 一对一的IP地址映射
  • NAPT (网络地址端口转换):
    • 多个内网IP映射到一个公网IP,通过端口区分
    • 家庭路由器用的就是NAPT

4. NAT对P2P通信有什么影响?

答案

  • 问题:NAT后面的设备没有公网IP,外部无法主动连接
  • 解决方法
    • UDP打洞:通过中间服务器协调,建立直接连接
    • STUN/TURN协议:协助NAT穿透
    • 端口映射:手动配置路由器转发端口

这些是每个面试题的详细答案,你可以根据自己的理解进行精简或扩展。需要我帮你整理成面试背诵版吗?

总结

这篇文章是作者搜集大量面经和资料这里出来的。感谢你的支持
作者wkm是一名中国矿业大学(北京) 大一的新生,希望得到你的关注
如果可以的话,记得一键三联!

相关推荐
小江的记录本2 小时前
【AOP】AOP-面向切面编程 (系统性知识体系全解)
java·前端·后端·python·网络协议·青少年编程·代理模式
安逸sgr2 小时前
MCP 协议深度解析(一):MCP 协议概览与架构设计
服务器·网络·人工智能·网络协议·agent·mcp
cheems952713 小时前
[网络原理]http协议理论基础以及wireshark抓包分析(二)
网络·http·wireshark
北京耐用通信14 小时前
耐达讯自动化CC-Link IE转DeviceNet网关:破解三菱与欧姆龙PLC协同壁垒的工业实践
人工智能·科技·物联网·网络协议·自动化
cheems952716 小时前
[网络原理]http协议理论基础以及wireshark抓包分析(一)
网络·http·wireshark
山上三树17 小时前
Socket(套接字)
tcp/ip
牛奶19 小时前
为什么敲几个字母就能访问网站?DNS原理大揭秘
前端·http·dns
牛奶19 小时前
HTTP裸奔,HTTPS穿盔甲——它们有什么区别?
前端·http·https
Andy工程师19 小时前
WebSocket介绍
websocket·网络协议