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

一文读懂计算机网络参考模型(二)

文章目录

  • 从“用QQ聊天”看懂网络三层:交换机、IP、TCP/UDP的实战逻辑
    • 一、交换机:家里的“QQ消息分拣员”(数据链路层)
      • 1.1 核心理论+QQ场景理解
      • 1.2 QQ设备与网关的交换机通信流程
    • 二、网络层:QQ消息的“跨城导航员”(IP协议)
      • 2.1 核心理论+QQ场景理解
      • 2.2 QQ登录的网络层转发流程
        • 步骤1:DNS解析QQ登录服务器IP
        • 步骤2:ARP找网关MAC
        • 步骤3:路由转发QQ登录请求
    • 三、传输层:QQ消息的“可靠快递”与“实时快传”(TCP/UDP)
      • 3.1 核心理论+QQ功能对应理解
      • 3.2 QQ文本消息(TCP)与语音(UDP)的传输逻辑
        • (1)TCP:QQ文本消息的“可靠保障”
        • (2)UDP:QQ语音通话的“实时优先”
    • 四、总结:QQ通信的“三层协同”全过程


从“用QQ聊天”看懂网络三层:交换机、IP、TCP/UDP的实战逻辑

QQ是我们日常高频使用的社交工具——登录账号、发文本消息、打语音通话,这些操作背后,数据链路层(交换机)、网络层(IP)、传输层(TCP/UDP) 正以“分工协作”的方式保障通信。本次将完全围绕QQ的真实场景,拆解三层原理,还原数据“从你的设备到好友设备”的全过程!

一、交换机:家里的“QQ消息分拣员”(数据链路层)

当你的电脑/手机连在家庭WiFi(或网线)上时,QQ的“本地数据投递”全靠交换机(路由器自带交换机功能)——它像“家门口的快递站”,只负责把QQ的“小数据包”送到局域网内的“出口”(网关),核心靠MAC地址认设备。

1.1 核心理论+QQ场景理解

数据链路层的核心是“帧封装、MAC地址学习、泛洪转发”,对应QQ的局域网通信场景:

  • MAC地址:你的手机/电脑网卡的“硬件身份证”(比如00-1C-42-8A-5B-6C),QQ在局域网内传数据时,必须给数据包套上“以太网帧”,帧上写着“寄件人MAC(你的设备)”和“收件人MAC(网关)”;
  • 交换机学习:第一次用QQ时,交换机不知道你的设备MAC对应哪个端口,会先“登记”——比如“手机MAC→WiFi端口2”,下次你的设备发QQ数据,直接从端口2转发,不用“瞎找”;
  • 泛洪转发:如果交换机没见过网关的MAC(比如新换路由器),会把QQ数据包“广播”到所有端口,直到网关回复“我在这里”。

类比理解:把你的手机比作“QQ消息发送者”,交换机是“小区快递站”,网关是“小区门口的快递中转车”。你要发QQ消息到好友手机,第一步得把“消息包裹”(帧)交给快递站,快递站先记清“你的包裹从WiFi端口来”,再找到“中转车(网关)”的位置,把包裹送过去。

1.2 QQ设备与网关的交换机通信流程

以“手机连WiFi发QQ登录请求”为例,整个局域网内的通信步骤清晰且有逻辑:

  1. 你的手机先把QQ登录请求数据封装成“以太网帧”,帧上标注“寄件人MAC(手机自身MAC)”和“收件人MAC(网关MAC)”,然后发给家庭交换机;
  2. 交换机第一次接收来自这台手机的帧,会立即“学习”并记录:“手机的MAC地址对应WiFi端口3”,更新自己的MAC地址表;
  3. 交换机查询MAC表,找到网关MAC对应的端口(比如端口1),就把这帧QQ数据精准转发到网关;
  4. 网关收到数据后,会回复一个“确认帧”,帧上标注“寄件人MAC(网关自身MAC)”和“收件人MAC(手机MAC)”,告诉手机“已收到登录请求”;
  5. 交换机再次查询MAC表,从WiFi端口3把确认帧转发回手机;
  6. 手机收到确认后,QQ客户端就会显示“正在连接服务器”,进入下一步跨网通信。

二、网络层:QQ消息的“跨城导航员”(IP协议)

当QQ数据离开你的家庭局域网后,就需要“跨城市、跨网络”传输——比如你的消息要从上海的设备,送到北京好友的设备,这时候IP地址(“全国门牌号”)和路由器(“跨省中转站”)成了关键,ARP协议则是“门牌号转身份证”的“翻译官”。

2.1 核心理论+QQ场景理解

