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

抓住你了!

在这里插入图片描述

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 ^

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


评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

s:103

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值