初始网络知识

  前言👀~

上一章我们介绍了使用java代码操作文件,今天我们来聊聊网络的一些基础知识点,以便后续更深入的了解网络

网络

局域网(LAN)

广域网(WAN)

路由器

交换机

网络通信基础

IP地址

端口号

协议(重要)

协议分层

OSI七层网络模型

TCP/IP五层网络模型(重要)

封装和分用


如果各位对文章的内容感兴趣的话,请点点小赞,关注一手不迷路,讲解的内容我会搭配我的理解用我自己的话去解释。如果有什么问题的话,欢迎各位评论纠正 🤞🤞🤞

12b46cd836b7495695ce3560ea45749c.jpeg

个人主页:N_0050-CSDN博客

相关专栏:java SE_N_0050的博客-CSDN博客  java数据结构_N_0050的博客-CSDN博客  java EE_N_0050的博客-CSDN博客


网络

网络分为 网络原理 和 网络编程网络通信:多台计算机连接在一起,完成数据共享,其实就是计算机之间通过网络进行数据传输,也可以说是网络数据传输

局域网(LAN)

本地,局部组建的一种私有网络,局域网内的主机之间能进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。局域网的范围固定,比如一个学校、一个工厂,覆盖范围小、传输效率快、延迟低,主要用于本地资源共享和通信

广域网(WAN)

通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都属于其子网。其实就是一个个局域网通过路由器连接起来,可以看作是一个巨大的局域网,叫广域网。覆盖范围大、传输效率慢、延迟高,主要用于远程连接和数据传输

如果属于全球化的公共型广域网,则称为互联网(又称公网,外网),属于广域网的一个子集。有时在不严格的环境下说的广域网,其实是指互联网

局域网和广域网的关系和区别:

就比如一家公司,有很多分公司在不同的地区,每家分公司可以看作是一个局域网。我们可以通过网络连接将所有的分公司进行连接,这样就能实现跨地通信,这种就叫广域网

路由器

在OSI模型的第三层(网络层),主要作用是用于连接多个网络,根据数据包的目标地址,选择最佳路径进行转发

可以想象平常我们的机房电脑就连接一个路由器那只能这几台电脑进行通信,但是如果路由路由之间再进行连接,逐渐就能形成一张巨大的网,更多电脑能进行通信,并且路由器可以连接外网,这样就可以实现我们在任何地方电脑都能进行通信

路由器一般有5个网口,1个WAN和4个LAN,WAN口用来连接上级路由器,LAN口插在路由器用于多个计算机在同一个局域网内进行通信,但是端口有限,所以引入交换机可以通过交换机连接到更多的设备,交换机也连接LAN口

交换机

在OSI模型的第二层(数据链路层),每个交换机都有一个MAC地址表(也叫地址转发表),记录了连接到每个端口的设备的MAC地址。通过查询这个表,交换机可以确定每个数据帧的转发路径,然后将数据帧转发到目的设备

交换机的端口无需特别配置,直接将其连接到路由器的LAN口,交换机用于扩展局域网内的连接点(就是可以连接更多的设备),有更多的端口(8、16、24或更多),可以连接更多的设备,并且连接到同一个网络方便进行网络通信

两者之间的区别:

路由器在网络层,路由器根据IP地址寻址路由器可以处理TCP/IP协议,交换机不可以,交换机根据MAC地址寻址。交换机在数据链路层

路由器可以把一个IP分配给很多个主机使用,这些主机对外只表现出一个IP。交换机可以把很多主机连起来,这些主机对外各有各的IP

路由器可以连接不同类型的网络,并具备广域网连接能力,因此适合于构建大型企业网络或互联网接入。交换机则用于内部局域网中,用于连接多台设备


例子:我们每个人相当于主机,路由器相当于快递员,宿管相当于交换机,学校是一个局域网。快递员根据学校地址(IP)把包裹送到学校,再根据宿舍楼(子网IP)把快递交给这个宿舍楼的宿管,宿管根据你的名字(MAC)交给你


网络通信基础

IP地址

IP地址用于定位设备(例如主机、路由器等)的网络地址,可以这样理解就是描述我们的电脑在网络上的地址。IP地址在网络中的作用:用于设备之间的路由和网络定位,确保数据包能够在网络上找到目标设备。注意IP地址是可以变化的

