【JavaEE】初识网络

网络初识

文章目录

  • 网络初识
    • 网络发展史
      • 独立模式
      • 网络互连
        • 局域网LAN
        • 广域网
    • 网络通信基础
      • IP地址
      • 端口号
        • 格式
      • 协议
      • 五元组
      • 协议分层
        • OSI七层模型
        • TCP/IP五(四)层协议
          • 1.物理层
          • 2.数据链路层
          • 3.网络层
          • 4.传输层
          • 5.应用程序
      • 网络设备所在的分层
      • 封装和分用
        • 例子
          • 发送方
          • 接收方

网络发展史

单机时代 -> 局域网时代 -> 广域网时代 -> 移动互联网时代

独立模式

计算机之间相互独立

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

网络互连

随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连。

网络互连:将多台计算机连接在一起,完成数据共享。

数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信

根据网络互连的规模不同,可以划分为局域网和广域网。

局域网LAN

把几个电脑,通过路由器连接到一起

局域网,即 Local Area Network,简称LAN

Local 即标识了局域网是本地,局部组建的一种私有网络。

局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。

以下是局域网组建网络的几种方式:

  1. 基于网线直连

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  2. 基于集线器或交换机组建

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  3. 基于交换机和路由器构建

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

广域网

把更多的局域网连接到一起,所构成的网络更加庞大,可能已经覆盖一个城市/一个国家/全世界

广域网,即 Wide Area Network,简称WAN

通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都属于其子网。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

但是有一个点:局域和广域之间是没有明确的界限的!

网络通信基础

IP地址

描述了一个设备,在网络上的地址

举例子:

生活中:江苏省 盐城市 建湖县境内 蔡徐村

计算机中:使用一个32位,4字节数字,表示地址,一啊不能来说,会把IP地址给表示成4个0-255之间的十进制数字,并且使用3个点进行分隔,点分十进制

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

特殊IP

127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1

本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络通信的程序(即网络编程)

端口号

区分一个主机上不同的应用程序的

端口号也是一个整数(2个字节,相对比较小的数字)

不同的程序,就可以关联/绑定到不同的端口号

要求同一个主机上的应用程序,不能关联到同一个端口号、

(一个端口号只能被一个程序绑定,但是一个程序可以绑定多个端口号)

格式

端口号是2字节:0->65535

0 :一般不是使用

1-1023 : 这个范围的端口号,系统留作特殊用途,我们写的程序不要去占用

知名端口号:

22 :ssh

80 :http

443 :https

23 : telnet

在实际的通信过程中,IP和端口往往是一对

举个例子:

我们买东西

收件人地址,收件人电话

发件人地址,发件人电话

好比西游记中的唐僧

贫僧自东土大唐而来,前往西方拜佛求经

贫僧:源端口

东土大唐:源IP

西方:目的IP

佛:目的端口

协议

协议就是一种约定,约定了通信双方按照啥样的方式来传递数据~

网络上,本质就是通过光/电信号佬传输数据的

比如说:低电平(电压)表示1,高电平表示0,高频光信号表示1,低频光信号表示0

举个例子

就好比你去相亲,你们约好了在xx酒店相遇,然而呢别的相亲对象也约定好在xx酒店,那待会你就会可能发生认错人的情况(你懂的,反正我不懂🥵🥵🥵)

那么此时就有一个简单的方法,你们可以约定见面的时候带个绿帽子或者戴个项圈🫣🫣🫣(正经的哈别乱想)

通过这样的操作,就像相当于是一种协议~

协议,就是单纯的约定,并不一定会遇到很复杂的。

由于在网络通信的世界中,遇到的场景/问题往往比较棘手,的确是有一些网络协议是非常复杂的~

五元组

在TCP/IP协议中,用五元组来标识一个网络通信:

  1. 源IP:标识源主机

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

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

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

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

五元组在网络通信中的作用,类似于发送快递:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

同时我们也可以在cmd中输入netstat -ano来查看网络数据传输中五元组的信息:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

协议分层

我们平时写代码,若代码越写越多,越写越复杂,那么我们往往需要将代码拆分成多个部分~

网络通信的场景,可能会比较复杂
有很多的问题需要通过协议来进行解决,
如果搞一个大的协议来解决所有问题,此时这个协议就会非常庞大.非常复杂,就不利于人们去学习和理解,
相比之下,也可以把大的协议,拆分成多个小的协议.让每个小的协议只专注于做一小块事情~~
使每个小的协议,都不会太复杂.(化繁为简)

由于网络通信实在太复杂,拆分就拆出来太多的小的协议.这么多小的协议也就不好管理了.

此时就需要对协议进行分层了.

并且约定了不同层次之间的"调用关系
上层协议,调用下层协议”"下层协议给上层协议提供支持
这样的话,这么多协议就不容易混乱~~

这里我们用一个例子来理解

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

协议分层的好处就是;

  1. 协议分层之后,上层和下层彼此之间就进行了封装
    使用上层协议,不必过多关注下层;
    使用下层协议,也不必过多关注上层

    这也就大大降低了使用者的成本~

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  2. 每一层协议都可以根据需要灵活替换

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

