<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>分层架构 on ZiYang FrontEnd Interview</title><link>https://fe-interview.pangcy.cn/tags/%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84/</link><description>Recent content in 分层架构 on ZiYang FrontEnd Interview</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 06 Mar 2025 13:07:39 +0800</lastBuildDate><atom:link href="https://fe-interview.pangcy.cn/tags/%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84/index.xml" rel="self" type="application/rss+xml"/><item><title>网络分层模型核心职责</title><link>https://fe-interview.pangcy.cn/docs/network/network-19/</link><pubDate>Tue, 04 Mar 2025 09:31:00 +0000</pubDate><guid>https://fe-interview.pangcy.cn/docs/network/network-19/</guid><description>&lt;h2 id="考察点分析">考察点分析 &lt;a href="#%e8%80%83%e5%af%9f%e7%82%b9%e5%88%86%e6%9e%90" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h2>&lt;p>该题目主要考察以下核心能力维度：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>网络协议体系理解&lt;/strong>：对分层模型的抽象能力及实际协议栈对应关系的把握&lt;/li>
&lt;li>&lt;strong>协议分层原理&lt;/strong>：不同网络层级的功能隔离与协作机制&lt;/li>
&lt;li>&lt;strong>数据封装过程&lt;/strong>：报文在协议栈中的逐层封装逻辑&lt;/li>
&lt;/ol>
&lt;p>具体评估点包括：&lt;/p>
&lt;ul>
&lt;li>OSI模型与TCP/IP模型的层级对应关系&lt;/li>
&lt;li>各层级核心协议的功能边界（如TCP的可靠传输与IP的路由选择）&lt;/li>
&lt;li>协议头部信息的逐层封装顺序&lt;/li>
&lt;li>典型协议归属层级的辨识能力（如ARP属于链路层）&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="技术解析">技术解析 &lt;a href="#%e6%8a%80%e6%9c%af%e8%a7%a3%e6%9e%90" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h2>&lt;h3 id="关键知识点">关键知识点 &lt;a href="#%e5%85%b3%e9%94%ae%e7%9f%a5%e8%af%86%e7%82%b9" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h3>&lt;p>OSI/TCP模型对应 &amp;gt; 层级核心功能 &amp;gt; 协议封装顺序 &amp;gt; 典型协议归属&lt;/p>
&lt;h3 id="模型对应关系">模型对应关系 &lt;a href="#%e6%a8%a1%e5%9e%8b%e5%af%b9%e5%ba%94%e5%85%b3%e7%b3%bb" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h3>&lt;p>TCP/IP四层模型将OSI模型的&lt;strong>应用层、表示层、会话层&lt;/strong>合并为&lt;strong>应用层&lt;/strong>，&lt;strong>数据链路层与物理层&lt;/strong>合并为&lt;strong>网络接口层&lt;/strong>。具体对应：&lt;/p>



 
 
 

 
 
 
 

 

 &lt;div class="prism-codeblock ">
 &lt;pre id="e887b3a" class="language- ">
 &lt;code>OSI七层模型 TCP/IP四层模型
应用层 应用层
表示层 
会话层 
传输层 传输层
网络层 网络层
数据链路层 网络接口层
物理层&lt;/code>
 &lt;/pre>
 &lt;/div>
&lt;h3 id="核心功能对比">核心功能对比 &lt;a href="#%e6%a0%b8%e5%bf%83%e5%8a%9f%e8%83%bd%e5%af%b9%e6%af%94" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h3>&lt;ol>
&lt;li>&lt;strong>应用层（HTTP）&lt;/strong>：提供具体应用服务（如浏览器请求），定义数据格式规范（HTTP报文）&lt;/li>
&lt;li>&lt;strong>传输层（TCP）&lt;/strong>：端到端可靠传输（三次握手）、流量控制（滑动窗口）、拥塞控制（慢启动）&lt;/li>
&lt;li>&lt;strong>网络层（IP）&lt;/strong>：逻辑寻址（IP地址）、路由选择（OSPF/BGP）、分片重组（MTU限制）&lt;/li>
&lt;li>&lt;strong>链路层（MAC）&lt;/strong>：物理寻址（MAC地址）、帧封装（以太网协议）、差错检测（CRC校验）&lt;/li>
&lt;/ol>
&lt;h3 id="封装过程示例">封装过程示例 &lt;a href="#%e5%b0%81%e8%a3%85%e8%bf%87%e7%a8%8b%e7%a4%ba%e4%be%8b" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h3>&lt;p>发送HTTP请求时的协议栈封装：&lt;/p>



 
 
 

 
 
 
 

 

 &lt;div class="prism-codeblock ">
 &lt;pre id="8c386d0" class="language-text ">
 &lt;code>应用层：HTTP报文
