JavaEE 协议 信息是如何在一个机器传到另一个机器的(理论)

news2024/11/17 5:46:54

抓住你了!

在这里插入图片描述

文章目录

  • JavaEE & 协议 & 信息是如何在一个机器传到另一个机器的
    • 1. 局域网
    • 2. 广域网
    • 3. IP与端口号(初识)
    • 4. 协议
      • 4.1 协议分类分层
        • 4.2 协议分层的好处
      • 4.3 真实的网络协议分层,TCP/IP五层网络模型
        • 4.3.1 应用层
        • 4.3.2 传输层
        • 4.3.3 网络层
        • 4.3.4 数据链路层
        • 4.3.5 物理层
        • 4.3.6 总结
      • 4.4 网络分层后,数据的变化 --- 封装 & 分用
        • 4.4.1 图解
        • 4.4.2 例子

JavaEE & 协议 & 信息是如何在一个机器传到另一个机器的

1. 局域网

以机房为例,多个机器之间可以进行联机,这就相当于一个局域网

在这里插入图片描述

  • 通过网线直接连接实现的联机也是局域网

  • 通过交换机也能进行联机,这也是局域网

    • 在这里插入图片描述
      电脑越多,用网线直连就越复杂~
    • 区别于集线器:集线器是将一条网线转变成多条网线,多条网线转变成一条网线,这是交换机原始的版本,有很大弊端,如信息同时汇集时会冲突!

在这里插入图片描述

  • 这里的交换机也可以换成路由器:

在这里插入图片描述

不难看出,局域网顾名思义就是局部的区域可以进行联机。

  • 一个学校的机房的机器必然无法联机到另一个学校的机房的机器

2. 广域网

现在的传奇被我们嘲笑,但是初期的传奇却席卷全国。那是因为,这个游戏在那个年代实现里不同地区的玩家进行多人联机!那个时候的网吧火爆了。

img

而实现的方式就是:广域网的网络组建 — 规模大

  • 即通过一些交换机路由器搭建一个网络环境,这需要一些拥有强大的专业知识和技能的人:网管

    • 不是网吧管理员,而是网络管理员!
  • 如果你学习开发,一般也会接触到,可能也需要学习如何组网~

之后又进入了移动互联网阶段,无线联网~

  • 手机…

在这里插入图片描述

3. IP与端口号(初识)

IP地址:标识一台主机的位置,即主机在互联网上的具体位置

  • 本质上是一个4字节的32位整数
  • 往往协程“点分十进制”的形式
    • 如:192.168.137.1
    • 四个部分,每个部分一个字节

命令行输入ipconfig:

在这里插入图片描述

端口号:标识主机上的哪个程序 ,区别一个主机上的应用程序

4. 协议

  • 协议即约定
  • 发送方发送的信息,有特定的格式,而接收方应如何解读这些信息呢,就是通过协议
    • 发送方发出的信息不仅仅要包含“核心数据”,还要包含IP,端口号…等等很多信息,那么这些信息的组织格式是必要存在的!

网络的传输本质上是通过 网线/光纤/无线(电磁波) 以电信号/光信号来进行传输的

  • 光信号也是要转化为电信号
    • 不同频率来代表1与0
  • 电信号就是高低电平(高低电压)表示的010101…

好的,现在我们知道怎么传输这些010101…了,那么我们要怎么处理这些信息呢?
在这里插入图片描述

我们需要约定好,“你传过来的信息是什么什么格式,我就以什么什么格式来理解”

  • 这就是协议

4.1 协议分类分层

  • 一个大的协议非常复杂,我们可以拆分为多个协议

那么就有一些协议功能类似,一些协议功能不同

  • 分类

而对于不同功能的协议,就安排在不同信息处理的不同阶段

  • 分层

而分层,也需要约定层级与层级之间的调用关系

  • 要求不能跨层级调用
  • 也就是说,一个小协议其实就只是大协议“这条流水线”的一个小工程罢了
  • 而流水线的工程之间是不能越级的
  1. 上层调用下层
  2. 下层给上层提供支持