网络层的核心是“IP编址、路由转发、ARP解析”,对应QQ的跨网通信场景:

  • IP地址:QQ的服务器和好友设备都有“公网/内网IP”——比如QQ登录服务器IP183.60.128.10,你的设备内网IP192.168.1.105,好友设备内网IP192.168.2.200;QQ发消息时,会给数据套上“IP包”,包上写着“源IP(你的设备)”和“目标IP(QQ服务器/好友设备)”;
  • 路由转发:你的QQ消息不会“直达好友设备”,而是经多台路由器转发——比如“上海家庭网关→上海运营商路由器→北京运营商路由器→好友家网关”,每台路由器靠“路由表”判断“下一跳该送哪里”;
  • ARP解析:QQ要发数据到网关时,知道网关的IP(192.168.1.1),但不知道它的MAC地址,这时候会发“ARP请求”:“谁是192.168.1.1?请告诉我你的MAC!”,网关回复后才能继续传数据。

类比理解:把QQ消息比作“你给北京好友寄的明信片”,IP地址是“好友的详细地址(北京朝阳区XX路100号)”,路由器是“上海→北京的中转站”,ARP协议是“你问小区门卫(网关)的‘具体房间号(MAC)’,不然明信片送不到门卫手里”。

2.2 QQ登录的网络层转发流程

“你的手机登录QQ”是典型的跨网通信场景,整个过程分为“DNS解析IP”“ARP找网关MAC”“路由器转发数据”三个关键环节:

步骤1:DNS解析QQ登录服务器IP
  1. 手机要登录QQ,首先得知道“QQ登录服务器的IP地址”,于是发送DNS请求(用UDP协议),内容是“解析login.qq.com的IP”;
  2. 请求先经家庭交换机转发到网关,网关再把请求路由到运营商的DNS服务器(比如114.114.114.114,端口53);
  3. DNS服务器查询后,回复“login.qq.com对应的IP是183.60.128.10”,响应沿原路返回手机;
  4. 手机拿到QQ登录服务器的IP,就知道要把登录请求发给哪里了。
步骤2:ARP找网关MAC
  1. 手机知道网关的IP(192.168.1.1),但不知道它的MAC地址,于是发“ARP请求广播”:“谁是192.168.1.1?请告诉我你的MAC!”;
  2. 交换机把这个广播转发到所有端口,网关收到后,回复“我是网关,MAC地址是00-0F-E2-3D-7A-9B”;
  3. 交换机把网关的回复转发回手机,手机终于拿到网关的MAC,能封装以太网帧了。
步骤3:路由转发QQ登录请求
  1. 手机把“账号密码加密信息”封装成IP数据包,标注“源IP(手机内网IP:192.168.1.105)”和“目标IP(QQ登录服务器IP:183.60.128.10)”,发给交换机;
  2. 交换机转发数据包到网关,网关会做“NAT转换”——把手机的内网IP换成自己的公网IP(比如202.97.XX.XX),再转发到上海运营商路由器;
  3. 上海运营商路由器查路由表,把数据包转发到北京运营商路由器;
  4. 北京运营商路由器再把数据包转发到QQ登录服务器;
  5. 服务器验证账号密码后,回复“登录成功,分配会话ID”,响应沿原路返回(北京路由器→上海路由器→网关→交换机→手机);
  6. 手机收到回复,QQ客户端显示“登录成功”。

三、传输层:QQ消息的“可靠快递”与“实时快传”(TCP/UDP)

QQ的不同功能,对应传输层的两种协议:TCP(用于登录、文本消息,求“稳”)UDP(用于语音/视频通话,求“快”)——就像你寄快递,重要文件选“顺丰到付(TCP)”,紧急电话选“实时通话(UDP)”。

3.1 核心理论+QQ功能对应理解

传输层协议核心特性QQ对应功能场景类比
TCP面向连接(三次握手)、可靠传输(丢包重传)、按序到达账号登录、文本消息、文件传输去银行开户(需确认身份、不丢材料)
UDP无连接(直接发)、不可靠(丢包不重传)、速度快语音通话、视频通话、实时表情打电话(实时沟通,允许偶尔断1秒)

3.2 QQ文本消息(TCP)与语音(UDP)的传输逻辑

(1)TCP:QQ文本消息的“可靠保障”

