【系统架构设计(35)】TCP/IP协议族详解

文章目录

一、TCP/IP模型层次及对应协议

1. TCP/IP四层模型

TCP/IP模型是互联网通信的基础架构,将网络功能划分为四个层次,每层负责特定的网络功能:

  1. 应用层:为应用程序提供网络服务,像图中的POP3(110端口,用于接收邮件)、FTP(20/21端口,文件传输)、HTTP(80端口,网页浏览)等协议都在此层。

  2. 传输层:负责端到端的数据传输,有TCP(面向连接,可靠传输)和UDP(无连接,传输效率高)协议。

  3. 网际层:处理数据包的寻址和路由,IP协议是核心,ICMP用于网络诊断,IGMP用于组播管理,ARP用于IP地址到MAC地址转换,RARP反之。

  4. 网络接口层:负责与物理网络连接,处理物理介质上的数据传输,如CSMA/CD(以太网常用)、Token Ring(令牌环网)。

2. 与OSI七层模型对比

  • OSI模型:是理论上的网络分层标准,从下到上依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
  • TCP/IP模型:更注重实用性和简洁性,将OSI的会话层、表示层功能归到应用层,网络层对应网际层,数据链路层和物理层对应网络接口层。

二、协议默认端口详解

协议 基于协议 端口号 用途描述
DHCP UDP 服务器端67,客户端68 自动分配IP地址等网络参数
TFTP UDP 69 简单文件传输协议,用于简单文件传输
SNMP UDP 161 简单网络管理协议,用于网络设备管理和监控
HTTP TCP 80 超文本传输协议,用于网页浏览
FTP TCP 控制连接21,数据连接20 文件传输协议,用于文件传输
Telnet TCP 23 远程登录协议,用于远程登录主机操作
SMTP TCP 25 简单邮件传输协议,用于发送邮件
POP3 TCP 110 用于接收邮件
DNS UDP/TCP 53 域名解析协议,主要基于UDP,大数据包时用TCP

三、TCP和UDP协议深度对比

对比维度 TCP(传输控制协议) UDP(用户数据报协议)
连接特性 面向连接(需三次握手建立连接,四次挥手释放连接) 无连接(直接发送数据,无需建立连接)
可靠性 可靠传输(通过差错校验、超时重传、按序交付等保障) 不可靠传输(无重传机制,不保证数据完整性和顺序)
流量控制 有(通过滑动窗口协议)
拥塞控制 有(避免网络拥塞) 无(可能加重网络拥塞)
数据传输方式 字节流(无数据边界) 数据报(有明确数据边界)
适用场景 对可靠性要求高的场景(如文件传输、网页浏览) 对实时性要求高的场景(如视频直播、域名解析)
相关应用协议 HTTP、FTP、Telnet、POP3、SMTP等 DNS、DHCP、TFTP、SNMP等

四、DHCP协议详解

1. DHCP基本概念

DHCP(动态主机配置协议)采用客户机/服务器模型,DHCP服务器为客户机分配IP地址等网络配置参数。

  • 多个服务器:园区网规模较大时,单个DHCP服务器可能无法满足大量设备的地址分配需求或存在单点故障风险,所以可以部署多个DHCP服务器,实现负载均衡和冗余备份。
  • 多网段IP分配:DHCP服务器可进行相关配置,为不同子网段的设备分配IP地址,提高管理灵活性和资源利用率。
  • 功能开启:在服务器上,DHCP服务默认不开启,需管理员手动配置启动,这是出于安全和网络管理有序性的考虑,防止未经授权的DHCP服务干扰网络。

2. IP地址分配方式

分配方式
  • 固定分配:由管理员手动指定,将特定IP地址与设备的MAC地址绑定,常用于对IP地址有固定需求的设备,如服务器等,保证设备每次联网都能获得相同IP。
  • 动态分配:为设备分配有使用期限(租约)的IP地址,租约默认为8天。当租约过半(4天)时,客户机向DHCP服务器申请续租;租约超过87.5%(7天)还未联系上原DHCP服务器,则开始联系其他DHCP服务器。适用于大多数普通终端设备,提高IP地址利用率。
  • 自动分配:给设备分配一个IP地址且无使用期限限制,设备首次联网获取后可长期使用。不过实际应用中相对少见。
