【Linux 24】网络基础概念

news2024/11/19 9:31:02

文章目录

  • 🌈 一、计算机网络的发展
    • ⭐ 1. 独立模式
    • ⭐ 2. 网络互联
    • ⭐ 3. 局域网 LAN
    • ⭐ 4. 广域网 WAN
  • 🌈 二、计算机网络的协议
    • ⭐ 1. 协议的概念
    • ⭐ 2. 协议分层
    • ⭐ 3. OSI 七层参考模型
    • ⭐ 4. TCP / IP 五层模型
  • 🌈 三、网络传输基本流程
    • ⭐ 1. 同局域网的网络传输
      • 🌙 1.1 局域网的通信原理
      • 🌙 1.2 数据包封装和分用
      • 🌙 1.3 报头与有效载荷
      • 🌙 1.4 碰撞的概念
    • ⭐ 2. 跨局域网的网络传输
      • 🌙 2.1 路由器如何知道数据应该转发到哪一个局域网
  • 🌈 四、网络中的地址管理
    • ⭐ 1. 认识 IP 地址
    • ⭐ 2. 认识 MAC 地址

🌈 一、计算机网络的发展

⭐ 1. 独立模式

  • 在计算机发展的早期,计算机之间相互独立,这种情况的通信效率非常低下。
  • 计算机之间如果想要进行业务协同,就需要将数据从一台计算机种拷贝到硬盘上,然后将硬盘中的数据再拷贝到另一台计算机。

image-20240925112948417

⭐ 2. 网络互联

  • 多台计算机通过服务器连接在一起,从而实现数据共享。
  • 当某个业务需要多台计算机协同完成时,可以将共享的数据放到服务器中集中管理,各个计算机就能通过服务器获取这些共享的数据。

image-20240925105417973

⭐ 3. 局域网 LAN

  • 需要通信的计算机数量变的更多,这些计算机通过交换机和路由器连接在一起,形成局域网
  • 交换机:局域网中有一种叫做交换机的设备,其主要用于完成局域网内的数据转发工作。
    • 数据转发:在局域网内将数据从一台主机转发给另一台主机。
  • 路由器:各局域网之间通过路由器连接起来,其主要用于完成数据的路由转发工作。
    • 路由转发:在局域网之间路由器根据路由信息,将数据包从一个局域网转发到另一个局域网。

image-20240925111103558

⭐ 4. 广域网 WAN

  • 广域网的作用是,将远隔千里的计算机都连接在一起
  • N 个局域网之间通过路由器相互连接在一起,就形成了一个更大的网络结构,这个网络结构被称为广域网。
  • 局域网和广域网是一种相对的概念,因为某些懂得都懂的原因,也可以将国内的广域网看成一个比较大的局域网。

image-20240925112832399

🌈 二、计算机网络的协议

⭐ 1. 协议的概念

  • 协议本身是一种约定,通信双方只有通过同一种协议才能进行通信。
  • 从语言的角度看,协议是通信双方都认识的一种结构化的数据类型,双方的 OS 能通过同一种协议 (结构体) 进行通信。
struct protocol
{
    int a;
    int b;
    int c;
};
  • 假设当前有如上这么一个协议 (结构体),因为主机 A、B 的操作系统都是用 C/C++ 写的,并且都有相同的 struct protocol 结构体类型。
  • 也就是说 A、B 使用了同样的代码来实现协议,这两台主机天然就具备着共识,能够识别出这个协议中的信息。

⭐ 2. 协议分层

  • 协议栈是分层的,每层通信双方都有协议,同层之间互相可以认识对方的协议。
  • 将协议栈设计成层状结构,其目的是为了将层与层之间进行解耦,保证代码的可维护性和可扩展性。
  • 分层最大的好处在于 “封装”,在分层的情况下,将某层的协议进行替换后,通信双方之间并不会受到影响。
  • 纯软件的网络协议分为四层,每一层都能解决一种因为网络通信距离变长时所产生的问题。

每一层都能解决一种因为网络通信距离变长时所产生的问题

  • 应用层:解决如何使用送达的数据的问题。
  • 传输层:解决报文在传输过程中出现错误,或者丢失的问题。
  • 网络层:解决在转发中,如何进行路径选择、目标主机定位的问题。
  • 数据链路层:解决如何保证将数据交给下一跳主机的问题。

image-20240925153805863

⭐ 3. OSI 七层参考模型

  • OSI 七层网络模型被称为开放式系统互联参考模型,是一个逻辑上的定义和规范。
