当前位置: 首页 > news >正文

【JavaEE】——初始网络原理

8e19eee2be5648b78d93fbff2488137b.png

阿华代码,不是逆风,就是我疯

你们的点赞收藏是我前进最大的动力!!

希望本文内容能够帮助到你!!

目录

一:局域网

1:概念

二:局域网的连接方式

1:网线直连

2:集线器组建

3:交换机组建

4:基于交换机和路由器组建

二:广域网

1:概念

2:交换机和路由器的区别(面试)

三:网络通信

1:IP地址

2:端口号

3:通信所用端口

四:协议

五:五元组

六:协议分层

1:概念

2:优点

3:TCP/IP五层网络协议

4:设备所在层级

七:封装(数据发送过程)

八:分用(数据接收过程)

九:经典交换机的封装分用

十:经典路由器的封装分用


一:局域网

1:概念

局域网Local Area Network 简称LAN

局域网是本地,局部组建的一种私有网络

二:局域网的连接方式

1:网线直连

2:集线器组建

意识把一个网口扩展成多个,但扩展出来的多个网口彼此间会影响。而交换机则不会出现这种情况

3:交换机组建

交换机上所有的口都是一样的,连上的电脑就构成了局域网那个

4:基于交换机和路由器组建

路由器:就是我们常说的wifi、猫。上面有两种接口——WAN和LAN,

WAN口:WAN口接运营商给的网线

LAN口:构成局域网的电脑连到LAN口

路由器下面的LAN口还可以继续接交换机,(即对现有的路由器的端口进行扩展)交换机还能再接路由器,层层套娃

二:广域网

1:概念

广域网,Wide Area Network 简称WAN

通过路由器,把多个局域网连接起来,(可以理解成事几个局域网的集群),内部的局域网属于广域网的子网。


 

2:交换机和路由器的区别(面试)

路由器工作在网络层,交换机工作在数据链路层。

三:网络通信

1:IP地址

描述一个设备在网络上的位置,32位二进制数——由4个字节组成

用“点分十进制”方式表示——三个点分割开4个字节

2:端口号

描述主机上的每一个应用程序都有一个不同的整数端口号

主机收到网络数据之后,通过端口号来确定,把这段数据交给哪个应用程序使用。

3:通信所用端口

在一次网络通信过程中,涉及到的IP和端口,其实各有两个。

收件人地址——目的IP

收件人电话——目的端口

发件人地址——源IP

发件人电话——源端口

四:协议

通信过程中的一种约定,发送方和接收方提前约定好数据的格式,这样双方才能正确的沟通(就像电报,摩斯密码)

尽管双方的计算机不是同一个厂商生产的,但是在同一种协议下,两者能进行相互配合

五:五元组

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

1:源IP

标识源主机

2:源端口号

标识源主机中该次通信发送数据的进程

3:目的IP

标识目的主机

4:目的端口号

标识目的主机中该次通信接收数据的进程

5:协议号

标识发送进程和接受进程双方约定的数据格式

六:协议分层

实际中,协议涉及到非常多的细节,庞大又复杂,不利于维护和更新。

于是我们就把协议进行了拆分——协议分层。

1:概念

上层协议会调用下层协议,下层协议给上层协议提供服务。只有相邻层次的协议可以沟通,不能跨层调用

2:优点

(1)上层协议直接使用下层协议,无需了解下层协议的细节

(2)某一层协议进行替换后,对其它层没有影响

(相当于下层协议内部怎么实现的,不用管,只要下层把协议封装好提供给上层一个接口就行了,好比我们写代码中调用函数的方法,只要达到目的就行,管你方法内部是怎样一个逻辑算法)

3:TCP/IP五层网络协议

(以下为通俗理解)OSI网络协议是大佬们搞出来的协议分层(共七层),但是实际开发中用不了那么多层,就简化成了五层也就是下图中的TCP/IP(这五层中,除了应用层,其它四层在计算机中都已经内置好了,作为程序员我们能影响到的就是应用层)

(1)应用层

传输的数据在应用程序中怎么使用        

(2)传输层

关注网络数据包的起点和终点,从哪里来要到哪里去,端和端之间的传输

(3)网络层/互联网层

关注起点和终点之间,走哪条路,传输路径的规划

(4)数据链路层/网卡层

负责两个相邻节点之间的传输细节

(5)物理层/硬件

通信过程中的基础设施,都是一些硬件啥的

4:设备所在层级

以下谈到的设备都是“经典”的,现实中的路由器和交换机功能更复杂和强大

主机:操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP的下四层

路由器:实现了网络层到物理层,TCP/IP的下三层(主要工作在网络层)

交换机:实现从数据链路层到物理层,TCP/IP的下两层(主要工作在数据链路层)

集线器:实现了物理层

七:封装(数据发送过程)

注:封装和分用时网络传输数据过程中,最核心的流程

数据传输常用的单词

假设现在应用A要给应用B发送数据,发送过程主要操作为A

