网络相关名词概念与系统初步关系介绍,发展背景也讲讲

2025-09-27 10:10:43发布    浏览8次    信息编号:118399

友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。

网络相关名词概念与系统初步关系介绍,发展背景也讲讲

我之前未曾撰写过关于网络的博客文章,因此这篇文章中的知识不会特别深入,仅会介绍一些网络相关的术语和概念,并阐述它们与系统的基本联系,至于对网络的深入探讨,后续的博客会继续详细讨论。掌握了这些名词和概念,就可以初步尝试编写一些网络相关的代码,让大家简单体验一下,能够编写出一些基本的客户端和服务端之间通信的程序即可。

正式开始

本篇重点讲解:

一些基础知识 发展背景

这个发展背景可以简单提一下,对于初学者来说,知道这些内容是很有帮助的。

计算机出现在前,网络紧随其后。最初的计算机名为埃尼阿克,具体信息可自行查询,这里不再赘述。

起初,计算机都是独立使用的,多个计算机之间没有联系:

后来,多台计算机可以连接在同一个服务器上:

一个人整理完信息后能够传送给主机,随后其他人能从主机上获取资料实施后续操作,操作结束后还可以再次传输。

此处已接近局域网范畴,例如过去部分科研机构,众多机器便接入统一服务器运行,诸如贝尔研究所、伯克利大学、麻省理工学院的设施。

不过当前若两个研究机构存在共同的研究课题,必须对某些资料进行加工,便能让两个内部网络借助一台网关设备实现互联,开展信息交换。由此内部网络与内部网络便能够建立联系:

那些图片里的交换机、路由器等设备稍后再做简要介绍,待到后面深入讲解网络时再进行详细讨论,本章内容仅是基础知识的普及。

再来说广域网,就是将远隔千里的计算机都连在一起:

可能各位的学校教材上还会有城域网的说法。

这个现象需要说明一下,所谓“局域网”、“城域网”、“广域网”,它们之间只有范围大小的区别,关键在于接入网络中的设备数量不一样,从不同角度观察一块网络,其归属也会有所变化。以你们村子的视角而言,你家可视为一个局域网,而整个村子的网络则是一个广域网;但若从整个市或省的角度出发,你的村子又可看作一个局域网,整个城市才是一个广域网。

因此关于网络范围大的学问,是为了在学术上有所区别,不过从技术层面看,其实都是些比较的概念,不过在这里讲解时还是需要提及一下。

运营商和生产商

我们生活中的这些网络是由谁建设和维护的呢?

答案是运营商,像移动、联通、电信啥的。

另有一个与通信服务商联系极为紧密的,是制造方,这个角色承担设备制造方面的职责,诸如华为、诺基亚这些企业专门从事通讯装置的制造。

缺少这两个角色,大家将无法访问手机上的B站、淘宝等应用程序,如果没有这两个角色作为基础,那么这些应用程序根本不可能存在,如果其中一方未能妥善履行职责,就会引发各种问题,例如,如果运营商未能有效维护网络,导致网速缓慢,大家在浏览CSDN时就会遇到严重卡顿,页面需要很长时间才能加载出来,这种情况会让人感到非常困扰,最终的结果是用户数量会大幅下降。

协议

网络中一个很重要的东西叫做协议。

啥是协议呢?

像我们买车 / 买房 / 工作的时候签合同,这就算是协议。

在我们网络体系里,协议是软硬件必须遵循的一种规则,它规定怎样在网络中传送信息,以及如何进行交流。

不清楚你是否观赏过姜文导演的电影《让子弹飞》,影片中有一个情节,张麻子与其同伙执行所谓“剿匪”任务,他们借助吹响口哨来传递信息,这便是一种联络手段。若要达成这种联络,必须让张麻子等人都能识别出各种哨声所蕴含的不同信息,同时也要能够吹出具有特定含义的哨音。

