PageSourceSearch

https://hxin.link/network/

html hxin.link collected 2026-10-05 06:32:24 UTC 17,409 bytes, 54 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US">
3  <head>
4    <meta charset="utf-8">
5    <meta name="viewport" content="width=device-width,initial-scale=1">
6    <title>序言 | 杨信鹏的博客</title>
7    <meta name="generator" content="VuePress 1.8.0">
8    
9    <meta name="description" content="杨信鹏的博客">
10    
11    <link rel="preload" href="/assets/css/0.styles.c2b2b969.css" as="style"><link rel="preload" href="/assets/js/app.3970f632.js" as="script"><link rel="preload" href="/assets/js/2.c75ba023.js" as="script"><link rel="preload" href="/assets/js/32.08949510.js" as="script"><link rel="prefetch" href="/assets/js/10.045041e6.js"><link rel="prefetch" href="/assets/js/11.7629db4a.js"><link rel="prefetch" href="/assets/js/12.a6156608.js"><link rel="prefetch" href="/assets/js/13.17e495bc.js"><link rel="prefetch" href="/assets/js/14.59859feb.js"><link rel="prefetch" href="/assets/js/15.8c56914a.js"><link rel="prefetch" href="/assets/js/16.b61f7dde.js"><link rel="prefetch" href="/assets/js/17.48330108.js"><link rel="prefetch" href="/assets/js/18.081fa416.js"><link rel="prefetch" href="/assets/js/19.edd8770d.js"><link rel="prefetch" href="/assets/js/20.7a3136cd.js"><link rel="prefetch" href="/assets/js/21.122b1ad6.js"><link rel="prefetch" href="/assets/js/22.6387a2ed.js"><link rel="prefetch" href="/assets/js/23.129a6cc9.js"><link rel="prefetch" href="/assets/js/24.34e47d7c.js"><link rel="prefetch" href="/assets/js/25.0bd6da6e.js"><link rel="prefetch" href="/assets/js/26.7fa70314.js"><link rel="prefetch" href="/assets/js/27.18d4a439.js"><link rel="prefetch" href="/assets/js/28.2ddcb36c.js"><link rel="prefetch" href="/assets/js/29.3710f551.js"><link rel="prefetch" href="/assets/js/3.980adc8b.js"><link rel="prefetch" href="/assets/js/30.261cdb65.js"><link rel="prefetch" href="/assets/js/31.39e239ea.js"><link rel="prefetch" href="/assets/js/33.3b99d93d.js"><link rel="prefetch" href="/assets/js/34.2d72321f.js"><link rel="prefetch" href="/assets/js/35.eca90ff5.js"><link rel="prefetch" href="/assets/js/36.5ab4a4e4.js"><link rel="prefetch" href="/assets/js/37.c35205b0.js"><link rel="prefetch" href="/assets/js/38.2c9ebada.js"><link rel="prefetch" href="/assets/js/39.08fb4417.js"><link rel="prefetch" href="/assets/js/4.e9cf7175.js"><link rel="prefetch" href="/assets/js/40.1836af74.js"><link rel="prefetch" href="/assets/js/41.57f916cd.js"><link rel="prefetch" href="/assets/js/42.9e7f40ba.js"><link rel="prefetch" href="/assets/js/43.719b1ae4.js"><link rel="prefetch" href="/assets/js/44.61bff133.js"><link rel="prefetch" href="/assets/js/45.cc56f6b1.js"><link rel="prefetch" href="/assets/js/46.11695c36.js"><link rel="prefetch" href="/assets/js/47.f7fe961e.js"><link rel="prefetch" href="/assets/js/48.80209c0e.js"><link rel="prefetch" href="/assets/js/49.77f0e55b.js"><link rel="prefetch" href="/assets/js/5.57a37a2c.js"><link rel="prefetch" href="/assets/js/50.3dc60014.js"><link rel="prefetch" href="/assets/js/51.10a09bb2.js"><link rel="prefetch" href="/assets/js/52.d2817fa0.js"><link rel="prefetch" href="/assets/js/53.8720bb0a.js"><link rel="prefetch" href="/assets/js/54.c684d3b6.js"><link rel="prefetch" href="/assets/js/6.fef23096.js"><link rel="prefetch" href="/assets/js/7.a3339d58.js"><link rel="prefetch" href="/assets/js/8.97a3c283.js"><link rel="prefetch" href="/assets/js/9.4324e070.js">
12    <link rel="stylesheet" href="/assets/css/0.styles.c2b2b969.css">
13  </head>
14  <body>
15    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">杨信鹏的博客</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link">
16  个人主页
17</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="博客" class="dropdown-title"><span class="title">博客</span> <span class="arrow down"></span></button> <button type="button" aria-label="博客" class="mobile-dropdown-title"><span class="title">博客</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/network/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
18  TCP/IP
19</a></li><li class="dropdown-item"><!----> <a href="/library/" class="nav-link">
20  Library
21</a></li><li class="dropdown-item"><!----> <a href="/css/formatting-model.html" class="nav-link">
22  CSS
23</a></li><li class="dropdown-item"><!----> <a href="/javascript/prototype.html" class="nav-link">
24  Javascript
25</a></li><li class="dropdown-item"><!----> <a href="/webpack/install.html" class="nav-link">
26  Webpack
27</a></li><li class="dropdown-item"><!----> <a href="/nuxt/use-ts.html" class="nav-link">
28  Nuxt
29</a></li><li class="dropdown-item"><!----> <a href="/other/git.html" class="nav-link">
30  Other
31</a></li></ul></div></div><div class="nav-item"><a href="https://xivui.hxin.link " target="_blank" rel="noopener noreferrer" class="nav-link external">
32  XiVui
33  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound">
33<path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link">
34  个人主页
35</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="博客" class="dropdown-title"><span class="title">博客</span> <span class="arrow down"></span></button> <button type="button" aria-label="博客" class="mobile-dropdown-title"><span class="title">博客</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/network/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
36  TCP/IP
37</a></li><li class="dropdown-item"><!----> <a href="/library/" class="nav-link">
38  Library
39</a></li><li class="dropdown-item"><!----> <a href="/css/formatting-model.html" class="nav-link">
40  CSS
41</a></li><li class="dropdown-item"><!----> <a href="/javascript/prototype.html" class="nav-link">
42  Javascript
43</a></li><li class="dropdown-item"><!----> <a href="/webpack/install.html" class="nav-link">
44  Webpack
45</a></li><li class="dropdown-item"><!----> <a href="/nuxt/use-ts.html" class="nav-link">
46  Nuxt
47</a></li><li class="dropdown-item"><!----> <a href="/other/git.html" class="nav-link">
48  Other
49</a></li></ul></div></div><div class="nav-item"><a href="https://xivui.hxin.link " target="_blank" rel="noopener noreferrer" class="nav-link external">
50  XiVui
51  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav>  <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><a href="/network/" aria-current="page" class="sidebar-heading clickable router-link-exact-active router-link-active open active"><span>TCP/IP</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/network/physical.html" class="sidebar-link">物理层</a></li><li><a href="/network/data-link.html" class="sidebar-link">数据链路层</a></li><li><a href="/network/internet.html" class="sidebar-link">互联层</a></li><li><a href="/network/transport.html" class="sidebar-link">传输层</a></li><li><a href="/network/application.html" class="sidebar-link">应用层</a></li></ul></section></li><li><section class="sidebar-group depth-0"><a href="/library/" class="sidebar-heading clickable"><span>Library</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/library/past.html" class="sidebar-link">旧时代插件</a></li><li><a href="/library/module.html" class="sidebar-link">插件模块化</a></li><li><a href="/library/babel.html" class="sidebar-link">Babel</a></li><li><a href="/library/babel-transform.html" class="sidebar-link">Babel 转化</a></li><li><a href="/library/babel-transform-optimize.html" class="sidebar-link">Babel 优化</a></li><li><a href="/library/gulp.html" class="sidebar-link">Gulp</a></li><li><a href="/library/typescript.html" class="sidebar-link">TypeScript</a></li><li><a href="/library/css.html" class="sidebar-link">CSS</a></li><li><a href="/library/postcss.html" class="sidebar-link">Postcss</a></li><li><a href="/library/sass.html" class="sidebar-link">SASS</a></li><li><a href="/library/vue.html" class="sidebar-link">Vue</a></li><li><a href="/library/jsx.html" class="sidebar-link">JSX</a></li><li><a href="/library/test.html" class="sidebar-link">单元测试</a></li><li><a href="/library/docs.html" class="sidebar-link">文档生成</a></li><li><a href="/library/optimize.html" class="sidebar-link">优化</a></li></ul></section></li><li><section class="sidebar-group depth-0"><a href="/css/formatting-model" class="sidebar-heading clickable"><span>CSS</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/css/formatting-model.html" class="sidebar-link">视觉格式化模型</a></li></ul></section></li><li><section class="sidebar-group depth-0"><a href="/javascript/prototype" class="sidebar-heading clickable"><span>Javascript</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/javascript/prototype.html" class="sidebar-link">原型</a></li><li><a href="/javascript/position.html" class="sidebar-link">位置</a></li><li><a href="/javascript/mvvm.html" class="sidebar-link">双向数据绑定</a></li><li><a href="/javascript/promise.html" class="sidebar-link">Promise/A+</a></li><li><a href="/javascript/type.html" class="sidebar-link">Typescript 类型</a></li></ul></section></li><li><section class="sidebar-group depth-0"><a href="/webpack/" class="sidebar-heading clickable"><span>Webpack</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/webpack/install.html" class="sidebar-link">安装</a></li><li><a href="/webpack/started.html" class="sidebar-link">起步</a></li><li><a href="/webpack/loader.html" class="sidebar-link">文件处理</a></li><li><a href="/webpack/output-management.html" class="sidebar-link">管理输出</a></li><li><a href="/webpack/mode.html" class="sidebar-link">模式</a></li><li><a href="/webpack/development.html" class="sidebar-link">开发环境</a></li><li><a href="/webpack/code-splitting.html" class="sidebar-link">代码分离</a></li><li><a href="/webpack/caching.html" class="sidebar-link">缓存</a></li><li><a href="/webpack/split-chunk-plugin.html" class="sidebar-link">SplitChunkPlugin</a></li></ul></section></li><li><section class="sidebar-group depth-0"><a href="/nuxt/use-ts" class="sidebar-heading clickable"><span>Nuxt</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/nuxt/use-ts.html" class="sidebar-link">使用 Typescript</a></li><li><a href="/nuxt/transform.html" class="sidebar-link">Typescript 改造</a></li></ul></section></li><li><section class="sidebar-group depth-0"><a href="/other/git" class="sidebar-heading clickable"><span>其他</span> <!----></a> <ul class="sidebar-links sidebar-group-items"><li><a href="/other/git.html" class="sidebar-link">Git</a></li><li><a href="/other/pkg.html" class="sidebar-link">package</a></li><li><a href="/other/ssl.html" class="sidebar-link">SSL 证书申请</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default">
51<h1 id="序言"><a href="#序言" class="header-anchor">#</a> 序言</h1> <p>对于网络通信有些人只知道三次握手、四次挥手。有些人知道 TCP 协议、知道 IP 协议,却不知道为什么会有这些协议,也不知道这些协议服务于什么。OSI 和 TCP/IP 的每层作用又是什么?很多人只知道该这么做,却不知道为何这么做。对于网上不仅零零碎碎并且晦涩难懂的知识点,想要真正的理解是很困难的。</p> <p>如果遇到晦涩难懂的知识点,不妨将这些知识结合到生活中。如果不明白其中的原理,比如:“为什么要这么做?”,不妨从起源、发展开始了解。</p> <p>接下来会从 TCP/IP 的由来、发展、以及一根网线的数据传递开始介绍。</p> <div class="custom-block warning"><p class="custom-block-title">WARNING</p> <p>该系列的内容主要是为了帮助读者更好的了解 TCP/IP,而不是每个知识点、协议都很详细的说明。作者只是帮你拿到通往 TCP/IP 的门票,TCP/IP 的世界只能你自己去深入了解了。</p></div> <h1 id="起源"><a href="#起源" class="header-anchor">#</a> 起源</h1> <p>20 世纪 50 年代末,正处于冷战时期。当时美国军方为了自己的计算机网络在受到袭击时,即使部分网络被摧毁,其余部分仍能保持通信联系,便由美国国防部的高级研究计划局(ARPA)建设了一个军用网,叫做“阿帕网”(ARPAnet)。阿帕网于 1969 年正式启用,当时仅连接了 4 台计算机,供科学家们进行计算机联网实验用,这就是因特网的前身。</p> <p>到 70 年代,ARPAnet 已经有了好几十个计算机网络,但是每个网络只能在网络内部的计算机之间互联通信,不同计算机网络之间仍然不能互通。为此, ARPA 又设立了新的研究项目,支持学术界和工业界进行有关的研究,研究的主要内容就是想用一种新的方法将不同的计算机局域网互联,形成“互联网”。研究人员称之为“internetwork”,简称“Internet”,这个名词就一直沿用到。</p> <p>在研究实现互联的过程中,计算机软件起了主要的作用。1974 年,出现了连接分组网络的协议,其中就包括了 TCP/IP——著名的网际互联协议 IP 和传输控制协议 TCP。这两个协议相互配合,其中,IP 是基本的通信协议,TCP 是帮助 IP 实现可靠传输的协议。</p> <p>1986 年,美国国家科学基金组织(NSF)将分布在美国各地的 5 个为科研教育服务的超级计算机中心互联,并支持地区网络,形成 NSFnet。1988 年,NSFnet 替代 ARPAnet 成为 Internet 的主干网。NSFnet 主干网利用了在 ARPAnet 中已证明是非常成功的 TCP/IP 技术,准许各大学、政府或私人科研机构的网络加入。1989 年,ARPAnet 解散,Internet 从军用转向民用。</p> <h1 id="tcp-ip-与-osi"><a href="#tcp-ip-与-osi" class="header-anchor">#</a> TCP/IP 与 OSI</h1> <p><img src="/images/network/osi-tcpip.png" alt="模型关系"></p> <p>Internet 网络的前身 ARPAnet 当时使用的并不是 TCP/IP 协议,而是 NCP 协议。不过发现有很多缺点以至于不能充分支持 ARPAnet 网络。后面就出现了 TCP/IP 协议。OSI 模型是后来好多大佬(国际标准组织)坐在一起开会,研究讨论出理论中最规范的模型,以后网络通讯协议都可以按照这个模型来实现。不过理论终究是理论,现在 TCP/IP 还是运用最多的网络通讯协议。</p> <p>TCP/IP 协议其实是四层模型,其实也能对应 OSI 模型的。(有些地方也有说 TCP/IP 是五层模型,因为网络接口层其实就是数据链路层、物理层)</p> <ol><li>TCP/IP 的<strong>应用层</strong>对应 OSI 的<strong>应用层、表示层、会话层</strong>。</li> <li>TCP/IP 的<strong>传输层</strong>对应 OSI 的<strong>传输层</strong>。</li> <li>TCP/IP 的<strong>网络层</strong>对应 OSI 的<strong>网络层</strong>。</li> <li>TCP/IP 的<strong>网络接口层</strong>对应 OSI 的<strong>数据链路层、物理层</strong>。</li></ol></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"></div></div>
52    
52<script src="/assets/js/app.3970f632.js" defer></script>
52<script src="/assets/js/2.c75ba023.js" defer></script>
52<script src="/assets/js/32.08949510.js" defer></script>
52
53  </body>
54</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.