初始网络知识

  前言👀~

上一章我们介绍了使用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地址,然后实现局域网内的传输最终到达目标设备

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

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

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

相关文章

PCI PTS 硬件安全模块(HSM)模块化安全要求 v5.0

符合条件的 PCI SSC 利益相关者在 30 天的意见征询 (RFC) 期间审查 PCI PTS 硬件安全模块 (HSM) 模块化安全要求 v5.0 草案并提供反馈。 PCI PTS 硬件安全模块(HSM)模块化安全要求 v5.0图 从 7 月 8 日到 8 月 8 日,邀请符合条件的 PCI SSC 利益相关者在 30 天的意见…

C语言 结构体和共用体——结构体所占内存的字节数

目录 结构体所占内存的字节数 结构体所占内存的字节数

Unity之OpenXR+XR Interaction Toolkit实现 Gaze眼部追踪

使用 Unity OpenXR 实现Gaze眼部追踪 在虚拟现实(VR)和增强现实(AR)应用中,眼动追踪是一项强大而受欢迎的技术。它可以让开发者更好地理解用户的注意力和行为,并创造出更加沉浸和智能的体验。在本文中,我们将探讨如何使用 Unity OpenXR 实现Gaze眼部追踪功能。 Unity …

Linux文件:EXT2文件系统工作原理 软硬链接

Linux文件:文件系统究竟是什么?如何管理文件? 前言一、磁盘结构、存储策略1.1 磁盘存储结构1.2 磁盘存储策略1.3 磁盘的逻辑存储结构 二、如何管理磁盘文件三、如何管理组3.1 每个组保存的数据种类3.2 如何管理数据1、节点表(inod…

智慧城市可视化页面怎么做?免费可视化工具可以帮你

智慧城市是一个综合性的概念,广泛应用于各个领域,如基础设施建设、信息化应用、产业经济发展、市民生活品质等。 可视化页面的制作也是一个综合性的过程,需要确定展示内容、数据收集与处理、设计可视化元素等多个环节紧密配合。 1. 明确展示…

从零开始开发视频美颜SDK:实现直播美颜效果

因此,开发一款从零开始的视频美颜SDK,不仅可以节省成本,还能根据具体需求进行个性化调整。本文将介绍从零开始开发视频美颜SDK的关键步骤和实现思路。 一、需求分析与技术选型 在开发一款视频美颜SDK之前,首先需要进行详细的需求…

python对点云可视化设置颜色

1、背景介绍 点云分类/分割时,常需要对分类结果进行可视化,其中给点云赋予不同颜色是一种最直接方法。介绍基于python中matplotlib进行点云颜色渲染显示。 2、点云颜色渲染 2.1 有限种颜色渲染 matplotlib在点云颜色渲染时,使用表示颜色的关…

【代码随想录】【算法训练营】【第65天】 [卡码94]城市间货物运输I

前言 思路及算法思维,指路 代码随想录。 题目来自 卡码网。 day 65,周四,继续ding~ [卡码94] 城市间货物运输I 题目描述 卡码94 城市间货物运输I 解题思路 前提: 思路: 重点: 代码实现 C语言 Be…

快递查询|阿里云实现调用API接口

整体请求流程 介绍: 本次解析通过阿里云云市场的云服务来实现程序中对快递包裹实时监控,首先需要准备选择一家可以提供快递查询的商品。 https://market.aliyun.com/apimarket/detail/cmapi00065859#skuyuncode5985900001 步骤1: 选择商品 如图点击…

网站外链还有没有作用

前言 还记得“内容为王,外链为皇”这句话吗?在以前网站外链是网站优化中非常主要的环节。那时候做一个网站,只要不停的发外链,收录就不会差,于是大部分站长都使劲发外链。 有市场就有商场,大家都看到外链…

【国内超大型智能算力中心建设白皮书 2024】_智算中心算力规划

文末有福利! 智算中心建设通过领先的体系架构设计,以算力基建化为主体、以算法基建化为引领、以服务智件化为依托,以设施绿色化为支撑,从基建、硬件、软件、算法、服务等全环节开展关键技术落地与应用。 一、体系架构 &#xf…

基于扩散的生物打印策略,控制可打印性和结构特性

基于扩散的生物打印策略,控制可打印性和结构特性 在生物打印中,将生物材料和细胞按特定设计逐层堆积,构建具有复杂结构和功能的三维组织结构。微挤出生物打印是最常用的方法,其核心是生物墨水,它由聚合物材料和细胞组…

国漫推荐02

童年经典 1.《雷速登闪电冲线》赛车、竞赛 2.《雷速登之翼飞冲天》直升机、竞赛 3.《纳米神兵》该剧进述11岁少年小光如何用自己的善良和热忱感化原本企图侵略地球的外星族群,并带领他们一同对抗其他邪恶的外星人,由此一步步成长为拯救地球和人类的英雄…

在线绘图小工具

在线绘图小工具 文章说明程序源码功能展示源码下载 文章说明 本文主要是在看了袁老师的canvas绘图小视频后所写,记录一个简单的canvas绘图功能,并学习一下较为传统的JavaScript事件写法,同时了解一下拖拽事件的更合理写法,等待后续…

C++相关概念和易错语法(18)(array、模板)

1.array (1)普通数组的劣势 当我们直接越界修改值时,一般会在编译时就被拦截 但是越界访问,只要访问距离不算特别大,那么也可以越界访问 当我们不直接越界修改或访问,间接去访问和修改能越界非常远 这里的…

翻牌器单独设置前后缀样式

翻牌器单独设置前后缀样式 <template><div :style"[fontStyle,styleBackGroundColor]"><!-- <span style"color: #1d1d1d"> {{optionData}}</span>--><!-- 设置前缀样式 --><span class"prefix" …

怎么样的主食冻干算好冻干?品质卓越、安全可靠的主食冻干分享

当前主食冻干市场产品质量参差不齐。一些品牌过于追求营养数据的堆砌和利润的增长&#xff0c;却忽视了猫咪健康饮食的基本原则&#xff0c;导致市场上出现了以肉粉冒充鲜肉、修改产品日期等不诚信行为。更令人担忧的是&#xff0c;部分产品未经过严格的第三方质量检测便上市销…

Hadoop的HA模式搭建

准备三台虚拟机 bigdata007&#xff0c;bigdata008&#xff0c;bigdata009 1.前置工作 1.修改虚拟机的IP地址和hostname 2.配置集群中的ip映射&#xff08;/etc/hosts&#xff09; 192.168.111.57 bigdata007 192.168.111.58 bigdata008 192.168.111.59 bigdata0093.关闭虚拟…

武夷山细节决定成败抓质量求生存

在当今竞争激烈的市场环境中&#xff0c;细节决定成败&#xff0c;质量求生存的理念已成为企业发展的关键。蓝鹏测控科技有限公司&#xff0c;一家专业从事工业测量领域的高新技术企业&#xff0c;正是秉持这一理念&#xff0c;在工业测径仪领域取得了显著成就。 蓝鹏测控科技…

pandas修改时间索引报错处理

import pandas as pd import numpy as np import osdfpd.DataFrame(index[a,b,c],data{序列:[1,2,3]}) df.rename(index{a:a1},inplaceTrue) print(df) print(df.index.dtype)df1pd.DataFrame(index[2024-01-01,2024-01-02,2024-01-03],data{序列:[1,2,3]}) df1.rename(index{2…