层级层名功能常用协议
7应用层针对特定应用的协议HTTP、FTP、SMTP、POP3
6表示层设备固有数据格式和网络标准数据格式的转换LPP、NBSSP
5会话层通信管理、负责建立和断开通信连接,管理传输层以下的分层SSL、TLS、DAP、LDAP
4传输层管理两个结点之间的数据传输,负责可靠性传输TCP、UDP
3网络层地址管理与路由选择IP、ICMP、RIP、IGMP、OSPF
2数据链路层互联设备之间传送和识别数据帧以太网、网卡、交换机、PPTP
1物理层以 0 / 1 代表电压的高低和灯光的闪灭,界定连接器和网线的规格物理线路、光纤、中继器、集线器、双绞线

⭐ 4. TCP / IP 五层模型

  • OSI 参考模型和它的名字一样,仅供参考。

  • 因为 OSI 七层网络模型实现起来难度很高,对其具体实现进行了调整,将 OSI 的上三层合并成一个应用层,就成了常见的 TCP / IP 模型。

image-20240925175029142

1. TCP / IP 中各层负责的功能

  1. 物理层:负责 光 / 电 信号的传递方式,物理层的能力决定了最大的传输速率、传输距离、抗干扰性等,集线器 hub 工作在物理层。
  2. 数据链路层:负责设备之间的数据帧的传送和识别,例:帧同步、冲突检测、差错校验等,交换机 switch 工作在数据链路层。
  3. 网络层:负责地址管理和路由选择,路由器 router 工作在网络层。
  4. 传输层:负责两台主机之间的数据传输,如传输控制协议 TCP,该协议能够确保数据可靠的从源主机发送到目标主机。
  5. 应用层:负责应用程序间的沟通,平时的网络变成主要就是针对应用层进行。

2. TCP / IP 模型名字的由来

  • 网络层最典型的协议是 IP 协议,传输层最典型的协议是 TCP / UDP 协议。
  • 传输和网络这两层本质上,位于操作系统的内核中,用户想使用协议栈,本质就是要使用操作系统,因此这个模型才被叫做 TCP / IP 协议。

🌈 三、网络传输基本流程

  • 以两台主机之间的文件传输为例,在纯软件方面,TCP / IP 模型各层对应的协议如下:
层级纯软件的 TCP / IP 层级名常见协议
5应用层HTTP、FTP、DNS
4传输层TCP、UDP
3网络层IP、ICMP、IGMP
2链路层设备驱动程序及接口卡 (网卡)

⭐ 1. 同局域网的网络传输

  • 在最初设计局域网时,就是为了能够让局域网内的主机能够进行通信,因此同局域网内的主机可以直接进行通信。

image-20240925192120877

🌙 1.1 局域网的通信原理

  • 局域网中的每台主机都有一张网卡,每张网卡都有一个唯一 的 MAC 地址,局域网中的主机就是通过 MAC 地址进行通信的。
  • 局域网中,A 主机向 B 主机通信采用的是 MAC 地址 + 广播的方式,该局域网中的其他主机都能听到 A 的消息,但因为 A 所指定的 MAC 地址是 B 主机的的,因此其他主机会丢弃 A 的通信消息,只有 B 会接收这段消息。

🌙 1.2 数据包封装和分用

  • 用户 A 想和用户 B 进行通信时,用户 A 的消息并不是直接通过主机 A 的应用层直接交给主机 B 的应用层。
  • A 的数据要依次通过应用层、传输层、网络层、链路层,在每一次对数据进行封装之后,才能将数据通过主机 A 的链路层发给主机 B 的链路层。
  • 用户 B 想收到消息,主机 B 的链路层需要将收到的数据包依次通过链路层、网络层、传输层、应用层,在每一次对数据进行解包分用之后,用户 B 才能看到用户 A 的消息。

1. 数据包封装

  • 当应用层想将一段数据交给另一个主机时,TCP / IP 软件方面的 4 层协议从上至下要分别对该数据包进行封装。
  1. 将数据交给应用层,应用层会为该数据添加上对应的应用层协议的报头信息,然后将数据交给传输层。
  2. 传输层收到数据后,传输层会为该数据添加上对应的传输层协议的报头信息,然后将数据交给网路层。
  3. 网络层收到数据后,网络层会为该数据添加上对应的网络层协议的报头信息,然后将数据交给链路层。
  4. 链路层收到数据后,链路层会为该数据添加上对应的链路层协议的报头信息,到此数据彻底封装完毕。
  • 最后就可以通过局域网将封装好的数据发送给对端主机。

