网校课程

移动资讯

扫一扫
关注
掌握一手资料
免费试听
  • 今天
    环球网校自考单科强化班

    今日 免费试听

    立即试听
  • 今天
    环球网校自考考点精讲班

    今日 免费试听

    立即试听
  • 今天
    环球网校自考精品VIP班

    今日 免费试听

    立即试听
  • 今天
    环球网校自考高端签约班

    今日 免费试听

    立即试听
  • 今天
    环球网校自考试听课程送大礼

    今日 免费试听

    立即试听
  • 今天
    自考365自考专科培训

    今日 免费试听

    立即试听
  • 今天
    自考365自考本科培训

    今日 免费试听

    立即试听
  • 今天
    自考365自考公共课培训

    今日 免费试听

    立即试听
  • 今天
    自考365自学考试

    今日 免费试听

    立即试听
  • 今天
    自考365自考试听课程送大礼

    今日 免费试听

    立即试听
开课流程: 注册会员 → 免费试听 → 选课报名 → 支付学费 → 再登陆听课

您现在的位置: > 自考 > 网络基础知识及发展背景介绍,带你入门简单网络代码编写

网络基础知识及发展背景介绍,带你入门简单网络代码编写

来源:网络整理 2025-09-27 14:02:26

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

正式开始

本篇重点讲解:

一些基础知识 发展背景

这段背景信息可以简单说明一下,对于初学者来说,大致了解还是有帮助的。

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

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

在这里插入图片描述

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

在这里插入图片描述

个人完成信息整理后能够提交给主机,随后其他成员可以从主机中获取资料进行后续操作,操作结束后还可以将结果再次传输回去。

此处已属局域范畴,譬如昔时部分研究机构,众多机器均接入统一服务器运行,诸如贝尔研究所、伯克利大学、麻省理工学院的设施等。

但假如两个研究机构存在一项联合任务,必须对某些资料进行加工,便能让两个内部网络借助一台网关设备实现互联,达成信息交换的目的。通过这种方式,不同的内部网络便能够建立起联系:

在这里插入图片描述

关于图中涉及的那些网络设备,例如交换机、路由器等,待会儿再稍作介绍,等后面深入讲解网络知识时再详细阐述,现阶段这篇文章仅是进行基础的普及说明。

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

在这里插入图片描述

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

这个概念需要说明一下,所谓“局域网”、“城域网”、“广域网”,它们之间仅仅存在范围大小的区别,关键在于连接到网络中的设备数量不一样,从不同角度观察同一个网络,得出的分类结果也会有所不同。以你们村子的角度出发,你们家能够视为一个局域网,而整个村子的网络则可以看作是广域网;然而从整个市或者整个省的角度出发,你们村子又可以视为一个局域网网络培训学校,而整个城市才是一个广域网。

因此,关于广域网的各种概念,为了在学术上有所区别,但在技术层面,它们都是些相对性的东西,不过在此讲解时还是需要提及一番。

运营商和生产商

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

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

另有一个与通信服务商联系极为紧密的,称为设备制造商,这个角色承担着硬件层面的保障,诸如华为、诺基亚等企业专注于通信装置的制造。

缺少这两个角色,大家便无法访问手机上的B站、淘宝等应用程序,如果没有这两个角色作为前提,那么任何APP都不可能存在,如果其中一方未能妥善履行职责,就会引发故障,例如网络培训学校,倘若运营商未能有效维护网络,导致网速迟缓,大家在浏览CSDN时将异常卡顿,页面长时间无法加载出来,这种情况令人非常困扰,最终将导致用户数量下降。

协议

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

啥是协议呢?

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

在我们网络体系里,协议是软硬件必须遵循的一种规则,它规定了信息在网络中如何传递和交流。

不清楚你是否看过姜文执导的电影《让子弹飞》,影片中有一个情节是张麻子等人去进行所谓的“剿匪”,他们通过发出不同的哨声来传递信息,这种方式其实是一种联络手段。要想达成这样的联络,必须让张麻子手下所有人都能识别出各种哨声所蕴含的特定信息,同时也要掌握吹出具有不同意义哨声的方法。

如果发出两个短音,就代表全体进攻的指令,这个是我编造的,要是吹响两个长音,就表示需要撤退,这也是我虚构的,这两个短音和两个长音的信号,必须让整个团队都牢牢记住,不同的音调对应着不同的行动,这就是利用哨子进行联络的规则。

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

减少成本。

长句如果太长,在战斗时需要大声呼喊,否则队友可能听不见,但长时间呼喊容易暴露位置,敌人或许会察觉,存在风险,万一在说话前没喘好气中途换气,换气时有个队友以为你讲完了,并且误解了你的意图,直接冲出去,这岂不是会导致信息不同步的问题,那个队友岂不是性命难保。而借助简短的号音来传递信息,队友可以迅速明白需要执行的任务,同时自身也不易被察觉,因此协议的制定能够使双方联络更为顺畅。

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

