【计算机网络】初识网络

news2024/9/20 8:43:34

初识网络

  • 初识网络
    • 网络的发展
    • 局域网
    • 广域网
  • 网络基础
    • IP地址
    • 端口号
    • 协议
    • 五元组
    • 协议分层
    • OSI 七层模型
    • TCP/IP五层模型
    • 封装和分用
    • "客户段-服务器"结构

初识网络

网络的发展

在过去网络还没有出现的时候, 我们的计算机大部分都是独自运行的, 比如以前那些老游戏, 都是只能在本地上玩, 如果是有两台电脑, 那么这两个电脑是不能同时玩同一个游戏的

但是这种让计算机独立运行的模式就非常有局限性, 于是随着时代的发展和需求的增加, 网络就出现在了人们视野中, 并且根据规模的不同, 网络可以被区分为局域网和广域网

局域网

局域网, 英文简称为LAN, 全称为Local Area Net, 直接翻译过来就是本地区域网络, 也就是说这个网络是只能在本地内部访问的, 外部是无法访问的

比如我们现在家里应该都会有一台路由器, 假如我们两个电脑连接到了同一个路由器里面, 此时我们就可以说这两台电脑在同一个局域网里面, 可以进行通信. 但是假如此时来了第三台电脑, 而这个电脑没有接入这个路由器, 接的隔壁家的路由器, 此时这第三台电脑是无法和前面那两个电脑进行通信的, 因为它们不处于同一个局域网下

局域网的搭建方式有很多种, 其中一种就是我们刚刚说的通过连接路由器的方式.

另外我们还可以使用网线把电脑连起来, 但是这样很明显很难实现多机器的局域网, 因为一般一个电脑就一个网口, 只能插一条网线.

在这里插入图片描述

那么有没有别的方法呢? 有, 我们可以通过多级路由器来连接电脑, 一般的路由器, 可能有1个WAN口和多个LAN口, 其中WAN口用来连接上级网络, 而LAN口用来连接下级设备, 而LAN口肯定是有限的, 加入LAN口不够用, 我们就可以通过多级路由器就可以实现这个效果

在这里插入图片描述

另外我们也可以通过交换机来实现路由器的拓展, 交换机简单地说就是用来拓展路由器的接口的

在这里插入图片描述

通过这种路由器拓展 + 使用交换机的方式, 那么就可以构建更加复杂的网络结构

广域网

广域网, 英文简称为WAN, 全称为Wide Area Net, 和局域网相比, 覆盖的范围更大

假如我们将各个局域网的路由器连接起来, 组成了一个更大的网络, 可能覆盖了一个城市, 国家, 甚至是整个世界. 那么此时就可以称呼这个网络为广域网(广域网和局域网并没有明显的界限)

在这里插入图片描述

当公共型广域网的范围大到覆盖世界范围, 此时就可以称呼这个广域网为互联网

网络基础

接下来为了能够更加好的学习网络知识, 我们首先先要来看一些基础概念

IP地址

IP地址, 主要就是描述了一个设备在网络上的地址. 实际上网络的通信, 与邮寄快递还是很像的, 给另一个设备发送数据, 就类似于给对面寄了一个快递. 那假如我要去发快递, 我肯定就需要知道对面在哪. 那么在网络上我们就可以通过 IP 地址去描述另一个设备在哪.

目前 IP 地址一般指的是一个32位, 4字节的数字, 例如01100100000001000000010100000110, 但是很明显这样一点都不好阅读. 因此为了方便阅读, 把四个字节进行分割为四个部分, 使用三个点进行分割, 每一部分的大小为 0~255 (点分十进制), 此时上面的二进制就会被分为01100100.00000100.00000101.00000110, 然后将每一个区间的 8 个数字转换为十进制就变成了64.4.5.6

一般来说, 现在 IP 地址常见的有两种版本, 一种就是上面的这个 32 位的版本, 这个版本叫做 IPv4. 另一个版本则是由 128 位的版本, 这个版本叫做 IPv6. 不过我们这里主要是了解一下 IP 是什么东西, 有什么用, 因此我们这里就简单介绍一下 IPv4 的版本, IPv6 的就不做细致介绍了.

端口号

