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

Linux - 第11节 - 网络基础(一)

1.计算机网络背景

1.1.网络发展

\bullet 独立模式:计算机之间相互独立

在早期的时候,计算机之间是相互独立的,此时如果多个计算机要协同完成某种业务,那么就只能等一台计算机处理完后再将数据传递给下一台计算机,然后下一台计算机再进行相应的业务处理,效率非常低下。

\bullet 网络互联:多台计算机连接在一起,完成数据共享 

这时就有人设法将这些计算机连接在一起,当某个业务需要多台计算机协同完成时,就可以将共享的数据放到服务器中进行集中管理,此时各个计算机就都能获取到这些共享的数据,所以各个业务在处理就能随时进行切换了。

注:

1.在一台计算机中具有很多设备,如下图所示,这些设备都是硬件,这些硬件是如何进行数据交互的?设备和设备之间(硬件和硬件之间)一定要有“线”连接,计算机体系结构本质也可以被看作成一个小型网络。在一台计算机中,这些设备之间的“线”比较短,如果多台计算机要进行通信,那么多台计算机之间要用长一点的“线”(网线、无线LAN)连接起来,其本质是用“线”将多台计算机的网卡设备用“线”连接起来。

计算机体系结构内部各设备间是用“线”连接起来传输数据的,而用“线”将多个计算机体系结构连接起来,可以看作是计算机体系结构的延展。

2.主机内“线”比较短,“线”比较短可能存在信号干扰问题。跨主机“线”比较长,“线”比较长可能存在可靠性、效率、寻找到对方的问题。

\bullet 局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起

后来这样的网络雏形逐渐发展,连入这个网络中的机器变得越来越多,于是就出现了局域网的概念。

在局域网中有一种设备叫做交换机,交换机主要完成局域网内数据的转发工作,也就是在局域网内将数据从一台主机转发给另一台主机。各个局域网之间通过路由器连接起来,路由器主要完成数据的路由转发工作。

\bullet 广域网WAN:将远隔千里的计算机都连在一起

各个局域网之间通过路由器相互连接在一起,便组成了一个更大的网络结构,我们将其称之为广域网。实际局域网和广域网是一种相对的概念,我们也可以将广域网看作一个比较大的局域网。

注:局域网内部没有路由器,广域网内部涉及到多种路由器且要接入公网。

1.2.认识 "协议"

协议的概念:

“协议”本质就是一种约定,通信双方只要曾经做过某种约定,之后就可以使用这种约定来完成某种事情。而网络协议是通信计算机双方必须共同遵从的一组约定,因此我们一定要将这种约定用计算机语言表达出来,此时双方计算机才能识别约定的相关内容。

计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息。 要想传递各种不同的信息, 就需要约定好双方的数据格式。

协议应该由谁来定制:

在当前这个互联网时代,计算机生产商有很多,计算机操作系统也有很多,计算机网络硬件设备更是多种多样,那我们是如何让这些不同厂商之间生产的计算机能够相互顺畅的通信的呢?这时候就需要有人站出来,约定一个共同的标准,并且让大家都来遵守这个标准,这就是网络协议。

而那个站出来的人一定是该领域当中的佼佼者,因为网络协议的定制本质就是规则的定制,你要站出来制定规则那么一定要同行业的其他人都认可你。比如5G标准的定义,华为就是那个站出来的人,华为在通信领域已经具备很强的通信能力了,在这个行业里它就是所谓的佼佼者。

正所谓“一流的企业做标准,二流的企业做品牌,三流的企业做产品”。但是标准的定制有一部分是公益性、开源性的,它制定标准的目的是为了让我们的世界变得更好;而标准的定制还有一部分是具有一定盈利性质的,当你需要使用这项技术时就会收取部分专利费,此时就能将曾经做的技术投入进行变现。


2.网络协议初识

2.1.协议分层

协议分层的好处:

网络协议栈设计成层状结构,其目的就是为了将层与层之间进行解耦,分层的同时将问题归类,便于工程师进行维护,保证代码的可维护性和可扩展性。