2. 数据包分用

  • 当对端主机的链路层收到一段数据包后,需要由下至上经过 TCP / IP 的 4 层,对该收到的数据机型解包和分用。
  1. 链路层收到数据后,将数据包中关于链路层协议的报头信息分离出来,然后将剩下的数据交给网络层。
  2. 网络层收到数据后,将数据包中关于网络层协议的报头信息分离出来,然后将剩下的数据交给传输层。
  3. 传输层收到数据后,将数据包中关于传输层协议的报头信息分离出来,然后将剩下的数据交给应用层。
  4. 应用层收到数据后,将数据包中关于应用层协议的报头信息分离出来,到此数据的解包分用彻底完成。

image-20240925204812041

🌙 1.3 报头与有效载荷

  • 报头:本质也是一种数据,报头一般是通过位段实现的,协议栈的每一层都有一个对应的位段来表示当前层的报头。

  • 有效载荷:数据包中,除了当前曾的报头以外的数据就叫做有效载荷。

如何分离报头与有效载荷

  • 要将数据中的报头取出来,就得知道报头与有效载荷之间的界限在哪。
  • 又因为报头往往都在数据包的最前端,只要知道报头的大小,就可以确定报头与有效载荷的界限了。
  • 有两种获取报头大小的方式
    1. 定长报头:报头的大小是固定的,发送方和接收方都能够知道报头的大小,这就是一种约定。
    2. 自描述字段:报头当中提供一个用来表示报头长度的字段。

🌙 1.4 碰撞的概念

  • 局域网中,同时有多台主机在发送数据,如果某个主机发送的数据与其他主机发送的数据之间互相干扰,这种情况被称为数据碰撞

1. 如何判断发送的数据是否发生了碰撞

  • 因为是采用广播的形式将数据发送到局域网中,当 A 主机发送数据后,A 主机自己也能收到这个数据。
  • 当 A 主机收到数据后,可将其与之前发送出去的数据进行对比,如果此时收到的数据和之前发送的不一致,就说明发生了数据碰撞。

2. 发生了碰撞后该如何处理

  • 当 A 主机发现自己发送的数据产生了数据碰撞后,A 主机可以选择等待一段时间,过一阵子在重新发送该数据。
  • 从系统的角度看,局域网就是临界资源,碰撞的检测和避免,本质上就是在进行互斥访问。

3. 主机如何判断数据是否是发送给自己的

  • 发送出去的数据包会带有源 MAC 和目的 MAC 地址,其中源 MAC 地址表示的是发送数据的主机,目的 MAC 地址就不用说了。
  • 主机在收到数据包后,会对比该数据包中的目的 MAC 地址和自己的 MAC 地址,如果不一致则该数据就不是发给自己的。

⭐ 2. 跨局域网的网络传输

  • 局域网之间通过路由器连接起来,因此一个路由器至少能够横跨两个局域网。

  • 而这些被路由器级联局域网都认为,该路由器就是本局域网内的一台主机,因此路由器可以和这些局域网内的任意一台主机进行直接通信。

  • 假设局域网 1 中的 A 主机想和局域网 2 中的 主机进行通信,A 主机就可以先将数据发送给路由器,然后路由器再将数据转发给局域网 2 当中的 B 主机。

image-20240926092105757

🌙 2.1 路由器如何知道数据应该转发到哪一个局域网

  • 路由器会通过 IP 地址来确定数据的转发方向,互联网中的每一台主机都有一个唯一的 IP 地址,而在数据自定向下进行封装时,在网络层封装的报头中会包含两个字段,分别是 源 IP 地址目的 IP 地址
    • 源 IP 地址和目的 IP 地址分别标识从哪来和到哪去,在数据转发的过程中,所持有的IP 地址不会改变
  • 网络中有很多的路由器,数据在每经过一个路由器时,路由器都会分析这个数据的上一站从哪来,然后根据这个数据包中得目的 IP 地址,选择这个数据下一站该到哪去最终才能走到目的地,这个一直会变得地址就是 MAC 地址。
  • IP 地址的意义就在于路径选择,只要有了目标,途中的路由器就能够为数据包指定越来越靠近目的 IP 地址的下一站路由器。

🌈 四、网络中的地址管理

