【Linux】网络基础
目录
一、协议分层
(一)计算机网络
(二)协议分层
(三)OSI模型
(四)TCP/IP协议
二、网络传输过程
三、IP地址和MAC地址
(一)IP地址
(二)MAC地址
一、协议分层
(一)计算机网络
在计算机网络出现前,各个计算机工作都是相互独立的,各个程序的通信都需要依靠别的通讯方法。计算机网络的出现使得各个计算机连接在一起,能够完成数据传输与资源共享。
计算机通信的本质实际是各个计算机上进程的通信,也就是进程间通信,不过只是使用了计算机网络资源。
(二)协议分层
因为计算机的厂商,操作系统,设备硬件都有可能不同,因此需要一个共同的约定来标准化网络的通信,这也就是网络协议。网络协议实际就是网络通信的标准。
计算机的网络通信十分复杂,设计数据的封装、打包、发送、解包以及分用等。因为计算机网络采用分层的思想,将网路通信的过程按照功能进行分层,每一层解决的问题都不尽相同,使其符合高内聚,低耦合的软件工程思想。
因为将计算机网络进行了分层,因此计算机协议也需要进行相应的分层。
(三)OSI模型
OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
层数 | 分层名称 | 功能 |
7 | 应用层 | 针对特定应用的协议 |
6 | 表示层 | 设备固定数据格式和网络标准数据格式的转换 |
5 | 会话层 | 通信管理。负责建立和断开通信连接(数据流动的逻辑通路)。管理传输层以下的分层。 |
4 | 传输层 | 管理两个节点"之间的数据传输。负责可靠传输(确保数据被可靠地传送到目标地址)。 |
3 | 网络层 | 地址管理与路由选择。 |
2 | 数据链路层 | 互连设备之间传送和识别数据帧。 |
1 | 物理层 | 以“0”“1”代表电压的高低、灯光的闪灭。界定连接器和网线的规格. |
(四)TCP/IP协议
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议族。
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。(本质上TCP/IP协议也是OSI七层模型,只不过它把会话层、表示层、应用层合为应用层罢了)
物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wififi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层. (硬件层搞软件的不关注哦,仅讨论TCP/IP上四层)
数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
实际上TCP/IP分层模型是将OSI分层模型中的应用层、表示层和会话层压为了一层。
二、网络传输过程
网络传输的过程主要是将数据封装、传输以及将数据进行解包。其中我们需要先铺设几个概念:
封装:有效载荷+各层报头;
解包:从接收数据分为报头以及有效载荷;
分用:可以将有效载荷交给指定上层协议解包。
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链 路层叫做帧(frame)
上图则是同一网段中两台主机的通信过程。
对于每层协议最重要的是:1、将报头和有效载荷分离;2、将有效载荷正确地交给上层协议进行处理。
以下就是协议分用的过程。
三、IP地址和MAC地址
(一)IP地址
IP地址通常在广域网使用,图上的是内网IP的地址,IPV4一共4个字节,每个字节范围0-255;IPV6是16个字节。
IP地址可以理解为起点到终点。
(二)MAC地址
MAC地址通常在局域网使用,占6个字节。
MAC地址可以理解为起点到终点的一个个站点。
相关文章:
【Linux】网络基础
目录 一、协议分层 (一)计算机网络 (二)协议分层 (三)OSI模型 (四)TCP/IP协议 二、网络传输过程 三、IP地址和MAC地址 (一)IP地址 (二&a…...
[C++]多态详解
目录 一、多态的概念 二、静态的多态 三、动态的多态 3.1多态的定义 3.2虚函数 四、虚函数的重写(覆盖) 4.1虚函数 4.2三同 4.3两种特殊情况 (1)协变 (2)析构函数的重写 五、C11中的final和over…...
Python常见面试题的详解7
1. 内置的数据结构有哪几种 Python 中有多种内置的数据结构,主要分为以下几种: 1.1 数值类型 整数(int):用于表示整数,没有大小限制。例如:1, -5, 100。浮点数(float)…...
C++ ——构造函数
1、作用:创建对象时,给对象的属性进行初始化 2、特点 (1)构造函数与类同名 (2)如果没有显式给出构造函数,编译器会给出默认的构造函数(参数为空,并且函数体也为空&#…...
PostgreSQL如何关闭自动commit
PostgreSQL如何关闭自动commit 在 PostgreSQL 中,默认情况下,每个 SQL 语句都会自动提交(即 AUTOCOMMIT 是开启的)。如果希望关闭自动提交,以便手动控制事务的提交和回滚,可以通过以下方法实现。 1 使用 …...
HCIA项目实践--静态路由的总结和简单配置
七、静态路由 7.1 路由器获取未知网段的路由信息: (1)静态路由:网络管理员手工配置的路由条目,它不依赖网络拓扑的变化进行自动更新,而是根据管理员预先设定的路径来转发数据包。其优点是配置简单、占用系…...
B站视频同步思维导图(全)
前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:https://www.captainbed.cn/z 文章目录 前言分段视频一张思维导图版本手写版本联系作者 分段视频 Java基础 并发编程 MySQL redis…...
C++游戏开发流程图
C游戏开发流程图如下: #mermaid-svg-by3hx6H65qEwr5mV {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-by3hx6H65qEwr5mV .error-icon{fill:#552222;}#mermaid-svg-by3hx6H65qEwr5mV .error-text{fill:#5…...
回顾Golang的Channel与Select第二篇
深入掌握Go Channel与Select:从原理到生产级实践 一、Channel基础:不只是数据管道 1.1 通道的完整生命周期(可运行示例) package mainimport ("fmt""time" )func main() {// 创建缓冲通道ch : make(chan i…...
将OpenWrt部署在x86服务器上
正文共:1234 字 40 图,预估阅读时间:2 分钟 如果你问ChatGPT有哪些开源的SD-WAN方案,他会这样答复你: 我们看到,OpenWrt也属于比较知名的开源SD-WAN解决方案。当然,在很久之前,我就发…...
Spring Boot 常用依赖详解:如何选择和使用常用依赖
在Spring Boot项目中,依赖(Dependencies)是项目的核心组成部分。每个依赖都提供了一些特定的功能或工具,帮助我们快速开发应用程序。本文将详细介绍Spring Boot中常用的依赖及其作用,并指导你如何根据项目需求选择合适…...
day51 第十一章:图论part02
99. 岛屿数量 深搜 每一块的上下左右都遍历过了之后,这块陆地就遍历完了。是深搜,不是广搜 深搜:递归 def dfs(): if .....: 终止条件 dfs(子节点) directions [[0,1],[1,0],[0,-1],[-1,0]]def dfs(grid, visited, x, y):if grid[x][y]…...
介绍一下 Octave
已思考完成 收起 好的,我现在要回答用户关于介绍Octave的问题。首先,我需要整理提供的参考内容,看看有哪些关键点需要覆盖。 用户给的参考内容很多,包括知乎文章和网页资料,涵盖了Octave的历史、功能、语法、与MATLAB的…...
垃圾回收器
一、GC分类与性能指标 1.垃圾回收器概述: 垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商、不同版本的JVM来实现。 由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本。 从不同角度分析垃圾收集器,可以将…...
前端为什么要使用new Promise包裹一个函数
在前端开发中,使用 new Promise 包裹一个函数主要是为了将原本不支持 Promise 规范的操作转化为支持 Promise 规范的操作,从而可以更好地处理异步操作,提升代码的可读性和可维护性。下面详细介绍这么做的常见原因和应用场景: 1. …...
【设计模式】【行为型模式】访问者模式(Visitor)
👋hi,我不是一名外包公司的员工,也不会偷吃茶水间的零食,我的梦想是能写高端CRUD 🔥 2025本人正在沉淀中… 博客更新速度 👍 欢迎点赞、收藏、关注,跟上我的更新节奏 🎵 当你的天空突…...
深入理解 MQTT 协议:物联网通信的核心
目录 一、什么是 MQTT? 二、MQTT 的核心特点 2.1 轻量级 2.2 发布/订阅模式 2.3 可靠传输 2.4 安全性 三、MQTT 协议架构 3.1 核心组件 3.2 通信流程 四、MQTT 协议详解 4.1 消息格式 4.2 消息类型 4.3 QoS 级别 五、MQTT 的应用场景 六、MQTT 的实现 6.1 常用 Bro…...
25/2/16 <算法笔记> MiDas原理
MiDaS(Monocular Depth Sensing)是一种基于单目深度估计的技术,它通过深度学习方法使用单张RGB图像(普通2D图像)来估算场景的深度图(Depth Map)。相比于传统的依赖专用深度传感器(如…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_ssl_init 函数
#if (NGX_OPENSSL)ngx_ssl_init(log); #endif objs/ngx_auto_config.h 中 #ifndef NGX_OPENSSL #define NGX_OPENSSL 1 #endif 所以这个条件编译成立 NGX_OPENSSL 是一个宏定义,用于控制与 OpenSSL 相关的功能是否被启用 若用户通过./configure参数(如-…...
时间盲注Boolen盲注之获取表、列、具体数据的函数
时间盲注 时间盲注(Time-Based Blind SQL Injection)是一种利用数据库响应时间的差异来推断数据的SQL注入技术。它的核心原理是通过构造特定的SQL查询,使得数据库在执行查询时产生时间延迟,从而根据延迟的有无来推断数据。 时间…...
人工智能在文化遗产保护中的创新:科技与文化的完美融合
人工智能在文化遗产保护中的创新:科技与文化的完美融合 引言 文化遗产是人类历史的见证,是我们了解过去、感知现在、展望未来的重要宝贵资源。然而,随着时间的流逝,自然灾害、战争、气候变化以及人为因素等,都对文化遗产的保护造成了严峻挑战。传统的文化遗产保护方法虽…...
linux下OSD使用SDL_ttf生成点阵数据,移植+开发代码详解
前言 在做音视频开发的时候,一般会在视频上增加osd水印,时间或者logo之类的,这种水印其实就是由点阵数据构成,本文使用freetypeSDLSDL_ttf生成文字点阵数据,并保存为bmp格式图片。使用这种方式的优点: 方便…...
渗透测试方向的就业前景怎么样?
互联网各领域资料分享专区(不定期更新): Sheet 前言 渗透测试作为网络安全领域的重要分支,近年来就业前景持续向好,尤其在数字化转型加速、安全威胁加剧的背景下,市场需求显著增长。以下是详细分析: 一、市场需求旺盛 …...
SQL Server:查看当前连接数和最大连接数
目录标题 **1. 查看当前连接数****使用系统视图****使用动态管理视图** **2. 查看最大连接数****通过配置选项****通过服务器属性** **3. 查看连接数的实时变化****4. 设置最大连接数****5. 查看连接的详细信息****6. 使用 SQL Server Management Studio (SSMS)****7. 使用 SQL…...
Windows环境搭建ES集群
搭建步骤 下载安装包 下载链接:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.27-windows-x86_64.zip 解压 解压并复制出3份 es-node1配置 config/elasticsearch.yml cluster.name: xixi-es-win node.name: node-1 path.data: D:\\wor…...
【第15章:量子深度学习与未来趋势—15.3 量子深度学习在图像处理、自然语言处理等领域的应用潜力分析】
一、开篇:为什么我们需要关注这场"量子+AI"的世纪联姻? 各位技术爱好者们,今天我们要聊的这个话题,可能是未来十年最值得押注的技术革命——量子深度学习。这不是简单的"1+1=2"的物理叠加,而是一场可能彻底改写AI发展轨迹的范式转移。 想象这样一个…...
DeepSeek与ChatGPT:AI语言模型的全面对决
DeepSeek与ChatGPT:AI语言模型的全面对决 引言:AI 语言模型的时代浪潮一、认识 DeepSeek 与 ChatGPT(一)DeepSeek:国产新星的崛起(二)ChatGPT:AI 界的开拓者 二、DeepSeek 与 ChatGP…...
DeepSeek-V3模型底层架构的核心技术一(多Token预测(MTP)技术)
一、DeepSeek-V3的框架结构 DeepSeek-V3的框架结构基于三大核心技术构建:多头潜在注意力(MLA)、DeepSeekMoE架构和多token预测(MTP)。这些创新使得模型在处理长序列、平衡计算负载以及生成连贯文本方面表现出色。 1. 基础架构 DeepSeek-V3的基础架构仍然基于Transformer框…...
QT c++ QMetaObject::invokeMethod函数 线程给界面发送数据
在项目开发时,常常需要用线程采集数据,如果要给界面发送数据,本文是方法之二,动态调用。 第一步:在界面类里定义一个带Q_INVOKABLE关键字的函数接收信息 第二步:在线程类里,用 QMetaObject::i…...
netcore https配置
一、生成证书 1. 安装 OpenSSL 如果尚未安装 OpenSSL,可以通过以下命令安装:Ubuntu/Debian:sudo apt update sudo apt install openssl CentOS/RHEL:sudo yum install openssl 2. 生成私钥 使用以下命令生成私钥文件(private.key)…...
centos部署open-webui
提示:本文将简要介绍一下在linux下open-webui的安装过程,安装中未使用虚拟环境。 文章目录 一、open-webui是什么?二、安装流程1.openssl升级2.Python3.11安装3.sqlite安装升级4.pip 下载安装open-webui 总结 一、open-webui是什么? Open W…...
sql语言语法的学习
sql通用语法 sql分类 DDL(操作数据库和表) 操作数据库 操作表_查询 操作表_创建 举例: 操作表_删除 操作表_修改 DML(增删改表中数据) DML添加数据 DML删除数据 DML修改数据 DQL 单表查询 基础查询 条件查询 案例演示: 排序查询 聚合函数 分组查询…...
vueDevtools和文档整合(前端常用工具/插件)
3.vueDevtools安装 chrome插件vue-devtools下载地址: https://chrome.zzzmh.cn/info/nhdogjmejiglipccpnnnanhbledajbpd下载完放到chrome的拓展程序中即可,注意点:vue2和vue3下载版本不同,vue2的话使用稍微老点的版本才行。 详细…...
算法刷题--哈希表--字母异位词和两个数组的交集
哈希表概念 哈希表是根据关键码的值而直接进行访问的数据结构。 直白来讲数组就是一种哈希表。 那么哈希表能解决什么问题呢,一般哈希表都是用来快速判断一个元素是否出现集合里。 那么一般都是将一个集合里面的元素映射为哈希表的索引。 那么设计哈希表的时候需要…...
150,[5] BUUCTF WEB [BJDCTF2020]EasySearch
进入靶场 有个文件 和之前一道题如出一辙 <?php// 开启输出缓冲,将后续所有的输出内容先暂存到缓冲区,而不是直接发送到浏览器ob_start();/*** 生成一个基于随机字符串和唯一标识符的哈希值* return string 返回生成的 sha1 哈希值*/function get_…...
kibana es 语法记录 elaticsearch
目录 一、认识elaticsearch 1、什么是正向索引 2、什么是倒排索引 二、概念 1、说明 2、mysql和es的对比 三、mapping属性 1、定义 四、CRUD 1、查看es中有哪些索引库 2、创建索引库 3、修改索引库 4、删除索引库 5、新增文档 6、删除文档 5、条件查询 一、认识…...
以若依移动端版为基础,实现uniapp的flowable流程管理
1.前言 此代码是若依移动端版为基础,实现flowable流程管理,支持H5、APP和微信小程序三端。其中,APP是在安卓在雷电模拟器环境下完成的,其他环境未测试,此文章中所提及的APP均指上述环境。移动端是需要配合若依前后端分…...
SaaS 平台开发要点
如何在 SaaS 平台的前端开发中,编写高性能、高质量且高度通用化的 Vue 组件 一、组件设计原则 单一职责原则:每个组件只负责一个核心功能受控/非受控模式:同时支持 v-model 和自主状态管理组合式 API:使用 Composition API 提升逻辑复用性可访问性:遵循 WAI-ARIA 规范Typ…...
【Kubernetes】k8s 部署指南
1. k8s 入门 1.1 k8s 简介 需要最需要明确的就是:kubernetes(简称 k8s ) 是一个 容器编排平台 ,换句话说就是用来管理容器的,相信学过 Docker 的小伙伴对于容器这个概念并不陌生,打个比方:容器…...
【Linux】进程间关系与守护进程
文章目录 1. 进程组2. 会话2.1 什么是会话2.2 如何创建会话2.3 守护进程 3. 作业控制 1. 进程组 我们运行下面的命令 sleep 10000 | sleep 20000 | sleep 30000然后查看进程的信息: 可以看到,其实每一个进程除了有进程PID、PPID之外,还属于…...
如何通过AI让PPT制作更轻松:从AI生成PPT到一键智能生成
如何通过AI让PPT制作更轻松:从AI生成PPT到一键智能生成!在这个信息爆炸的时代,PPT几乎成了每个人办公必备的工具。但说到制作PPT,很多人头疼不已——排版、设计、内容的整理,时间一不小心就被浪费掉了。有没有一种方法…...
解决前后端日期传输因时区差异导致日期少一天的问题
前端处理 1. 发送日期字符串而非时间戳 在前端使用日期选择器(如 el-date-picker)获取日期后,将日期转换为特定格式的字符串(如 YYYY-MM-DD)发送给后端,避免直接发送带有时区信息的时间戳或日期对象。这样…...
vue2和vue3生命周期的区别通俗易懂
用最直白的对比帮你理解 Vue2 和 Vue3 生命周期的区别,就像对比手机系统的升级: 一、生命周期阶段对比表(老手机 vs 新手机) 阶段Vue2(老系统)Vue3(新系统)变化说明初始化beforeCre…...
在 Ubuntu 20.04 为 Clash Verge AppImage 创建桌面图标教程
在 Ubuntu 20.04 为 AppImage 创建桌面图标教程 一、准备工作 确保你已经下载了 xxxx.AppImage 文件,并且知道它所在的具体路径。同时,你可以准备一个合适的图标文件(.png 格式)用于代表该应用程序,如果没有合适的图…...
Dockerfile 编写推荐
一、导读 本文主要介绍在编写 docker 镜像的时候一些需要注意的事项和推荐的做法。 虽然 Dockerfile 简化了镜像构建的过程,并且把这个过程可以进行版本控制,但是不正当的 Dockerfile 使用也会导致很多问题。 docker 镜像太大。如果你经常使用镜像或者…...
Flutter 中的生命周期
在 Flutter 中,StatefulWidget 和 StatelessWidget 这两种 Widget 的生命周期不同,主要关注的是 StatefulWidget,因为它涉及到状态的管理和更新。 StatefulWidget 的生命周期: 1. 创建阶段 (Create) createState():…...
AI大模型的文本流如何持续吐到前端,实时通信的技术 SSE(Server-Sent Events) 认知
写在前面 没接触过 SSE(Server-Sent Events),AI大模型出来之后,一直以为文本流是用 WebSocket 做的偶然看到返回到报文格式是 text/event-stream,所以简单认知,整理笔记博文内容涉及 SSE 认知,以及对应的 D…...
项目版本号生成
需求 项目想要生成一个更新版本号,格式为v2.0.20250101。 其中v2.0为版本号,更新时进行配置;20250101为更新日期,版本更新时自动生成。 实现思路 创建一个配置文件version.properties,在其中配置版本号;…...
Spring AI发布!让Java紧跟AI赛道!
1. 序言 在当今技术发展的背景下,人工智能(AI)已经成为各行各业中不可忽视的重要技术。无论是在互联网公司,还是传统行业,AI技术的应用都在大幅提升效率、降低成本、推动创新。从智能客服到个性化推荐,从语…...
ubuntu服务器 如何配置安全加固措施
下面提供一个更详细、一步步的服务器安全加固指南,适合新手操作。我们将从 Fail2Ban、SSH(密钥认证及端口更改)、Nginx 速率限制和日志轮转四个方面进行优化,同时补充一些额外的安全建议。 新的服务器,通常我们会创建一…...