传输层：&amp;#43;TCP头（源端口|目标端口|序列号）
网络层：&amp;#43;IP头（源IP|目标IP|TTL）
链路层：&amp;#43;以太网头（源MAC|目标MAC）&amp;#43;帧尾校验&lt;/code>
 &lt;/pre>
 &lt;/div>
&lt;h3 id="常见误区">常见误区 &lt;a href="#%e5%b8%b8%e8%a7%81%e8%af%af%e5%8c%ba" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h3>&lt;ol>
&lt;li>混淆HTTPS的协议层级（属于应用层，但建立在SSL/TLS加密层之上）&lt;/li>
&lt;li>错误认为ICMP属于传输层（实际是网络层协议）&lt;/li>
&lt;li>忽略MTU分片在网络层与链路层的协作机制&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="问题解答">问题解答 &lt;a href="#%e9%97%ae%e9%a2%98%e8%a7%a3%e7%ad%94" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h2>&lt;p>OSI七层模型是理论标准，TCP/IP四层模型是实际实现框架。应用层对应HTTP协议处理应用数据格式，传输层通过TCP实现可靠通信，网络层通过IP协议完成路由寻址，链路层基于MAC地址进行物理传输。&lt;/p>
&lt;p>数据封装时，上层数据作为下层载荷逐层添加头部：应用层HTTP报文被TCP头封装为段，追加IP头组成数据包，最终添加MAC头形成数据帧。该层级结构确保各层专注特定功能，例如TCP无需关心具体路由路径，IP层不处理重传机制。&lt;/p>
&lt;hr>
&lt;h2 id="解决方案">解决方案 &lt;a href="#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h2>&lt;h3 id="协议栈封装代码示例">协议栈封装代码示例 &lt;a href="#%e5%8d%8f%e8%ae%ae%e6%a0%88%e5%b0%81%e8%a3%85%e4%bb%a3%e7%a0%81%e7%a4%ba%e4%be%8b" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h3>


 
 
 

 
 
 
 

 

 &lt;div class="prism-codeblock ">
 &lt;pre id="5aa1e5f" class="language-javascript ">
 &lt;code>// 模拟HTTP请求封装过程
class ProtocolStack {
 constructor() {
 this.layers = {
 application: (data) =&amp;gt; ({ payload: data }), // 应用层生成原始数据
 transport: (segment) =&amp;gt; ({ 
 header: { srcPort: 80, dstPort: 8080, seq: 1 },
 payload: segment 
 }), // 添加TCP头
 network: (packet) =&amp;gt; ({
 header: { srcIP: &amp;#39;192.168.1.1&amp;#39;, dstIP: &amp;#39;10.0.0.1&amp;#39; },
 payload: packet
 }), // 添加IP头
 link: (frame) =&amp;gt; ({
 header: { srcMAC: &amp;#39;00:1A:2B...&amp;#39;, dstMAC: &amp;#39;00:1C:B3...&amp;#39; },
 trailer: &amp;#39;CRC32&amp;#39;,
 payload: frame
 }) // 添加MAC头尾
 };
 }

 send(data) {
 return Object.values(this.layers).reduceRight(
 (acc, layer) =&amp;gt; layer(acc), 
 data
 );
 }
}

// 使用示例
const stack = new ProtocolStack();
console.log(stack.send(&amp;#39;&amp;lt;HTTP Request&amp;gt;&amp;#39;));&lt;/code>
 &lt;/pre>
 &lt;/div>
&lt;h3 id="优化建议">优化建议 &lt;a href="#%e4%bc%98%e5%8c%96%e5%bb%ba%e8%ae%ae" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h3>&lt;ol>
&lt;li>&lt;strong>头部压缩&lt;/strong>：HTTP/2使用HPACK减少头部体积&lt;/li>
&lt;li>&lt;strong>分片优化&lt;/strong>：PMTUD（路径MTU发现）避免IP层分片&lt;/li>
&lt;li>&lt;strong>QoS控制&lt;/strong>：DiffServ字段实现流量优先级区分&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="深度追问">深度追问 &lt;a href="#%e6%b7%b1%e5%ba%a6%e8%bf%bd%e9%97%ae" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h2>&lt;h3 id="浏览器输入url到页面加载完成经历了哪些协议">浏览器输入URL到页面加载完成经历了哪些协议？ &lt;a href="#%e6%b5%8f%e8%a7%88%e5%99%a8%e8%be%93%e5%85%a5url%e5%88%b0%e9%a1%b5%e9%9d%a2%e5%8a%a0%e8%bd%bd%e5%ae%8c%e6%88%90%e7%bb%8f%e5%8e%86%e4%ba%86%e5%93%aa%e4%ba%9b%e5%8d%8f%e8%ae%ae" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h3>&lt;p>DNS(UDP)→HTTP(TCP)→TLS(SSL)→ARP→IP→以太网协议&lt;/p></description></item></channel></rss>