⭐ 1. 认识 IP 地址

  • IP 地址处在 IP 协议中,用来标识网络中唯一的一台主机
  • 对于 IPV4 来说,IP 地址是一个 4 字节,32 位比特的整数。
  • 对于 IPV6 来说,IP 地址是一个 16 字节,128 位比特的整数。
  • 通常会使用 “点分十进制” 的字符串来标识 IP 地址。

Linux 中如何查看自己的 IP 地址

  • 在 Linux 的命令行中,可以输入 ifconfig 指令查看当前主机的配置信息,其中 inet 对应的就是当前主机的 IP 地址。

image-20240926085955321

⭐ 2. 认识 MAC 地址

  • MAC 地址用来识别链路层中相连的结点,用来表示上一跳路由和下一跳路由。
  • 每张网卡上的 MAC 地址都是唯一的,不能被修改。
  • MAC 地址的长度一般为 6 字节,48 位比特,一般用 16 进制 + 冒号的形式标识 (如:08:00:27:03:fb:19) 。

Linux 中如何查看自己的 MAC 地址

  • 在 Linux 的命令行中,可以输入 ifconfig 指令查看当前主机的配置信息,其中 ether 对应的就是当前主机的 MAC 地址。

用来识别链路层中相连的结点,用来表示上一跳路由和下一跳路由。

  • 每张网卡上的 MAC 地址都是唯一的,不能被修改。
  • MAC 地址的长度一般为 6 字节,48 位比特,一般用 16 进制 + 冒号的形式标识 (如:08:00:27:03:fb:19) 。

Linux 中如何查看自己的 MAC 地址

  • 在 Linux 的命令行中,可以输入 ifconfig 指令查看当前主机的配置信息,其中 ether 对应的就是当前主机的 MAC 地址。

image-20240926085744745

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

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

相关文章

【计算机毕业设计】springboot企业客户信息反馈平台

摘 要 网络的广泛应用给生活带来了十分的便利。所以把企业客户信息反馈管理与现在网络相结合,利用java技术建设企业客户信息反馈平台,实现企业客户信息反馈的信息化。则对于进一步提高企业客户信息反馈管理发展,丰富企业客户信息反馈管理经验…

软考-高级系统分析师知识点合集记录

一、计算机基础知识 存储系统 计算机指令: 复杂指令,精简指令 指令的流水线周期计算方式 计算机系统体系结构: flynn方法 根据指令流和数据流的并行程度对计算机体系结构进行分类: 冯.诺依曼结构 ,哈佛结构 根据指…

获取和解析JWT令牌

一、JWT令牌介绍 JWT(JSON Web Tokens)是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON对象的形式安全地传输信息。每个JWT令牌由三部分组成:Header&#xff0…

U盘恢复数据工具全解析:助力找回丢失信息

不论是工作还是学习都需要一些电子设备来存储短期数据吧,优盘已经成为我们存储重要数据的常用工具之一。然而,由于各种原因,我们可能会遭遇优盘数据丢失的困扰。接下来,让我们一起深入了解u盘恢复数据软件的强大功能。 1.福晰恢复…

算法竞赛:Online Judge 工作原理 常见报错分析 如何判断算法是否超时 知己知彼 方能骗分

一、在线评测系统运行原理及各种报错常见原因 电脑只是处理数据验证最后答案与期望答案是否相同,大部分的思考都由人来完成。 OJ一般有一组或者多组input文件与output文件,比如1.in 1.out 2.in 2.out等 OJ先运行你的程序,同时在后台开始计时&…

废物利用,三百块电脑如何升级并安装双系统便携使用

文章目录 引言最初的配置开始改装更换内存升级硬盘2.5 英寸 sata 固态msata 加装 升级电池其他的升级娱乐大师跑分 双系统安装前提条件设置 Bios安装 win 10安装 Manjaro时间同步问题 屏幕问题黑屏难开 引言 最近浏览 b 站的二手笔记本信息,想要整个二手笔记本玩玩…

构建现代化社区医疗服务:SpringBoot平台

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理社区医院信息平台的相关信息成为必然。开发…

链表的实现(go语言)

摘要: 本文记录使用go语言对链表的实现。 链表的实现 节点结构 type Node struct {Data intNext *Node }新建节点 func NewNode(Data int) *Node {return &Node{Data: Data,Next: nil,} }尾部添加节点 // 尾部插入 func Append(head *Node, Data int) *Node…

信息安全工程师(28)机房安全分析与防护

