网络的基本原理

article/2025/9/28 23:42:17

文章目录

  • 一、计算机网络背景
  • 二、局域网和广域网
    • 1.局域网(LAN)
    • 2.广域网(WAN)
  • 三、认识协议
    • 1.协议的概念
    • 2.协议分层
    • 3.网络OSI七层模型
    • 4.TCP/IP五层模型
    • 5.数据的封装和解包
  • 四、局域网内主机交互与跨网段主机交互

一、计算机网络背景

我们用计算机完成一项工作时,不可避免地需要进行多人协同工作,这就需要有方式让我们互相传递数据。假设现在有三台计算机终端A、B、C,分别负责查找文件错别字、修改文件错别字、调整文件内容排版的工作,由于每台计算机之间是相互独立的,并且三个工作之间的联系比较紧密,必然需要使用数据传输。

比如终端B要想修改文件错别字,他必须等到终端A找出文件的所有错别字才能修改,终端C要向调整文件内容的排版,他必须等到终端B把所有错别字修改完成才能调整。在没有网络的年代,这种数据传输的方式只能依靠人工传送,比如将整理好的数据拷贝到移动存储设备中,再由人工转交给下一个工作者,这种传输方式必然导致效率低下。

在这里插入图片描述

有了网络技术以后,我们就可以实现网络互联,让多台计算机终端连接在一起,完成数据传输共享。

在这里插入图片描述

我们再从操作系统的角度来理解一下网络通信为什么是可以实现的。

在冯诺依曼体系结构中介绍的是输入设备将数据加载到内存,内存再将数据传给CPU进行处理,CPU处理完以后再将结果返回给内存,内存再将数据传给输出设备。这些所谓的输入输出设备,内存CPU,它们都是硬件,它们之间是通过总线来实现数据传输的。

在这里插入图片描述

多台主机之间传输数据就相当于是网卡与网卡之间在传输数据,那么网卡也是硬件,它们也是通过总线进行数据传输,只不过可以理解成单主机内的总线是比较短一点的线,多主机之间的线是比较长一点的线。

在这里插入图片描述

二、局域网和广域网

1.局域网(LAN)

局域网指的是在某一区域内多台主机通过网络互联形成的计算机组,一般这个区域的范围比较小,主机之间的间隔比较近,比如我们在同一个学校,同一家公司,同一个住宅内都可以组成局域网。当局域网内的计算机数量多了的时候,就需要使用交换机将多个设备连接在一起,它可以同时多个终端之间的信息交换。

在这里插入图片描述

2.广域网(WAN)

广域网指的是连接不同地区局域网的远程联网,又称公网、外网,广域网通常跨接的范围很大,物理距离很远,比如多个城市之间甚至多个国家之间的网络连接,它需要用到路由器,将每个局域网的数据进行转发,广域网就是一张通过路由器连接多个局域网的网络图。

在这里插入图片描述

三、认识协议

1.协议的概念

协议的本质其实就是一种约定。
计算机之间的传输媒介是光信号和电信号,有些硬件根据信号的频率来表示0和1这样的信息,而有些硬件根据信号的强弱来表示0和1这样的信息,所以如果要想传递各种不同的信息,就需要约定好双方通信的数据格式。但协议并不是制定好一份约定就可以正常运转通信了,必须让通信双方都遵守这份协议才能让通信正常进行。

2.协议分层

我们在设计软件的时候,都会将软件的不同功能模块进行封装,设计成层状结构,这也是面向对象的思想,比如我们平时在用电话机打电话时,其实也是具有层状结构的,它分为语言层和通信设备层,在语言层,两个打电话的人都遵守汉语协议,用汉语进行沟通,所以双方能够正常进行通信。在通信设备层,两台电话机都遵守电话机协议,所以才可以将每个人的声音信息进行分析、包装、分发给对方,保证通信的正常进行。

在这里插入图片描述