格式:在计算机中,用一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)来表示地址,但是使用二进制来表示不方便。通常使用点分十进制来表示IP地址,用4个0-255之间的十进制数字,然后使用3个点分割开来表示IP地址

IP地址定位到了主机在网络上的地址了,但是数据传输到主机上后,由哪个程序接收呢?需要使用端口号进行标识


端口号

端口号用来区分主机上不同的应用程序,也可以说定位主机中的进程不同的程序不能绑定同一个端口号,就像mysql的端口号绑定为3306,那你其他的的程序也绑定到这个端口号不就乱套了。但是一个程序可以绑定多个端口号

格式:系统端口号范围为 0 ~ 65535(2个字节),0 ~ 1023 一般是系统有特殊的用途我们一般不使用

可以把IP和端口号看作是一对,类似寄快递一个道理,有寄件人地址(源IP)、寄件人电话(源端口号)、收件人地址(目的IP)、收件人电话(目的端口号)、协议(快递公司)后面详细讲解
 

有了IP地址和端口号,可以定位到网络中唯一的一个进程,但是网络通信是使用二进制数据来进行传输的,需要告诉对方发送的数据是啥样的,这时候就需要使用协议来规定双方数据格式

协议(重要)

网络本质通过光/电信号来传输数据的,我们使用协议来规定双方数据格式,协议就是约定,类似黑帮进行交易,需要先约定带上双方想要的再进行交易,不然就是唰唰

五元组:

在TCP/IP协议中,用五元组来标识一个网络通信,下面这些是一次网络通信中必要的信息

1. 源IP:标识源主机

2. 源端口号:标识源主机中该次通信发送数据的进程

3. 目的IP:标识目的主机

4. 目的端口号:标识目的主机中该次通信接收数据的进程

5. 协议号:标识发送进程和接收进程双方约定的数据格式

源的端口号和目的端口号在传输层,源IP和目的IP在网络层!!!

看不懂看下面这张


协议分层

对于网络协议来说,需要分成几个层次进行定义以及管理。按照协议的类型和作用进行分类,然后设置层级关系,上层调用调用下层,下层给上层提供支持,类似我们调用接口的意思,它的好处就是我们在调用接口的时候不用知道它底层是怎么实现的,我们只要会用这个接口,知道是干什么的就行了。接口也没必要知道我们是谁去调用它的并且它会将实现的细节封装好以免对其修改

分层的例子:就像一个大公司,老板下达指令,类似递归一样,把指令递下去,每层的领导接收指令,把指令递到员工那去进行处理,然后处理完再归回去,最后归到老板那有个响应。按照这样的方式进行通信,方便进行管理并且整体有秩序


OSI七层网络模型

OSI 七层模型既复杂又不实用,所以 OSI 七层模型没有落地、实现。仅仅出现在书上,让我们认识一下。大部分用的还是TCP/IP五层网络模型


TCP/IP五层网络模型(重要)

属于是OSI七层网络模型的简化版,把OSI中的应用层、表示层、会话层合并成一个应用层。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求

举个例子说明每个层:比如我们在淘宝买了件衣服,你还可以选择买裤子等其他物品这属于应用层。然后商家收到我们的订单相关的信息例如收件人、电话等信息这属于传输层。然后商家叫了快递公司来处理,快递公司选择合适的路径(会考虑很多例如效率、成本等因素)例如上海到杭州到绍兴进行运送这属于网络层。然后需要考虑相邻的地方该怎么运送,比如上海到杭州用铁路进行运送,杭州到绍兴用飞机进行运送这属于数据链路层。最后就是使用交通设备进行运送这属于物理层。后面的封装和分用还会举个例子进行讲解

物理层:数据链路层的数据帧转为二进制数,通过物理介质(例如电缆、光纤等)传输

数据链路层:负责将数据帧在同一局域网上传输关注相邻节点之间的传输细节,交换机在的层

网络层:负责在不同网络之间传输数据包,并且选择最佳路径,关注的是通信中的路线规划,路由器在的层

传输层:提供端到端的通信服务,确保数据完整传输。关注通信的起点和终点