如果发出两个短音,代表所有人员开始进攻,这是我个人杜撰的,假如吹响两个长音,则意味着需要撤退,这个说法也是我虚构的,这两种不同的哨声必须让整个团队牢牢记住,不同的音调对应着不同的指令,这就是利用哨子进行信息传递的规则。

来分析一下为什么要这么做?

减少成本。

要是话语过于冗长,且战况激烈时,需要大声呼喊,否则队友可能听不到,但长时间高声呼喊容易暴露位置,敌人或许会察觉到你,存在风险,万一在说话前没喘好气,中途突然换气,换气时有个队友以为你已讲完,并且误解了你的意图,直接冲出去,这难道不会导致信息不同步的麻烦吗,那这个队友岂不是性命难保了。利用简短的号音来传递信息,队友可以迅速明白需要执行的任务,同时自身也不容易被发现。因此,约定的规则能让彼此的联络更为顺畅。

只要通信的两台主机, 约定好协议就可以了么?

不是这样,即便两台主机事先商定了使用某种约定,它们之间依然有可能无法交流信息。计算机的制造厂家数量庞大,计算机的运作系统种类繁多,计算机网络硬件产品也是五花八门,怎样让这些来自不同厂家生产的计算机能够顺利地进行信息交换?这就必须要有某个组织出面,制定一个通用的软硬件规范,要求所有相关方都遵循这个规范,这就是所谓的网络协议。

这就好比讲地方口音一样,你让一个广东人与一个西藏人沟通,前者说着粤语,后者说着藏语,尽管都能传递那个意思,但说出来却截然不同。虽然同属华夏,但彼此都无法听懂对方的言辞。

协议的分层

说几点:

协议类型多样,操作系统同样需要管理协议,内核层面其核心体现为大量数据结构,因此操作系统必须先定义协议再进行构建。(理解与否无关紧要,记住即可)协议在构建时,采用分层方式划分。何谓分层划分?例如在C++语言里,存在继承机制,包含父类、子类以及更下一级的类等等,逐级往下类目不断延伸,整个继承结构中的各个层级都可以看作是不同的层级。

先不论协议具体划分成多少部分,先谈谈日常实际情境中分层的优势。

比如说两个人打电话:

从一般人的角度理解,拨打电话意味着双方直接对话,但专业人士认为情况并非如此简单。例如图中所示,AC两端进行通话,A端首先与其电话设备互动,随后该设备对A端信号进行一系列处理,再转交给C端的电话设备,最后由C端设备对收到的信号做进一步处理,再传递给C端用户。此处可见层次性,人有人的交流方式,人们之间以中文交谈,而下方是两部电话机,它们用电话机能理解的方式联络,因此人类打电话至少涉及双重沟通模式。

再来看下面这张图:

如果两位外国人进行电话交谈,他们所使用的语言是英语,那么他们之间达成的共识也是以英语为媒介,但这并不会妨碍他们的沟通,因为通信的基础仍然是电话系统自身的协议规范。

当两位中国公民通过无线电进行交流,那么其基础层次所遵循的规范就转变为无线电的规范。

上面这个例子就能说说为啥要分层了。

网络协议是怎么分层的呢?

通过通信时出现的问题来分,不同层解决不同问题。

通信的复杂程度是和距离成正相关的。

从联络角度讲,远方两地设备对接时可能遭遇的障碍包括:设备无法正常连接,信息传输存在中断,数据接收出现错误,或者信号传递不够稳定。

接收方未能收到数据,这属于数据丢失的情况。发送方需要明确接收者的具体位置,同时要保证发送的准确性,这就是定位的挑战。在遥远的距离上,数据传输必须经过多个路由器的中转(不清楚的话可以参考之前的广域网示意图)。例如,数据首先发送给第一台路由器,第一台路由器接着传递给第二台路由器,然后继续向下一个路由器转发,从而解决了下一跳目标的问题。

上面三个问题,那么就可以有三层:

数据包的转发由传输阶段负责处理。节点寻址难题交给网络阶段来处理。确定下一跳目标机器,则由数据链路阶段负责解决。