1:应用层

在应用层,应用数据包会根据应用层数据协议进行构造,再由应用程序调用操作系统的API,把数据包发给传输层

2:传输层

传输层会把应用层发过来的数据包,再构造成一个传输层数据包,此处构造遵循的协议,主要就是:TCP和UDP

假设用UDP协议——UDP数据包=UDP报头(header)+载荷(payload)

UDP报头:承载一些关键的用来转发数据的信息,最重要的信息就是源端口和目的端口

添加报头的过程就是对数据包进行封装成API

3:网络层

网络层涉及到最核心的协议,IP协议

同样,网络层调用传输层封装好的API,拿到UDP数据包,在IP(主要)协议的基础山,对数据包添加上报头,构造成一个IP数据包。

IP报头:承载一些辅助转发的关键信息,最关键的信息就是源IP和目的IP了

4:数据链路层

数据链路层涉及到最核心的协议,以太网

注:以太网就是我们日常中见到的有线网络,用到的网线也叫做“以太网线”,用到的网口叫做“以太网口”,用到的交换机叫做“以太网交换机”

以太网数据帧:以IP数据包为一个整体,在头和尾分别加上以太网帧头和以太网帧尾

5:物理层

物理层拿到以太网数据帧之后,把二进制这样的数据,转化为光信号、电信号、电磁波等进行发送

八:分用(数据接收过程)

假设现在应用A要给应用B发送数据,接受过程主要操作为B

1:物理层

B的物理层接收到信号后,把信号转换为二进制数据,得到一个以太网数据帧,把这个帧交给数据链路层处理

2:数据链路层

数据链路层按照以太网的格式,来解析,去除载荷,再交给上层协议

3:网络层IP协议

按照IP协议的格式进行解析,取出载荷,再交给上层协议

4:传输层UDP协议

按照UDP协议格式来解析,取出载荷,再交给上层协议

 

5:应用层

按照应用层相应的应用协议解析数据

九:经典交换机的封装分用

 ①交换机,拿到信号,进行二进制解析后,把以太网数据帧交给数据链路层

②数据链路层 解析:一方面取出载荷部分,一方面解析帧头中的信息,这并添加新的帧头帧尾构造出新的以太网数据帧

③传输给物理层,物理层在发送出去

十:经典路由器的封装分用

比交换机多了一层协议

①物理层拿到信号,转化成二进制以太网数据包,发给数据链路层

②数据链路层,解析拿到载荷,发给网络层

③网络层根据IP协议解析报头,取出载荷,重新封装,发送给数据链路层

④数据链路层加上帧头帧尾,发送给物理层

⑤物理层把二进制数据包转换为信号发送出去

相关文章:

【JavaEE】——初始网络原理

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:局域网 1:概念 二:局域网的连接方式 1:网线直连 …...

Nginx和Lua配合使用

在NGINX中使用Lua进行开发时,可以通过不同的配置块来指定Lua脚本的执行位置。这些配置块被称为“phase hooks”,即阶段挂钩。每个阶段挂钩都有其特定的作用时间和目的。以下是NGINX Lua模块中常见的配置指令及其用途: 常见的Phase Hooks 1.a…...

程序化交易是什么,它有哪些优势,需要注意什么?

炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…...

水库抽样算法(大数据算法作业)

时隔一个多月,终于想起来写大数据算法基础的实验报告,主要是快截止了,hh 这两天加急把这个报告写完了~ 接下来,写一写证明过程(参考书籍:高等教育出版社《数据科学与工程算法基础》)主要代码以…...

SHCTF-2024-week1-wp

文章目录 SHCTF 2024 week1 wpMisc[Week1]真真假假?遮遮掩掩![Week1]拜师之旅①[Week1]Rasterizing Traffic[Week1]有WiFi干嘛不用呢? web[Week1] 单身十八年的手速[Week1] MD5 Master[Week1] ez_gittt[Week1] jvav[Week1] poppopop[Week1] 蛐蛐?蛐蛐! SHCTF 2024…...

docker-comapose安装部署mysql

docker-comapose安装部署mysql version: "3.4" services:mysql:image: docker.das-security.cn/middleware/mysql:8.4.1container_name: mysqlenvironment:- MYSQL_ROOT_PASSWORD密码volumes:- /etc/localtime:/etc/localtime- ./configs/mysql/initdb:/docker-entr…...

C语言初阶-数据类型和变量【下】

紧接上期------------------------->>>C语言初阶-数据类型和变量【上】 全局变量和局部变量在内存中存储在哪⾥呢? ⼀般我们在学习C/C语⾔的时候,我们会关注内存中的三个区域: 栈区 、 堆区 、 静态区 。 内存的分配情况 局部变量是…...

C++:命名空间(namespace)详细介绍与案例

命名空间(namespace)是C中的一个重要概念,用于组织代码和避免名称冲突。它们允许程序员将标识符(如变量、函数、类等)组织在一起,以便在较大的程序中防止命名冲突。 1. 基本概念 命名空间的基本定义方式如…...