无效地址
  • 169.254.X.X:当设备无法从DHCP服务器获取有效IP地址时,可能会自动配置到此网段IP,属于链路本地地址,只能在本地链路通信。
  • 0.0.0.0:表示未知IP地址,设备启动初期还未获取到有效IP时会使用,或用于向所有IP地址广播请求。

3. DHCP自动获取IP工作原理

步骤 报文类型 过程描述
1 DHCP发现(DISCOVER) 客户端首次接入网络或需要重新获取IP地址时,会以广播形式发送DHCP DISCOVER报文。因为此时客户端不知道DHCP服务器地址,所以使用广播(目的IP为255.255.255.255)向网络中所有设备发送,寻找可用的DHCP服务器。
2 DHCP提供(OFFER) 网络中的DHCP服务器接收到DISCOVER报文后,从地址池中选择一个未分配的IP地址,并将包括此IP地址、子网掩码、默认网关、DNS服务器地址等配置信息的DHCP OFFER报文发送给客户端。此报文一般以单播形式发送(如果客户端还没配置IP,也可能用广播)。
3 DHCP请求(REQUEST) 客户端可能收到多个DHCP服务器的OFFER报文,它会选择其中一个(通常是最先收到的),然后以广播形式发送DHCP REQUEST报文。该报文一方面告知被选择的DHCP服务器它接受提供的IP地址,另一方面通知其他未被选择的DHCP服务器放弃此次分配。
4 DHCP确认(ACK) 被客户端选中的DHCP服务器收到REQUEST报文后,会将包含IP地址租约期限等信息的DHCP ACK报文发送给客户端,确认IP地址分配成功。至此,客户端成功获取IP地址及相关网络配置参数,可以正常联网。
5 DHCP拒绝(NACK) 如果DHCP服务器在处理客户端请求时,发现提供的IP地址已不可用(如已被其他设备占用)等问题,会向客户端发送DHCP NACK报文,拒绝此次IP地址分配,客户端需重新发起获取流程。
6 客户端释放(RELEASE) 当客户端不再需要使用分配的IP地址(如设备关机、手动释放IP等情况),会向DHCP服务器发送DHCP RELEASE报文,主动释放IP地址,让该地址可被重新分配给其他设备。
7 客户端拒绝分配IP(Decline) 客户端收到DHCP服务器分配的IP地址后,在使用前进行地址冲突检测(如发送ARP请求),若发现该IP地址已被网络中其他设备占用,会向DHCP服务器发送DHCP Decline报文,拒绝此次分配,并重新发起获取IP地址流程。

五、DNS服务详解

1. DNS查询类型

递归查询(答案)
  1. 主机发起查询:主机(m.xyz.com)需要查找y.abc.com的IP地址,向本地域名服务器(dns.xyz.com)发起递归查询(步骤①)。递归查询的特点是服务器必须回答目标IP与域名的映射关系。
  2. 本地域名服务器处理:若本地域名服务器有该域名-IP映射的缓存,就直接返回结果;若没有,本地域名服务器代替主机继续查询。它向根域名服务器发起递归查询(步骤②)。
  3. 根域名服务器交互:根域名服务器收到查询请求后,若自身没有所需映射信息,它可能向顶级域名服务器查询(步骤③),然后接收顶级域名服务器的回复(步骤④),再将相关信息返回给本地域名服务器(步骤⑥)。
  4. 权限域名服务器查询:本地域名服务器根据根域名服务器回复的信息,向权限域名服务器(dns.abc.com)查询(步骤⑤),权限域名服务器返回y.abc.com的IP地址(步骤⑦)。
  5. 结果返回:本地域名服务器将获取到的IP地址返回给主机(步骤⑧)。