协议分层之后,好处多多.因此现在网络世界都是这种分层的结构。

OSI七层模型

这种一般就出现在教科书中~

OSI:即Open System Interconnection,开放系统互连

  • OSI 七层网络模型是一个逻辑上的定义和规范:把网络从逻辑上分为了7层。

  • OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;

  • 它的最大优点是将服务接口协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

越往下,越进阶硬件~

重点还是关注TCP/IP协议

TCP/IP五(四)层协议

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.物理层

描述的是网络通信的硬件设备.
好比基础设施.公路,铁路,
比如使用的网线,光纤都应该是啥规格~

2.数据链路层

两个相邻节点之间的数据传输情况

3.网络层

进行路径规划

4.传输层

关注起点和终点

5.应用程序

如何使用数据(也是我们最需要关注的一点)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


物理层我们考虑的比较少。因此很多时候也可以称为 TCP/IP四层模型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

网络设备所在的分层

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四层

  • 对于一台路由器,它实现了从网络层到物理层,也即是TCP/IP五层模型的下三层

  • 对于一台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层

    交换机的作用就是针对路由器端口进行拓展,路由器上的端口可能是有限、不够

  • 对于集线器,它只实现了物理层

实际上,现在的路由器和交换机功能都越来越强大了.(甚至说一些高端的交换机,也有路由功能)
另一方面,路由器交换机可能还会支持一些更复杂的操作.甚至可能会工作在传输层或者应用层

以下为跨网段的主机的文件传输:数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

封装和分用

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。

  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)。

  • 首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。

  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理

描述了网络通信中,基本的数据传输过程

例子

A通过qq将hello发给B

发送方
  1. 应用层:QQ应用程序.QQ就会把用户输入的"hello",给打包成一个应用层的数据报(这个数据报的格式,得是qq的程序员才能知道)

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    就可以将应用层数据报,通过操作系统的API,将数据交给传输层

  2. 传输层

    就要对列才的应用层数据,再进行打包,变成传输层的数据报~~
    这里的打包过程,本质上还是"字符串拼接"
    把刚才的应用层数据,基础上拼接上传输层的报头

    传输层典型的协议TCR/UDP

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    传输层将数据报搞好了之后,这个数据就会进一步交给网络层

  3. 网络层

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    网络层的数据打包好了之后,继续将数据交给“数据链路层”再来进一步打包

  4. 数据链路层

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    把这个数据给物理层

  5. 物理层

    把上述数据,转换成2进制的01序列
    通过光信号/电信号进行传输

    数据发送出去之后,就会经过一系列的交换机和路由器进行转发
    A和B一般来说不是直接网线连接的.中间还要经过很多的交换机/路由器设备进行转发

    从上层协议到下层协议,层层给数据报添加报头
    这个过程称为"封装"
    注意区分,此处的封装不是面向对象的封装了,
    作用有点像~

    当数据到达B这边之后,B就要针对上述数据进行"分用”(针对上述数据报进行层层的解析)

接收方
  1. 物理层

    拿到的光电信号=>转换成二进制数据=>得到以太网数据报
    这个数据要交给数据链路层对应的议处理

  2. 数据链路层

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  3. 网络层

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  4. 传输层

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  5. 应用层

    将上述的数据根据端口号交给QQ这个程序

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


另外,数据报在网络中还会经历一定的转发过程

如果经过路由器:就会封装分用到网络层
路由器解析到网络层,拿到P地址,决定进一步如何传输
下一步传输的时候,又会重新经过网络层,数据链路层和物理层的封装
如果经过交换机:就会封装分用到数据链路层


那么本篇文章就此结束咯,简单介绍一下网络传输的基本流程
接下来关于网络编程的干货满满,敬请期待~

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

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

相关文章

ERP系统供应商协同:优化企业供应链管理

一、ERP系统供应商协同的概念和功能 供应商协同是指在供应链中,企业与供应商之间通过ERP系统进行紧密合作和信息共享,实现供应链各个环节的协调和优化。ERP系统供应商协同功能涉及以下方面: 1. 供应商管理:ERP系统提供完善的供应…

el-table添加fixed属性后底部滚动条添加小手

0 效果 1 样式 /deep/ .el-table--scrollable-x {cursor: pointer; } /deep/ .el-table__empty-block {cursor: auto; } /deep/ .el-table__row {cursor: auto; }

深入剖析 深度学习中 __init()__函数和forward()函数

目录 前言1. __init()__函数2. forward()函数3. 两者关系 前言 再看代码时,发现init函数和forward函数都有参数,具体是怎么传参的呢? 为了更方便的讲解,会举简单的代码例子结合讲解。 forward() 和 __init__() 是神经网络模型类…

13-k8s-ingress网络

文章目录 一、ingress介绍二、创建nginx和tomcat供测试三、创建ingress-http四、yaml方式安装ingress五、helm方式安装ingress(推荐)六、Ingress的HTTPS代理 一、ingress介绍 Service对集群之外暴露服务的主要方式有两种:NotePort和LoadBalan…