应用层:直接与应用程序交互,提供网络服务


网络设备所在分层:

对于一台主机来说,它的操作系统内核实现了传输层到物理层的内容

对于一路由器来说,它实现了网络层到物理层

对于一个交换机来说,它实现了数据链路层到物理层

对于一个集线器来说,它实现了物理层


封装和分用

描述网络通信过程中数据传输的流程,下面举个发送信息的例子,先讲封装,其实就类似发快递

发送方

应用层:

我们使用聊天程序给某某发送消息,wx就会把我们输入的java打包成一个应用层的数据包(格式只有wx程序员知道)使用字符串进行拼接,就像寄快递的时候我们自己给这个物品加个包装打包,到了快递员(传输层)那又会进行打包。应用层的协议可以由程序员灵活调整


然后把应用层的数据包通过操作系统的api传输给传输层进行处理

传输层:

传输层的协议例如TCP、UDP。把应用层的数据包再进行打包也就是使用字符串进行拼接上传输层的包头例如TCP、UDP,变成属于传输层的数据包。一个数据包=报头(header)+载荷(payload)

此时传输层的数据包=UDP报头+后面应用层的数据包(也就是包头的载荷)。UDP的报头是一个二进制数据包含的关键信息就是源的端口号和目的端口号,然后这就打包好了,例如寄显示屏的时候给它贴了个标签是易碎物品并且加点保护手段这样能降低碎的可能性

记住源的端口号和目的端口号在传输层!传输层的数据包处理好了然后传给网络层进行处理

网络层:

网络层最主要的协议就是IP协议,网络层也是一样给把传输层的数据包再进行打包使用字符串进行拼接上IP报头,,变成属于网络层的数据包

此时网络层的数据包=IP报头+UDP报头+应用层的数据包(也就是IP包头的载荷)。IP包头中包含很多属性,最重要的就是源IP和目的IP

记住源IP和目的IP在网络层!网络层的数据包处理好了然后传给数据链路层进行处理

数据链路层:

数据链路层典型的协议就是以太网,此处以太用来表示网络数据传输的介质,数据链路层会把网络层的数据包再进行打包使用字符串进行拼接上以太网帧头并且加上一个帧尾,,变成属于数据链路层的数据包


此时数据链路层的数据包=以太网帧头+IP包头+UDP包头+应用层的数据包(也就是以太网包头的载荷)+帧尾。以太网包头中也包含很多属性,最重要的就是源MAC地址和目的MAC地址(描述网卡/网络适配器的地址)


什么是网卡/网络适配器?一块被设计用来允许计算机在 计算机网络 上进行通讯的计算机硬件,在被制造出来的时候就有个固定的地址了。我们一般使用MAC地址来标识网卡/网络适配器在一个局域网内,设备之间通过MAC地址进行通信,确保数据帧能够找到正确的网卡
 


然后数据链路层的数据包处理好了然后传给物理层进行处理

物理层:

把上面的以太网数据帧,二进制结构数据就是0、1这种,转换成光/电信号进行传输。从一开始的上层协议到下层协议,每一层都加上了包头其实就是进行了封装

传输过程碰到路由器:数据传输出去后,经过交换机和路由器进行转发,可以想象我们电脑之间能进行通信是因为上面有一堆的交换机和路由器。注意一下在经过路由器的时候,一样的道理物理层接收光电信号转成二进制数据交给数据链路层,数据链路层同样的操作,解析然后取出载荷部分交给网络层,接着网络层进行解析它会选择最佳的路径去进行转发,然后再进行封装到数据链路层再到物理层进行传输,如果又碰到路由器还是一样的操作

传输过程碰到交换机:但是如果经过的是交换机的话就也是一样,物理层把光电信号转换成二进制传给数据链路层,然后数据链路层进行解析取出载荷部分,根据载荷部分的信息决定下一步把数据往哪里发送,然后再创建新的包头和包尾然后封装交给物理层,物理层在传出去。然后当数据到接收方那边要对数据进行解析(分用),也就是拆快递


 

接收方

物理层:接收到发送方传来的光电信号转成二进制数据,拿到以太网帧头,交给数据链路层进行处理

数据链路层:使用以太网协议针对以太网的数据包进行解析,把包头和包尾拿出来,把载荷部分丢给网络层进行处理