层状结构有以下几个好处:

  1. 每一层都有属于自己的协议,并且每一层都认为自己在与同层的对方直接通信,比如说上面打电话的例子,两个打电话的人他们只需要遵守语言层的协议,拿起电话机就能跟对方进行通话,并不关心底层是怎么实现通话的,通信设备层的两台电话机也是类似。
  2. 分层能够很好地实现解耦,每一层之间的耦合度非常低,比如上面打电话的例子,如果语言层我们更换了协议,不使用汉语协议而是使用英语协议,双方依然能够正常沟通,通信设备层并不会因此受到影响。

3.网络OSI七层模型

OSI(Open System Interconnection)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范。它把网络从逻辑上分成了7层,每一层都有相关的、相对应的物理设备,比如路由器,交换机。

OSI七层模型是一种框架性的设计方法,其最主要的功能是帮助不同类型的主机实现数据传输,它最大的优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

OSI七层模型将网络分成了七个层次:应用层表示层会话层传输层网络层数据链路层物理层

4.TCP/IP五层模型

OSI七层模型虽然设计得非常好,但是实际在应用实现过程中会比较困难,所以研究网络的科学家继续将网络分成5层,叫作TCP/IP五层模型。

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

TCP/IP协议的五层模型自底向上分别为:物理层数据链路层网络层传输层应用层

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

有了这个网络模型以后,我们再来看计算机是如何通过网络将数据从一台主机发送到另一台主机的:

假设有两台主机分别为主机A和主机B,主机A用户通过网络将信息发送给主机B用户,该信息会从主机A开始自顶向下依次经过应用层->传输层->网络层->数据链路层->物理层,然后通过物理层的网卡设备将信息发送出去。

主机B会自底向上接收信息,物理层的网卡接收到信息之后,依次经过物理层->数据链路层->网络层->传输层->应用层,再把信息返回给用户,这样就完成了一次网络信息传输。

在这里插入图片描述

5.数据的封装和解包

在TCP/IP五层模型中,每一层都认为自己只在与同层直接交流,比如应用层只关心对方应用层的数据,传输层网络层具体怎么做,它们传输什么数据应用层是不关心的。所以同层之间都有属于自己的协议,它们就是通过这些同层协议来进行信息交互的。

所以一个信息自顶向下经过每一个层级的时候,都会在这个被传输的信息上新增一些新的数据,这些数据就是每一层协议的协议数据。

举个例子,我们在主机A中发送一条信息“你好”到主机B中,在主机A的应用层中会增加应用层协议的协议数据,在传输层中会增加传输层协议的协议数据,在网络层中会增加网络层协议的协议数据,在数据链路层中也会增加数据链路层的协议数据,物理层一般不会添加协议数据。

然后这个被发送的信息以及增加的数据就被一起发送到了主机B中,数据链路层会将主机A中数据链路层增加的数据链路层协议数据拿下来,再将剩下的数据继续向上转发,其它层同理。最后,每一个层级都拿到了同层协议发送过来的协议数据,可以简单理解为协议就是约定,由于同层之间采用同一种协议,所以这些协议数据就是他们能看懂的信息。

在这里插入图片描述

我们把每一层新增的协议数据叫作报头,自顶向下每一层增加报头的过程就是数据封装的过程,自底向上每一层取报头的过程就是数据解包的过程。

四、局域网内主机交互与跨网段主机交互

我们上面讲的两台主机自顶向下和自底向上进行信息交互的网络模型,都是基于局域网内的例子演示的,底层是通过以太网进行数据传输的,以太网是局域网的标准。

所以在同一个局域网内的两台主机是可以直接通信的,而且处于同一个局域网内的多台主机通信是可以相互知道的,这些信息会广播到局域网内的每一台主机,也就是说你在局域网内和另一台主机通信,局域网内的其它所有主机都是可以知道的。这就好比在一间课室里,老师点名张三起来回答问题,是老师和张三之间在对话,但这个对话是全班同学都知道的。

那么在局域网内,计算机怎么知道我要跟谁通信呢?计算机是通过MAC地址来区分局域网内的计算机的。如果把一个局域网比作一个教室的话,教室里的学生和老师就是局域网内的主机,那么MAC地址就是学生和老师的姓名。

