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

浏览器访问百度首页的七层协议协作流程

我们以“用浏览器访问 www.baidu.com 并加载首页”为例,拆解整个过程中 OSI七层模型 如何层层协作,让抽象的分层协议变得直观可感:

例子:浏览器访问百度首页的七层协议协作流程

假设你在电脑上打开 Chrome,输入 www.baidu.com 并按下回车,背后每一层都在执行特定任务,最终让百度首页呈现在你面前。我们从 应用层(最上层)物理层(最下层) 梳理“发送请求”的过程,再从 物理层应用层 梳理“接收响应”的过程(核心看“每层做了什么”)。

一、发送请求:从应用层到物理层(数据向下传递,层层“封装”)

1. 应用层(第七层):用户触发“访问需求”,生成请求数据

  • 核心任务:将用户的“访问百度”需求,转化为网络能识别的“应用层协议数据”。
  • 具体操作
    • Chrome 作为应用程序,遵循 HTTP协议(超文本传输协议),生成一个“HTTP请求报文”,内容包含:
      • 请求方法(GET,表示“获取资源”);
      • 目标地址(www.baidu.com 的首页路径 /);
      • 浏览器信息(如 User-Agent: Chrome/114.0.0.0)等。
    • 此时数据是“HTTP请求报文”(应用层的协议数据单元,PDU)。

2. 表示层(第六层):处理数据格式,确保“双方能看懂”

  • 核心任务:对应用层数据做“格式转换/加密”,让接收方(百度服务器)能解析。
  • 具体操作
    • 因为是 HTTP(非加密),这里主要做“数据编码”:将请求报文中的中文、特殊符号(如 / ?)转换为 ASCII码URL编码(比如空格转成 %20);
    • 若访问的是 https://www.baidu.com(加密),表示层会用 SSL/TLS协议 对HTTP数据加密,防止传输中被窃取。
    • 此时数据被“包装”上表示层的格式/加密信息。

3. 会话层(第五层):建立“浏览器与百度服务器”的会话连接

  • 核心任务:管理“进程级的通信会话”,确保连接稳定,记录通信状态。
  • 具体操作
    • 会话层会为 Chrome 的“访问百度”进程建立一个“会话标识”,记录“当前是哪个浏览器窗口的请求”;
    • 若后续刷新页面,会话层会复用已建立的会话,避免重复创建连接(类似“打电话时保持通话状态”)。
    • 此时数据关联了“会话信息”,确保不会与其他进程的请求混淆。

4. 传输层(第四层):建立“端到端”的可靠传输,指定“进程端口”

  • 核心任务:用 TCP协议(面向连接)为应用层数据提供“可靠传输保障”,并通过“端口号”定位目标进程。
  • 具体操作
    • 浏览器(客户端)随机生成一个“源端口号”(如 54321),目标端口号固定为 80(HTTP协议的默认端口,百度服务器的HTTP进程监听80端口);
    • TCP会先与百度服务器进行 三次握手,建立可靠连接(确保双方都能收发数据);
    • 将“会话层传来的数据”分割成“TCP段”,每个段添加“序号”和“校验和”(序号确保数据按顺序到达,校验和检测数据是否损坏)。
    • 此时数据变成“TCP段”,带上了端口号和可靠传输的控制信息。

5. 网络层(第三层):确定“跨网络的路由路径”,添加“IP地址”

  • 核心任务:用 IP协议 为TCP段分配“源IP”和“目标IP”,并通过路由器找到“从你的电脑到百度服务器”的传输路径。
  • 具体操作
    • 源IP:你的电脑在局域网中的IP(如 192.168.1.100),经过路由器后转换为“公网IP”(如 202.103.xx.xx);
    • 目标IP:通过 DNS协议(应用层,但依赖网络层)解析 www.baidu.com,得到百度服务器的公网IP(如 180.101.49.12);
    • 将“TCP段”包装成“IP数据包”,添加IP头(包含源IP、目标IP、TTL生存时间等);
    • 路由器根据“目标IP”和路由表,确定下一个转发节点(比如从你家路由器→小区路由器→运营商骨干网路由器→百度机房路由器)。
    • 此时数据变成“IP数据包”,知道了“从哪来,到哪去”。