关于根域名服务器 :由于本地域名服务器向根域名服务器采用递归查询,根域名服务器需承担较多查询工作,负担重,且这种方式效率低,实际应用中较少采用这种模式,更多是采用迭代查询来减轻根域名服务器压力,提高查询效率。

迭代查询(线索)
  • 本地域名服务器向根域名服务器发起迭代查询(步骤②)。迭代查询中,服务器收到查询请求回复一次结果,该结果不一定是目标IP与域名映射关系,也可能是其他DNS服务器地址。根域名服务器告知本地域名服务器顶级域名服务器(dns.com)地址(步骤③)。
  • 本地域名服务器向顶级域名服务器查询(步骤④),顶级域名服务器回复权限域名服务器(dns.abc.com)地址(步骤⑤)。
  • 本地域名服务器向权限域名服务器查询(步骤⑥),权限域名服务器返回y.abc.com的IP地址(步骤⑦)。
  • 本地域名服务器将获取到的IP地址返回给主机(步骤⑧)。

总的来说,递归查询主要在主机与本地域名服务器间,本地域名服务器 承担查询责任;迭代查询用于本地域名服务器与其他各级域名服务器间交互

2. 域名解析流程

j 复制代码
┌───────────┐
│ 浏览器/应用 │
└─────┬─────┘
      ↓
┌─────────────────────────────────┐
│ 1. 检查本地 HOSTS 文件           │
│    - 命中 → 直接返回 IP          │
│    - 未命中 → 下一步             │
└───────────────┬─────────────────┘
                ↓
┌─────────────────────────────────┐
│ 2. 检查本地 DNS 缓存             │
│    - 命中 → 直接返回 IP          │
│    - 未命中 → 下一步             │
└───────────────┬─────────────────┘
                ↓
┌─────────────────────────────────┐
│ 3. 向本地 DNS 服务器发送查询请求  │
└───────────────┬─────────────────┘
                ↓
┌─────────────────────────────────┐
│ 本地 DNS 服务器                  │
│ ┌─────────────────────────────┐ │
│ │ 4. 检查自身缓存             │ │
│ │    - 命中 → 返回 IP          │ │
│ │    - 未命中 → 下一步         │ │
│ └───────────┬─────────────────┘ │
│             ↓                   │
│ ┌─────────────────────────────┐ │
│ │ 5. 检查区域记录(自身负责)  │ │
│ │    - 命中 → 返回 IP          │ │
│ │    - 未命中 → 下一步         │ │
│ └───────────┬─────────────────┘ │
│             ↓                   │
│ ┌─────────────────────────────┐ │
│ │ 6. 转发查询(如有配置转发器)│ │
│ │    - 成功 → 返回 IP          │ │
│ │    - 失败 → 下一步           │ │
│ └───────────┬─────────────────┘ │
│             ↓                   │
│ ┌─────────────────────────────┐ │
│ │ 7. 迭代查询流程              │ │
│ │    ① 向根域名服务器查询     │ │
│ │    ② 根返回顶级域服务器地址  │ │
│ │    ③ 向顶级域服务器查询     │ │
│ │    ④ 返回权限服务器地址     │ │
│ │    ⑤ 向权限服务器查询       │ │
│ │    ⑥ 权限服务器返回最终 IP  │ │
│ └─────────────────────────────┘ │
└───────────────┬─────────────────┘
                ↓
┌─────────────────────────────────┐
│ 8. 返回 IP 地址给浏览器          │
└───────────────┬─────────────────┘
                ↓
┌─────────────────────────────────┐
│ 9. 浏览器与目标服务器建立连接    │
│    并发起 HTTP 请求              │
└─────────────────────────────────┘

浏览器输入域名时的解析流程