比如在打电话的时候,站在工程师的角度实际这两个人并不是直接进行沟通的,而是甲的电话将甲说的话记录下来,经过一系列编码转码后,通过通信网络将信息从甲的电话传递到了乙的电话,然后信息在乙的电话中再经过对应的编码转码,最后乙才通过话筒听到了甲所说的话。

其中,人与人之间通信使用的是汉语,我们可以将其称为语言层;而电话和电话之间通信使用的是电话系统相关的一些接口,我们可以将其称之为通信设备层。

后来随着科技的发展,我们都用上了智能手机,此时我们下层使用的通信设备变了,或是这部电话卖到了其他国家,此时上层使用的通信语言变了,但我们仍然可以正常沟通。

分层最大的好处在于“封装”,在分层情况下,将某层的协议进行替换后,通信双方之间是不会受到影响的。

理解各层之间直接通信:

从上述例子我们还可以看出,虽然在打电话时我们并不是直接进行沟通的,但是我们可以认为我们是在直接进行沟通,并且这两台电话也不是直接在进行沟通的,数据经过电话后,还需要各种基站,各种电信网络来进行数据转发,但是这两台电话依旧可以认为是直接在和对方电话进行通信的。

因此对于网络协议我们需要有一个基本的认识:关于通信,同层协议可以认为自己在和对方层直接进行通信,从而达到简化对于网络协议栈的理解。因此同层之间一定要有自己的协议。

也就是说,在网络协议栈中我们可以认为通信双方的应用层之间直接在进行通信,也可以认为通信双方的传输层之间直接在进行通信,对于网络层和数据链路层也同样如此。

2.2.OSI七层模型

上面我们说的是TCP/IP四层协议,而实际当初那个站出来的人定的协议叫做OSI七层协议:

\bullet OSI(Open System Interconnection,开放系统互联)七层网络模型称为开方式系统互联参考模型,是一个逻辑上的定义和规范。
\bullet OSI把网络从逻辑上分为了七层,每一层都有相关的、相对应的物理设备,比如路由器,交换机。
\bullet OSI七层模型是一种框架性的设计方法,其最主要的功能就是帮助不同类型的主机实现数据传输,比如手机和电视之间数据的传输。
\bullet OSI七层模型最大的优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
\bullet 但是,OSI七层模型既复杂又不实用,所以后来在具体实现的时候就对其进行了调整,于是就有了我们现在看到的TCP/IP四层协议。

OSI七层模型:

2.3.TCP/IP五层(或四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,共同组成了TCP/IP协议簇。TCP/IP通讯协议采用了五层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

\bullet物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞线)、早期以太网采用的同轴电缆(现在主要用于有线电视)、光纤,现在的WiFi无线网使用的电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)就是工作在物理层的。
\bullet数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。数据链路层底层的网络通信标准有很多,如以太网、令牌环网、无线LAN等。交换机(Switch)就是工作在数据链路层的。
\bullet​​​​​​​ 网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间数据传输的线路(路由)。路由器(Router)就是工作在网络层的。
\bullet​​​​​​​ 传输层:负责两台主机之间的数据传输。例如传输控制协议(TCP),能够确保数据可靠的从源主机发送到目标主机。
\bullet​​​​​​​ 应用层:负责应用程序间沟通。比如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层的。

注:物理层不属于软件范畴,且我们考虑的比较少, 因此很多时候也可以称为TCP/IP四层模型

TCP/IP五层(或四层)模型与OSI七层模型各层的对应关系:

如下图所示,可以看到它们的下面几层几乎是没有区别的,操作系统对应的是传输层和网络层,数据链路层和物理层都是对应在驱动层的,而TCP/IP协议当中的应用层就对应到OSI七层协议当中的应用层、表示层和会话层。

一般而言:

\bullet 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容。
\bullet 对于一台路由器,它实现了从网络层到物理层的内容。
\bullet 对于一台交换机,它实现了从数据链路层到物理层的内容。
\bullet 对于集线器,它只实现了物理层的内容。

但这并不是绝对的,比如很多交换机也实现了网络层的转发,很多路由器也实现了部分传输层的内容(比如端口转发)。