VulnHub Alice

一、信息收集 发现开发了22、80 2.访问ip,右击查看源代码 发现需要利用X-Forwarded-For 火狐插件:X-Forwarded-For Header 挂上代理后: 出现以下页面: 先注册一个账户,然后再登录 发现有参数进行传参 发现传参&a…

从Flink的Kafka消费者看算子联合列表状态的使用

背景 算子的联合列表状态是平时使用的比较少的一种状态,本文通过kafka的消费者实现来看一下怎么使用算子列表联合状态 算子联合列表状态 首先我们看一下算子联合列表状态的在进行故障恢复或者从某个保存点进行扩缩容启动应用时状态的恢复情况 算子联合列表状态主…

用建筑中智能消防应急照明系统的应用

【摘要】:火灾应急照明是火灾安全疏散、保障消防人员生命安全的关键。对电气设计人员来说,火灾紧急照明系统的设计非常必要,消防紧急照明系统启动与其正常工作状态有直接的关系,但由于其存在的问题通常不能被及时发现,…

C#,数值计算——分类与推理Gaumixmod的计算方法与源程序

1 文本格式 using System; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Gaumixmod { private int nn { get; set; } private int kk { get; set; } private int mm { get; set; } private double…

CEC2013(MATLAB):墨西哥蝾螈优化算法(Mexican Axolotl Optimization,MAO)求解CEC2013

一、墨西哥蝾螈优化算法MAO 墨西哥蝾螈优化算法(Mexican Axolotl Optimization,MAO)由Yenny Villuendas-Rey 1等人于2021年提出,该算法具有较强的平衡全局搜索与局部搜索能力。 参考文献: [1]Villuendas-Rey, Yenny,…

opencv定位图片中的图案?

使用opencv模板匹配方式。 这种方式针对从原始图片中直接扣小图情况比较好。 import cv2 as cv2def find_positions(image_path, small_image_path):# 读取大图和小图large_image cv2.imread(image_path)small_image cv2.imread(small_image_path)# 小图规格small_image_h, …

07-ConfigurationClassPostProces的解析

文章目录 如何解析Component,Service,Configurationd,Bean,Import等注解1. 源码描述2. 类继承结构图3. 解析流程4. 具体的注解解析 如何解析Component,Service,Configurationd,Bean,Import等注解 1. 源码描述 BeanFactoryPostProcessor used for bootstrapping processing of…

Android Fragment 基本概念和基本使用

Android Fragment 基本概念和基本使用 一、基本概念 Fragment,简称碎片,是Android 3.0(API 11)提出的,为了兼容低版本,support-v4库中也开发了一套Fragment API,最低兼容Android 1.6。 过去s…

学术特稿 | 著名书法家项国就:中国古代书法章草美学展现的形式分析

、 论文入编:大型综合美术类核心期刊《新美域》杂志2023年第七期。 中国古代书法章草美学展现的形式分析 摘要:本文旨在探讨中国古代书法风格章草的美学特点、审美价值以及代表性作品和艺术家。章草的美学特点体现在简洁流畅的笔画、清晰规整的字形结构以…

【JAVA】日志打印java.util.logging.*函数自定义格式,并且显示调用时行号

1、JAVA自带的这样: 代码如下: import java.util.logging.*; Logger logger Logger.getLogger(MyLogger.class.toString()); logger.info("123");显示效果: 这样的格式,看起来不太好看,比如:会…

【Unity3D编辑器开发】Unity3D中实现Transform组件拓展,快速复制、粘贴、复原【非常实用】

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在开发中,常常会遇到频繁复制粘贴物体的坐标、旋转…

小程序需带参数跳转

1、需要生成二维码的数据 直接在浏览器中替换成自己的appid,secret及可生成一个access_token https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credential&appidwxxxxx&secretxxxxx用access_token https://api.weixin.qq.com/wxa/getwxacode…

数据库、数据中台、数据仓库、数据湖区别

数据时代,各行业的企业都已经开始通过数据库来沉淀数据,但是真的论起数据库、数据仓库、数据中台,还是新出现的数据湖,它们的概念和区别,可能知道的人就比较少了,今天我们详细来比较了解一下。 一、数据仓…

Oracle基础学习

文章目录 1. oracle数据库安装2. sqlplus连接数据库方式3. 创建用户信息4. 基本概念5. 基本SQL语句6. Springboot开发 1. oracle数据库安装 安装教程 安装包地址 2. sqlplus连接数据库方式 无用户信息登录 使用用户信息登录 登录最高权限管理员,如果不加上as …

Spring Cloud Alibaba—Sentinel 控制台安装

1、Sentinel 控制台包含如下功能: 查看机器列表以及健康情况:收集 Sentinel 客户端发送的心跳包,用于判断机器是否在线。 监控 (单机和集群聚合):通过 Sentinel 客户端暴露的监控 API,定期拉取并且聚合应用监控信息,最…

如何通过内网穿透实现远程连接NAS群晖drive并挂载电脑硬盘?

文章目录 前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 前言 群晖作为专业的数据存储中心&…