【Linux】网络新手村
走进网络
我们生活在一些互联网的时代,这些网络的名词大家认识吗?
局域网和广域网
局域网(Local Area Network,简称LAN)和广域网(Wide Area Network,简称WAN)是计算机网络中的两种主要类型,它们在覆盖范围、连接方式、应用场景等方面存在显著差异。
局域网(LAN)
定义与特点:
- 局域网是指在某一区域内由多台计算机互联成的计算机组,通常覆盖方圆几千米以内的范围。
- 它是在较小的地理范围内(如一个学校、工厂、机关或家庭内)实现计算机设备连接和数据共享的网络。
- 局域网可以是封闭型的,由办公室内的两台计算机组成,也可以是一个公司内包含上千台计算机的大型网络。
- 局域网具有高效、可靠且安全的通信环境,能够满足用户之间的信息传输和资源共享需求。
主要功能:
- 文件管理、应用软件共享、打印机共享等。
- 工作组内的日程安排、电子邮件和传真通信服务。
组成与连接:
- 局域网通常包括一组相互连接的计算机、服务器、网络设备和通信媒介等。
- 这些设备可以通过有线或无线方式进行连接,并通过网络协议进行通信和数据传输。
### 广域网(WAN)
定义与特点:
- 广域网是一种连接不同地区局域网或城域网计算机通信的远程网,通常跨接很大的物理范围,从几十公里到几千公里不等。
- 它能够连接多个地区、城市、国家甚至横跨几个洲,提供远距离通信服务,形成国际性的远程网络。
- 广域网并不等同于互联网,但互联网是广域网的一种重要形式。
主要功能:
- 连接分布在不同地区的局域网或计算机系统,实现资源共享和远程通信。
- 提供世界范围的数据通信服务。
组成与连接:
- 广域网主要由通信子网和资源子网组成。
- 通信子网负责数据传输和交换,可以利用公用分组交换网、卫星通信网和无线分组交换网等技术实现。
- 资源子网则包含各种计算机系统和数据资源,通过通信子网实现互连和资源共享。
总结
所谓 “局域网” 和 “广域网” 只是一个相对的概念. 比如, 我们有 “天朝特色” 的广域网, 也可以看做一个比较大的局域网
局域网和广域网是计算机网络中的两种重要类型,它们在覆盖范围、连接方式、应用场景等方面各具特色。局域网主要适用于较小范围内的计算机互联和数据共享,而广域网则能够连接不同地区的计算机系统,实现远距离通信和资源共享。在实际应用中,局域网和广域网往往相互结合,共同构建更加复杂和庞大的计算机网络系统。
协议
在未来的学习网络过程中,我们会经常听到一个名词——协议。大家日常听到的协议的协议就是约定,但在网络中协议的概念并不是如此。
在之前电话还不是很普及的时代,电话费很贵。张三要到外地上大学,在临行前张三和父亲约定:以后我给你打电话,电话响一声表示我很好,你不用担心我,不用接;电话响两声表示我没钱了,需要你给我打钱,也不用接;电话响了三声就代表我有事和你说,这时候你再接电话。就这样,通过响铃声,不用接的方式,不仅传达了意思,还不用花电话费,一举两得。这就是协议,协议的本质是一种规则。
李四在京东上买了一个杯子,两天就到了李四的手中。难道是商家亲自把杯子给李四送过来吗?当然不是。商家把杯子给楼下的顺丰小哥,然后顺丰小哥给快递贴上标签,标签上写着收货人的联系方式、住址、姓名等等。然后这个快递就上路了,辗转多个地方,来到了李四也就是收货人的手中,但李四不仅仅收到了杯子,还有一个标签。其中,这个标签就是顺丰公司内部给快递定的信息表,凡事顺丰内部的工作人员都可以看懂这个信息表,然后快递每到一处中转站,工作人员就会根据标签上的信息对快递进行分拣,然后快捷,高效的把快递送到指定的收货人手中。这就是顺丰公司的协议。如果没有这个协议的存在,快递员就不知道这个快递该运向哪?交给谁。而这些快递上贴的标签就是报头。
这个观点迁移到计算机中同样适用。我们的计算机是有不同的硬件阻成的。这些硬件之间是通过总线进行连接的。为了让这些硬件协同高效的运转起来,与此同时对数据进行处理,离不了协议和报头。
协议的本质就是一种规则,大家都可以看懂的规则。协议=报头+有效数据。
网络分层
假如,你和你的好朋友打电话,你们是在直接通信吗?这个问题看似废话,其实不是的。
你们并没有直接通话。你们要想通话,必须使用相同的语言,所以就有语言协议。你们的声音分别交给了自己的电话,然后电话机之间通过电话机协议传输数据,这才导致你么听见了彼此的声音。如此有什么好处呢?假如你们使用英语沟通,电话机协议是不需要改变的。所以这就实现了解耦。关于解耦的更多话题,我们以后再谈。
假如:你骑自行车从北京到四川去玩,毫无疑问,中间会经过很多地方。首先,你得有能力从一个地方来到另一个地方。其次从北京出发可以到达很多地方,我们要有路径选择的能力。并且从北京到四川,我们极有可能会走错方向,走错方向的时候,我们要能力修正方向。最后,你去四川不是目的,你的目的是到四川去玩。
OSI七层模型
包括以下七个层次,每个层次都具有独特的职责和功能:
- 物理层 (Physical Layer)
- 数据链路层 (Data Link Layer)
- 网络层 (Network Layer)
- 传输层 (Transport Layer)
- 会话层 (Session Layer)
- 表示层 (Presentation Layer)
- 应用层 (Application Layer)
每个层次都构建在前一层次的基础上,向上提供更高层次的服务,向下依赖更低层次的服务。以下是对每个层次的简要介绍:
物理层: 负责在物理媒介上传输原始比特流,包括电缆、光纤等。它主要关注硬件细节和传输介质的特性。
数据链路层: 负责将比特流组织成帧,进行物理寻址和错误检测。以太网协议和PPP协议是数据链路层的典型实现。
网络层: 提供数据包的传输服务,实现源到目的地的路径选择。IP协议是网络层最为重要的协议之一。
传输层: 负责端到端的通信,确保数据的可靠传输。TCP和UDP是传输层最常见的协议,分别提供可靠的连接和无连接的通信服务。
会话层: 建立、管理和终止会话,确保数据的同步和控制。RPC(远程过程调用)和NetBIOS是会话层的典型协议。
表示层: 负责数据的格式转换、加密和解密。ASCII和JPEG等编码和压缩算法属于表示层的范畴。
应用层: 为用户提供网络服务,是用户与网络之间的接口。HTTP、FTP、SMTP等协议属于应用层。
这个模型最全面,但是我们使用最多的网络分层模型却不是这个。
CP/IP五层(或四层)模型
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
物理层: 负责光/电信号的传递方式,比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等.集线器(Hub)工作在物理层数据链路层: 负责设备之间的数据帧的传送和识别,例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作,有以太网、令牌环网,无线LAN等标准.交换机(Switch)工作在数据链路层。一般我们对这一层是忽略的。
网络层:负责地址管理和路由选择,例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由).路由器(Router)工作在网路层。
传输层: 负责两台主机之间的数据传输.如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机.
应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等.我们的网络编程主要就是针对应用层.
如下是各层代表的协议:
两种模型的对比
如图:
- 我们编码的区域一般都是在应用层。
- 传输层和网络层都是由操作系统维护的。不同的操作系统对这部分内容的设计都是类同的,这就奠定了不同的操作系统同样可以实现数据的交互和信息的传递。
- 传输层和网络层都是由操作系统维护的。操作系统不相信任何人,所以操作系统不会让应用层的代码直接访问传输层。所以在传输层和应用层之间一定存在着大量的系统调用接口供开发者使用。未来我们在应用层的各种开发工作都要访问这些接口。
- 网络分层的好处就是:有效的实现了高内聚,低耦合。将很多关联性很高的代码和功能放在一层。减少各个层级之间的相互影响。
关于报头和协议
有了网络分层的知识,报头我就可以多讲一些。
-
每一层都有若干个协议,而且协议的表现形式都是报头。
-
每一份数据最终在被发送或者在不同的协议层中,都会有自己的报头。
-
应用层也是需要报头的。
接下来,我们来看一下数据在自顶向下传输过程中,报头是怎样工作的。
如图,为了方便说明,我们将各个网络层的报头用特殊的字符表示。有A主机和 B主机。A主机要向B主机发送信息:“你好”。如上就是信息在网络层的传输过程。 -
报文=报头+有效的载荷
-
发送数据时,自顶向下添加报头,我们称之为封装的过程。
-
接受数据时,自下而上去掉报头,我们称之为解包的过程。
-
在网络通信当中,我们发现同层报头和有效载荷完全相同。我们可以理解成同层协议之间直接通信,也可以理解层自顶向下交付。这两种认识的方式并不冲突。
封装的过程很好理解,现在我想谈一谈解包的过程。
1.在解包的时候,怎么区分哪部分是报头?哪部分是有效的载荷呢?
2.在解包的时候,如何知道自己的有效的载荷要交付接上层的哪一个协议?要知道一层中不止一种协议。
如上的两个问题是每一层协议都必须解决的问题。每一层协议的报头中,必须涵盖如上的信息,这是所有协议的共性。我们把有效的载荷定向向上交付给指定协议的过程称为分用的过程。
局域网
两台处于同一局域网的主机可以直接通信。
局域网中通信的标准有:①以太网②令牌环网③无线LAN通信。
接下来我们谈一谈以太网通信的原理:
在局域网中每一台机器都有自己的“名字”。每一台机器都有网卡,网卡有自己的唯一性地址:Mac地址。Mac地址用来表征自己在局域网中的唯一性。
如图,在一个局域网中有8台机器。
主机1向主机8发送消息,所有在同一局域网中的主机都可以收到这一消息。然后根据Mac地址进行比较,如果这个消息是发给自己的,就接受这一消息;如果不是发给自己的,就会自动摒弃该消息。
但是,就像在一间教室里,一个人说话,全班都可以听清楚,但是如果多个人同时说话,就分辨不出谁和谁进行对话一样。在一个局域网中,同一时间只允许一个主机向局域网中发送消息,否则就会发生碰撞。所以该局域网被称为碰撞域。
那我们如何看待局域网中的网络资源呢?是共享资源,临界资源。
接下来我们简单讲一下令牌环网的原理。 在同一局域网中,只允许持有令牌环的主机发送信心,这种做法和我们学的锁🔒非常相似。
到这里,我们的内容就告一段落。我们下篇博客,再见。
相关文章:

【Linux】网络新手村
欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 引言 今天,我们就开始学习Linux网络相关的内容。这篇博客作为Linux网络板块的第一篇博客看,我们首先要带着大家明白Linux网络的一些名词的概念,为之后的学习扫清障碍。然后我…...

123123
123123...

在pycharm中使用jupyter
在pycharm中使用jupyter 前置条件:你的环境中应该有juptyer ,没有的话 pip install jupyter 点击项目目录,右键->new->jupyter notebook 打开file settings 找到 jupyter server (按照默认的用代理服务器就行) P…...

MongoDB:掌握核心常用命令语句,精通数据操作
标题:MongoDB:掌握核心命令,精通数据操作 前言: MongoDB 是一种非关系型数据库,以文档为中心,使用 JSON 格式的 BSON 来存储数据。它具有高可用性、高性能和易于扩展的特点,被广泛应用于各种规模的项目中。本文将详细介绍 MongoDB 的常用命令,帮助你更好地理解和掌握…...

Redis中测试Stream的例子
当你想要测试 Redis 中的 Stream 功能时,可以通过 Redis 的命令行客户端或者使用任何支持 Redis 的编程语言来操作。下面我会给出一个简单的例子,使用 Redis 的命令行客户端 redis-cli 来测试 Stream 的基本功能。 准备工作 确保你已经安装并启动了 Re…...