不是这样,即便两台主机事先商定了通信规则,也可能无法互通信息。计算机的制造厂家数量庞大,计算机的运作系统种类繁多,计算机网络硬件设备同样五花八门,怎样确保这些不同厂家制造的计算机能够顺利交流?这就需要有人出面,制定一个通用的软硬件规范,让所有参与者都遵循,这就是网络协议。

这就好比不同地域的人沟通,比如一个广东人与一个西藏人对话,前者说着客家方言,后者说着藏语,尽管双方意图相同,但表达方式差异显著,语言完全不同。虽然他们都是中国人,彼此却无法听懂对方的讲话。

协议的分层

说几点:

协议类型多样,操作系统同样需要协议管理,内核层面其核心表现为大量数据结构,因此操作系统必须先定义协议再进行构建。(理解与否无关紧要,记住即可)协议在构建时,遵循层级结构原则。何谓层级结构呢?例如在C++的继承机制里,基础类、派生类、以及更下一级的类等等,后续的层级不再赘述,整个继承结构中的各个层级都可以看作是不同的层级。

先不论协议具体划分了多少部分,先谈谈实际应用中分层的优势。

比如说两个人打电话:

在这里插入图片描述

从一般人的角度看,打电话就是双方直接对话,但技术人员认为情况并非如此简单。比如图中展示的AC通话过程,A方先与自己的电话设备互动,接着该设备对A方的信号进行一系列处理,之后传递给C方的电话设备。C方的设备接收到信号后,同样会经过一系列转换,最终把信息呈现给C方的人。此处可见层次性,人有人的语言体系,人与人之间以中文交流,而底层是两部电话在运用电话可识别的信号联络,因此人打电话至少涉及双重沟通方式。

再来看下面这张图:

在这里插入图片描述

如果两位外国人通电话时讲的是英语,那么他们之间的交流约定就是英语,但这并不会妨碍他们的通话,通信的基础还是电话本身的协议。

两个人若用无线电交流,那么其基础传输规则就会转变为无线电的规则。

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

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

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

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

仅就联络角度而言,远方相隔遥远的两台设备进行信息交互时,可能会遭遇的障碍包括:

接收方未能收到数据,这就是数据丢失的现象。发送方如何知道接收方的具体位置,怎样保证信息发送准确无误,这就是定位的难题。远距离传输数据时,必须经过多个路由器的中转(不清楚的话可以参考之前的广域网示意图)。例如数据先传给第一个路由器,第一个路由器再转交给第二个路由器,接着不断传向下一个路由器,从而解决了下一站节点的选择问题。

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

数据传输中的差错由传输阶段处理。网络路径的确定由网路阶段负责。转发过程中的目标节点,由链路阶段处理。

此外,还存在另一个疑问,即数据传输时需采用何种频段等硬件层面的细节,这类议题属于物理层范畴的探讨,然而物理层过于侧重硬件层面,鉴于我的博客主要聚焦软件议题,因此对物理层内容不作详尽阐述。

从实际运用角度讲,接收方在获取信息之后怎样进行信息处置,该事项属于应用层面负责。因此总共包含五个层级协议:

在这里插入图片描述

先前已提及,核心内容围绕软件展开,因此硬件层面的议题不予探讨,仅聚焦于其上四部分:

在这里插入图片描述

这种分层结构是网络协议中最为典型的架构,即TCP/IP模型。

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

在这里插入图片描述

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

答案是有的:

在这里插入图片描述

都是对应的。

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

TCP和IP是在系统内核里构建的,它们主要负责管理数据传输的相关事务,而应用层则由用户程序负责,主要处理数据如何被程序使用的问题。

但制定个性化网络规则的机构,并非完全依照那5个层级来构建,而是采用7个层级进行规划,

在这里插入图片描述

这个分层架构是OSI七层模型。它比TCP/IP模型多出两个层级,其中一个是用于数据格式转换的层级,另一个是负责建立和终止通信会话的层级。

TCP/IP出现的时间晚于OSI,它们之间的联系,好比是设计图和建成后的建筑,非常相似。

OSI是由专业组织制定规范的,并非由其完成实施,当实际开展OSI工作时,人们发现应用层、表现层和会话层难以分割,它们本质上是一个整体,因此决定将这三层合并处理。

TCP/IP五层架构(或四层版本),可以忽略不看,对于初学者来说过于复杂,我这里仅是让你简单了解,其中包含许多初学者难以理解的内容

TCP/IP是多个协议的总称,里面包含众多协议,共同构成了TCP/IP协议系列。

TCP/IP通信体系采用了五级分层架构,每一级都借助下一级提供的网络功能来达成自身目标:

在这里插入图片描述

网络底层我们关注得不多,所以很多时候也称作 TCP/IP四层架构。

一般而言

并非所有设备都仅限于单一功能,部分交换机同样具备处理网络数据包的能力,而某些路由器也承担了部分数据传输环节的任务,例如进行端口导向的连接转换。

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