调用的时候,格式就会发生改变

  1. 信息传到下层,加工成下层协议格式
  2. 信息传到上层,解析下层协议格式为上层协议格式

例如来自历史课本的一张图:

  • 一般也不会跨级管理,这样管理成本大

img

4.2 协议分层的好处

在这里插入图片描述

  • 分层后,上层协议不需要了解下层协议的细节,下层协议不需要了解上层协议的细节
  • 换协议后,只需要搞定层级间的信息加工/解析的细节就好

4.3 真实的网络协议分层,TCP/IP五层网络模型

重点:

  1. 应用层
  2. 传输层
  3. 网络层
  4. 数据链路层
  5. 物理层

(四层是因为没考虑物理层,软件方面看)

现在了解大概就好,后续深度学习!

4.3.1 应用层

关注数据要怎么用:

  1. 礼物拿来自己用还是送人
  2. 书本拿来看还是拿来盖泡面

在这里插入图片描述

4.3.2 传输层

不考虑中间的路径规划,只关注起点是什么,终点是什么

  • 相当于买东西,发货地址与收货地址

  • 我和卖家只关心起点终点,中间怎么传输就交给快递公司就好

在这里插入图片描述

4.3.3 网络层

主要负责两个遥远节点之间的路径规划

  • 例如快递从汕头到北京有很多路线可以走
  1. 汕头 -> 深圳 -> 北京
  2. 汕头-> 福建 -> 杭州 -> 北京
  3. 汕头-> 深圳 -> 杭州 -> 无锡 -> 北京

在众多路径中找一个合适的路径,一般走几步后要重新规划一下

在这里插入图片描述

4.3.4 数据链路层

主要关注的是两个相邻节之间的传输

  • 例如快递在两个相邻地址之间是怎么传输的
    • 飞机,火车,卡车,电瓶…

网络上的相邻节点,就是通过网线/光纤/无线直接连接的设备
在这里插入图片描述

4.3.5 物理层

网络通信的基础设施,网线光纤网络接口

  • 网络物件咋组织的约定
  • 网络物件类别的约定

网络上的高速公路:数据的传输硬件上的规定

在这里插入图片描述

4.3.6 总结

在这里插入图片描述

  • 跟程序员密切相关的是应用层和传输层!
    • 网络编程重点!

4.4 网络分层后,数据的变化 — 封装 & 分用

  1. 发送方发送数据,数据从上到下,依次交给对应的协议,进行封装加工
  2. 接收方接受数据,数据从下到上,依次交给对应的协议,进行分用解析

在传输层和应用层之间,调用一些协议的API即可

  • 调用下层协议(传输层)

  • 那么就可以将上层协议格式(应用层协议格式)转化为传输层协议的格式

  • 或者将传输层协议格式转化为上层协议格式(应用层协议格式)

4.4.1 图解

在这里插入图片描述

4.4.2 例子

简单粗糙的例子,实际上会更复杂细节

  • 小马要通过QQ给远方的老马发一条信息,这条信息在图中发生了什么事情呢?
  1. 应用层到传输层:
  • 小马发送给老马“吃饭了没?”,并且打包成应用层数据包

    • 字符串拼接
      在这里插入图片描述
  • 应用层调用传输层(API):封装成传输层数据报

与UDP为例:(报头 + 载荷的形式)

  • 字符串拼接

在这里插入图片描述

  • 为了区分不同字段,引入分隔符~
  • 当然,现实中会更加复杂,如json,xml…
  1. 传输层到网络层:

以IP协议为例:

  • 不是代码层面的了,后续会细节讲解!

在这里插入图片描述

  1. 网络层到数据链路层:

以 “以太网” 为例:

  • 要把网络层数据包封装成以太网数据帧

在这里插入图片描述

mac地址:也叫做物理地址

  • 主机在网络上的位置
  • mac ==> 描述数据链路层两个相邻节点
  • IP ==> 描述网络层的路径规划

传输的过程中,mac地址随之变化为对应的相邻节点~

理论上,每个网卡设备都会有一个自己唯一的mac地址,而IP地址不是

  1. 数据链路层到物理层

物理层将二进制数据转换为电信号/光信号…进行传输~

