Linux【网络基础】之宏观认识

news2024/9/22 5:35:19

文章目录

    • 一、计算机网络背景
    • 二、计算机网络协议
    • (1)网络协议的概念
    • (2)协议分层
    • (3)数据封装与分用
    • (4)地址管理

一、计算机网络背景

学习计算机网络我们首先要有宏观的认识,网络解决的问题是牵扯到双方,数据的发送方以及数据接收方,就是要解决不同计算机之间进程的进程间通信问题。
它经历了四个过程:
第一个是独立模式
计算机之间相互独立,如下图:
在这里插入图片描述
第二个是网络互联: 多台计算机连接在一起, 完成数据共享,如图:
在这里插入图片描述
第三个是局域网LAN,计算机数量更多, 用交换机和路由器连接在一起,如图:
在这里插入图片描述

第四个是广域网WAN:把远隔千里的计算机都连在一起,所谓 “局域网” 和 “广域网” 只是一个相对的概念.。比如中国的广域网也可以看作一个比较大的局域网。如图:
在这里插入图片描述

二、计算机网络协议

(1)网络协议的概念

协议概念
协议,是约定,是计算机网络中进行数据交换而建立的规则、标准或约定的集合。

若是通信双方的数据格式,传输方式,字符集不一样,那么两者之间很难进行通信,因为双方都不认识对方的标准,要想传递不同的信息,双方就得约定好一个协议,按照这个协议的规定,双方统一好数据的格式,这样就可以完成通信。
网络协议和网络协议簇:
网络协议解决的是网络双方,发送的网络数据格式问题,本质上对发送和接收的数据格式做出约定。

协议总是指某一层的协议。准确地说,它是在同等层之间的实体通信时,有关通信规则和约定的集合就是该层协议,例如物理层协议、传输层协议、应用层协议。网络协议是通信双方,约定通信时使用的数据格式,进行网络通信。

我们的计算机生产厂商有很多,计算机操作系统, 也有很多,计算机网络硬件设备, 还是有很多。如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人规定并约定一个共同的标准来让大家都来遵守, 这就是 网络协议。那么由很多网络协议组成的叫网络协议簇。
网络协议的组成
网络协议由三部分组成,语义,语法,时序。

  1. 语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。(要做什么)
  2. 语法是用户数据与控制信息的结构与格式,以及数据出现的顺序(要怎么做)
  3. 时序是对事件发生顺序的详细说明。(做的顺序)

(2)协议分层

认识协议分层之间首先要先了解一下什么叫做体系结构,它规定了网络的分层,以及每一个分层需要完成的功能,以及每一个分层拥有的协议,还规定了每一个分层与自己上下层的关系。
1、OSI七层模型 如下图:
在这里插入图片描述

OSI即开放系统互连七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范。
把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机。
OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输。
它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。。简单来说这七层的功能是:
应用层:网络服务与最终用户的一个接口
表示层:数据的表示、安全、压缩
会话层:建立、管理、终止会话
传输层:负责进程之间的数据传输
网络层:负责地址管理和路由选择
数据链路层:负责相邻设备之间的数据传输
物理层:负责物理光电信号的传输

但是这种模型既复杂又不实用,因为他把功能相近的应用层,表示层和会话层分开实现,所以现在大部分都使用将这三层合为一体的TCP/IP五层模型或四层模型。
2、TCP/IP五层(四层)模型
在这里插入图片描述
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层。

数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层。

网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层。

应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层。
简单来将就是在TCP/IP五层模型中,他将功能相近的应用层,表示层和会话层合并为应用层。

  • 应用层:负责应用程序之间的数据沟通 ——(常用协议:HTTP、FTP、DNS、DHCP)

  • 传输层:负责进程之间的数据传输 ——(常用协议:TCP、UDP)

  • 网络层:负责终端节点之间的通信(点对点),具体包括地址管理和路由选择等 ——(常用协议与设备:IP、ICMP、IGMP、路由器)

  • 数据链路层:负责相邻设备之间的数据传输 ——(常用协议与设备:以太网协议、交换机)

  • 物理层:负责物理光电信号的传输 ——(常用协议与设备:以太网协议、集线器)

3、网络传输基本流程
网络数据的转发需要先经历自己的网络协议栈,进而通过网络将数据转化为光电信号,传输到对端机器,对端机器收到数据之后,需要经历自己的机器网络协议栈的层层向上提交,一直将数据提交到应用层的应用程序当中。
在这里插入图片描述