网络层:使用IP协议针对网络层的数据包进行解析,把IP包头拿出来解析,再把载荷部分丢给传输层进行处理


传输层:使用UDP协议针对传输层的数据包进行解析,把UDP包头拿出来解析,再把载荷部分丢给应用层进行处理

应用层:把传输层传来的数据根据端口号丢给对应的程序,然后wx这个程序对这里面的数据进行解析,怎么解析的是根据程序员自定义的应用层协议来解析的

整个流程总结:你发送的消息经过层层封装转换为物理信号(例如光/电信号等)进行传输,首先会在当前局域网进行判断然后再到本地路由本地路由会进行封装分用选择合适的路径,然后在途中碰到其他的路由器都会进行封装分用选择合适的路径,直到接近目标网络。到了最终路由器再进行封装分用,通过APR协议解析IP地址到MAC地址,如果没有找到对应的MAC地址,路由器会发送广播请求,目标设备会进行回应提供MAC地址,然后实现局域网内的传输最终到达目标设备

以上便是网络的一些基础知识点,网络的内容有很多并且很广,后续还会深入讲解💕

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构 —— FloydWarshall算法

数据结构 —— FloydWarshall算法 FloydWarshall算法三种最短路径算法比较1. Dijkstra算法2. Bellman-Ford算法3. Floyd-Warshall算法总结 我们之前介绍的两种最短路径算法都是单源最短路径,就是我们要指定一个起点来寻找最短路径,而我们今天介绍的Floyd…

YOLOv10改进 | Conv篇 | RCS-OSA替换C2f实现暴力涨点(减少通道的空间对象注意力机制)

一、本文介绍 本文给大家带来的改进机制是RCS-YOLO提出的RCS-OSA模块,其全称是"Reduced Channel Spatial Object Attention",意即"减少通道的空间对象注意力"。这个模块的主要功能是通过减少特征图的通道数量,同时关注空…

MySQL实战45讲学习笔记(持续更新ing……)

文章目录 一、基础架构:一条SQL查询语句是如何执行的?概览连接器查询缓存分析器优化器执行器 二、日志系统:一条SQL更新语句是如何执行的?redo logbinlog两阶段提交 一、基础架构:一条SQL查询语句是如何执行的&#xf…

动态规划之数字三角形模型+最长上升子序列模型

首先,我们从集合角度重新看待DP: 直接看题:https://www.acwing.com/problem/content/1029/ 就是取纸条的原题,我们令f[i1,j1,i2,j2]表示从(1,1),(1,1)分别走到(i1,j1),(i2,j2)的路径的max i1j1i2j2,于是我们可以把状…

ArrayList----源码分析