在这里插入图片描述

  1. 物理层到物理层
  • 物理层之间就通过同一协议直接沟通的,直接解析
  1. 物理层到数据链路层

数据链路层调用物理层,将信号转换为二进制序列(以太网数据帧)

在这里插入图片描述

  1. 数据链路层到网络层

网络层调用数据链路层,将以太网数据帧转换为网络层数据包

  • 去掉帧头帧尾
    在这里插入图片描述
  1. 网络层到传输层

传输层调用网络层,将以网络层数据包转换为传输层数据包

  • 去掉报头

在这里插入图片描述

  1. 传输层到应用层

应用层调用传输层API,将传输层数据包转换为应用层数据包

  • 去掉报头

在这里插入图片描述

  1. 应用层数据处理
  • 通过数据包格式(应用层协议内部使用)提取信息
    • 应用层协议没有API,是程序员自己规定的数据格式
    • 当然,一些公司内部使用的API也是会有的

在这里插入图片描述

以上去掉报头过程当然是会采取一些“动作”的

  • 之后是什么协议,对应报头是有标识的

宏观看:

在这里插入图片描述

这也是交换机和路由器的特点:

  • 交换机:二层转发
  • 路由器:三层转发

有一些特殊交换机可以三层转发,特殊路由器可以二层转发

甚至有更深!


对于群聊,也是类似,我将信息在群聊里

  1. 信息(我的qq号,群成员的qq号)发给qq服务器
  2. qq服务器通过这些信息查到对应的ip…,挨个发送给各个成员

(区别于私聊,它经过服务器后转发向多个对象罢了)



文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆

网络编程已经更完,支持支持呗 ^ V ^

后续将详细讲解一些协议,敬请期待!


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

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

相关文章

Spark 3.0中 Spark SQL优化

在Spark3.x版本提供Adaptive Query Execution自适应查询技术,通过在”运行时”对查询执行计划进行优化,允许Planner在运行时执行可选计划,这些可选计划将会基于运行时数据统计进行动态优化,从而提高性能。 Adaptive Query Execut…

在DongshanPI-D1开箱使用分享与折腾记录实现MPU6050数据读取

前言 上一篇文章使用RT-Smart的IIC驱动OLED屏幕,进行基本的字符串显示,在使用过程中对RT-Smart有了一定熟悉,准备使用SPI驱动ST7789,但SPI接口没有引出,本次使用手上已有的传感器MPU6050进行使用。 过程 本次直接开始添加离线包…

NDK RTMP直播客户端二

在之前完成的实战项目【FFmpeg音视频播放器】属于拉流范畴,接下来将完成推流工作,通过RTMP实现推流,即直播客户端。简单的说,就是将手机采集的音频数据和视频数据,推到服务器端。 接下来的RTMP直播客户端系列&#xff…

在国内pmp证书有什么含金量?

关于PMP的含金量,很多回答的说法都差不多,但那也只是字面上的含金量,真正的含金量还是得自己考过了之后能够给自己带来的帮助才方可对PMP含金量下定义,但能一眼就能看到的含金量是在一些招聘信息上关于PMP证书的要求,下…

【Axure教程】日期时间下拉列表

在系统中,我们经常会用到日期时间选择器,它同时包含了日历日期的选择和时间的选择,一般是下拉列表的形式进行选择。 今天作者就教大家如何在Axure中用中继器制作真实日期时间效果的下拉列表选。 一、效果展示 1、点击控件,可以…

游戏开发学习路线图(2023最新版)建议收藏

游戏开发是一个高度技术化的领域,需要掌握编程语言和编程技能。你可以从学习基本的编程概念和语法开始,如C、C#、Python等常用的游戏编程语言。掌握编程的基础知识是游戏开发的基石。很多小伙伴不知道怎么学习游戏开发,那么今天,就…

c/c++:windows平台下依赖的动态库,c底层是汇编语言,程序断点调试,反汇编,vs快捷键

c/c:windows平台下依赖的动态库,c底层是汇编语言,程序断点调试,反汇编,vs快捷键 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c的话, 我所知…

【多媒体】多媒体架构