补充内容1:集线器(工作在物理层)

电磁信号在长距离传输过程中信号是会衰减的,而集线器的主要功能就是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。

需要注意的是,集线器属于纯硬件网络底层设备,基本上不具有类似于交换机的“智能记忆”能力和“学习”能力,也不具备交换机所具有的MAC地址表,所以它发送数据时都是没有针对性的,而是采用广播方式发送,也就是说,当集线器要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节点。

补充内容2:猫(工作在物理层)

猫的英文名称是MODEM,中文名称是调制解调器,作用是实现信号转换的。数字信号适合在局域网内通信,模拟信号适合长距离转发。我们平常上网时计算机内部和运营商的机房设备内部所传送的信号是数字信号,而线路上传送的信号是模拟信号,那么就需要一个设备来完成数字/模拟信号之间的转换,完成通信过程,这就是猫的作用。

补充内容3:以太网名字的由来

“以太网”这个名字实际来源于物理学,在早期的时候,很多科学家都认为任何信息的传播都是需要媒介的,因此物理学家们就认为光的传播也是需要媒介的。这时物理学家们就发现了一个问题:既然光能够从太阳传播到地球上,那么在这个传播的过程中一定需要某种媒介,但太阳和地球之间不是绝对真空的状态吗?

此时物理学家们就提出了一个“以太假说”,认为宇宙空间并不是真空的,而是填充满了一种叫做“以太”的物质的,此时“以太”就可以作为光传播的媒介。但后来经过实验后发现,“以太”这种物质实际上是不存在的。

其中在这个故事线当中有两个人是与计算机学科相关的,一个人叫做图灵,另一个叫做冯诺依曼,这两个人当时也是参与了这场讨论的,因为他们不仅是计算机科学家,同时也是数学家。

经过后来的发展,在局域网产生之后就需要对局域网进行命名,而在局域网命名的时候人们就将其命名为“以太网”。因为我们曾经在物理学上认为“以太”就是传送物质的介质,也就是说“以太”是具有某种通信能力的,虽然“以太”在物理学上验证是不存在的,但现在在计算机领域我们做出来了这样一种东西,它也是能够传播物质(信息)的,同时也为了纪念之前的“以太假说”,于是早期的局域网标准就被命名为了“以太网”。


3.网络传输基本流程


4.网络中的地址管理


http://www.kler.cn/news/16979.html

相关文章:

  • Ubuntu 23.04 安装 Jupyter
  • Mysql·分库分表
  • 第三十二章 Unity Mecanim动画系统(上)
  • 业绩稳健增长,公牛集团新老业务如何实现齐头并进?
  • 有趣的地理题
  • 排序算法 - 插入排序
  • 流量挂机赚钱项目Traffmonetizer
  • 19. 资源的调度——Label 与 Selector
  • linux怎么防止手误执行了rm / -rf或者rm /* -rf命令?
  • 汉诺塔问题(解出来了带你看洛丽塔)
  • 网络钓鱼仍然是安全行业的祸害
  • IntelliJ IDEA 2023.1正式发布,Maven项目大提速支持Apache Dubbo
  • 大四毕业生想要找实习程序员工作 ,我总结了三点分享给大家
  • String AOP
  • 【代码随想录】刷题Day14
  • Linux之【多线程】生产者与消费者模型BlockQueue(阻塞队列)
  • Linux安装flutter
  • 基于UDQ的并网单相逆变器控制【同步参考系下单相并网全桥正弦PWM逆变器闭环控制】(Simulink)
  • 2022年度项目管理软件排名揭晓:哪些软件在市场中脱颖而出?
  • 模型实战(10)之win10下tensorRT部署yolov5算法
  • matlab all函数详解
  • 嵌入式 Qt 移植教程
  • 从零开始实现 std::string:让你更深入地了解字符串的本质
  • OpenCV学习小记
  • 递归思路讲解
  • C/C++开发神器CLion全新发布v2023.1——新软件包管理解决方案
  • python语法入门到面向过程编程(七)
  • QML动画分组(Grouped Animations)
  • 6. 计算机网络
  • synchronized用法加锁原理