在一个电脑上面, 可能会有很多的应用程序. 那么此时假如我的 QQ 想给另外一个电脑的 QQ 发送信息, 那我虽然可以通过 IP 地址去获得对面电脑的地址, 但我又怎么去找到 QQ 的位置呢?

此时我们就需要去用到端口号, 端口号就是用来区分一个设备上不同的应用程序的, 一个进程可以有多个端口, 但是一个端口只能被一个进程使用. 就好像是一个人它可能有好几个住址, 此时别人给他寄快递寄到哪个都可以收到. 但是假如多个人在同一个住址, 此时别人给他寄快递寄到这就可能会弄混了, 因此网络上就直接禁止这种操作.

端口号一般为两个字节(0~65535), 其中 0 一般不会使用, 1~1023 一般留给系统作为特殊用途(知名端口号)一般不占用.

一般在通信过程中, 端口号和IP地址都是成对出现的, 源IP和源端口对应目的IP和目的端口.

协议

网络的传输本质上是通过光电信号来传输数据, 而光电信号又代表了一种二进制数据, 但是这种数据如何传输, 如何解析. 并且数据在传输的时候双方如何识别对方, 如何建立连接等等有关通信的问题. 这些都是通过协议来规定的

简单的说, 协议就是为了能够正常实现网络通信而设定的规定, 具体有什么样的协议, 这些协议有什么用, 我们就在后续学习协议的过程中慢慢了解即可

五元组

上面我们讲过的: 源IP, 源端口, 目的IP, 目的端口, 协议类型, 就被称为五元组

五元组是一次网络通信中必不可少的信息

协议分层

我们平常写代码的时候, 为了能够保证代码更好理解, 都会将代码拆分为各个部分, 一个部分完成一个工作

协议也是一样, 由于网络通信的情况非常多, 非常复杂. 因此如果只定义一个网络协议要支持所有场景, 那么就非常不好理解, 于是我们对协议进行拆分, 每一个协议只完成一小部分的工作. 但是此时由于网络协议过于复杂, 拆分出来的小协议也非常多, 为了便于管理, 我们就对协议进行了分层

协议的分层也是根据其作用和定位进行分类的, 并且分层还约定了协议之间的调用关系, 上层协议调用下层协议, 下层协议给上层协议提供支持, 这样这些协议就不会混乱

例如公司中, 假如人数很多, 那么就会实现分层管理, 每当要发配任务的时候, 员工给自己的上司汇报, 然后上司再给上层的领导进行汇报, 反之同理. 这样就能显著提高管理效率, 降低管理成本

并且这种协议分层的做法也类似于封装, 上层协议不必过于关心下层协议的具体实现, 只要负责调用下层协议就行, 而下层协议也不用关心上层协议的具体实现, 只要能保证上次协议的正常进行就行

例如我们打电话, 分两个层, 语言层和电话层

在这里插入图片描述

其中语言层不关心电话层的实现, 只负责把声音信号传给电话. 电话层也不管你语言层讲的是啥语言, 只负责进行处理, 然后传输

并且协议分层也支持根据需求灵活更换, 例如我们把上面的电话层的电话换成无线电, 只要能满足需求, 依旧可以正常运行

OSI 七层模型

OSI 将网络从物理层面到应用层面分为了 7 层, 下面我们简单的了解一下这 7 层的作用

在这里插入图片描述

在这里插入图片描述

实际情况中, 由于这个 OSI 七层模型比较复杂, 因此一般会采用 OSI 七层模型的简化版本 TCP/IP 五层模型

TCP/IP五层模型

左边是OSI七层模型, 但是这种模型由于过于复杂, 不贴合实际, 因此我们一般会用OSI七层模型的简化模型, TCP/IP五层模型

在这里插入图片描述

这些层都是越往下, 就约接近底层的, 反之越往上约接近软件层, 其中TCP/IP就是把OSI七层模型的其中三层给合并了(有些地方称TCP/IP四层模型, 由于物理层接近底层因此被忽略了)