(3)数据封装与分用

1、先形象化了解封装分用与协议:
数据包利用网络在不同设备之间传输时,为了可靠和准确地发送到目的地,并且高效地利用传输资源(传输设备和传输线路),事先要对数据包进行拆分和打包,在所发送的数据包上附加上目标地址,本地地址,以及一些用于纠错的字节,安全性和可靠性较高时,还要进行加密处理等等。这些操作就叫数据封装。而对数据包进行处理时通信双方所遵循和协商好的规则就是协议。与邮寄物品相比,数据包本身就如同物品,而封装就如同填写各种邮寄信息,协议就是如何填写信息的规定。
2、再理解:
不同的协议层对数据包有不同的称谓,在传输层叫做段,在网络层叫做数据报 ,在链路层叫做帧,在物理层叫比特流。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装
首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部叫分用, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理。就如数据包=报头+有效载荷,几乎所有的协议都要解决封装和分用如图:

在这里插入图片描述

具体封装图
在这里插入图片描述

  • 1.用户信息转换为数据,以便在网络上传输
  • 2.数据转换为数据段,并在发送方和接收方主机之间建立一条可靠的连接
  • 3.数据段转换为数据包或数据报,并在报头中放上逻辑地址,这样每一个数据包都可以通过互联网络进行传输
  • 4.数据包或数据报转换为帧,以便在本地网络中传输。在本地网段上,使用硬件地址唯一标识每一台主机。
  • 5.帧转换为比特流,并采用数字编码和时钟方案
    具体分用图
    在这里插入图片描述

分用就是按照直接封装的顺序,将封装的首部和尾部去掉,恢复成原来的数据。其实就是封装的反操作,又称为解封装。
3、总结:
总结1:发送方与接收方各层之间必须采用相同的协议才能建立连接,实现正常的通信。

  • 应用层之间必须采用相同的编码解码规则,才能保证用户信息传输的正确性。
  • 传输层之间必须采用相同的端口号与协议关系,才能保证上层应用进程间的通信。
  • 网络层之间必须采用相同的逻辑寻址过程才能保证数据不会传输到错误的目的地。
  • 数据链路层之间如果协议不同,接收方无法“理解”数据的内容。
  • 物理层之间必须硬件接口规格相同,否则接收不到信号。

总结2:在实际的网络环境中,发送方和接受方之间会有很多的硬件设备起到中转的作用,在下图中假设了一种通信结构,在两台计算机之间增加了两台交换机和路由器,发送主机的数据会通过以下中间设备到达接受主机
在这里插入图片描述
发送主机先进行数据封装。

  • 从发送主机物理网卡发出的电信号通过网线到达交换机,交换机将电信号转换成二进制数据送往交换机的数据链路层。交换机根据数据帧头部的MAC地址将数据智能转发到对应的路由器设备,在转发前要重新将二进制数据转换成物理的电信号。
  • 路由器接受到数据后,会拆掉数据链路层的MAC头部信息,将数据包送往网络层,路由器将检测数据包头部的目标IP地址信息,并根据该信息进行路由转发,将数据报文转发到下一路由器上,在转发前要重新封装新的MAC头部信息,并将数据转换成二进制。
  • 也就是路由器接受电信号,将电信号转换成二进制数据发往网络层,然后根据MAC地址和IP地址进行重新封装转换为电信号进行转发,然后对应的交换机接受电信号,然后根据MAC地址传送到接收主机的网卡中。

(4)地址管理

