《JavaEE》网络中的基本概念

news2024/12/23 20:40:10

👑作者主页:Java冰激凌
📖专栏链接:JavaEE


局域网/广域网

        在我们的生活中 经常会使用到网络 对于网络 我们现在已经变得与生活息息相关 甚至可以说为密不可分 而在我们的网络中 我们的网络是分为局域网与广域网 我们的局域网和广域网有什么区别呢?

·通过路由器/交换机组件起来的这些都叫做局域网

·广域网和局域网之间没有明确界限 可以认为比较大的局域网可以成为'广域网'

·我们可以简单认为 家中的无线是一个局域网 而你们一个小区 则可以认为是一个广域网 


IP地址

        在我们的网络中 如果一台计算机想要上网 那么必不可少的会有一个IP地址 而我们的IP地址其实是动态变化的

 那么这个ip是干嘛的呢?

         IP地址主要用于标识主机和路由器和其他网络设备的网络地址 ip地址用于定位主机的网络位置 

那么我们如何查看自己主机的ip呢?

        我们可以通过cmd窗口来进行查看 我们打开cmd窗口(win+r)然后在编辑框中输入ipconfig即可

那么ip是如何组成的呢?

        ip也是有着固定的格式的 我们当前使用的大部分都是ipv4 所以说我们的ip将由4个字节组成(32位bit)那么我们为何看到的ip地址不是32位这么长的呢 这是因为我们使用了点分十进制来进行简化 方便我们查看


 ipv4

        ipv4诞生的很早 起初在诞生之初网络还不是很普及 所以说创立的时候没有特别放宽 就设定了4个字节 起初本以为需要发展很久 而这60余年过去 ipv4其实在我们的十年前已经枯竭了 为什么说ipv4会枯竭呢?

        我们已知 ipv4是由32位二进制组成的 所以说 我们ipv4可以分配的最多ip是42亿多 个ip 而我们当今网络发展迅速 全球已经有60亿人口 而且我们现在基本都不止一台设备可以上网 所以说 我们的ip地址 如果不做出升级 就要枯竭了 那么有的童鞋就疑惑了 枯竭就枯竭呗  一个虚拟的东西会有什么影响? 我们在开头便提到了 ip地址是我们主机在网络中的身份标识 如果你没有这个身份标识 那么你是无法上网的 所以 依照我们对于网络的依赖性 如果真的有一天 我们没有网络可以用了  会发生什么 难以想象 所以 诞生出一系列的优化措施出来

优化措施一 动态分配ip

        动态分配ip ipv4做了以下简单的升级 我们对于上网的设备我们才会去分配ip 对于不上网的被谁 我们就选择不分配ip 这样在一定程度的情况下 减少了一定的网络ip不够用的情况 但是要知道我们的网络是发展迅速的时代 这样的优化措施显然是不够的

优化措施二 NAT

        NAT协议可以将一个由私有IP构成的局域网中所有的计算机,通过一台具有公网IP和NAT功能的设备来访问公网公网资源。因为局域网中的设备可以通过很少的公有IP(甚至一个)就能实现网上冲浪,很大程度上节约了地址资源,所以在实际场景中,NAT被应用的极其广泛。豪不夸张的说,哪里有网络,哪里就有NAT的身影。    

简单来说,用户发出一个请求后,NAT设备会检查该数据包,当它发现这是一个请求外网的数据包时,会进而检查是否存在映射关系,对源IP地址和端口进行翻译(修改),同时在映射表中添加新建的IP和端口的映射条目,然后再把修改的数据包转发出去。    

 就是说 在路由器端 会有一个队列来组织主机ip 并且会在发送到服务器前 替换掉mac地址 替换掉之后就能保证服务器的发回能够找到路由器 路由器再根据队列中的排列找到要发挥的主机进行发回即可

这么来看 经过一系列的优化 ipv4看起来是没有啥弊端  但是 完美的事物是不存在的 渐渐的NAT的漏洞也暴漏了出来 

  1. 增加了网络的复杂性
  2. NAT违背了网络分层模型的设计原则根据OSI七层网络结构中,明确规定:第N层不容许修改第N+1层的爆头内容,但NAT报文中却违背了这一原则。
  3. 不能处理嵌入式ip或者端口

综上所述 ipv4被淘汰 是迟早的事情 那么我们有没有新的代替呢?

有的!ipv6

