Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >网络杂谈

网络杂谈

作者头像
SH的全栈笔记
发布于 2023-08-17 01:24:13
发布于 2023-08-17 01:24:13
1880
举报
文章被收录于专栏:SH的全栈笔记SH的全栈笔记

互联网是什么相信不用在这里赘述,大家平时“网上冲浪”都离不开它。本篇文章中我们就来翻译翻译,什么 ** 的叫 ** 的网络。

网络的概念

对于网络,我们可能听过非常多的名词,比如因特网、万维网、互联网。三者的关系其实为:

互联网 > 因特网 > 万维网

那么一个简单的网络看起来会是这样:

1.png

一个简单的网络会由多个节点(AKA 计算机)和连接他们的链路组成。就好像你家里有 3 台电脑,然后它们都相互连接,这样你家里的 3 台电脑就组成了一个简单的网络。而所谓的互联网,就是网络的网络,如下所示:

1.png

而不同的网络之间可以通过路由器来相互连接,就形成了覆盖范围更大的互联网。所以总的来说,网络连接了许多的计算机,而因特网将许多网络连接到了一起。因此,因特网也是目前全球最大的计算机网络。

因特网的发展

第一阶段

互联网的起源带有一点战争的背景。它起源于 1960s,当时正值冷战,美国国防部开发了一个分布式的、预期能够抵御核攻击的通讯网络,而这就是世界上第一个互联网的原型 — ARPANET

在 1983 年,TCP/IP 协议成为了 ARPANET 上的标准协议,只要是使用了 TCP/IP 协议,计算机之间都能够相互通信。

第二阶段

1985 年,美国国家科学基金会围绕了 6 个大型计算机中心建设计算机网络,这一阶段的特点是形成了三级结构的因特网,分别是:主干网、地区网、校园网(企业网)。这个三级结构的网络覆盖了当时全美主要的大学和研究所。后续,越来越多的企业接入了因特网,导致了网络上通信量激增,由于当时的因特网是由政府维护的,其容量已经满足不了当时的需求了,所以美国政府决定将主干网转交给私人企业经营,并开始收费。

第三阶段

随着主干网开始由私人企业经营,该阶段形成了多层次 ISP 结构的因特网。什么叫 ISP?其实也就是互联网(因特网)服务的提供商。给你举个例子你就知道了,比如咱们国内的三巨头:中国联通、电信、移动,他们就是典型的 ISP。

ISP 其实也是一层代理,因为他们也是从因特网管理机构去申请的一堆 IP 地址,然后我们去 ISP 那办理宽带,支付费用,然后我们就能够在使用期间,用这个 IP 地址上网“冲浪”。

因特网中的协议

经过了这么多年的发展,互联网已经演变成了一个横跨全球、极其复杂的网络。这就好像我们每个城市的内部是通过各种道路相互连接的,而城市与城市之间也是相互连接的,而所有这些城市相互连接就组成了这个大型的“国家互联网”。连接到互联网的机器可以相互通信,而在“国家互联网”中的城市也可以相互“通信”。

你说包裹有可能在运输途中丢失吗?当然有可能,这样的例子还不少。同理,我们发送出去的数据包也有可能丢失。

所以为了保证数据包的准确送达,互联网使用了很多种协议。例如我们非常熟悉的 TCP/IPTCP 全称是 Transmission Control Protocol,IP 全称是 Internet Protocol。

它们分工明确,IP 负责数据包的路由,让它从一个“中转站”跳到下一个“中转站”,而 TCP 则是确保包裹可靠、准确、有序的到达“中转站”。

当然,在互联网这个巨大的概念里,TCP/IP 协议并不是全部,还有我们非常熟悉的 DNS(Domain Name System)和 HTTP(Hypertext Transfer Protocol)。

不太熟悉 DNS 及其底层原理的可以看看我之前写的这篇文章你的域名是如何变成 IP 地址的?

还有像 SSL 和 TLS 这样的网络安全加密协议,让我们的数据能够安全的在互联网上传播。当然,现在 TLS 已经将 SSL 给替代了,因为 TLS 有着更高的安全性和更强的认证机制。

