网络入门基础
网络入门基础
文章目录
- 网络入门基础
- 网络的发展
- 协议的概念
- 网络协议初识
- 协议分层
- 层状结构
- OSI七层模型
- TCP/IP五层(或四层)模型
- TCP/IP模型和计算机软硬体系结构的关系
- 网络传输基本流程
- 同局域网的两台主机通信
- 不同局域网的两台主机通信
- 网络中的地址管理
- 认识IP地址
- 认识MAC地址
网络的发展
独立阶段:
早期计算机是独立工作的,各个主机存储着各自独有的数据。
由于各个计算机之间是相互独立的,因此要利用多台计算机共同完成同一份工作,需要计算机的使用者将计算机的数据拷贝到可移动的存储介质中,然后利用可移动的存储介质将数据传输到其他计算机上,实现数据的共享,以达到多态主机共同完成同一工作的目的。
网络互联阶段:
为了各独立的计算机之间能够协同工作,使用特定的线路将各计算机连接起来,计算机将数据交于服务器,再让服务器将数据传给其他计算机完成数据的共享。网络就是在这个时候出现的。
网络的定义: 网络是由若干结点和连接这些结点的链路组成。网络中的结点可以是计算机、集线器、交换机、路由器。
互联网的定义:将不同的网络连接在一起形成的规模庞大的网络互联网中的计算机称为主机。
局域网LAN阶段:
由于网络中连接的计算机数量变多, 通过交换机和路由器将网络中的计算机连接在一起,形成局域网。计算机传输的数据经过链路到达交换机或路由器,交换机或路由器会根据一定策略将数据转发出去,使得其他计算机收到数据,完成资源的共享。
由交换机连接各计算机形成的网络称为局域网,由路由器将不同网络连接起来形成的网络也是局域网。
广域网WAN阶段:
为了让更多远距离计算机之间进行协同工作,将不同的局域网连接在一起,形成一个更大网络,这个网络称为广域网。各局域网内的计算机通过链路将数据传输出去,经过交换机或路由器时,会根据一定策略将数据转发出去,使得其他局域网中的计算机收到数据,完成资源的共享。
所谓 “局域网” 和 “广域网” 只是一个相对的概念。可以称由一个路由器连接的两个网络为局域网,也可以称为广域网(并将被连接的两个网络称为局域网)。
协议的概念
-
协议是指在特定情境下,各方之间达成的一种行为规范或约定它规定了参与方在特定场景中应如何进行交流、互动和合作,以达到共同的目标。 比如使用摩斯密码进行通信的的双方,发送方根据摩斯密码进行编码发送信息,接收方根据摩斯密码进行解码获取数据,双方就通过遵守摩斯密码的这一协议让发送方根据特定规定有办法发送数据,让接收方通过规定能够读懂数据,进行正确的发送数据和接收数据。
-
计算机生产厂商有很多、计算机操作系统,也有很多、 计算机网络硬件设备 还是有很多。为了让这些不同厂商之间生产的计算机能够相互顺畅的通信,就需要有人站出来, 约定一个共同的标准, 大家都来遵守, 这就是网络协议。
网络协议初识
协议分层
互联网是由若干网络连接形成的巨大的网络,因此将一条主机上的数据传输到另一台主机上可能需要讲过许多中间结点。
由于数据传输需要经过许多中间结点,就会产生如下的问题:
- 定位目标主机的问题。
- 数据传输时,路径选择的问题。
- 长距离传输,数据丢失的问题。
- 硬件级别定义的问题。
首先,网络产生的问题可以被分类为不同性质的问题,其次,网络产生的问题具有一定的上下关系(比如先要能够定义目标主机进行传输才会有路径选择的问题,有了根据选择的路径进行数据传输才会有数据丢失的问题),因此网络被设计成层状结构。各层之间定义相同性质的问题的实现方案,层与层之间具有一定的上下关系,这是一种"高内聚,低耦合"的模型。
层状结构
为了理解层状结构,我们举一个打电话的例子,打电话的双方将双方电话机连接起来,然后通过电话机进行交流。在这个情境下,可以将打电话的双方看作语言层,使用的是汉语协议,电话机看作是通信设备层,使用的电话机协议,逻辑上打电话双方都认为在和对方直接通信,因为双方所作的都是听和说的都是遵守汉语协议的数据,但是物理上,打电话双方是通过电话机提供的听筒和话筒进行听和说。
通过打电话的例子,可以看出层状结构的特点:
- 同层的实体通信时认为,自身和对方在直接进行通信。(双方发送和接收的数据遵守相同的协议)
- 上层的实体是需要调用下层实体提供的接口,然后将数据交给下层,下层就会完成数据的发送和接收。
关于打电话的例子,还可以做一定的延伸,比如将电话机换成无线电,将打电话的人遵守的协议换成英语协议。
将电话机换成无线电不影响语言层双方通信,语言层依旧是使用通信设备层提供的功能,然后通过通信设备层进行数据的发送和接收。将打电话的人遵守的协议换成英语协议不影响通信设备层,通信设备层只会将语言层传入的数据按自身协议编码发送,按自身协议解码接收。至于语言层要发送什么,和语言层接收到数据后如何处理,通信设备层不关心也无需关心。
因此可以看出层状结构的优点: 分层之后,每一层都只关注自己同层的功能,只使用下层的接口,任何一层出现问题,都不会直接影响另一层,减少后期开发者的维护成本。
OSI七层模型
- OSI(Open System Interconnection,开放系统互联)七层网络模型称为开方式系统互联参考模型,是一个逻辑上的定义和规范。
- OSI把网络从逻辑上分为了七层,每一层都有相关的、相对应的物理设备,比如路由器,交换机。
- OSI七层模型是一种框架性的设计方法,其最主要的功能就是帮助不同类型的主机实现数据传输,比如手机和电视之间数据的传输。
- OSI七层模型最大的优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
- OSI七层模型是一种理想模型,既复杂又不实用,所以后来在具体实现的时候就对其进行了调整,于是就有了我们现在看到的TCP/IP四层协议。
OSI七层模型如下:
TCP/IP五层(或四层)模型
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。 TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
- 物理层: 负责光/电信号的传递方式。 比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆 (现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决 定了最大传输速率、传输距离、抗干扰性等。 集线器(Hub)工作在物理层。
- 数据链路层: 负责设备之间的数据帧的传送和识别。 例如网卡设备的驱动、帧同步(就是说从网线上检测 到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。 有以太网、令牌环网, 无线LAN等标准。 交换机(Switch)工作在数据链路层。
- 网络层: 负责地址管理和路由选择。 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规 划出两台主机之间的数据传输的线路(路由)。 路由器(Router)工作在网路层。
- 传输层: 负责两台主机之间的数据传输。 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标 主机。
- 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问 协议(Telnet)等。 我们的网络编程主要就是针对应用层。
与OSI七层模型各层的对应关系:
TCP/IP模型和计算机软硬体系结构的关系
TCP/IP模型描述的是一种网络协议栈,该网络协议栈的实现存在于计算机软硬体系结构中的每一个层次结构中:
在计算机软硬体系结构中,操作系统层的实现最为重要,由于操作系统层中的传输层使用的是TCP协议,网络层采用的是IP协议,因此该模型被称之为TCP/IP模型。
由于网络使用的在使用的网卡等设备属于计算机软硬体系结构中的硬件层次,而Linux操作系统中硬件的管理数据文件管理的范畴,因此在Linux操作系统中,网络的管理也属于文件管理的范围。因此,操作系统提供的大量系统接口中,一定是有与文件相关的。
比起OSI模型,TCP/IP模型中的各层可以更好地实现在计算机软硬体系结构中,因此TCP/IP模型能够成为网络实现的实际模型。大部分计算机都要网络层、传输层都要采用TCP/IP协议,以保证这些计算机之间都可以正确交换数据,由于物理层、数据链路层只需要提供接口,在不同计算机上实现可以不同。
网络传输基本流程
我们这里以两台主机进行文件传输为例,此时各层对应的协议如下:
同局域网的两台主机通信
同局域网的两台主机通信
首先需要明确的是,同一个局域网内的主机是能够直接进行通信的,因为最初局域网设计的目的,就是为了让局域网内的主机能够进行通信。其次,要明确的是,两个主机进行网络通信的本质是两台主机的协议栈在进行通信。
发送方主机会的协议栈会在数据(这个数据称为有效载荷)发送前对数据进行封装:
- 有效载荷先交给应用层,应用层添加上对应应用层协议的报头信息后,将数据再交给传输层。
- 传输层收到数据后,再添加上对应传输层协议的报头信息,并将数据继续向下进行交付。
- 网络层收到数据后,再添加上对应网络层协议的报头信息,接着将数据再交给链路层。
- 链路层收到数据后,最后再添加上对应链路层协议的报头信息,至此数据封装完毕。
数据封装完成后,就会根据物理层的传输,将数据传输到对应的主机中,接收方主机需要对收到的数据进行解包和分用,最终得到有效载荷:
- 链路层收到数据后,先将数据中对应链路层协议的报头信息提取出来,然后将剩下的数据交给网络层。
- 网络层收到该数据后,再将数据中对应网络层协议的报头信息提取出来,然后将剩下的数据继续向上进行交付。
- 传输层收到该数据后,再将数据中对应传输层协议的报头信息提取出来,然后将剩下的数据再交付给应用层。
- 应用层收到数据后,最后将数据中对应应用层协议的报头信息提取出来,至此便完成了数据的解包与分用。
任何一台主机在发送数据之前,数据都要自顶向下的经过网络协议栈,在这个过程中,每一层协议都会添加上对应的报头信息;而任何一台主机收到数据后,数据都要自底向上的经过网络协议栈,在这个过程中,每一层协议都会将对应的报头信息提取出来。
可以看出,每种协议都至少具备以下两个功能:
- 报头必须能够和有效载荷分离
- 必须支持将有效载荷传输给上层
补充知识
- 报头(Header):是数据通信中用于携带控制信息和描述性信息的一部分。
- 有效载荷(Payload):是指在通信中实际承载传输的有用数据部分,不包括任何协议头、尾部或其他控制信息。
- 分用(Multiplexing)是指将多个数据流或信号合并在一条通信链路上进行传输的技术或方法。
- 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)。
下图为数据封装的过程:
下图为数据分用的过程:
不同局域网的两台主机通信
如下是由一个路由器连接的两个不同局域网的示意图,其中一个局域网以太网,另一个是令牌环局域网:
有效载荷产生自FTP客户,自顶向下经过网络协议栈,每层协议都给其添加报头,其中网络层的报头中存储的目的主机的IP地址,在网络层添加报头前会查阅路由表,验证目的主机是否为本局域网的主机,在数据链路层根据以太网协议,添加报头,报头内存储的是数据下一步传送的主机的MAC地址。
根据数据链路层添加的报文,数据会被传输到路由器中,路由器虽然作为网络层硬件,但是也有自己物理层和数据链路层,因此数据到了路由器会自底向上经过路由器的网络协议栈(只有物理层、数据链路层、网络层),由于路由器网络层也采用的IP协议,因此能够读懂数据的IP地址,然后路由器进行路由选择,将数据再交给其数据链路层,路由器的数据链路层会根据目的主机所处局域网使用的协议添加报头,也就是遵守令牌环协议的报头,然后发送给对应的局域网。
目的主机接收到地址后,数据到自底向上经过路由器的网络协议栈,进行解包和分用,最终得到数据的有效载荷。
可以看出,路由器和IP协议共同作用,屏蔽了底层子网的差异,无论底层子网使用何种方式实现,路由器会根据发送方协议解包数据,然后查看目的主机IP地址,根据接收方协议封装封装数据,使得接收方的网络层收到的数据和发送方网络层发送的数据一样。
网络中的地址管理
认识IP地址
IP协议有两个版本, IPv4和IPv6。没有特殊说明的, 默认都是指IPv4。
- IP地址是在IP协议中, 用来标识网络中不同主机的地址。
- 对于IPv4来说, IP地址是一个4字节, 32位的整数; 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1。
- 用点分割的每一个数字表示一个 字节, 范围是 0 - 255。
认识MAC地址
- MAC地址用来识别数据链路层中相连的节点。
- 长度为48位, 及6个字节。一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
- 在网卡出厂时就确定了, 不能修改。mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)。
相关文章:

网络入门基础
网络入门基础 文章目录 网络入门基础网络的发展协议的概念网络协议初识协议分层层状结构OSI七层模型TCP/IP五层(或四层)模型TCP/IP模型和计算机软硬体系结构的关系 网络传输基本流程同局域网的两台主机通信不同局域网的两台主机通信 网络中的地址管理认识IP地址认识MAC地址 网络…...

Towards a Rigorous Evaluation of Time-series Anomaly Detection(论文翻译)
1 Introduction 随着工业4.0加速系统自动化,系统故障的后果可能会产生重大的社会影响(Baheti和Gill 2011; Lee 2008; Lee,Bagheri和Kao 2015)。为了防止这种故障,检测系统的异常状态比以往任何时候都更加重要ÿ…...
理解Python装饰器
本文将从多个方面对Python装饰器进行详细的阐述,并给出完整的代码示例。 一、装饰器的概念 装饰器是Python中非常重要的概念,它可以在不修改函数本身的情况下对函数的功能进行扩展或修改。装饰器本质上是一个函数,它接收一个函数作为参数&a…...

VR智慧景区,为游客开启智慧旅游新时代
近年来,文旅部加强了5G、VR虚拟技术等在文旅产业行业的运用,随着科技的不断发展,VR技术的运用越来越广泛,VR智慧景区作为一种全新的旅游方式,也渐渐的受到了人们广泛的关注,它可以让人们足不出户就欣赏到各…...
蓝桥杯 Java 青蛙过河
import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改/**二分法从大(n)到小找足够小的步长前缀和记录每个位置的前面有的总石头数(一个石头表示可以容纳一个青蛙,一位置有多少个石头hi就是多少)&…...
雷达图应该如何去绘制?
雷达图(又称为蜘蛛网图、星形图)是一种用来显示多变量数据的图表,它可以直观地展示出数据在多个维度上的表现。雷达图中,每个轴代表一个维度,所有的轴都从中心点射出并均匀分布在圆周上,形成一个星形。每个…...

1024 蓝屏漏洞攻防战(第十九课)
1024 蓝屏漏洞攻防战(第十九课) 思维导图 一 永恒之蓝的介绍 漏洞为外界所知源于勒索病毒的爆发,该病毒利用NSA(美国国家安全局)泄露的网络攻击工具 永恒之蓝( EternalBlue )改造而成,漏洞通过TCP的445和139端口,利用SMB远程代码执行漏洞,攻击者可以在目标系统上执行…...

短视频矩阵系统软件源码
短视频矩阵系统软件源码 视频成为获得免费流量最便宜的渠道,平台给所有视频最基础的保底流量。如果按照一个视频最低500流量计算,5个账户就是2500的流量,200个视频就是50W流量,如果从其他渠道获得50W流量是个很困难的事情。短视频…...

内网穿透的应用-如何通过TortoiseSVN+内网穿透,实现公网提交文件到内网SVN服务器?
文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统,它与Apache Subversion(SVN)集成在一起,提供了一个用户友好的界面,方便用…...

有没有PC端的配音软件推荐?(免下载)
配音软件还是电脑上使用最方便,而且电脑上可以使用的配音软件也非常多。只是你平时使用的不多,所有想用的时候才会找不到,对于经常使用配音软件的人来说,那真的太多了。今天给大家推荐一个免下载的配音网站,微信扫码即…...
clickhouse
官方链接 <insert id"insertTable" parameterType"com.ioc.orm.ck.model.TableModel">insert into table_name<trim prefix"(" suffix")" suffixOverrides","><if test"ts ! null">ts,</if…...
linux下创建文件夹软链接
软链接: 软链接是Linux下常用的一种共享文件方式、目录的方式,这种方式类似于Windows下的快捷方式。一般一个文件或者目录在不同的路径都需要的时候,可以通过创建软链接的方式来共享,这样系统下面只有一份源文件、目录。另外&…...
常用的工具网站
1.免费的在线pdf解密网站:https://smallpdf.com/unlock-pdf 2.常用的梯子登录页面:https://3.akkcloud1.com/auth/login 3.chatgpt登录页面:https://chat.openai.com/auth/login 4.国外短信收发平台:https://sms-activate.org/cn/…...

号外!百度Comate代码助手全新上线SaaS服务 - 免费申请试用+深入教程解读!
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...

AUTOSAR通信篇 - CAN网络通信(七:Nm)
文章目录 基础功能NM协调器功能NM协调器功能的适用性保持协调总线活动总线关闭的协调嵌套子总线的协调关闭定时器的计算同步用例1 – 同步指令同步用例2-同步启动同步用例3 -同步网络睡眠示例 唤醒和中止协调关闭外部的网络唤醒协调唤醒协调关闭的中止 部分网络功能PNC位向量过…...
CentOS 7 中安装Kafka
文章目录 安装JDK解压环境变量验证 安装ZooKeeper下载解压环境变量配置启动开放端口 安装Kafka下载解压配置启动 CentOS 7.6 JDK 1.8 ZooKeeper 3.5.7 Kafka 2.11-2.4.0 安装JDK 解压 # 解压 tar -xzvf jdk-8u181-linux-x64.tar.gz mv jdk1.8.0_181 /usr/local/jdk1.8环境变量…...
Centos 7 部署Docker CE和docker-compose教程
一、Docker CE 1、Docker CE 安装 ①、安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2②、设置yum源 # 官方源(二选一) yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 阿里源…...
【数据结构】模拟实现无头单向非循环链表
链表的概念 学过ArrayList后我们知道它的底层是用数组来存储元素的,是连续的存储空间,当我们要从ArrayList任意位置删除或插入元素时,我们要把后续整体向前或后移动,时间复杂度为O(n),效率比较低,因此Arra…...
linux驱动开发学习001:概述
linux的内核源码编译后,会生成一个总的镜像。镜像加载到内存中运行他,就会启动内核。驱动属于内核代码的一部分,对驱动修改要重编整个内核,麻烦但驱动可以独立于内核镜像外,并能动态加载和卸载字符设备驱动,…...

安全响应中心 — 垃圾邮件事件报告(10.13)
2023年10月 第二周 一. 样本概况 ✅ 案例1:DocuSign钓鱼 本周收到一封看似来自 DocuSign(DocuSign 是一种在企业环境中广泛使用的电子协议管理平台)的网络钓鱼电子邮件反馈。 如下图所示: 以上样本内容大体是说XX发送了一份文…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...

2.3 物理层设备
在这个视频中,我们要学习工作在物理层的两种网络设备,分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间,需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质,假设A节点要给…...