TCP/IP由五层组成, 其简要功能如下所示:

  1. 物理层: 描述的是用于网络通信硬件设备, 例如网线应该使用什么规格
  2. 数据链路层: 关心两个相邻节点的数据传输情况
  3. 网络层: 进行路径的规划(也可以说是路由的选择, 不过路径规划更容易听懂)
  4. 传输层: 关注起点和终点, 确保数据传输到位
  5. 应用层: 如何使用数据, 主要就是应用程序层面的使用

举一个网上购物的例子来帮助理解一下

应用层就是用户, 买了东西只关注怎么用. 传输层就是接收用户快递起点和终点的, 他不关心用户怎么用, 不关心快递怎么送. 网络层就是规划用户快递路线的, 例如从北京到上海, 有各种各样的路线. 而数据链路层就是只管路线中相邻两个省市的传输情况的. 而物理层则是描述用于运送快递的交通工具是什么的, 比如是铁路还是公路还是飞机.

上面我们简单了解了一下各个层的用途, 接下来我们再来了解一下每一个层的对应情况.

  • 应用层: 实际上对应的就是我们的应用程序, 换句话说就是我们写的代码
  • 传输层和网络层: 对应着操作系统封装好的 API, 应用程序主要就是通过这个 API 将应用层的数据给传下去的.
  • 数据链路层和物理层: 对应的就是硬件设备以及其驱动程序, 例如对应着路由器, 交换机, 网线, 还有路由器的驱动程序这样的东西

封装和分用

既然我的数据在网络中要去传输, 那么就需要封装成不同层需要的格式, 因此就会有封装和分用的过程, 下面分别描述了在 TCP/IP 五层模型中, 网络通信过程中基本的数据传输过程

封装过程

  1. 应用层: 规定了一定的格式来保存要发送的数据(由程序员规定格式进行字符串拼接), 这个规定就是应用层协议. 打包完后就可以通过操作系统的 API 将刚刚打包的数据发送给传输层
  2. 传输层: 在应用层包装后的数据基础上, 再加上一段数据进行打包, 添加一段报头. 打包一方面是为了提供辅助信息, 例如起点端口信息和终点端口信息. 其次就是为了保护要发送的数据. 如何加的规定就是传输层协议, 常见的协议有 TCP 和 UDP
  3. 网络层: 网络层也是在上面传输层报文的基础上再进行一次打包, 添加一层报头. 这里报头的重要信息是 IP 信息, 主要的协议就是 IP 协议
  4. 数据链路层: 数据链路层依旧是在上面报的基础中进行打包, 并且此时会对头和尾都进行打包, 此时头称作为以太网报头, 包含的重要信息是 MAC 信息, 主要的协议就是以太网协议
  5. 物理层: 将上面的数据转换为 01 的二进制数据, 通过光电信号进行传输

分用过程

  1. 物理层: 解析光电信号, 获取二进制数据, 得到以太网数据报
  2. 数据链路层: 解析以太网数据报, 解析出报头,报尾和载荷
  3. 网络层: 将下层载荷继续解析, 解析出IP继续向上传递载荷
  4. 传输层: 解析出端口, 将数据传递给应用程序
  5. 应用层: 接收数据, 解析数据并作出反应

"客户段-服务器"结构

“客户端-服务器”结构, 顾名思义, 由客户端和服务器两个部分组成, 那么客户端和服务器有什么区别呢? 其中, 客户端(Client)是指发出请求的一方, 此时客户端会对服务器发送一些数据, 这些数据被称作为请求(Request). 而服务器(Server)则是接收请求的那一方, 接收请求后会返回一些数据, 这些数据被称作为响应(Response). 其中两个部分的数据传输是通过网络通信来进行的

如果用更简单的话描述一下客户端和服务器: 客户端是主动发信的一方, 而服务器是被动接收的一方. 举一个很简单的例子, 服务器就是类似于餐馆这样的公共设施, 用于接待客人, 也就是接收客人人要吃饭的请求(接收请求)并且做出相应的饭菜(做出响应), 是被动接收请求的一方. 而客人就是客户端, 会发出自己要吃饭的请求(发出请求), 是主动发出请求的一方.