同处一个网络环境下的两台设备能够直接进行数据交换,信息传递在概念上表现为本机软件层面直接将资料发送给对方软件层面,

在这里插入图片描述

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

交流时,一方信息需先由上至下将报文信息从顶层逐层送至底层,接着经局域网(以太网是普及最广的局域网类型)传至对方链路环节,最后再由底层逐层回升至顶层。

在这里插入图片描述

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

如果你们同住一个社区,但分别住在不同的楼宇,你住在A号楼,朋友住在B号楼,不过你们都在五层,当朋友要给你送个礼物时,他需要先从B号楼的五层降到一层,接着走AB号楼之间的通道到A号楼楼下,最后跑到A号楼的五层,这样礼物就到你手了。因此,从道理上讲是你朋友把礼物直接交到了你手里,但从实际操作上讲,TA是先向上移动,再横穿过来,然后又向下移动,才把礼物送到你手中。这个过程跟数据传送很相似。一种是站在使用者的立场去思考,另一种是站在技术人员的角度去分析。

报头

分层构造里,各层都有专属的协议设定,每层协议均需配备独特的协议头标识,数据自上而下流转时须附加该头信息,数据自下而上递交时则要移除该头信息,例如当前通过QQ发送一条你好信息,整个向底层传输的经过大致如下所示(图中头部的形态系随意绘制而成):

在这里插入图片描述

数据在传送过程中逐级处理,每经过一层都会进行拆解,拆解就是把接收到的信息中的首部信息和实际内容分开,实际内容就是每层最外层用长方形框起来的部分,然后将这部分内容传递给更高一层,整个过程就是这样。

在这里插入图片描述

完整流程就是:

在这里插入图片描述

那报头是干啥的呢?

回忆一下大家寄送和收取快递的情景,寄快递时必须填写一份表格,该表格会粘贴在包裹上,这份包裹并非供寄件人或收件人查阅,而是供快递企业参考,此表格可视为信封,对寄送方和收取方均无实际意义,仅是附加的物件,快递流转过程为寄送人,经过快递企业,再由快递企业,最终送达收件人,总共涉及两个环节。收到快递后开始拆开包装,拆开后拿到数据就进行移交,只是说明只有两层东西,拆包装这个工作是我一个人完成的。

数据从上往下传送时,下层需依据自身规则为上层数据附加特定信息,而接收方的同级单位在获取数据后,也要按照其规范解析并处理来自下层的相应字段内容。报文头部就是接收信息时多出来的部分。这部分内容可以确定交给哪一种上层协议。

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

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

增加报文头部类似将元素放入栈中,移除报文头部类似从栈中取出元素,这种情况下同一层级在逻辑上就是直接进行信息交互。

在这里插入图片描述

提升效率,无需逐层定位报头,只需查找栈顶即可。

如何做到直接通信

先前已提及局域网内两台设备能够直接联络,那么其实现方式是怎样的呢?

先来讲个例子:

课堂教学进行中,教师点名让张三应答,当时全班学生均可听见,然而仅有张三站起身来,二者交谈之际全班众人依旧能清楚辨识,不过教师仅与张三进行交流,换言之,即便所有人都能接收讯息,他们之间却实现了定向联络,教师向张三传递,张三向教师回应。

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

由于老师没有邀请任何其他同学,这一情况的前提是每位同学都得到了这个通知。

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

在这里插入图片描述

此刻有六台设备ABCDEF接入同一网络,当B要联系E时,会先通知目标地址,但此通知会被ACDEF全部接收,它们会核对通知中的设备标识是否指向自身,若非本机则立即忽略,因此最终仅D能获取该通知,并将信息上传至更高层级处理,同理D若需回复B,也会遵循相同机制。

课堂上,有个学生总不守规矩,老是干扰老师讲课,导致教学无法正常进行。教室里,大家都能说话,可当老师授课时,要是有人大声喧哗,就会妨碍老师讲课,也会干扰老师和学生之间的交流。

B与E主机进行联络时,借助局域网进行信息传递,局域网内任何接入的主机都有权向其中发送光脉冲信号,当A主机在B与E正在顺畅交流期间随意发送数据,便会造成B与E发出的以及A发出的光脉冲信号相互交织,进而导致B与D之间的信息变得难以分辨,这种现象被称为局域网数据传输过程中出现的冲突现象。

在不同局域网中的主机

跨不同网段的主机进行信息交互时存在一些差异,但封装和解析报文头的过程基本相同。

局域网的具体形式或许存在差异。需要留意的是我特别强调了或许,当前广受欢迎的局域网模式包括有线网络以及无线路由。

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

不同区域的网络,不论类型是否一致,若需实现互通,就必须借助路由设备,先前那些描绘演进历程的图表也阐明过这个情况。

看图:

在这里插入图片描述

需要说明具体步骤时,必须先提及两个地址:物理地址和网际协议地址。

MAC地址和IP地址

名师辅导 环球网校 建工网校 会计网校 新东方 医学教育 中小学学历



星级网校推荐

排行推荐 频道最新