1、IP地址
IP地址就是网络中主机的唯一标识,无论哪个主机与哪个主机之间进行通信,都需要用到IP地址来进行定位。并且在通信时,每条数据中都会包含源端地址和对端地址,他们指定了通信的两个对象。
对于我们常用的IPV4来说,IP地址是一个uint32_t类型的数据,也就是无符号32位的整数。
我们通常也采用点分十进制的字符串来表示IP地址,如192.168.0.1。每一个字节的范围是0-255。
IP地址可以在网络当中唯一标识一台主机,一个公网IP地址只能被一台机器所占有,一个机器可以拥有多个IP地址。
2、端口号
端口号则是主机上进程的唯一标识,在编写程序时,需要告知计算机应该处理发往哪个端口的数据。
一个端口只能被一个进程占用,但是一个进程可以同时使用多个端口。 并且在通信时,每条数据也都会包含源端端口和对端端口,来指定从哪个进程发送数据,交给哪个进程进行处理
端口号是uint16_t,也就是无符号16位的整数。
3、MAC地址
MAC地址用来识别数据链路层中相连的节点,通常也可以认为是物理地址。在网卡出厂时就确定了, 不能被修改,mac地址通常是唯一的。
MAC地址由48位组成,一般是16进制数字加上分割符:,如08:00:27:03:fb:19。
对于接收方而言,所有的网络数据都是需要经历网络协议栈的,网络数据到底属于哪一个应用程序的,通过端口进行区分。
4、网络字节序与主机字节序
在网络通信时,还需要注意字节序的问题。
字节序就是CPU对数据在内存中以字节为单位的存储顺序,也就是大端小端问题。
大端存储模式:是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中。
小端存储模式:是指数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地址中。
在网络通信中,网络字节序采用大端的存储模式,而主机字节序根据主机不同也不一样,家用机一般都是小端,但网络上的通信不能确保主机字节序的唯一性,因为受众是整个网络,而一旦通信的双方主机字节序不同,就会造成通信时的数据二义,所以需要确保字节序相同,就需要在通信时将主机字节序转换为通用的网络字节序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/824328.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

03|Oracle学习(主键约束、联合主键)