专题十一_递归_回溯_剪枝_综合练习_算法专题详细总结

目录 1. 找出所有⼦集的异或总和再求和(easy) 解析: 方法一: 解法二: 总结: 2. 全排列 Ⅱ(medium) 解析: 解法一:只关心“不合法”的分支 解法二&…...

java中Runnable接口是什么?基本概念、工作原理、优点、`Runnable`与`Thread`的对比、与`Callable`接口的对比、实际场景

Runnable接口是Java提供的一种用于实现多线程的接口,通常用来定义任务的具体逻辑。与Thread类不同,Runnable接口只提供一种抽象方法run(),没有任何与线程的生命周期、管理相关的功能。它的主要作用是与Thread类或线程池(如Executo…...

Mybatis Plus连接使用ClickHouse也如此简单

通过阅读列式数据库ClickHouse官网&#xff0c;不难看出它有支持JDBC规范的驱动jar包&#xff0c;可以直接集成到Object Relational Mapping框架等&#xff0c;下面我用SpringBootMybatisPlus环境连接ClickHouse来演示一下 集成步骤 1.Maven引入ClickHouse提供的JDBC依赖 <…...

什么社交平台可以找到搭子?分享多款找搭子必备的人气软件

在这个丰富多彩的世界里&#xff0c;我们常常渴望有一个志同道合的搭子&#xff0c;一起分享生活的点滴&#xff0c;共同探索未知的领域。无论是追寻美食的舌尖之旅&#xff0c;还是踏上充满惊喜的旅途&#xff1b;无论是在健身房挥洒汗水…… 找到一个合适的搭子&#xff0c;都…...

STM32 RTC实时时钟 F407 寄存器

RTC介绍 STM32F1: RTC模块拥有一组连续计数的计数器&#xff0c;在相应软件配置下&#xff0c;可提供时钟日历的功能。 即在F1系列&#xff0c;RTC的日历部分只有一个32位的寄存器 该寄存器直接存放 时间戳 的值&#xff0c;即&#xff1…...

矩阵等价、向量组等价、线性方程组同解与公共解的关系

矩阵等价 矩阵 A 、 B 等价 ⇔ 两矩阵秩相等 R ( A ) R ( B ) ⇔ 每个矩阵的行秩等于列秩&#xff0c;两个矩阵的行秩与列秩分别相等 ⇔ 若行满秩则列向量组等价 ⇔ 若列满秩则行向量组等价 \begin{align} 矩阵A、B等价\\ &\Leftrightarrow 两矩阵秩相等R(A)R(B)\\ &\…...

[Linux] Linux 进程程序替换

标题&#xff1a;[Linux] Linux 进程程序替换 个人主页水墨不写bug &#xff08;图片来源于网络&#xff09; 目录 O、前言 一、进程程序替换的直观现象&#xff08;什么是进程程序替换&#xff1f;&#xff09; 二、进程程序替换的原理 三、进程程序替换的函数&#xff08…...

【Linux系统编程】第三十一弹---深入理解静态库:从零开始制作与高效使用的完全指南

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、静态库 1.1、怎么做静态库 1.2、怎么使用静态库 1、静态库 1.1、怎么做静态库 在Linux环境下&#xff0c;通常使用GCC&am…...

FFmpeg 简介及其下载安装步骤

目录 一、FFmpeg 简介 二、FFmpeg 安装步骤 2.1 打开官网 2.2 选择FFmpeg系统版本 2.3 下载FFmpeg压缩包 2.4 将下载好的压缩包进行解压 2.5 设置环境变量 2.5.1 在搜索栏中搜索【环境变量】&#xff0c;然后单击将其打开 2.5.2 找到系统变量中的【Path】&#xff0c;点…...

使用CSS+SVG实现加载动画

使用CSSSVG实现加载动画 效果展示 CSS知识点 SVG元素使用SVG相关CSS属性运用 整体页面布局 <section><div class"box"><div class"loader"><svg><circle cx"40" cy"40" r"40"></circl…...

物联网(IoT)的未来发展:智能互联时代的到来

物联网&#xff08;IoT&#xff09;的未来发展&#xff1a;智能互联时代的到来 物联网&#xff08;IoT&#xff09;正在迅速改变我们与世界互动的方式。无论是智能家居、智慧城市&#xff0c;还是工业自动化&#xff0c;物联网技术通过设备互联、数据采集和智能控制&#xff0…...

斯坦福 CS229 I 机器学习 I 构建大型语言模型 (LLMs)

1. Pretraining -> GPT3 1.1. Task & loss 1.1.1. 训练 LLMs 时的关键点 对于 LLMs 的训练来说&#xff0c;Architecture&#xff08;架构&#xff09;、Training algorithm/loss&#xff08;训练算法/损失函数&#xff09;、Data&#xff08;数据&#xff09;、Evalu…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...