ipv6

        ipv6是一种新的协议  这个协议在2000年的时候已经被提出  ipv6是由16个字节组成的 相比而言 ipv4是由4个字节组成的 那么 ipv6可以容纳的ip就只是ipv4的4倍吗 大错特错 我们此处 是按照2次方来的 所以说 ipv4 = 2^32 那么 ipv6 =  2^32*2^32*2^32*2^32  这可不是单单的四倍 ipv6可以大到什么程度 我们的CPU是由于沙子提纯硅来制作的 所以 一个生动的比喻 ipv6可以为全世界所有 的沙子都分配一个ip地址 

 ipv6的发展史

        ipv6当初被提出的时候 中国其实属于最早加入的一批其实我们中国很早之前已经在使用ipv6网络 你们是否还记得中国2008年奥运会 在北京奥运会的时候 其实使用的全部都是ipv6网络 并且 中国在于ipv6的普及程度是相当高的,然而当ipv4快枯竭的时候 本身打算的是要使用ipv6 并且如果ipv6启动的话 中国的奥运会 将是全世界第一个使用ipv6的典型范例 此场奥运会也将称为使用ipv6的典范 不过 NAT的问世打破了这个美梦  启用ipv6的计划也暂时落幕了


端口号

        在网络通信中 ip地址表示主机的网络地址 端口号表示主机中发送数据 接收数据的进程 简单说的话 一个端口号就代表的是一个进程

格式

        端口号由0-65535组成 在网络通信中进程可以绑定一个端口号 用于发送和接收数据

需要注意到的是 一个进程可以绑定多个端口号 而一个端口号只能被一个进程绑定


协议

概念

        网络协议是网络通信经过所有网络设备都必须遵循的一组约定、规则。例如如何建立连接、怎样互相识别等等。只有遵守这个约定,不同计算机之间才能互相通信交流。

协议的作用

        协议类似于我们的语言 我们北方的家乡话 可能放到南方 就听不懂了 所以如果想要进行交流 就需要一个公共的语言 遵守相同的语言 那么这个语言就是普通话  所以在计算机中也是类似 计算机厂商有很多 但是多种不同的计算机之间如何才能实现相互通信呢?

        此处就需要一个普通话(协议)来做中间的桥梁

协议分层

        在网络中主要使用的是两种模型 OSI模型和TCP/IP协议 OSI协议分为7层 TCP/IP协议分为四层或者五层都可以

 


请求和响应   

        我们要获取资源的话 我们一般会涉及两个 客户端和服务器 

        客户端主要是用来先发送 后接收数据

        服务器主要是先接收数据 再发送数据

客户端和服务器之间也很好理解 我们可以将其理解为我们去饭店吃饭 只有你点餐了 老板才能给你下单让厨师去做饭 而不会出现你没进饭店而厨师端着饭让你吃的 这显然是不符合逻辑的 哈哈哈

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

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

相关文章

【8086汇编】环境搭建 - 学习笔记:WIN10下安装配置 MASMPlus + DOSBox

【8086汇编】环境搭建 - 学习笔记:WIN10下安装配置 MASMPlus DOSBox 一、MASMPlus 1.2下载安装 二、DOSBox 0.74-3下载安装配置自动挂载C盘添加环境变量 三、masm v5.0四、ml.exe v6.11参考资料 一、MASMPlus 1.2 下载 脚本之家:MASMPlus(汇编开发环境…

【深度学习】第六阶段

1、超参数调试 在深度学习中,有各种各样的超参数,其中包括:学习率 α \alpha α、动量超参数 β \beta β、Adam中的超参数 β 1 \beta_1 β1​、 β 2 \beta_2 β2​和 ε \varepsilon ε、神经网络层数、每层的结点数量、 小样本数据集大小…

mlq color transfer: Color Transfer Using Probabilistic Moving Least Squares

文章目录 Color Transfer Using Probabilistic Moving Least Squares1. 颜色转换2. 如何计算匹配点的概率3. 核心思想和具体操作:4. 特征点覆盖不到的颜色4.1这里介绍一下引文7:4.2. 分析 5. Probabilistic Moving Least Squares with Spatial Constrain…

智能学习 | MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络)