多媒体架构 首先,多媒体架构层通常由三个主要层次组成: 应用层:负责媒体的展示、控制和交互等功能,如播放器、视频编辑器等。应用层一般是用户最直接接触到的界面。 中间件层:提供了各种媒体操作的基本服务,如编解码、音频合成、图像处理、网络传输、数据存储等。中间件…

【图像分割】Meta分割一切(SAM)模型环境配置和使用教程

注意:python>3.8, pytorch>1.7,torchvision>0.8 Feel free to ask any question. 遇到问题欢迎评论区讨论. 官方教程: https://github.com/facebookresearch/segment-anything 1 环境配置 1.1 安装主要库: (1&…

day08_数组

今日内容 零、 复习昨日 一、作业 二、数组 零、 复习昨日 方法/函数是什么? 方法就是完成某个功能的一段代码的集合例如: 方法是 做饭 方法的作用是什么? 封装的思想方便维护方便复用 方法的参数列表是什么意思? 参数:方法执行所需的数据参数列表: 方法执行可以需要多个数据…

Linux下C/C++ SNTP网络时间协议实现

对于许多应用程序,特别是在小型计算机和微控制器上,不需要NTP的最终性能。便开发了简单网络时间协议(SNTP),为功能较弱的计算机提供时钟同步,而这些计算机不需要NTP的复杂性。 而简单网络时间协议&#xf…

简易糖尿病胰岛素注射量推荐系统运行记录(github项目)

前言 在github上找案例推理相关实现代码,找到这个项目,记录一下运行过程。项目地址:https://github.com/jcf-junior/Diabetes-CBR 运行记录 运行项目的前提是已经装好的所有request的包,电脑里已经安装过mongodb数据库。 原项目…

Linux XFS文件系统的备份与还原

文章目录Linux XFS文件系统的备份与还原XFS文件系统备份xfsdump语法xfsdump备份完整的文件系统用xfsdump进行增量备份XFS文件系统还原xfsrestore语法用xfsrestore观察和xfsdump后的备份数据内容简单恢复level 0 的文件系统恢复增量备份数据仅还原部分文件到xfsrestore交互模式L…

深入剖析Android视图层次结构,为什么UI界面如此多样化?

简述 在Android Framework中,渲染机制是指如何为应用程序的用户界面绘制和布局视图(View)。Android的视图层次结构(View Hierarchy)是由视图树中的每个节点表示的 。当更新视图树时,Android会执行以下流程…

记一次内存泄漏问题的排查

阶段一: 前段时间,突然发现服务在毫无征兆的情况下发生了重启。去看了一下容器退出的日志,发现内存利用率超过了100%,导致容器重启,进一步看了skyWalking,发现heap内存超了,当时只是简单的以为是…

HTML2.1列表标签

列表标签种类 无序列表 有序列表 自定义列表 使用场景:在列表中按照行展示关联性内容。 特点:按照行的形式,整齐显示内容。 一、无序列表 标签名说明ul无序列表整体,用于包裹li标签li表示无序列表的每一项,用于包…

【iOS】—— 消息传递和消息转发

消息传递和消息转发 文章目录消息传递和消息转发消息传递(方法调用)IMP指针IMP与SEL的区别与联系SEL是通过表取对应关系的IMP,进行方法的调用快速查找imp过程汇编代码查找过程总结消息发送快速查找imp(汇编):方法缓存慢速查找总结慢速查找消息…

全链路日志追踪

背景 最近线上的日志全局追踪 traceId 不好使了,不同请求经常出现重复的 traceId,或者通过某个请求的 traceId 追踪搜索,检索出了与该请求完全不相干的日志。我领导叫我去排查解决这个问题,这里我把我排查的过程思路以及如何解决…

真题详解(单元测试)-软件设计(五十)

真题详解(0/1背包)-软件设计(四十九)https://blog.csdn.net/ke1ying/article/details/130163955 单元测试 五个特征:模块接口、局部数据结构、重要执行路径、出错处理、边界条件。 模块接口,保证测试模块数据流正确的流入和流出。 测试模块用…

大数据相关知识

1、大数据整体简介 1、1 简介 百度百科这样写道 大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优…