网络应用的基本原理
1.你使用过哪些应用?
2.网络应用的体系结构有哪些
客户机/服务器结构(Client-Server,C/S)
优缺点:
- 数据集中,安全性高 缺点:服务区单点故障会影响所有的客户机
- 客户机配置要求低,更专注于交互 缺点:网络延迟影响用户体验
- 便于升级维护(之需要改服务器) 缺点:高并发时需要服务区高性能扩展
点对点结构(Peer-to-Peer,P2P)
点对点(P2P)网络的高度可伸缩性(High Scalability)是指其能够通过动态增加节点(Peer)来线性甚至超线性提升整体系统的资源、带宽和计算能力,而无需依赖中心化服务器的硬件升级。
混合结构(Hybrid)
进程间如何通信
什么是进程(举例说明)
程序:QQ安装包(QQ.exe)是一个静态文件。
进程:当你双击运行QQ时,系统创建一个进程(占用内存、CPU等资源)。
进程之间的通信有很多种,这里只说其中一种通信方式(Socket)
特点
- 支持跨网通信(TCP/UDP)
- 可用于本机进程间通信
根据上图可以知道,进程之间的通信需要ip加端口才能精准的把消息传递到另一个进程
传输协议
- TCP
- UDP
两者对比
TCP的工作流程
三次握手:建立可靠连接。
四次挥手:优雅释放连接。
分段传输:数据被拆分为多个段(MSS),每个段需确认(ACK)。
由于过程复杂所以安全性高,但是传输效率就会低
UDP的工作流程
无连接:直接发送数据包,无需握手。
无确认:发送后不关心是否到达。
只管发送不需要任何过程,所以传输效率高
(1)TCP 的适用场景
Web 浏览:HTTP/HTTPS(如 Chrome 访问网站)
文件传输:FTP、SFTP(需完整无误的文件)
电子邮件:SMTP、IMAP
远程登录:SSH、Telnet
(2)UDP 的适用场景
实时视频/语音:Zoom、WebRTC(容忍丢包,拒绝延迟)
在线游戏:王者荣耀、PUBG(低延迟优先)
DNS 查询:快速解析域名(如 8.8.8.8)
物联网(IoT):传感器数据上报(高频小数据包)
DNS的解析过程
在客户端输入一个域名是如何找到对应的ip的?
(1)本地缓存查询
客户端检查本地缓存(如浏览器缓存、操作系统缓存、Hosts文件)。
若缓存中有该域名的IP且未过期(根据TTL),则直接使用,解析结束。
(2)向递归DNS服务器查询
若本地无缓存,客户端向递归DNS服务器(如ISP提供的DNS、公共DNS如8.8.8.8)发起请求。
递归服务器自身缓存中若有记录,则返回IP,解析结束。
(3)迭代查询(权威DNS链)
若递归服务器无缓存,则按层级向权威DNS服务器迭代查询:
根域名服务器(Root DNS)
返回顶级域(TLD)服务器的地址(如.com的权威服务器)。
全球共13组根服务器(如a.root-servers.net)。
顶级域服务器(TLD DNS)
返回二级域名的权威服务器地址(如example.com的NS记录)。
权威域名服务器(Authoritative DNS)
最终返回example.com的A记录(如93.184.216.34)。
(4)结果返回与缓存
递归DNS服务器将IP返回客户端,并缓存该记录(根据TTL)。
客户端接收IP并缓存,完成解析。
3. 完整流程示例
以访问 www.example.com 为例:
浏览器检查本地缓存 → 无记录。
向递归DNS(如8.8.8.8)查询 www.example.com。
递归DNS查询根服务器 → 获得.com的TLD服务器地址。
查询.com TLD服务器 → 获得example.com的权威服务器地址(如ns1.example.com)。
查询权威服务器 → 返回www.example.com的A记录(93.184.216.34)。
递归DNS将IP返回浏览器,并缓存记录。
浏览器缓存IP,发起HTTP连接。