在互联网的通信和数据交换流程中,协议扮演了一个非常关键的角色。这就好像人与人之间要进行沟通,语言是非常重要的一样。语言不通,沟通起来是非常非常困难的。通信的前提也是双方需要使用一样的协议。

而协议其实就是一堆的规则,这些规则规定了信息交换的细节。就比如咱们的老朋友三次握手、四次挥手就属于 TCP/IP 协议的一部分。而规定使用这些协议有什么好处?

答案当然是标准化,用标准化来屏蔽不通制造商或者不通系统之间的差异。举个例子,假设不同的制造商的制造出来的手机使用了不同的协议,那么某个 APP 在制造商 A 上能用,在制造商 B 上又不能用,又或者不同的操作系统之间不能相互通信,这类问题以现在的眼光来看肯定是不能接受的。

再举个标准化协议的例子,像我们用的 Type-C 这种接口的充电线就是一种标准,不管是哪个厂家生产的,只要遵循了这个标准,消费者就能够正常使用。再举一个协议不同的例子,不同的国家使用的充电器的标准不同,不同的标准之间要想充电则需要使用转接头,及其的不方便。

网络分层模型

OSI 七层模型

相信大家曾经都被问过一个问题:“请简单描述一下 OSI 七层模型”。这个网络模型是啥意思?怎么来的?或者说,为什么需要网络模型这个玩意儿?

这是因为 70 年代,网络快速发展演进出了不同网络体系结构,而由于全球的经济发展,迫切的需要使在不同的网络结构体系结构中的用户相互通信,交换信息。为了达成这一目的,国际标准化组织在 1977 年成立了专门的机构来研究这个问题。

而他们的研究成果就是著名的 OSI 模型。在 OSI 模型中总共包含了 7 层(到这里是不是很多人就条件反射的开始全文背诵了),从下至上分别是:物理层、数据链路层、传输层、网络层、会话层、表示层、应用层。

OSI1.png

但,OSI 模型的设计,理想很丰满,现实很骨感。OSI 仅仅取得了理论上的成果,这些专家在设计的时候,并没有太考虑商业化,并且,OSI 协议设计过于复杂,复杂则导致其运行效率低下,并且 OSI 的层次中有重复的层次。

所以用一句话来总结 OSI 七层模型就是:既复杂又不实用

TCP/IP 体系

相对于 OSI 的不实用,TCP/IP 是一个四层的体系结构,分别是:应用层、运输层、网际层、网络接口层,和 OSI 的对比如下图所示:

TCP_IP1.png

消息如何发送

简单的了解了一些背景之后,我们来看看网络中的消息是如何发送的。那在一般的认知中,所谓的通信是啥样的呢?可能看起来是这样:

假设现在有 A、B 两台机器,其 IP 地址分别为 1.2.3.4 和 4.3.2.1,它们的 IP 地址都不相同,并且需要通过上图中的“网络”进行通信。那如果 A 要发送消息给 B,这个消息该如何“传输”到 B 呢?当然是通过连接到 B 机器上的网线(假设是有线),我们知道,线路中传输的是电信号,这套转换的流程当然不需要我们手动的实现,这些功能都内置在了计算机中,而上面说的转化,则是由协议栈来完成的,协议栈的大致工作流程如下:

这样讲有点抽象,比如协议栈到底是啥,它是通过什么方式来处理的数据的,都不知道。关于协议栈相关的概念,以及数据包发送、接收的大致流程,在我之前写的 数据包从发送到接收,都经历了什么 这篇文章里都有详细的介绍,在此不再赘述。

这里我们拿 TCP/IP 协议栈来举个例子,它分为 4 层,大致长这样:

  • 应用层,就比如你看这篇文章所使用到的 HTTP 协议
  • 传输层,TCP 协议
  • 网络层,IP 协议
  • 硬件层,使用的是以太网协议,将二进制的数据转换成电信号,以及相互转换,就比如网卡

那结合上面这个图,就会变成这样:

这个流程跟上面举过的网购、快递包裹的例子非常类似,我们下单了东西,卖家会将东西层层的包装,而这个“打包”的过程跟协议栈对数据包的处理非常像,从上至下,将数据「Hi, there」一步步的处理。而对于我们收快递的人来说,我们会一点点从外至里的打开这个包裹,最终拿到我们购买的货物。而对于 4.3.2.1 的协议栈来说,一步步的将电信号还原成「Hi, there」也是同样的道理。

而我们将这个打包的细节添加到上图的话,看起来就会是这样,以 HTTP 协议来说:

可以看到,每一层的包都是由 XX 头和 XX 数据包组成的,通过协议栈的“层层加码”,通信所需要的关键的信息也会被打包进去:

  • 传输层,会将 HTTP 报文添加到 TCP 的数据包中,并在 TCP 头中添加发送方、接收方的端口号
  • 网络层,会将上一层的 TCP 包添加到 IP 数据包中,并且在 IP 头中添加发送方、接收方的 IP 地址
  • 硬件层,会将 IP 包添加到以太网数据包中,并在以太网头中添加发送方、接收方的 Mac 地址。

那么问题来了,我们现在只知道中间有个“网络”,那从 1.2.3.4 机器 A 中出发的数据包,是如何找到 4.3.2.1 B 这台机器的呢?A 从一开始就知道该走哪条线路

1.2.3.4 发送的数据,会经过协议栈从上至下的处理,变成一个一个的数据包,然后 4.3.2.1 收到数据包之后,也会经过协议栈从下至上的处理,解析出原始的消息。

参考

  • How Does the Internet Work?
  • 《计算机网络》
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SH的全栈笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
1-计算机网络和因特网
如果ISDN的带宽为 128kbps,OC-48的带宽为 2.488 Gbps,如果用ISDN传输一张装满数据的1.44M软盘,用OC-48传输装满10G的硬盘数据,问哪一种传输所用的时间更少?
Ywrby
2022/10/27
2.3K0
1-计算机网络和因特网
计算机网络(1)
我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素的前提下,结合自己过去一段时间笔记整理,而推出的该专栏,整体架构是根据计算机网络自顶向下方法而整理的,包括各大高校教学都是以此顺序进行的。 面向群体:在学计网的在校大学生,工作后想要提升的各位伙伴,
学编程的小程
2024/01/02
1790
计算机网络(1)
收藏:通信网络基础知识
我们周围无时无刻不存在一张网,如电话网、电报网、电视网、计算机网络等;即使我们身体内部也存在许许多多的网络系统,如神经系统、消化系统等。最为典型的代表即计算机网络,它是计算机技术与通信技术两个领域的结合。
程序员小猿
2021/12/06
5590
收藏:通信网络基础知识
【计算机网络】计算机网络基础入门(上)
计算机网络是指由多个计算机系统通过通信设备和线路相互连接而成的系统,目的是实现资源共享和信息交换。计算机网络的出现和发展极大地改变了信息处理和传输的方式,提高了工作效率和生活质量。
屿小夏
2025/05/23
3000
【计算机网络】计算机网络基础入门(上)
网络基础Linux
所谓 "局域网" 和 "广域网" 只是一个相对的概念. 比如, 我们有 "天朝特色" 的广域网, 也可以看做一个比较大的局域 网.
ljw695
2024/11/21
1560
网络基础Linux
tcp/ip系列--tcp/ip基础知识
  最近读完了《图解TCP/IP》,做一下总结加深记忆,后续会写几篇关于TCP/IP的文章。