28 H3C SecPath F1000 概览(主要功能是总 观看全局)
28 H3C SecPath F1000 概览(主要功能是总 观看全局) 特性简介 概览页面通过清晰的图形化模块清晰展示了设备关键数据信息及各类状态,并支持灵活排版布局,以便实时查看用户关心的数据。预定义监控默认展示了设备基础信息模块,也可以手动添加其…...

标准版视频检测终端功能有哪些? 捷顺高清视频车位引导系统怎么样?
随着城市化进程的加速,城市交通压力日益增大,停车难问题成为了许多城市居民的共同困扰。在这样的背景下,车位引导系统的出现,无疑为解决这一难题提供了一种有效的解决方案。车位引导系统利用先进的信息技术,通过实时监…...

说明本文档目录是软件开发梳理需求常见问题QA文档,方便客户看,也方便我们的售前人员,需求分析人员,ui设计师,原型绘图人员,思维导图绘图人员查看。
https://doc.youyacao.com/117/2150 说明 本文档目录是软件开发梳理需求常见问题QA文档,方便客户看,也方便我们的售前人员,需求分析人员,ui设计师,原型绘图人员,思维导图绘图人员查看。 提示 本内容客户…...

Echarts桑基图
关于Echarts的使用方法参考:vue2中echarts的使用_vue2中使用echarts-CSDN博客 实现效果: 代码: var sysT {"用采": #2D9BFF,"营销系统": #39BFFF,"ERP": #76C2FF,"财务管控": #5F57FC,"PMS&…...

wordpress网站添加一个临时维护功能
把以下代码放到functions.php文件中,主要用网站临时维护或者用于备案。事情做好了,把以下代码删除即可!!! 有时遇到一些情况,比如站点需要闭站备案、或者被要求停站等等,我们就可以使用本文的功…...

充电桩开源平台,开发流程有图有工具
慧哥充电桩开源平台产品研发流程是确保产品从概念阶段到市场推广阶段的有序进行的关键。以下是对您给出的步骤的详细解释和建议: 设计业务流程: 在这一步,团队需要确定产品的核心功能、目标用户以及如何满足用户需求。进行市场调研,了解竞争…...

数据中台设计书及建设指南(中台及大数据解决技术方案)
1. 中台概念 2. 推动企业组织模式演进 3. 建设方法 4 .中台内容 5. 数据安全体系 中台内容围绕数据中台建设评估、整体框架、数据采集,结构化、半结构化、非结构化的数据采集,数据计算能力、存储计算引擎、数据架构、数据挖掘、各种不同数据层建设、模型…...

合合信息大模型“加速器”重磅上线
大模型技术的发展和应用,预示着更加智能化、个性化未来的到来。如果将大模型比喻为正在疾驰的科技列车,语料便是珍贵的“燃料”。本次世界人工智能大会期间,合合信息为大模型打造的“加速器”解决方案备受关注。 在大模型训练的上游阶段&…...

# Sharding-JDBC 从入门到精通(10)- 综合案例(三)查询商品与测试及统计商品和总结
Sharding-JDBC 从入门到精通(10)- 综合案例(三)查询商品与测试及统计商品和总结 一、Sharding-JDBC 综合案例-查询商品-dao 1、查询商品:Dao 实现:在 ProductDao 中定义商品查询方法: //查询商…...

ASRock Creator系列GPU:为AI推理及多GPU系统打造,采用16针电源接口的Radeon RX 7900系列显卡
ASRock 正在筹备推出专为人工智能推理和多GPU系统设计的AMD GPU——Creator系列显卡。这一系列显卡采用双槽位、吹风式设计,并配备16针电源连接器,首发产品包括基于Navi 31架构的AMD Radeon RX 7900XTX和RX 7900 XT型号。这些原属于WS系列的显卡最初在20…...

AntV X6 图编辑引擎速通
前言:参考 [AntV X6 官网](https://x6.antv.antgroup.com/) 一、简介 X6 可以快速搭建 DAG 图、ER 图、流程图、血缘图等应用。 二、快速上手 1. 安装 npm install antv/x6 --save# oryarn add antv/x6# orpnpm add antv/x6 2. 使用 2.1 初始画布 在页面中创…...

【若依前后端分离】通过输入用户编号自动带出部门名称(部门树)
一、部门树 使用 <treeselect v-model"form.deptId" :options"deptOptions" :show-count"true" placeholder"请选择归属部门"/> <el-col :span"12"><el-form-item label"归属部门" prop"dept…...

AIGC时代程序员的跃迁——编程高手的密码武器
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

园区智慧能源可视化:智能监控与优化能源管理
通过图扑可视化技术,搭建智慧光伏园区,实时监控园区光伏系统的运行状态,分析数据并优化能源管理,提高发电效率和维护效率,助力园区实现绿色可持续发展。...

Linux内网端口转公网端口映射
由于服务商做安全演练,把原先服务器内网的端口映射到外网端口全都关闭了,每次维护服务器特别麻烦,像数据库查询如果用原生的mysql 去连接,查询返回的结果乱了,非常不方便。 查了服务还是可以正常访问部分外网的&#x…...

银河麒麟高级服务器操作系统(通用)安装和编译指定的python3版本
银河麒麟高级服务器操作系统(通用)安装和编译指定的python3版本 一 系统环境二 安装python3.12.42.1 安装编译需要的依赖包2.2 下载官网目前最新的python源码包2.3 解压Python-3.12.4.tar.xz2.4 配置python-3.12.42.5 编译安装2.6 配置环境变量使其生效2…...

cs231n 作业3
使用普通RNN进行图像标注 单个RNN神经元行为 前向传播: 反向传播: def rnn_step_backward(dnext_h, cache):dx, dprev_h, dWx, dWh, db None, None, None, None, Nonex, Wx, Wh, prev_h, next_h cachedtanh 1 - next_h**2dx (dnext_h*dtanh).dot(…...

HarmonyOS Next系列之Echarts图表组件(折线图、柱状图、饼图等)实现(八)
系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现(一) HarmonyOS Next 系列之验证码输入组件实现(二) HarmonyOS Next 系列之底部标签栏TabBar实现(三) HarmonyOS Next 系列之HTTP请求封装和Token…...

网上怎么样可以挣钱,分享几种可以让你在家赚钱的兼职项目
当今社会,压力越来越大,工作、家庭、生活等等,方方面面都需要钱,仅靠一份工作赚钱,已经很难满足我们的需求。所以很多人都会尝试做一些副业,兼职来补贴家用。 现在呢,有很多人都想在网上赚钱&am…...

【DevOps】运维过程中经常遇到的Http错误码问题分析(二)
目录 一、HTTP 错误400 Bad Request 1、理解 400 Bad Request 错误 2、排查 400 Bad Request 错误 3、常见的解决方法 二、HTTP 错误401 Unauthorized 1、理解 401 Unauthorized 错误 2、排查 401 Unauthorized 错误 3、常见的解决方法 一、HTTP 错误400 Bad Request …...

数据结构练习
1. 快速排序的非递归是通过栈来实现的,则前序与层次可以通过控制入栈的顺序来实现,因为递归是会一直开辟栈区空间,所以非递归的实现只需要一个栈的大小,而这个大小是小于递归所要的, 非递归与递归的时间复杂度是一样的…...

手动安装Ruby 1.9.3并升级RubyGems
手动安装Ruby 1.9.3并升级RubyGems ###Ruby 1.9.3 p125安装 wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.gz \ && tar -xzvf ruby-1.9.3-p125.tar.gz \ && cd ruby-1.9.3-p125 \ && ./configure --with-openssl-dir/usr/lib/op…...

go语言day11 错误 defer(),panic(),recover()
错误: 创建错误 1)fmt包下提供的方法 fmt.Errorf(" 格式化字符串信息 " , 空接口类型对象 ) 2)errors包下提供的方法 errors.New(" 字符串信息 ") 创建自定义错误 需要实现error接口,而error接口…...

构建docker镜像实战
构建docker镜像 构建基础容器镜像(Base Image)是创建容器化应用程序的第一步。基础镜像提供了一个最低限度的操作系统环境,您可以在其上安装所需的软件包和应用程序。 Dockerfile语法说明 Dockerfile 是 Docker 构建镜像的描述文件&#x…...

生信算法9 - 正则表达式匹配氨基酸序列、核型和字符串
建议在Jupyter实践。 1. 使用正则表达式匹配指定的氨基酸序列 import re# 氨基酸序列 seq VSVLTMFRYAGWLDRLYMLVGTQLAAIIHGVALPLMMLI# 正则表达式匹配 match re.search(r[A|G]W, seq)# 打印match及匹配到开始位置和结束位置 print(match) # <re.Match object; span(10, …...