此外还存在另一个疑问,即数据传输环节应采用何种频段等设备层面的细节,此类议题属于底层物理范畴的,但物理层涉及硬件层面较多,鉴于本人博客主要探讨软件议题,故对此物理层内容不作详述。

从功能层面来看,数据接收方在获取信息之后怎样进行信息处置,该事项由功能层面来处理。因此总共包含五个功能层级:

先前已经提及,核心内容围绕软件展开,因此硬件层面的议题无需探讨,仅着重于上方四个层级,

这种分层结构是应用最广泛的网络体系架构,即TCP/IP模型。

我前面讲进程概念的博客中有这么一张图:

这里也存在层级划分,那么网络协议的层级结构与计算机的层级结构之间是否存在关联呢?

答案是有的:

都是对应的。

后续文章将详细阐述应用层开发方法,同时介绍传输层与网络层的操作系统实现方式。通信过程中调用的是传输层提供的接口函数,因此网络编程的根本归属仍是系统编程。由于依赖操作系统,其核心内容本质上还是操作系统学习。

TCP属于传输层,IP属于网络层,这两者在操作系统中负责具体执行通信相关的工作。应用层则由用户进程承担,主要处理应用程序本身的数据处理任务。

但是专门制定网络协议规范的机构,其构建方式并非依照那五个层级,而是遵循七个层级来实施,

这个分层架构依据OSI七层模型构建。它比TCP/IP模型更复杂,增设了两个层级。其中一个层级负责数据格式转换,另一个层级负责建立与终止通信会话。

TCP/IP协议出现于OSI模型之后,两者之间的联系,好比是设计图与最终建成的建筑。

OSI是由专业组织制定规范的,并非由他们完成具体构建,当着手构建OSI时,人们意识到应用层、数据表现层和交互控制层无法分割,它们本质上是一个整体,因此决定将这三层合并为一个部分。

TCP/IP五层架构(或四层结构)(可以忽略,对初学者来说过于复杂了,我这里仅是让你简单了解,其中包含的诸多原理初学者往往难以掌握)

TCP/IP代表一类协议,这个集合包含众多协议,共同构成了TCP/IP协议系列。

TCP/IP通信体系采用了五级层级构造,每一层级都借助其下一层级所实现网络来完成自身任务:

网络底层我们关注较少,因此有时也称作 TCP/IP四层架构。

一般而言

并非所有交换机都仅限于数据链路层工作,部分交换机已具备网络层的数据转发能力;同样,并非所有路由器都专注于网络层路由,部分路由器也集成了传输层的某些功能,例如执行端口映射操作。

两个主机间的通信 在同一个局域网中的主机

同一网络里的两台设备能够直接进行联络,联络过程中从概念上看就是当前设备的软件层面直接把信息递给了另一台设备的软件层面。

但是实际上并不是,就像刚刚打电话的那个例子一样。

信息交互时,一方信息需先自上而下,经由应用程序逐层递送至底层,接着通过局域网——其中以太网最为常见——传输至对方链路环节,最后再自下而上返回应用层面:

为啥要这样干呢,我来讲一个生活中的例子。

你们同住一个社区,但分别住在不同的楼里,你住A楼,朋友住B楼,不过你们都在五层,如果朋友要给你送个礼物,他得先从B楼五层降到一层,接着穿过AB楼之间的通道,走到A楼楼下,再跑到A的五层,这样礼物就到你手了。因此从道理上讲是你伙伴把赠品直接交到了你手上,不过从实际操作上讲,对方是先从上往下,接着穿过中间的路径,再从下往上把赠品递过来的。这就好比数据传送的过程。一个是站在使用者的立场去思考,另一个是站在技术人员的角度去分析。

报头

分层构造里,各层都有专属的协议设定,每层协议都必须配备独立的协议头标识,数据自上而下传输时需附加该头信息,数据自下而上递交时则要移除该头信息,例如当前通过QQ发送了问候语,整个向下滑动传输的过程基本就是这般情形(图中头标识的样式是我随意绘制的):

