当前位置: 首页 > news >正文

计算机网络基础总结:TCP/IP 模型、TCP vs UDP、DNS 查询过程

        在学习计算机网络的过程中,理解 TCP/IP 模型与 OSI 模型的对应关系、掌握 TCP 与 UDP 的区别,以及熟悉 DNS 的查询过程,是打好网络基础的关键。本文将围绕这三部分进行简明扼要的讲解。


一、TCP/IP 模型与 OSI 七层模型的对应关系

1. OSI 七层模型

OSI 模型(Open System Interconnection Model)是由 ISO 提出的一种网络通信的分层体系结构,其层次从上到下依次是:

  1. 应用层(Application)

  2. 表示层(Presentation)

  3. 会话层(Session)

  4. 传输层(Transport)

  5. 网络层(Network)

  6. 数据链路层(Data Link)

  7. 物理层(Physical)

2. TCP/IP 四层模型

TCP/IP 模型是互联网实际采用的模型,分为四层:

  1. 应用层(Application)

  2. 传输层(Transport)

  3. 网络层(Internet)

  4. 网络接口层(Network Access / Link)

3. 对应关系

OSI 模型TCP/IP 模型说明
应用层应用层如 HTTP、FTP、DNS
表示层合并入应用层处理
会话层合并入应用层处理
传输层传输层如 TCP、UDP
网络层网络层(Internet)如 IP、ICMP
数据链路层网络接口层(Link)如 Ethernet
物理层网络接口层(Link)包括硬件设备通信

总结:TCP/IP 模型更接近现实应用,OSI 模型更利于教学与理解。


二、TCP 与 UDP 的区别及应用场景

TCP(Transmission Control Protocol)和 UDP(User Datagram Protocol)都是传输层协议,但在设计哲学和应用场景上差异明显。

1. 区别对比

特性TCPUDP
是否连接面向连接(连接建立需三次握手)无连接
可靠性可靠,提供数据确认和重传不可靠,无确认机制
顺序保证有序(按发送顺序接收)无序(可能乱序接收)
传输效率较低(头部较大,需维护连接)高(头部小,无需维护状态)
流量控制
拥塞控制

2. 应用场景

  • TCP 典型应用:

    • HTTP/HTTPS(网页浏览)

    • FTP(文件传输)

    • SMTP(邮件传输)

    • SSH(远程登录)

  • UDP 典型应用:

    • DNS 查询

    • VoIP(网络电话)

    • 视频会议、直播

    • 游戏(如实时对战)

总结:TCP 重可靠性,UDP 重实时性和效率。选择取决于具体需求。


三、DNS 查询过程详解

DNS(Domain Name System)用于将人类可读的域名(如 www.example.com)解析为 IP 地址。

1. 查询流程

(1)浏览器或操作系统先查找本地缓存;
(2)未命中则向配置的 DNS 服务器发起请求;
(3)DNS 服务器查询域名的 IP 并返回。

具体的查询方式可分为:

2. 递归查询 vs 迭代查询

特性递归查询迭代查询
查询发起者客户端向本地 DNS 请求,要求最终结果本地 DNS 向根、顶级、权威 DNS 逐层查询
过程控制请求由本地 DNS 服务器代为完成(客户不知过程)本地 DNS 服务器自己控制查询流程
返回内容直接返回最终 IP 地址返回下一层 DNS 服务器的地址
示例场景客户端 → 本地 DNS(通常是递归查询)本地 DNS 向外部服务器发出的迭代查询

3. DNS 查询完整示意图

用户请求 www.example.com↓
浏览器缓存 / 系统缓存↓
本地 DNS 服务器(递归查询)↓
根 DNS 服务器(迭代查询)↓
.com 顶级域名服务器(迭代查询)↓
example.com 权威服务器(迭代查询)↓
返回 IP 地址

总结:客户端通常发起递归查询,DNS 服务器之间使用迭代查询来逐级获取信息。


小结

  • TCP/IP 模型是现实网络通信的主流分层模型,其与 OSI 模型在分层粒度上有所不同,但本质目标一致。

  • TCP 提供可靠、有序传输,适用于对数据完整性要求高的场景;UDP 提供高效、无连接的传输,适用于实时性强的应用。

  • DNS 查询中,客户端发起递归查询,DNS 服务器之间使用迭代查询,最终解析域名为 IP 地址。


如果你正在准备计算机网络考试、笔试面试,或搭建网络相关系统,理解这三部分是入门的关键。欢迎点赞、收藏与评论交流!

相关文章:

  • 【C++】25. 哈希表封装unordered_map和unordered_set
  • 大型语言模型(LLM)面试问题集
  • 分类数据集 - 垃圾分类数据集下载
  • 【SpringBoot+SpringCloud】Linux配置nacos踩坑大全
  • Go语言并发模型与模式:Worker Pool 模式
  • Spring通用类型转换的实现原理
  • 红黑树完全指南:为何工程都用它?原理、实现、场景、误区全解析
  • IDEA为何一直无法使用超过4g内存
  • 掌握 HTTP 请求:理解 cURL GET 语法
  • 智警杯备赛--excel模块
  • 【Zephyr 系列 15】构建企业级 BLE 模块通用框架:驱动 + 事件 + 状态机 + 低功耗全栈设计
  • Spring Boot 整合 Apache Flink 的详细过程
  • 黑马Javaweb Request和Response
  • 【数据结构】图论基石:最小生成树(MST)实战精解与Prim/Kruskal算法详解
  • 探索 Shell:选择适合你的命令行利器 bash, zsh, fish, dash, sh...
  • 【学习笔记】深入理解Java虚拟机学习笔记——第3章 垃圾收集器与内存分配策略
  • JVM——对象模型:JVM对象的内部机制和存在方式是怎样的?
  • 嵌入式全栈面试指南:TCP/IP、C 语言基础、STM32 外设与 RT‑Thread
  • 04.管理表
  • iview-admin静态资源js按需加载配置
  • 哈尔滨电子政务网站建设/写一篇软文1000字
  • 做企业网站用什么cms/近期发生的重大新闻
  • 网站恶意刷/外包网络推广营销
  • 互联网网站建设公司/百度seo点击排名优化
  • 北京市住房和城乡建设委官方网站/免费的html网站
  • 怎么做网站弹窗/百度推广一年大概需要多少钱