前言 机房安全分析与防护是一个复杂而细致的过程,涉及到物理安全、环境控制、电力供应、数据安全、设备管理、人员管理以及紧急预案等多个方面。 一、机房安全分析 1. 物理安全威胁 非法入侵:未经授权的人员可能通过门窗、通风口等进入机房,…

【Java数据结构】 ArrayList 顺序表

一、什么是List 在集合框架中,List是一个接口,继承自Collection Collection也是一个接口,该接口中规范了后序容器中常用的一些方法,具体如下所示: Iterable 也是一个接口,表示实现该接口的类是可以逐个元素…

Unity Asset Store的默认下载位置及更改下载路径的方法

修改Unity Asset Store的默认下载路径 Unity Asset Store默认下载位置 Unity Asset Store里下载资源,默认是下载到C盘里的,如果你不想做C盘战士的话,记得将下载的资源转移到其他盘。 Unity商城默认下载路径是C:\用户\用户名(一般…

电脑扬声器无法识别,没有声音处理

原因感觉就是前几天安装Realtek Audio Control驱动的时候,没有关闭360,导致的问题。 音量那里一直是 解决方法 开始菜单搜索“设备管理器” 在“声音、视频和游戏控制器”找到识别错的设备 右键“卸载设备” 右键扫描一下设备 此时一般就好了 …

数据结构-LRU缓存(C语言实现)

遇到困难,不必慌张,正是成长的时候,耐心一点! 目录 前言一、题目介绍二、实现过程2.1 实现原理2.2 实现思路2.2.1 双向链表2.2.2 散列表 2.3 代码实现2.3.1 结构定义2.3.2 双向链表操作实现2.3.3 实现散列表的操作2.3.4 内存释放代…

N32L40x基于串口的IAP升级升级速度2Mbps+上位机工具

1.软件升级流程 mcu开机上位机发送0xaa,0xaa,0x55,0x55,通知mcu进入升级状态,在收到该指令后,mcu擦除旧的APP程序,发送进入升级状态的指令,通知上位机进入升级状态擦除完成后进入升级状态,等待上位机发送升级包上位机开始发送数据包mcu接收数据包,并等待一个完成的数据包…

51单片机的智能家居【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块温湿度传感器DS1302时钟模块光照传感器烟雾传感器蓝牙继电器按键、蜂鸣器、LED等模块构成。适用于智能家居监控烟雾、温湿度、光照和蓝牙控制等相似项目。 可实现基本功能: 1、LCD1602实时显示北京时间、室内温湿度…

【优选算法之哈希表】No.11--- 经典哈希表算法

文章目录 前言一、哈希表简介1.1 什么是哈希表1.2 哈希表的用途1.3 什么时候使用哈希表1.4 怎么用哈希表 二、哈希表示例2.1 两数之和2.2 判定是否互为字符重排2.3 存在重复元素2.4 存在重复元素 II2.5 字⺟异位词分组 前言 👧个人主页:小沈YO. &#x1…

重置linux后vscode无法再次使用ssh连接

如果你使用过vscode ssh远程连接了一个Linux系统,但该系统被重置了,并且关键配置没有改变。再次使用vscode连接时,vscode可能无法连接。 原因:vscode远程连接后会在C:\Users{{你的用户名}}.ssh下的known_hosts和known_hosts.old。…

C0008.Clion利用C++开发Qt界面,使用OpenCV时,配置OpenCV方法

安装OpenCV 配置环境 配置Clion中的CMakeLists.txt文件 # 设置OpenCV的安装路径 set(OpenCV_DIR "D:/OpenCv_Win/opencv/build/x64/vc16/lib")# 查找OpenCV包 find_package(OpenCV REQUIRED)下面添加的CMakeLists.txt文件中主要是添加了后面的${OpenCV_LIBS} # 链接…

Innodb磁盘结构

系统表空间 系统表空间的作用 存系统表中的数据存数据字典————保存系统变量和状态变量存变更缓冲区中未来得及落盘的数据 系统表空间文件位置 系统表可以对应磁盘上的多个表空间文件,默认情况下服务器在数据目录下创建一个名为ibdata1的文件 可以通过改变系…

解决方法:PDF文件打开之后不能打印?

打开PDF文件之后,发现文件不能打印?这是什么原因?首先我们需要先查看一下自己的打印机是否能够正常运行,如果打印机是正常的,我们再查看一下,文件中的打印功能按钮是否是灰色的状态。 如果PDF中的大多数功…