当前位置: 首页 > 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…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...