智能学习 | MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络) 目录 智能学习 | MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络)预测效果基本介绍程序设计参考资料预测效果 基本介绍 MATLAB实现ANT-BP多变量时间序列预测(蚁群算法优化BP神经网络…

如何通过Bug跟踪管理,有效减少软件缺陷Bug?

1、Bug生命周期 Bug的生命周期是指从Bug被发现到被关闭的过程。一般的缺陷状态是:新建--指派--已解决--待验--关闭。如果待验的Bug没有解决,我们需要重新激活--指派--已解决,循环这个过程,中间还包括拒绝、延期等。 Bug跟踪管理 减…

设计模式:创建者模式 - 代理模式

文章目录 1.概述2.结构3.静态代理4.JDK动态代理5.CGLIB动态代理6.三种代理的对比7.优缺点8.使用场景 1.概述 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象…

VUE3 学习笔记(八)引入 EasyUI for Vue

目录 一、什么是 EasyUI? 二、安装EasyUI for Vue3 1. 使用NPM安装 2. 导入EasyUI 三、安装完成出现问题解决 一、什么是 EasyUI? easyui是一个基于jQuery、Angular、Vue和React的用户界面组件的集合。easyui为构建现代的、交互式的、javascript应用程序提供了基本功能…

【历史上的今天】4 月 20 日:中国接入国际互联网;戴尔登顶 PC 市场;计算机先驱诞生日

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 4 月 20 日,在 2005 年的今天,CNET 网络公司宣布以 1100 万美元现金收购 PCHome 公司。根据当时的协议,PCHome 创始人将保留…

ManageEngine AD360:简化AD管理过程,提高组织安全性

Active Directory(AD)是微软提供的一种广泛使用的域管理工具,可以用于组织内部用户、计算机和其他资源的管理。尽管AD是一个强大的工具,但是它的管理不总是容易的,尤其是当需要处理大量的用户和计算机时,会…

linux下hive远程数据库模式安装

文章目录 前言1.安装mysql1)使用yum安装2) 安装好启动服务3) 开启开机自动启动4) 修改权限4) 登录 2.Hive安装 Local/Embedded Metastore Database (Derby)1) 下载稳定版本解压即可2)配置环境变量3) 配置远程连接mysql数据库4)需要将mysql驱动…

Flink时间属性

1.概述 Flink支持三种与流数据处理相关的时间概念:Processing Time、Event Time和Ingestion Time。具体如下图所示: 当前Flink仅支持Processing Time和Event Time EventTime:您提供的事件时间(通常是数据的最原始的创建时间&…

MongoDB 之 updateMany

MongoDB 之 updateMany 使用 https://www.mongodb.com/docs/v6.0/reference/operator/update/#update-operators db.collection.updateMany(<filter>,<update>,{upsert: <boolean>,writeConcern: <document>,collation: <document>,arrayFilters…

NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038

之前使用querydatabasetable处理器来获取mysql中的数据,我们只能写死一个sql的查询语句,但是 实际引用环境中,我们的一张mysql的表,可能有上千万的数据,那么,不可能,我们把sql查询语句写死,这样一次性如果获取所有数据,那么压力太大了,我们怎么弄呢?找了很久没有找到相关教程…

基于卷积神经网络的分类算法

基于卷积神经网络的分类算法 基于卷积神经网络的分类算法运行环境Python环境PyTorch环境Django环境数据预处理 基于卷积神经网络的分类算法 应用机器学习模型采用卷积神经网络&#xff0c;部署在Web环境中&#xff0c;通过Fashion-MNIST数据集进行模型训练和改进&#xff0c;实…

Scrum敏捷研发和项目管理

Scrum是全球运用最广泛的敏捷管理框架&#xff0c;Leangoo基于Scrum框架提供了一系列的流程和模板&#xff0c;可以帮助敏捷团队快速启动Scrum敏捷开发。 Leangoo完美支持Scrum敏捷框架&#xff0c;它提供了灵活的敏捷模板和极致的协作体验&#xff0c;可以让团队快速上手&am…

勒索病毒-特洛伊木马变种

​一、病毒简介 文件名称&#xff1a; 457d9e4773f45954449ee5913d068fdbb3d8e5689019688e7bce901467e5473a 文件类型(Magic)&#xff1a; PE32 executable (GUI) Intel 80386, for MS Windows, UPX compressed 文件大小&#xff1a; 410.00KB SHA256&#xff1a; 457d9e4773f…

从界面设计谈系统的贯穿性

系统的贯穿性&#xff1f; 在日常的开发中。单个模块之间的编码和设计起来相对比较简单。但是作为“软件工程”中的一个环节&#xff0c;系统的贯穿性往往被忽视。 现在系统关于贯穿性存在的问题 开发过程往往按照模块划分&#xff0c;分为不同的人开发。针对开发的者来说&…

【UE】将存档的值显示在控件蓝图上

上一篇博客&#xff08;【UE】保存游戏的demo&#xff09;已经实现了存档功能&#xff0c;本篇博客介绍的是如何将存档的值显示在控件蓝图上。 效果 可以看到我们存档的值显示在文本控件上 步骤 1. 新建一个蓝图类&#xff0c;父类为“HUD” 命名为“NewHudClassBP” 2. 在世…

Linux设备驱动开发 - 虚拟时钟Clock驱动示例

By: fulinux E-mail: fulinuxsina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅&#xff01; 你的喜欢就是我写作的动力&#xff01; 目录 1. 概述2. virtual clock设计3. 虚拟时钟驱动3.1. provider驱动3.1.1. provider platform device部分3.1.2. prov…

645. 错误的集合|||697. 数组的度|||448. 找到所有数组中消失的数字

645. 错误的集合 题目 集合 s 包含从 1 到 n 的整数。不幸的是&#xff0c;因为数据错误&#xff0c;导致集合里面某一个数字复制了成了集合里面的另外一个数字的值&#xff0c;导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的…