服务器作为接收请求的一方, 大部分情况下有两个特点:

  1. 一般情况下服务器是要一直开启的, 因为服务器并不知道什么时候会有客户端对其发送请求, 因此需要一直开启来随时等待着客户端的请求. 拿上例中的餐馆也是一样的意思, 餐馆在它的工作时间内是一直开启的, 因为不知道什么时候会有客人来吃饭.
  2. 一般的服务器都是要接收来自很多客户端的请求的, 但是也有特殊情况的存在, 也会有服务器给少数的一两个客户端提供服务.

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

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

相关文章

Chainlit集成Langchain并使用通义千问实现文生图网页应用

前言 本文教程如何使用通义千问的大模型服务平台的接口,实现图片生成的网页应用,主要用到的技术服务有,chainlit 、 langchain、 flux。合利用了大模型的工具选择调用能力。实现聊天对话生成图片的网页应用。 阿里云 大模型服务平台百炼 API…

1.SpringCloud与SpringCloud Alibaba

SpringCloud与SpringCloud Alibaba主要讲解的内容: 备注:黑色部分是springcloud社区原版,红色的是SpringCloud Alibaba 服务注册与发现 Consul Alibaba Nacos 服务调用和负载均衡 LoadBalancer OpenFeign 分布式事务 Alibaba Seata 服务熔…

批量插入insert到SQLServer数据库,BigDecimal精度丢失解决办法,不动代码,从驱动层面解决

概述 相信很多人都遇到过,使用sql server数据库,批量插入数据时,BigDecimal类型出现丢失精度的问题,网上也有很多人给出过解决方案,但一般都要修改应用代码,不推荐。 丢失精度的本质是官方的驱动有BUG造成…

机器学习特征-学习篇

一、特征概念 1. 什么是特征 特征是事物可供识别的特殊的征象或标志 在机器学习中,特征是用来描述样本的属性或观测值的变量。它们可以是任何类型的数据,包括数字、文本、图像、音频等。 作用: 特征是训练和评估机器学习模型的基础。好的特…

[基于 Vue CLI 5 + Vue 3 + Ant Design Vue 4 搭建项目] 09 集成 Ant Design Vue

我们要将 Ant Design Vue 集成到项目中 1.首先进入到我们的项目 2.然后使用下面的命令 npm i --save ant-design-vue解释一下这个命令: npm:npm 命令 i:install 的简写 –save:将其保存到 pagckage.json ant-design-vue&am…

PHP随时随地预订民宿酒店预订系统小程序源码

随时随地预订,民宿酒店预订系统让旅行更自由! 🌍 说走就走的旅行,从预订开始 旅行,总是让人心生向往,但繁琐的预订流程却常常让人望而却步。不过,现在有了“随时随地预订民宿酒店预订系统”&am…

centos7安装MySQL5.7.44

下载压缩文件 命令: #放到在/usr/local目录下 cd /usr/local #上传命令选择安装包 rz #解压缩包 tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz #给包重命名为mysql mv mysql-5.7.44-linux-glibc2.12-x86_64 mysql #查看mysql目录下有什么东西 [rootlocal…

【Python 数据分析学习】Pandas基础与应用(1)

题目 1 Pandas 简介1.1 主要特征1.2 Pandas 安装 2 Pandas中的数据结构2.1 Series 数据结构和操作2.1.1 Series的数据结构2.1.2 Seres的操作 2.2 DataFrame 数据结构和操作2.2.1 DataFrame 数据结构2.2.2 Dataframe 操作2.2.3 DateFrame 的特殊操作 2.3 Series 和 DataFrame 的…

JMeter 入门之远程启动,服务模式,多机联测,负载均衡测试

本文主要介绍 JMeter 远程启动及使用多节点完成大并发测试(负载均衡测试),主打一个压力山大,借用 黑神话:悟空 的技能来描述就是远程开大,释放猴子猴孙技能。 搜了一些 jmeter 的案例或教程,讲的…

Windows10 如何设置电脑ip

1、首先打开控制面板 或者使用WinR 输入control 找到网络和Internet 点击网络和共享中心 点击更改适配器设置 找到你要需要设置的网络,右键 如果你的网口特别多,不确定是哪一个,拔插一下看看哪个以太网的标志是断开状态就可以了 点击属性…

★ C++基础篇 ★ string类的实现