步骤 查询对象 描述
1 HOSTS文件 查找本地静态域名-IP映射表,命中则直接获取IP
2 本地DNS缓存 检查计算机之前解析过的域名缓存,命中则获取IP
3 本地DNS服务器 向配置的本地DNS服务器查询,它会先查自身缓存或数据库
4 根域名服务器 本地DNS无结果时,向根域名服务器查询
5 顶级域名服务器 根服务器返回顶级域名服务器地址,本地DNS继续查询
6 权限域名服务器 顶级域名服务器指引到权限服务器,最终获取IP地址

主域名服务器收到域名请求时的解析流程

步骤 查询对象 描述
1 本地缓存记录 先检查自身缓存中是否有该域名解析信息
2 区域记录 查询服务器负责管理的特定区域内的域名信息
3 转发域名服务器 通过转发服务器协助进一步查找
4 根域名服务器 若无结果,向根服务器查询,后续流程类似浏览器解析
dart 复制代码
**解析**:
- **A选项**:/etc/hostname文件主要用于设置主机名,并非DNS配置文件,所以A选项错误。
- **B选项**:在Linux系统中不存在/dev/host.conf这个用于DNS配置的标准文件,/dev目录主要存放设备文件,所以B选项错误。
- **C选项**:/etc/resolv.conf是Linux系统中负责DNS配置的文件,通过其中的nameserver指定DNS服务器IP地址,domain定义本地域名,search定义域名搜索列表等,符合题目描述,所以C选项正确。
- **D选项**:/dev/name.conf不是Linux系统中与DNS配置相关的文件,/dev目录性质决定它不是存放配置文件之处,所以D选项错误。

六、考试知识点总结与重点分析

1. 文章知识范围概览

本文涵盖了TCP/IP协议族的核心知识体系,主要包含以下六个知识模块:

知识模块 核心内容 重要程度 考试频率
协议层次结构 TCP/IP四层模型、OSI七层对比 ⭐⭐⭐⭐⭐ 高频
端口与协议 常用协议默认端口、TCP/UDP分类 ⭐⭐⭐⭐⭐ 高频
传输层协议 TCP可靠传输、UDP高效传输 ⭐⭐⭐⭐⭐ 高频
DHCP协议 自动配置机制、工作流程 ⭐⭐⭐⭐ 中高频
DNS服务 域名解析、查询类型 ⭐⭐⭐⭐ 中高频

2. 重点考试知识点

2.1 必考知识点(⭐⭐⭐⭐⭐)

TCP/IP四层模型

  • 各层名称:应用层、传输层、网际层、网络接口层
  • 各层功能:应用层提供网络服务、传输层负责端到端传输、网际层处理寻址路由、网络接口层处理物理连接
  • 与OSI七层模型对应关系:会话层表示层→应用层,网络层→网际层,数据链路层物理层→网络接口层

协议默认端口

  • HTTP:80端口(网页浏览)
  • FTP:21端口(控制)、20端口(数据)
  • SMTP:25端口(发送邮件)
  • POP3:110端口(接收邮件)
  • DNS:53端口(域名解析)
  • DHCP:67端口(服务器)、68端口(客户端)
  • SNMP:161端口(网络管理)
  • TFTP:69端口(简单文件传输)

TCP与UDP对比

  • 连接特性:TCP面向连接(三次握手),UDP无连接
  • 可靠性:TCP可靠传输(差错校验、重传),UDP不可靠
  • 流量控制:TCP有流量控制和拥塞控制,UDP没有
  • 应用场景:TCP用于文件传输、网页浏览,UDP用于DNS、DHCP、实时音视频
2.2 高频考试知识点(⭐⭐⭐⭐)

DHCP工作流程

  • 7个步骤:DISCOVER→OFFER→REQUEST→ACK→NACK→RELEASE→Decline
  • 关键时间点:租约默认8天,过半(4天)续租,87.5%(7天)联系其他服务器
  • 特殊地址:169.254.X.X(链路本地),0.0.0.0(未知地址)

DNS查询类型

  • 递归查询:服务器必须回答目标IP,主要用于主机与本地DNS服务器间
  • 迭代查询:服务器回复一次结果,可能是IP或其他DNS服务器地址
  • 解析流程:HOSTS文件→本地缓存→本地DNS服务器→根域名服务器→顶级域名服务器→权限域名服务器