Dlimeng
2023/06/29
2820
tcp/ip系列--tcp/ip基础知识
计算机网络概述
力量对比是:一个山顶上的蓝军打不过白军,但两个山顶的蓝军协同作战就可战胜白军。一个山顶上的蓝军拟于次日正午向白军发起攻击。于是发送电
ruochen
2021/05/16
5530
计算机网络概述
什么是网络层?网络层发生了什么?
网络到网络的连接使互联网成为可能。“网络层”是互联网通信过程的一部分,这些连接通过在不同网络之间来回发送数据包来实现。
用户11163528
2024/10/29
2900
[计算机网络] 网络的诞生:协议的认知建立
欢迎来到计算机网络的世界!在这个信息爆炸的时代,网络无处不在,它如同空气和水一般,成为我们生活和工作中不可或缺的一部分。但你是否曾好奇过,这背后错综复杂的网络是如何运作的?数据是如何在千里之外的计算机之间精准传递的?这篇博客将带你从基础概念入手,逐步深入,为你构建一个清晰的网络知识框架。
DevKevin
2025/06/21
1540
[计算机网络] 网络的诞生:协议的认知建立
计算机网络入门
在早期计算机刚刚兴起时,计算机之间是相互独立的,如果要多台计算机之间协作的话,只能等一台计算机处理完,再通过数据传输传到其他计算机,这样的效率是非常低下的。
咬咬
2025/05/25
1140
计算机网络入门
计算机网络:概述 - 计算机网络概述
网络中的节点可以是计算机、集线器、交换机或者路由器。节点之间的互联还需链路的参与,可以是无线链路,也可以是有限链路。
小灵蛇
2024/09/21
3570
计算机网络:概述 - 计算机网络概述
TCP/IP协议族 详解(TCP/IP四层模型、OSI七层模型)
TCP/IP协议族(TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP。由于在网络通讯协议普遍采用分层的结构,当多个层次的协议共同工作时,类似计算机科学中的堆栈,因此又被称为TCP/IP协议栈(英语:TCP/IP Protocol Stack) 。这些协议最早发源于美国国防部(缩写为DoD)的ARPA网项目,因此也被称作DoD模型(DoD Model)。这个协议族由互联网工程任务组负责维护。
微风-- 轻许--
2022/04/13
5.4K0
计算机网络概述
多个网络还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的网络,即互联网(或互连网) 因此,互联网是’网络的网络(Network of Networks) 
一个风轻云淡
2022/11/15
4010
计算机网络概述
计算机网络 1 -因特网概述
internet 是一个通用名词, 泛指多个计算机网络互连而成的网络. 在这些网络之间的通信协议可以是任意的
Rikka
2022/01/19
1.8K0
计算机网络 1 -因特网概述
初识网络基础
由于缺乏互联性,早期的计算机系统无法实现有效的资源共享。只能依靠光驱和网盘经行将数据拷贝,线下将数据经行传输,每台计算机都需要独立处理自己的任务和数据,导致资源利用率较低。这促使了计算机网络的发展,以实现计算机之间的通信和协作。
薄荷冰
2024/02/06
1780
初识网络基础
【网络编程】Linux网络编程基础与实战第三弹——网络名词术语
数据包从源地址到目的地址所经过的路径,由一系列路由节点组成。 某个路由节点为数据包选择投递方向的选路过程。 路由器工作原理
洁洁
2023/10/19
3110
【网络】网络基础概念&&背景&&TCP/IP 五层模型&&跨网络传输详解
所谓 "局域网" 和 "广域网" 只是一个相对的概念. 比如, 我们有 "天朝特色" 的广域网, 也可以看做一个比较大的局域网
用户10925563
2024/08/29
1520
【网络】网络基础概念&&背景&&TCP/IP 五层模型&&跨网络传输详解
计算机网络--概论
对于网络,我觉得就是打CS,开个玩笑(反恐精英玩过吧//滑稽),就是在一个不跟外界连接的网吧里面,有好多电脑,然后通过交换机我们可以实现信息共享。请看图(当然,当交换机上的接口足够多的话,我们可以连接尽可能多的机子)
杨鹏伟
2020/09/10
8110
计算机网络与网络体系结构
如今,互联网越来越深入人们的生活了,而且, 越来越多的终端被接入互联网。比如,手机、冰箱、电视机、汽车,还有工作中的打印机、工作站、PC、服务器等等,通过网络我们可以实现文件的上传和下载,信息的传递和获取,实时设备信息的上报,网上购物,网上订票等等。那么终端之间是如何在互联网络中通信的呢?
搬砖俱乐部
2019/06/15
7610
网络基础入门
在计算机领域中,网络是信息传输、接收、共享的虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享。或者更为详细的说,网络是指将多台计算机或者设备通过通信线路、传输线路和网络设备连接起来,形成一个资源互通和相互通信的整体。
小灵蛇
2024/08/09
1740
网络基础入门
相关推荐
1-计算机网络和因特网
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档