专业点来说,MAC地址是用来识别数据链路层中相连的节点的,在网卡出厂的时候MAC地址就被确定了,是不能被修改的,用来标识网卡的唯一性,但MAC地址通常是唯一的,这里说通常是因为虚拟机中的MAC地址不是真实的MAC地址,可能会存在重复。也有些网卡支持用户自己配置MAC地址。

在这里插入图片描述

如果是跨网段的主机交互,我们就需要路由器帮我们把消息从一个局域网转发到零一个局域网,它工作的流程是:数据链路层的以太网驱动程序封装好数据链路层协议数据以后,将其发送给路由器的以太网驱动程序,以太网驱动程序进行解包,再将剩下的数据向上交付给路由器的网络IP层,网络IP层拿到网络层协议数据之后,它知道这些数据要发送到的目标IP是什么,它会在连接自己的端口中找是否有该目标IP,找到了的话路由器的网络IP层继续将数据向下交付给令牌环驱动程序,令牌环驱动程序再增加令牌环协议数据,然后将数据包转发给另一台主机,再自底向上交付数据。

在这里插入图片描述


http://chatgpt.dhexx.cn/article/yuRkEDtq.shtml

相关文章

网络:网络协议基本原理

引入 进程间通信,其实是通过内核的数据结构完成的,主要用于在一台linux上两个进程之间的通信。但是,一旦超出一台机器的范畴,我们就需要一种跨进程的通信机制。一台机器将自己想要表达的内容,按照某种约定好的格式发送…

网络原理(初识)

网络原理(网络初识) 1、局域网LAN(Local Area Network) (1)Local 即标识了局域网是本地,局部组建的一种私有网络。局域网内的主机之间能方便的进行网络通信,又称为内网;局…

网络原理(IP协议)

目录 IP协议IP地址IP 地址由网络和主机两部分标识组成IP 地址的分类广播地址IP多播子网掩码 路由IP 地址与路由控制 IP 分包与组包什么是IP分片为什么要进行IP分片IP分片是如何组装的路径 MTU 发现 IP协议 IP(IPv4、IPv6)相当于 OSI 参考模型中的第3层—…

网络原理——网络协议

目录 传输层协议TCP协议TCP协议格式段TCP原理连接管理可靠传输流量控制拥塞控制延迟应答和捎带应答错误检测TCP异常 UDP协议UDP协议格式段UDP协议特点无连接不可靠面向数据报大小受限 网络层协议IP协议 数据链路层协议​以太网MTUARP协议 传输层协议 ​ 传输层负责数据能够从发…

网络原理 2

文章目录 1. 网络层2. 数据链路层3. DNS 前言 : 上文已经 将 网络层 和 传输层 说完了, 下面我们来学习以下 网络层 和 数据链路层 里 相关的知识 , 关于 网络层 和 数据链路层 的知识 简单了解一下即可 . 1. 网络层 网络层 主要 做两件事 : 1.地址管…

计算机网络原理最详细解说

一、计算机网络概述 时代不同了,大家现在生活都好了,家家户户基本都有电脑,而且我们都习惯了使用电脑办公,打打游戏,聊聊天等等。 那我们一起来想一个场景:如果没有了网络,我们是不是就不能使…

[网络原理] 网络中的基本概念

人生,本就是苦乐参半,这样的生活才是丰富多彩. 文章目录 前言1. IP地址2. 端口号3. 协议4. 五元组5. 协议分层6. OSI七层模型7. TCP/IP协议8. 封装和分用9. 客户端与服务端10. 请求与响应 前言 本章开始,我们开启网络部分的知识大门. 1. IP地址 1.定义: IP地址主要用于表示网…

网络原理-网络发展史和通信基础

目录 1.网络发展史 面向终端的计算机网络 计算机网络阶段(局域网LAN) 组网方式 计算机网络互联阶段(广域网WAN) 2.通信基础 IP地址 端口号 网络协议 协议的作用 知名协议的默认端口 协议分层 分层的作用 OSI七层模型 TCP/IP五层模型 网络设备所在分层 网络分层…