源码中的简介: List接口的可调整数组实现。实现所有可选列表操作,并允许所有元素,包括null。除了实现List接口之外,这个类还提供了一些方法来操作内部用于存储列表的数组的大小。(这个类大致相当于Vector,只是它是不同…

广电日志分析系统

需求 广电集团中有若干个系统都产生日志信息,目前大约分布与70到80台服务器中,分别是windows与Linux操作系统。需要将服务器上产生的日志文件利用我们的技术进行解析 设计 每个日志工作站负责30-50个服务器的日志解析工作。可以根据实际需求进行设置&…

ESP32CAM物联网教学11

ESP32CAM物联网教学11 霍霍webserver 在第八课的时候,小智把乐鑫公司提供的官方示例程序CameraWebServer改成了明码,这样说明这个官方程序也是可以更改的嘛。这个官方程序有四个文件,一共3500行代码,看着都头晕,小智决…

基于Python+Flask+MySQL的新冠疫情可视化系统

基于PythonFlaskMySQL的新冠疫情可视化系统 FlaskMySQL 基于PythonFlaskMySQL的新冠疫情可视化系统 项目主要依赖前端:layui,Echart,后端主要是Flask,系统的主要支持登录注册,Ecahrt构建可视化图,可更换主…

Oracle序列迁移重建

原因:oracle数据导入后序列不一致 解决办法:从原库中导出一份最新的序列号,在目标库中导入 1.删除目标库该用户下的所有索引 select DROP SEQUENCE ||sequence_name || ; from dba_sequences where sequence_owner xxxxx;2.查询出所有序列…

edge 学习工具包 math solver

简介 推荐微软推出的学习工具中的两项工具:数学求解器和 pdf 阅读器。 打开 edge 学习工具包的方法 :右上角三点-更多工具-学习工具包。 math solver 除了基础的计算求解外,还用图标展示公式,清晰直观。 地址:求解…

《C语言程序设计 第4版》笔记和代码 第十一章 指针和数组

第十一章 指针和数组 11.1 指针和一维数组间的关系 1 由于数组名代表数组元素的连续存储空间的首地址,因此,数组元素既可以用下标法也可以用指针来引用。 例11.1见文末 2 p1与p在本质上是两个不同的操作,前者不改变当前指针的指向&#xf…

240711_昇思学习打卡-Day23-LSTM+CRF序列标注(2)

240711_昇思学习打卡-Day23-LSTMCRF序列标注(2) 今天记录LSTMCRF序列标注的第二部分。仅作简单记录 Score计算 首先计算正确标签序列所对应的得分,这里需要注意,除了转移概率矩阵𝐏外,还需要维护两个大小…

k8s NetworkPolicy

Namespace 隔离 默认情况下,所有 Pod 之间是全通的。每个 Namespace 可以配置独立的网络策略,来 隔离 Pod 之间的流量。 v1.7 版本通过创建匹配所有 Pod 的 Network Policy 来作为默认的网络策略 默认拒绝所有 Pod 之间 Ingress 通信 apiVersion: …

零基础STM32单片机编程入门(九)IIC总线详解及EEPROM实战含源码视频

文章目录 一.概要二.IIC总线基本概念1.总体特征2.通讯流程 三.EEPROM介绍1.M24C08基本介绍2.向M24C08写一个字节时序图3.从M24C08读一个字节时序图 四.GPIO模拟IIC驱动M24C08读写五.CubeMX工程源代码下载六.讲解视频链接地址七.小结 一.概要 IIC(Inter-Integrated …

如何监控 PostgreSQL 中表空间的使用情况并进行合理的管理?

文章目录 如何监控 PostgreSQL 中表空间的使用情况并进行合理的管理 一、引言 在 PostgreSQL 数据库中,表空间(Tablespace)是用于管理数据库对象存储位置的逻辑存储区域。有效地监控和管理表空间的使用情况对于确保数据库的性能、优化存储资…

第11章 规划过程组(三)(11.11规划成本管理)

第11章 规划过程组(三)11.11规划成本管理,在第三版教材第403~404页; 文字图片音频方式 第一个知识点:成本管理概述 1、成本的类型(重要知识点) 直接成本 如项目团队差旅费、工资、项目使用的…

scrapy写爬虫

Scrapy是一个用于爬取网站数据并提取结构化信息的Python框架 一、Scrapy介绍 1.引擎(Engine) – Scrapy的引擎是控制数据流和触发事件的核心。它管理着Spider发送的请求和接收的响应,以及处理Spider生成的Item。引擎是Scrapy运行的驱动力。…

Qt学生管理系统(付源码)

Qt学生管理系统 一、前言1.1 项目介绍1.2 项目目标 2、需求说明2.1 功能性说明2.2 非功能性说明 三、UX设计3.1 登录界面3.2 学生数据展示3.3 信息插入和更新 三、架构说明3.1 客户端结构如下3.2 数据流程图3.2.1 数据管理3.2.2 管理员登录 四、 设计说明3.1 数据库设计3.2 结构…

unsupported_country_region_territory

最近调用chatgpt接口出现:unsupported_country_region_territory,Country, region, or territory not supported 翻译过来的大致意思就是

合宙 Air780E模块 AT 指令 MQTT连接

固件说明 重启模块 //tx ATRESET//rx ATRESETOK ^boot.romv!\n RDY^MODE: 17,17E_UTRAN ServiceCGEV: ME PDN ACT 1NITZ: 2024/07/10,08:33:440,0查询模块版本信息 //tx ATCGMR//rx ATCGMRCGMR: "AirM2M_780E_V1161_LTE_AT"OK基本流程 4G模块支持MQTT和MQTT SSl协…