6. 数据链路层(第二层):将IP包封装成“帧”,用MAC地址找“相邻设备”

  • 核心任务:在“相邻设备”(如你的电脑→家路由器,家路由器→小区路由器)之间传输数据,通过 MAC地址(硬件地址)定位物理设备。
  • 具体操作
    • 将“IP数据包”包装成“以太网帧”,添加“帧头”和“帧尾”:
      • 帧头:包含“源MAC地址”(你电脑网卡的MAC,如 00:1A:2B:3C:4D:5E)和“目标MAC地址”(下一跳设备的MAC,如家路由器的MAC);
      • 帧尾:添加 CRC校验码(检测帧在传输中是否损坏);
    • 通过网线/无线信号(Wi-Fi),将帧发送给下一跳设备(如家路由器),路由器收到后验证CRC,若无误则剥离帧头,取出IP数据包传给网络层。
    • 此时数据变成“以太网帧”,能在物理介质上找到“邻居设备”。

7. 物理层(第一层):将“帧”转换为“物理信号”,在介质中传输

  • 核心任务:将数据链路层的“二进制帧”(0和1),转换为“电信号/光信号/无线电信号”,通过物理介质(网线、光纤、Wi-Fi)传输。
  • 具体操作
    • 若用网线:电脑网卡将“0”转换为“低电平”,“1”转换为“高电平”,通过网线的铜芯传输;
    • 若用Wi-Fi:网卡将二进制数据调制为“无线电波”(如 2.4GHz/5GHz频段),通过空气传输;
    • 信号到达下一跳设备(如家路由器)后,路由器的物理层将信号还原为二进制帧,传给数据链路层。
    • 此时数据变成“物理信号”,完成了从“电脑到网络”的第一步传输。

二、接收响应:从物理层到应用层(数据向上传递,层层“解封装”)

百度服务器收到你的请求后,会反向执行上述流程,生成“HTTP响应报文”(包含百度首页的HTML代码、图片链接等),再通过七层协议传回你的电脑:

  1. 物理层:服务器的物理层将响应信号还原为帧;
  2. 数据链路层:剥离帧头帧尾,取出IP数据包;
  3. 网络层:剥离IP头,取出TCP段;
  4. 传输层:验证TCP段的序号和校验和,按序重组数据,传给会话层;
  5. 会话层:确认会话标识,将数据传给表示层;
  6. 表示层:若加密则解密,还原HTTP响应数据;
  7. 应用层:Chrome 解析HTTP响应中的HTML、CSS、JS代码,渲染后呈现出百度首页。

关键总结:每层的“核心角色”

通过这个例子能清晰看到:

  • 上层(应用/表示/会话):管“用户能感知的需求”(如访问网页、数据加密);
  • 中层(传输/网络):管“跨设备的可靠传输与路由”(如TCP保可靠、IP找路径);
  • 下层(数据链路/物理):管“物理介质上的信号传输”(如帧封装、电信号转换);
  • 每一层只做“自己的事”,通过“封装/解封装”协作,最终实现“用户点击→页面呈现”的完整流程。
http://www.dtcms.com/a/462586.html

相关文章:

  • 陕西中小企业网站建设推广促销直播网站开发
  • 算起计算器APP发布
  • 做类似淘宝的网站设计需要什么视频素材模板免费下载网
  • 商业网站源码安卓app是用什么语言开发的
  • ros2 自定义消息、服务、动作接口详细范例
  • 企业网站托管后果html5和h5的区别
  • 做网站营业执照经营范围怎么填写如何修改asp网站栏目
  • css里的where选择器的用法
  • 网站人多怎么优化全网引擎搜索
  • 10-七麦js扣代码
  • 做一婚恋网站多少钱医疗网络营销方式
  • golang面经——sync相关
  • wordpress 财经插件wordpress mysql优化
  • 软考中级习题与解答——第十四章_UML建模(5)
  • 万网怎样做网站调试字体怎么装到wordpress
  • 【Open3D】Ch.2:点云体素下采样 | Python
  • 奉贤区做网站wordpress五分钟安装
  • 复杂网络仿真从入门到精通:0 学习路线
  • 怎样创建网站数据库服装租赁 网站 php
  • 礼品工艺品网站建设首页网站模板
  • 福州推广企业网站网站优化助手
  • Playwright MCP 使用归档:让 AI IDE 看懂 API 文档与流程图
  • 网站优化 情况公司注册地址在哪里查询
  • (二)Kafka学习笔记(p13-p23)
  • .net 微信网站开发wordpress 安装 此网页包含重定向循环
  • 【开题答辩过程】以《基于SpringBoot的消防安全应急培训管理平台》为例,不会开题答辩的可以进来看看
  • iis 创建网站o2o有哪些电商平台
  • 南京市环保局官方南京做网站wordpress制作404页面模板
  • python入门到入土---装饰器
  • 自己做网站不推广东莞网站建设哪家专业