1. 主键约束介绍 主键:数据表中的一个或多个字段,用于唯一标识数据表中的一条记录。 2. 添加主键约束 2.1 在创建表时添加约束 写法1: CREATE TABLE tb_students(stu_num char(5) primary key,stu_name varchar(10) not null,stu_sex cha…

在政策+市场双轮驱动下,深眸科技助力机器视觉行业走向成熟

近年来,随着人工智能发展的不断提速,机器视觉作为其重要的前沿分支,凭借着机器代替人眼来做测量和判断的能力,广泛应用于工业领域的制造生产环节,用来保证产品质量、控制生产流程、感知环境等,并迸发出强劲…

滴滴数据服务体系建设实践

什么是数据服务化 大数据开发的主要流程分为数据集成、数据开发、数据生产和数据回流四个阶段。数据集成打通了业务系统数据进入大数据环境的通道,通常包含周期性导入离线表、实时采集并清洗导入离线表和实时写入对应数据源三种方式,当前滴滴内部同步中心…

sql入门基础-2

Dml语句 对数据的增删改查 关键字 Insert增 Update删 Delete改 添加数据 给指定字段添加数据 Insert into 表明 (字段名1,字段名2) values(值1,值2); 给全部字段添加数据--(根据位置对应添加到字段下) Insert into 表名 values…

24考研数据结构-树与二叉树的基本概念

目录 第五章:树5.1树的基本概念5.1.1树的定义5.1.2 基本术语5.1.3 树的性质 5.2二叉树的概念5.2.1 二叉树的定义与特性5.2.2 几种特殊的二叉树5.2.3 二叉树的性质5.2.4 完全二叉树的性质5.2.5 二叉树的存储结构1. 顺序存储重要的基本操作非完全二叉树2. 链式存储逆向…

Flowable-子流程-事件子流程

目录 定义图形标记XML内容使用示例视频教程 定义 事件子流程是 BPMN 2.0 中加入的新元素,它是指通过事件触发的子流程,可以存在于在流程 级别,或者任何子流程级别。和内嵌子流程类似,把一系列的活动归结到一起处理,不…

vue: dev-tools控制台不显示问题

安装好dev-tools 导致控制台不显示的原因&#xff1a; 使用的vue压缩版本 vue.min.js。配置问题导致 1.查看public/index.html中引用的vue是否为压缩版本&#xff08;vue.min.js&#xff09;。 需要把压缩版换成vue.js <% if (process.env.NODE_ENV production) { %> &…

C语言中char、short、int、long各占多少字节

1byte 8bit 一个字节占8个二进制位 windows操作系统&#xff0c;32位机中&#xff0c; char&#xff1a; 1个字节 short&#xff1a; 2个字节 int&#xff1a; 4个字节 long&#xff1a; 4个字节 以下是windows操作系统&#xff0c;32位机下的代码测试结果&#xff08;3…

嵌入式高星github项目仓库

awesome-embedded soft-and-hard freemodbus

C# 外观模式

概述 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它提供了一个统一的接口&#xff0c;用于访问子系统中的一组接口。外观模式隐藏了子系统的复杂性&#xff0c;使得客户端可以通过简单的接口与子系统进行交互。 外观模式定义了一个高层…

计算机体系结构知识点大全

计算机体系结构知识点大全 计算机体系结构Chapter-1&#xff1a;计算机系统结构的基本概念Chapter-2&#xff1a;指令系统Chapter-3&#xff1a;流水线技术Chapter-4&#xff1a;存储层次Chapter-5&#xff1a;输入输出系统Chapter-6&#xff1a;多处理机Chapter-7&#xff1a;…

EXCEL,查询多条件数字/文本内容的多方法总结

目录 1 问题&#xff1a;如何根据多条件查询到想要的内容 2 方法1&#xff1a; sumif() 和sumifs() 只适合查找数字&#xff0c;不适合查找文本字符串类型的内容 3 使用lookup(1,0/(条件1*条件2*....),结果查询区域) 的方法 4 vlookup()if()数组公式 5 使用 index()match…

STM32按键控制LED灯-HAL库

前言 空窗了一年&#xff0c;重头再来点个灯吧&#xff0c;本篇文章将主要给大家讲解按键点灯 一、原理图设计 LED0-LED2 --------> PA0-PA2引脚 KEY1 ---------> PA3引脚 二、CubeMX的设置 LED选择GPIO一次将PA0、PA1、PA2设置为GPIO_Output&#xff0c;输出电平为…

向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录

1、注册https://issues.sonatype.org/账号 下面就代表注册好了&#xff0c;同时提交的工单也通过了 2、这里主要是goupId 需要进行认证&#xff0c;需要到域名注册商近一个txt的解析&#xff0c;以便确保这个是你的 通过下面来验证你的域名信息&#xff0c;这里主要是上面的工…

Permute 3 for mac音视频格式转换

Permute是一款Mac平台上的媒体格式转换软件&#xff0c;由Chaotic Software开发。它可以帮助用户快速地将各种音频、视频和图像文件转换成所需格式&#xff0c;并提供了一些常用工具以便于用户进行编辑和处理。 Permute的主要特点包括&#xff1a; - 支持大量格式&#xff1a;支…

工程监测仪器振弦传感器信号转换器(VTI104_DIN)

工程监测仪器振弦传感器信号转换器&#xff08;VTI104_DIN&#xff09; 振弦传感器信号转换器&#xff0c;简称VTI104_DIN&#xff0c;是一种用于转换振弦传感器信号的电子设备。该设备可以将振弦传感器产生的模拟信号转换成标准的电压或电流输出&#xff0c;从而使其可以连接…

将网盘挂载到本地保姆级教程

视频链接&#xff1a;https://www.bilibili.com/video/BV1SA411B7qc Clouddrive2&#xff1a;是一款非常实用的国内网盘服务挂载应用。它支持多种国内知名网盘服务&#xff0c;包括阿里云盘、115云盘、天翼云盘等。通过CloudDrive 2&#xff0c;你可以将这些网盘服务挂载到你的…

中级课程——弱口令(认证崩溃)

文章目录 什么是弱口令密码生成器分类暴力破解万能密码测试环境工具 什么是弱口令 密码生成器 分类 暴力破解 万能密码 or true --测试环境 工具 九头蛇&#xff0c;超级弱口令爆破工具&#xff0c;bp&#xff0c;

Redis的键空间监听功能

文章目录 Redis 键空间通知一、keyspace介绍二、事件通知配置三、不同命令生成的事件四、客户端测试五、Springboot整合Redis键空间监听5.1 方式一5.2 方式二 Redis 键空间通知 一、keyspace介绍 keyspace&#xff08;键空间通知&#xff09;针对指定key发生的一切改动&#…

香港三维模型:基于GIS数据的精确三维城市模型及其周边2023年

基于GIS数据的精确三维城市模型及其周边2023年 包含的文件&#xff1a; 满城&#xff1a;15公里 信息&#xff1a; 仅在影院4D中设置基本卫星纹理 包含卫星/地图纹理 影院制作4d&#xff0c;可在标准渲染器中进行渲染 漫步建筑、树木&#xff08;mograph cloner&#xff…