当你给好友发“吃了吗?”时,QQ用TCP传输的逻辑很严谨,确保消息不丢、不缺:

  1. 三次握手建连接:你的手机先给QQ消息服务器发“我要发消息(SYN=1)”;服务器回复“收到,你也可以发(SYN=1+ACK=1)”;你的手机再回复“好的,开始发(ACK=1)”——这一步是为了确认“双方都能收发数据”;
  2. 发送消息+确认收包:你的手机把“吃了吗?”加密后,封装成TCP数据段发给服务器,服务器收到后回复“已收到(ACK=1)”;如果服务器没回复,手机会自动重发,直到收到确认;
  3. 服务器转发+好友确认:服务器把消息转发给好友的手机,好友手机收到后也回复“已收到”;服务器再告诉你的手机“好友已接收消息”;
  4. 四次挥手断连接:消息发完后,你的手机说“我发完了(FIN=1)”;服务器回复“好,等我转发完(ACK=1)”;服务器确认转发完后说“我也收完了(FIN=1)”;你的手机回复“拜拜(ACK=1)”——优雅断开连接,避免资源浪费。
(2)UDP:QQ语音通话的“实时优先”

当你和好友打QQ语音时,QQ用UDP传输的逻辑更“灵活”,优先保证实时性:

  1. 不建连接:手机直接把“语音片段”(每秒拆成多个小数据包,用PCM编码压缩)发给QQ语音中继服务器,不用等服务器“同意连接”,节省时间;
  2. 快速转发:中继服务器收到语音包后,不做“确认收包”,直接转发到好友的手机;好友手机收到后立即解码播放,延迟通常控制在100ms以内,避免“对话不同步”;
  3. 允许轻微丢包:如果某1-2个语音数据包丢了(比如网络波动),UDP不会重传(重传会导致延迟叠加),QQ会用“后续数据包”补全声音,你可能只听到“轻微卡顿”,但不会像文本消息那样“少一句话”。

四、总结:QQ通信的“三层协同”全过程

用“你给好友发文本+打语音”的完整流程,串起三层的分工:

  1. 数据链路层(交换机):你的设备将QQ数据封装成“以太网帧”,交换机通过MAC地址学习,把帧精准转发到网关,避免局域网内数据“乱跑”;
  2. 网络层(路由器):网关做NAT转换(内网IP转公网IP),路由器靠路由表把QQ数据包转发到对应的QQ服务器(登录/消息/语音服务器),ARP则负责“IP转MAC”的“翻译”,解决“知道门牌号却找不到门”的问题;
  3. 传输层(防火墙):登录、文本消息用TCP(可靠连接,确保不丢消息),语音通话用UDP(无连接,优先实时性),QQ服务器再把数据转发到好友的设备。

其实,QQ的“流畅通信”本质是“三层协议的默契配合”——交换机管“本地投递”,IP管“跨网找路”,TCP/UDP管“数据怎么传”,三者缺一不可。下次用QQ时,不妨想想:你发的每一条消息、每一句语音,都经历了这么多“网络环节”才到好友手里~

http://www.dtcms.com/a/549898.html

相关文章:

  • ALIGN 和 ROUND_UP 宏的原理与区别详解
  • 河南智慧团建官网企业网站建设优化
  • vue3 以el-icon方式使用iconfont上的图标
  • 便宜好用AIPPT推荐TOP8【2025最新】
  • MySQL8主从数据库复制故障
  • 阿里、腾讯、百度同台拆解AICoding
  • 皋兰县城乡和住房建设局网站金昌市建设局官方网站
  • 网站开发的标准流程室内设计联盟课堂
  • 学习PLC编程与PLC的总线
  • Rust 闭包:定义、捕获(深入理解)
  • Arbess零基础学习,安装与快速入门
  • 天河怎样优化网站建设vi设计步骤流程
  • 做网站要不要用jsp遵义建设厅官方网站 元丰
  • NGINX 集群负载与配置管理
  • OpenStack虚拟化平台之T版搭建部署
  • 东软专业力考试--Java基础语法部分
  • 从企业开发到AI时代:Java的新征程与技术蜕变
  • 株洲做网站建设广东上海专业网站建设公司排名
  • 上海专业建网站简历免费模板下载
  • 两数之和
  • 扩展阅读:什么是Pandas?
  • 怎样注册网站域名html5响应式模板
  • ☆本博客Simulink/FPGA/Matlab/RK3588等系统开发教程总目录
  • ThingsBoard如何设置仪表板初始默认实体
  • 记一次Gb28181视频流异常的排查
  • JavaScript 03 【基础语法学习】
  • Java项目2——拼图小游戏(上)
  • 深圳住房和建设局网站 申请大连工程信息招标网
  • uni-app VOD 与 COS 选型、开发笔记
  • Spring WebSocket实战:实时通信全解析