【Linux】网络原理

本篇博客让我们一起来了解一下网络的基本原理 1.网络发展背景 关于网络发展的历史背景这种东西就不多bb了,网上很容易就能找到参考资料,我的专业性欠缺,文章参考意义也不大。这里只做简单说明。 网络发展经过了如下几个模式 独立模式&…

计算机网络 ——网络原理之初识

✨计算机网络 ——初识网络原理 作者介绍: 🎓作者:偷偷敲代码的青花瓷🐱‍🚀 👀作者的Gitee:代码仓库 ✨✨我和大家一样都是热爱编程✨,很高兴能在此和大家分享知识,希望在分享知识的同时,能和大家一起共同进步,取得好成绩&#x…

计算机网络原理简介

物理层 电脑要联网,需要做什么,电脑需要电, 然后电脑与电脑之间相连,需要网,可以用光纤,双绞线,同轴电缆,无线波等 把电脑连接起来的物理手段,主要规定了网络的一些电气特性,作用是负责传送0和1的电信号.而机械特性,及时如何去与硬件相连了,比如说插座的尺寸 数据链路层 物…

快速了解网络原理

作者:~小明学编程 文章专栏:JavaEE 格言:热爱编程的,终将被编程所厚爱。 目录 局域网和广域网 局域网 局域网组建的方式 广域网 网络通信基础 IP地址 端口号 协议 什么是协议 协议分层 分层模型 OSI七层模型 TCP/IP…

网络原理 (1)

网络原理 文章目录 1. 前言: 2. 应用层2.1 XML2.2 json2.3 protobuffer 3. 传输层3.1 UDP3.1 TCP4. TCP 内部的工作机制 (重点)1. 确认应答 2.超时重传3. 连接管理3.1 建立联系 :三次握手3.2 断开连接 : 四次挥手 4. 滑动窗口5. 流…

网络原理初识(基础)

目录 一,网络的划分 1.局域网(LAN) 概念 局域网的组建(连接方式) 2.广域网(WAN) 概念 二,网络通信基础 1.IP地址 概念 格式 组成 分类 特殊IP 2.端口号(po…

网络基本原理

一、网络与网卡 网络:进程与进程间跨主机(Host)通信 网卡: 网卡发送数据:1.填充数据 2.触发发送 网卡接收数据:1.接收数据 2.通过中断把控制权交给OS 3.OS把数据搬给进程 数据经过不断的封装之后才能发…

安装vue-devtool

新买了台电脑,想要安装vue-devtool,发现安装不上,特此记录下。 一,下载 因为某种大家都知道的原因,外网上不了。 可以使用这里的下载地址: https://chrome.zzzmh.cn/info?tokenljjemllljcmogpfapbkkighb…

嵌入式linux之yocto(六)devtool往返开发

1. 参考 yocto官方文档-devtool 微信读书:嵌入式Linux系统开发:基于Yocot Project 书中对于devtool讲解较少,官方文档对devtool的工作流和使用方法较为详细。 传统开发内核是直接进入内核路径修改源码,这里简述使用devtool工具开发Linux内核…

Chrome Devtool 调试 Javascript

重现错误 单击打开演示。演示在新选项卡中打开。在 Number 1 中输入数字5在 Number 2 中输入数字2点击 Add Number 1 and Number 2 熟悉 Sources 面板 UI 点击Source get-started 是 get-started.html(不包括JS) get-started.js 就是 get-started 的…

devtool使用介绍(2)

devtool使用介绍2 2.4.2 使用devtool Modify修改现有组件的来源 2.4.2 使用devtool Modify修改现有组件的来源 devtool Modify命令为使用已有代码的现有代码作准备,该代码已具有用于构建软件的本地recipe。 该命令足够灵活,可让你从上游源提取代码&…

webpack——devtool配置及sourceMap的选择

官方手册传送门 官方对devtool配置的定义很简单:选择一种 source map 格式来增强调试过程,不同的值会明显影响到构建build和重新构建rebuild的速度。 不过,什么是source map,官方用提供了许多种的source map,其中的区…