2.3 中频考试知识点(⭐⭐⭐)

协议选择原则

  • 可靠性要求高:选择TCP(文件传输、邮件服务)
  • 实时性要求高:选择UDP(音视频、网络管理)
  • 数据完整性重要:选择TCP
  • 传输效率优先:选择UDP

Linux DNS配置

  • 主要配置文件:/etc/resolv.conf
  • 配置内容:nameserver(DNS服务器)、domain(本地域名)、search(搜索列表)
  • 其他文件:/etc/hostname(主机名)、/etc/hosts(本地解析)

3. 典型考试题型分析

3.1 选择题(单选/多选)

协议层次类

  • 题目:下列协议中属于应用层的是?
  • 选项:A. TCP B. HTTP C. IP D. ARP
  • 答案:B
  • 考点:协议层次分布

端口号类

  • 题目:FTP协议使用的端口号是?
  • 选项:A. 20,21 B. 22,23 C. 80,443 D. 53,67
  • 答案:A
  • 考点:协议默认端口

协议特性类

  • 题目:下列关于TCP和UDP的说法正确的是?
  • 选项:A. TCP是无连接协议 B. UDP有流量控制 C. TCP保证数据可靠传输 D. UDP比TCP效率低
  • 答案:C
  • 考点:TCP/UDP特性对比
3.2 填空题

DHCP流程类

  • 题目:DHCP客户端获取IP地址的完整流程是:DISCOVER→→REQUEST→
  • 答案:OFFER、ACK
  • 考点:DHCP工作流程

DNS查询类

  • 题目:DNS查询分为_____查询和_____查询两种类型
  • 答案:递归、迭代
  • 考点:DNS查询类型
3.3 简答题

协议对比类

  • 题目:请简述TCP和UDP协议的主要区别
  • 答案要点:连接特性、可靠性、流量控制、应用场景
  • 考点:协议深度理解

工作流程类

  • 题目:请描述DHCP自动获取IP地址的完整过程
  • 答案要点:7个步骤的详细说明
  • 考点:协议工作机制
3.4 案例分析题

故障诊断类

  • 题目:某企业网络出现IP地址冲突,请分析可能原因并提出解决方案
  • 答案要点:DHCP配置问题、地址池管理、冲突检测机制
  • 考点:实际应用能力

协议选择类

  • 题目:某公司需要部署视频会议系统,请分析应该选择TCP还是UDP协议
  • 答案要点:实时性要求、数据完整性、网络环境考虑
  • 考点:协议选择原则
相关推荐
2301_809815253 小时前
网络协议——UDP&TCP协议
网络·网络协议·udp
#include<菜鸡>4 小时前
AXI_CAN IP 简单使用。(仿真、microblaze)
网络协议·tcp/ip·fpga开发
西蓝花MQ5 小时前
系统架构设计能力
系统架构
小白iP代理6 小时前
动态住宅IP vs. 静态数据中心IP:未来趋势与当前选择
网络·网络协议·tcp/ip
憧憬成为原神糕手6 小时前
Udp 和 Tcp socket的一般编程套路(笔记)
网络·tcp/ip·udp
LeoZY_6 小时前
开源超级终端PuTTY改进之:增加点对点网络协议IocHub,实现跨网段远程登录
运维·网络·stm32·嵌入式硬件·网络协议·运维开发
文火冰糖的硅基工坊6 小时前
[硬件电路-271]: RS-232 电平转换芯片MAX232AESE 功能概述与管脚定义
单片机·嵌入式硬件·系统架构·信号处理·跨学科融合
有趣灵魂7 小时前
在docker中容器使用iptables限制IP访问端口
服务器·tcp/ip·docker·容器
2501_915921438 小时前
HTTPS 映射如何做?(HTTPS 映射配置、SNI 映射、TLS 终止、内网映射与 iOS 真机验证实战)
android·网络协议·ios·小程序·https·uni-app·iphone