上传过程中,每一阶段都会实施拆解,拆解即将接收到的信息的头部与实际内容(实际内容就是每层最外层矩形框住的部分)分开,然后把实际内容传递给下一阶段,整个过程就是如此。

完整流程就是:

那报头是干啥的呢?

回忆一下大家发送和接收快递的经历,寄快递时必须填写一份表格,该表格会粘贴在包裹表面,这份单据并非寄件人或收件人阅读,而是供快递企业使用,可以将其视为信笺的抬头部分,对于寄送方和接收方来说基本无用,仅是附加的物件,快递流转过程为寄出方 ===》快递机构 ===》快递机构 ===》收件方,总共包含两个环节。收到快递后开始拆开包装,拆开后立刻拿到数据并移交,只是说明只有两层东西,拆包装的过程是独自完成的。

数据从上往下传送时,下层需依照自身规则为上传数据补充特定信息,而接收方的同级单位在获取数据后,也要遵循其规范对下层转来的信息中的某些部分进行解读和操作。协议头是接收到的信息中新增的部分。这个头部信息能够明确指定将数据交给哪一级别的协议处理。

自上到下封装:添加报头。

自下到上解包:去掉报头 + 展开分析(后面说)。

增加标题类似于压栈,拆开包裹类似于出栈,这种情况下同一级别在概念上就是直接进行交流:

提升工作效率,无需逐层定位报头位置,直接查找栈顶即可。

如何做到直接通信

先前提到局域网里的两台设备能够直接联络,那么具体是如何实现的呢?

先来讲个例子:

课堂上老师开始授课,点名让张三来回答问题,全班同学都能听见点名,然而只有张三站了起来,师生对话时全班同学依然能听到声音,但交流内容只有老师和张三知道,也就是说在信息可以被所有人接收的情况下,他们之间实现了私密沟通,老师向张三传递信息,张三向老师反馈情况。

问:为什么老师点名张三时,其他同学不站起来?(问题有点二)

由于教师未曾邀请任何其他学生,这一情况的前提是每位同学都接到了该通知。

本地网络也是如此,数据传输时如同某台设备在整个网络中发言,随后指明目标设备,便能够向该设备传递信息了。参见图示。

此刻有六台设备接入同一个网络环境,当B打算与E交换信息时,B在发送数据之前会明确指出目标为E,但这一指令会被ACDEF全部侦听到,不过他们都会先核对B指明的设备标识是否与自身标识相符,一旦确认不是针对自身则会立刻舍弃该指令,因此最终只有D获取到了数据,并将数据向上传输以进行后续操作,同样的,D若需回复B的信息,也遵循相同的机制。

课堂上,有个学生总是扰乱教学秩序,导致无法正常进行课程。教室里,每个人都能发声,老师授课时,若学生持续制造嘈杂声,会干扰老师的讲解,也会妨碍老师与学生之间的交流。

B与E主机之间进行联络时,借助局域网作为传输途径,局域网内任何接入的设备都有权向其中播发光脉冲信号,当A主机在B与E正在紧密交互期间擅自发送数据,便会造成B与E发出的以及A发出的光脉冲信号相互交织,因而B与D收到的信息变得难以分辨,这种现象即为局域网数据传输过程中出现的冲突现象。

在不同局域网中的主机

跨网段的主机联络时有些许差异,但封装和拆解报文的过程是相通的。

各种局域网类型或许存在差异。我特别强调了或许,现阶段广受欢迎的局域网种类主要有以太网和无线局域网。

如果各位想看看局域网有哪些可以看看这篇博客:。

不同区域的网络,不论类型是否一致,若需联络,就必须借助路由设备,先前那些描绘演进历程的图示也阐明过这一点。

看图:

若需阐述具体步骤,须先提及两个地址:物理地址与网络地址。

MAC地址和IP地址

提醒:请联系我时一定说明是从奢侈品修复培训上看到的!