Ciallo&#xff5e;(∠・ω< )⌒☆ ~ 今天&#xff0c;我将继续和大家一起学习C基础篇第五章下篇----string类的模拟实现 ~ 上篇&#xff1a;★ C基础篇 ★ string类-CSDN博客 C基础篇专栏&#xff1a;★ C基础篇 ★_椎名澄嵐的博客-CSDN博客 目录 一 基础结构 二 迭代器 …

即插即用篇 | YOLOv8 引入组装式Transformer模块AssembleFormer | arXiv 2024

本改进已同步到YOLO-Magic框架! 摘要—早期检测和准确诊断可以预测恶性疾病转化的风险,从而增加有效治疗的可能性。轻微的症状和小范围的感染区域是一种不祥的警告,是疾病早期诊断的重中之重。深度学习算法,如卷积神经网络(CNNs),已被用于分割自然或医学对象,显示出有希…

JVM源码解析

一、java虚拟机概述 1. java程序的跨平台性 之前的话&#xff0c;通过Linux或者Windows开发&#xff0c;当需要跨平台时&#xff0c;程序不能运行。java出现后&#xff0c;产生了jvm&#xff0c;针对不同的操作系统&#xff0c;产生了不同的java虚拟机。 在Java虚拟机中执行…

3D云渲染农场为何怎么贵?主要消耗成本介绍

随着对高质量3D动画的需求持续增长&#xff0c;云渲染农场对于旨在以高效速度生产高质量视觉效果的工作室来说变得至关重要。然而&#xff0c;用户经常想知道为什么渲染农场的价格如此之高&#xff0c;理解背后的原因可以帮助艺术家做出更好的选择。 什么是云渲染农场&#xff…

【Hot100】LeetCode—72. 编辑距离

目录 1- 思路题目识别动规五部曲 2- 实现⭐72. 编辑距离——题解思路 3- ACM 实现 原题链接&#xff1a;72. 编辑距离 1- 思路 题目识别 识别1 &#xff1a;两个字符串之间相互转换&#xff0c;增、删、替换 最少的操作次数 动规五部曲 1- 定义 dp 数组 dp[i][j] 代表&…

市面上有哪些高效财税自动化软件

随着科技的不断发展&#xff0c;财税自动化软件已成为许多企业和个人不可或缺的工具。这些软件可以大大提高财税处理的效率&#xff0c;减少人工错误&#xff0c;并确保合规性。目前市场上有许多高效财税自动化软件可供选择&#xff0c;本文金智维将介绍一些市场上比较受欢迎的…

可信的人类与人工智能协作:基于人类反馈和物理知识的安全自主驾驶强化学习

可信的人类与人工智能协作&#xff1a;基于人类反馈和物理知识的安全自主驾驶强化学习 Abstract 在自动驾驶领域&#xff0c;开发安全且可信赖的自动驾驶策略仍然是一项重大挑战。近年来&#xff0c;结合人类反馈的强化学习&#xff08;RLHF&#xff09;因其提升训练安全性和…

【EI会议征稿通知】第五届机械、电子电气与自动化控制国际学术会议(METMS 2025)

第五届机械、电子电气与自动化控制国际学术会议&#xff08;METMS 2025&#xff09; 2025 5th International Conference on Mechanical, Electronics and Electrical and Automation Control 随着全球技术进步与工业需求的不断升级&#xff0c;机械、电子电气和自动化控制技…

网络安全实训九(域环境的创建及其信息收集)

1 创建域环境 1.1 在WindowsServer2008上添加域服务 1.2 安装成功 1.3 选择蓝色字体&#xff1a;运行Active Directory域服务安装向导(dcpromo.exe) 1.4 记住新建的林&#xff0c;在安装的时候点击下一步即可 1.5 完成安装 1.6 在windows7上加入域&#xff0c;点击网络ID 1.7 …

力扣题解2576

大家好&#xff0c;欢迎来到无限大的频道。 今日继续给大家带来力扣题解。 题目描述&#xff1a; 给你一个下标从 0 开始的整数数组 nums 。 一开始&#xff0c;所有下标都没有被标记。你可以执行以下操作任意次&#xff1a; 选择两个 互不相同且未标记 的下标 i 和 j &am…