Java EE初阶——网络初识

article/2025/7/13 2:28:59

1. 网络初始

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

数据共享本质是⽹络数据传输,即计算机之间通过⽹络来传输数据,也称为⽹络通信
根据⽹络互连的规模不同,可以划分为局域⽹和⼴域⽹。

1. 局域网LAN

局域⽹,即 Local Area Network,简称LAN。
Local 即标识了局域⽹是本地,局部组建的⼀种私有⽹络。
局域⽹内的主机之间能⽅便的进⾏⽹络通信,⼜称为内⽹;局域⽹和局域⽹之间在没有连接的情况下,是⽆法通信的。
局域⽹组建⽹络的⽅式:
  

2. ⼴域⽹WAN

⼴域⽹,即 Wide Area Network,简称WAN。
通过路由器,将多个局域⽹连接起来,在物理上组成很⼤范围的⽹络,就形成了⼴域⽹。⼴域⽹内部的局域⽹都属于其⼦⽹。

交换机 (Switch)

  • 工作层次:数据链路层 (OSI 模型第 2 层)
  • 主要功能:根据 MAC 地址转发数据帧
  • 适用场景:连接局域网内的设备,如计算机、服务器、打印机等
  • 转发方式:通过 MAC 地址表实现端口到端口的转发
  • 隔离范围:仅隔离冲突域,所有设备仍在同一广播域内

路由器 (Router)

  • 工作层次:网络层 (OSI 模型第 3 层)
  • 主要功能:根据 IP 地址转发数据包,连接不同网络
  • 适用场景:连接不同网络,如局域网与广域网的连接
  • 转发方式:通过路由表决定数据包的下一跳
  • 隔离范围:同时隔离冲突域和广播域,分割网络为不同子网

3. IP 地址

概念 :IP地址主要⽤于标识⽹络主机、其他⽹络设备(如路由器)的⽹络地址。简单说,IP地址⽤于定位主机的⽹络地址。使设备能够在网络中相互识别和通信。

1. 作用

  • 标识网络中的设备位置
  • 作为数据传输的源地址和目标地址
  • 帮助路由器确定数据传输路径

2. 格式

  • IPv4:32 位二进制数,通常表示为点分十进制(如 192.168.1.1都是0~255之间的⼗进制整数。
  • IPv6:128 位二进制数,通常表示为冒分十六进制(如 2001:0db8:85a3:0000:0000:8a2e:0370:7334

3. 分类

  • 公有地址:全球唯一,可直接访问互联网
  • 私有地址:用于局域网内部,不可直接访问互联网
  • 特殊地址:保留用于特定用途(如回环地址、广播地址)

4. 如何查看自己的 IP 地址?

  • Windowscmd → 输入 ipconfig

  • Mac/Linux:终端输入 ifconfig 或 ip a

  • 公网 IP:访问 ipinfo.io 或搜索 "What is my IP"

4. 端口号

端口号(Port Number)是计算机网络中用于区分同一设备上不同应用程序或服务的标识符。它与 IP 地址一起构成网络通信的基础寻址机制,确保数据能够准确到达目标应用程序。

1. 作用

  • 标识主机上的特定应用程序或服务
  • 作为传输层协议(TCP/UDP)的寻址机制
  • 使多个应用程序能够共享同一 IP 地址进行通信

2. 结构

  • 16 位无符号整数(0-65535)
  • 分为源端口和目标端口
  • 源端口:随机分配(通常 > 1023)
  • 目标端口:指定接收方服务的端口号

3. 端口号分类

  • 系统端口(0-1023)
    • 由 IANA(互联网号码分配机构)分配
    • 用于知名服务(如 HTTP:80, HTTPS:443, SSH:22)
  • 注册端口(1024-49151)
    • 需向 IANA 注册
    • 用于特定应用程序(如 MySQL:3306, PostgreSQL:5432)
  • 动态 / 私有端口(49152-65535)
    • 无需注册
    • 用于临时连接(如客户端随机端口)

2. 协议

协议(Protocol)是计算机网络中设备之间通信的规则和标准,它规定了数据如何封装、传输、路由和接收,确保不同厂商的设备能够互相理解。协议定义了通信的格式、时序、错误处理等机制,是网络通信的基础。

五元组
在TCP/IP协议中,⽤五元组来标识⼀个⽹络通信:
1. 源IP:标识源主机
2. 源端⼝号:标识源主机中该次通信发送数据的进程
3. ⽬的IP:标识⽬的主机
4. ⽬的端⼝号:标识⽬的主机中该次通信接收数据的进程
5. 协议号:标识发送进程和接收进程双⽅约定的数据格式
1. 作用
  • 定义通信双方的 "语言" 和 "语法"
  • 确保数据在传输过程中的完整性和可靠性
  • 提供错误检测和纠正机制
  • 协调通信双方的操作时序
2. 协议栈
  • 一组相互关联的协议集合
  • 通常按层次结构组织
  • 上层协议会调用下层协议的功能
  • 下层协议为上层协议提供服务

1. 协议分层

分层最⼤的好处,类似于⾯向接⼝编程:定义好两层间的接⼝规范,让双⽅遵循这个规范来对接。在代码中,类似于定义好⼀个接⼝,⼀⽅为接⼝的实现类(提供⽅,提供服务),⼀⽅为接⼝的使⽤类(使⽤⽅,使⽤服务):
对于使⽤⽅来说,并不关⼼提供⽅是如何实现的,只需要使⽤接⼝即可
对于提供⽅来说,利⽤封装的特性,隐藏了实现的细节,只需要开放接⼝即可。

1. OSI七层模型(基本不使用)

2. TCP/IP五层(或四层(不包括物理层))模型

应⽤层:负责应⽤程序间沟通,如简单电⼦邮件传输(SMTP)、⽂件传输协议(FTP)、⽹络远程访问协议(Telnet)等。我们的⽹络编程主要就是针对应⽤层。
传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到⽬标主机。
⽹络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识⼀台主机,并通过路由表的⽅式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)⼯作在⽹路层。
数据链路层:负责设备之间的数据帧的传送和识别。例如⽹卡设备的驱动、帧同步(就是说从⽹线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就⾃动重发)、数据差错校验等⼯作。有以太⽹、令牌环⽹,⽆线LAN等标准。交换机(Switch)⼯作在数据链路层。
物理层:负责光/电信号的传递⽅式。⽐如现在以太⽹通⽤的⽹线(双绞 线)、早期以太⽹采⽤的的同轴电缆(现在主要⽤于有线电视)、光纤,现在的wifi⽆线⽹使⽤电磁波等都属于物理层的概念。物理层的能⼒决定了最⼤传输速率、传输距离、抗⼲扰性等。集线器(Hub)⼯作在物理层

分层协议示例作用
应用层HTTP、HTTPS、FTP、DNS、SMTP用户直接使用的服务(如网页、邮件)
传输层TCP、UDP端到端可靠/高效传输
网络层IP(IPv4/IPv6)、ICMP、ARP寻址和路由(数据包如何到达目标)
数据链路层Ethernet、Wi-Fi(802.11)、PPP物理设备间的数据帧传输
物理层光纤、电缆、无线电波实际比特流的传输

两台计算机通过TCP/IP协议通讯过程:

3. 封装和分⽤

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

交换机工作在数据链路层:光电信号经过物理层解析为以太网数据帧,数据链路层对以太网数据帧进行解析取出载荷再加上新的帧头帧尾发送。

路由器工作在网络层:光电信号经过物理层解析为以太网数据帧,数据链路层将以太网数据帧去掉帧头帧尾取出载荷得到IP数据报,网络层将IP数据报去掉IP首部,取出载荷,再加上新的IP首部得到新的IP数据报,数据链路层加上新的帧头帧尾得到新以太网数据帧发送。

4.TCP vs UDP

特性TCP(传输控制协议)UDP(用户数据报协议)
连接方式面向连接(三次握手)无连接(直接发送)
可靠性可靠(丢包重传、顺序保证)不可靠(可能丢包、乱序)
传输单位字节流数据报
缓冲区
有接收缓冲区,也有发送缓冲区
有接收缓冲区,⽆发送缓冲区
通信全双工(信道可双向通信)全双工
速度较慢(开销大)极快(开销小)
适用场景网页(HTTP)、邮件(SMTP)视频流(RTP)、游戏(UDP)、DNS

1. 有连接

通信双方在数据传输前需先建立一条逻辑连接通道,传输过程中维护连接状态,传输完成后释放连接。
核心特点:先建连 → 再传输 → 后断连。

建立连接(三次握手)

  • 客户端发送同步报文(SYN)请求连接。
  • 服务器确认请求(SYN+ACK)。
  • 客户端再次确认(ACK),连接建立完成

数据传输

  • 双方通过已建立的连接按顺序传输数据,确保可靠性(如丢包重传、流量控制)。

断开连接(四次挥手)

  • 一方发起断开请求(FIN),另一方确认并释放资源,最终双向关闭连接

2. 无连接

通信双方无需提前建立连接,直接发送独立的数据包,每个数据包携带完整的目标地址,无连接状态维护
核心特点:直接发 → 不维护连接 → 无顺序保证。

典型流程(以 UDP 为例)

  • 发送方直接将数据包(数据报)封装目标地址后发送,接收方收到后无需确认。
  • 每个数据包独立路由,可能乱序或丢失。

3. 可靠传输

数据从发送方到接收方的过程中,确保所有数据准确、有序到达,且不重复、不丢失。即使网络出现拥塞或丢包,协议也能通过内置机制自动修复问题。

(1)确认应答(ACK)

  • 接收方每收到一个数据包,必须返回 ACK 确认

(2)超时重传

  • 发送方启动定时器,若未收到 ACK 则重传数据。

  • 自适应重传时间:根据网络延迟动态调整超时阈值(RTO)。

(3)序列号与排序

  • 每个字节分配唯一 序列号(Seq),接收方按序重组数据。

  • 解决乱序问题:即使数据包乱序到达,最终按 Seq 排序交付。

(4)流量控制(滑动窗口)

  • 接收方通过 窗口大小(Window) 告知发送方可接收的数据量。

  • 防止接收方过载:动态调整发送速率。

(5)拥塞控制

  • 通过算法(如慢启动、拥塞避免)探测网络容量,避免拥塞崩溃。

  • 核心指标:拥塞窗口(cwnd)、阈值(ssthresh)。

4. 不可靠传输

数据传输过程中不保证数据一定到达、不保证顺序、不处理重复,仅尽最大努力交付(Best-Effort Delivery)。丢包、乱序等问题需由应用层自行处理。

  1. 无确认机制

    • 发送方发送数据报后,不等待接收方确认,直接继续发送后续数据。
  2. 无重传机制

    • 若数据报丢失,协议层不自动重传,需应用层(如游戏客户端)检测并处理。
  3. 无流量 / 拥塞控制

    • 发送方以固定速率发送数据,不感知网络状态,可能导致拥塞或丢包


http://www.hkcw.cn/article/ijfHPKomQp.shtml

相关文章

机试 | STL | string | 统计单词数

题目: P1308 [NOIP 2011 普及组] 统计单词数 - 洛谷 输入 输入格式 共 2 行。 第 1 行为一个字符串,其中只含字母,表示给定单词; 第 2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。 第二行的…

nginx源码下载和测试

官网:nginx 源码包: nginx-1.19.3.tar.gz 源码包下载: wget http://nginx.org/download/nginx-1.19.3.tar.gz -P /usr/src 进入官网 以1.27.5为例 第一步,创建nginx的文件夹 mkdir /usr/local/nginxcd ~ 第二步创立文件后拖入…

2025南师附中特长生考试 人工智能加试T1

题目描述 在 x □ 1 □ 2 □ 3 □ 4 □ 5 □ 6 □ 7 □ 8 □ 9 x\square1\square2\square3\square4\square5\square6\square7\square8\square9 x□1□2□3□4□5□6□7□8□9 的 □ \square □ 内填入 或 − - −. (1) 求证: 27 27 27 可以被这样表示&…

老旧设备数据采集破局 AI图像解析如何让质检LIMS系统焕发新生

在实验室数字化进程中,大量服役超过 10 年的老旧设备成为数据采集的 “拦路虎”:指针式仪表盘需人工读取、纸质原始记录靠手工录入、非标准接口设备数据无法自动获取…… 某化工实验室因 15 台老旧设备数据采集耗时占比达 40%,检测效率长期滞…

PyQt6基础_QCharts绘制饼状图

前置: PyQt6中没有QtCharts包,需要安装 pip install PyQt6-Charts 结果: 1 高亮内容固定突出,并显示文本 2 鼠标悬浮在其他扇区,临时突出显示并显示文本 代码: import sys from PyQt6.QtCore import Q…

Cache数据库的高可用架构设计与选择

一、Cache数据库的高可用架构 对于Cache数据库的高可用性最佳实践,官方提供了以下几种策略: 集成基于操作系统级HA软件以及搭配共享存储的故障转移集群 基于操作系统的HA软件,搭配共享存储的方案,Cache实例安装在共享存储中&#…

开源协议:构建全球技术协作的基石

文章目录 一、开源协议的本质与存在价值(一)开源协议的定义与法律属性(二)开源协议的历史演进(三)开源协议的核心价值 二、主流开源协议分类与核心特性(一)宽松协议(Perm…

MySQL事务及其原理

事务是一组操作的集合,这组集合要么同时成功,要么同时失败 MySQL事务默认是自动提交的,也就是说每一条sql语句就是一条事务 查看/设置事务提交方式 关闭自动提交只有在其所在的查询窗口有效 select autocommit; --查看提交方式 SET autoc…

Spring生命周期中织入代理逻辑

在Spring生命周期中织入代理逻辑 一,AOP 自动代理的实现机制如何判断某个 Bean 是否需要被代理?代理对象在哪个生命周期节点创建? 二,底层实现逻辑1,自动代理的实现实例化AwareBeanPostProcessorSmartInstantiationAwa…

参数化建模(三):SOLIDWORKS中的参数化应用实例

在现代工程设计领域,参数化设计已成为提升设计效率、优化产品性能、实现智能制造的重要手段。尤其是在三维建模软件SOLIDWORKS中,参数化设计的理念和方法被广泛应用,极大地推动了机械、建筑、电子等行业的创新发展。 那么,什么是…

STM32G4 电机外设篇(二) VOFA + ADC + OPAMP

目录 一、STM32G4 电机外设篇(二) VOFA ADC OPAMP1 VOFA1.1 VOFA上位机显示波形 2 ADC2.1 用ADC规则组对板载电压和电位器进行采样 3 OPAMP(运放)3.1 结合STM32内部运放和ADC来完成对三相电流的采样3.2 运放电路分析 附学习参考…

KVM 安装 Ubuntu 22

在 KVM 中安装 Ubuntu 22 虚拟机。 首先创建硬盘文件 sudo qemu-img create -f qcow2 /app/vms/ubuntu22.qcow2 100G安装Ubuntu 22 sudo virt-install \--name ubuntu22 \--ram 4096 \--vcpus 2 \--disk path/app/vms/ubuntu22.qcow2,formatqcow2 \--os-type linux \--os-va…

【Python】第二弹:搭建 Python 环境

目录 一、安装 Python 第一步:找到官方网站 第二步:找到下载页面 第三步:双击安装包 第四步:运行 hello world 二、安装 PyCharm 第一步:找到官方网站 第二步:找到下载页面 第三步:双击安装包 第四步:运行 hello world 三、PyCharm 基本设置 3.1 设置字体大…

城市内涝精准监测・智能预警・高效应对:治理方案解析

城市化进程加速与极端天气频发叠加,城市内涝对城市安全运行和居民生活的威胁日益凸显。多地频发的强降雨引发严重内涝,"看海"现象、交通瘫痪及财产损失等问题,暴露出传统内涝防治体系在监测精准度、预警及时性和应对高效性上的不足…

解决RAGFlow(v0.19.0)有部分PDF无法解析成功的问题。

ragflow版本为:v0.19.0 1.解析的时候报错:Internal server error while chunking: Coordinate lower is less than upper。 看报错怀疑是分片的问题,于是把文档的切片方法中的“建议文本块大小”数值(默认512)调小&…

IoTDB 集成 DBeaver,简易操作实现时序数据清晰管理

数据结构一目了然,跨库分析轻松实现,方便 IoTDB “内部构造”管理! 随着物联网场景对时序数据处理需求激增,时序数据库与数据库管理工具的集成尤为关键。作为数据资产的 “智能管家”,借助数据库管理工具的可视化操作界…

比较二维结构的尺寸分布

在行列可自由变换的平面上5点结构有34个 其中尺寸在3*3范围内的有7个 在4*4范围内的有14个 在5*5范围内的有13个 现在假设平面上有5个不可分辨的点在随机的运动,这5个点可能的位置关系就只有这34种。现在假设点与点之间的距离是稳定不变的的,且每个状态只出现一次。…

WSL里执行python深度学习的一些方法记录

安装anaconda3: 可以直接从 Download Now | Anaconda 中下载,然后拷贝到WSL环境的某个目录,执行 bash xxxxxxx.sh 即可安装。 启动jupyter notebook: 先conda activate 当前环境,然后pip install jupyter 此时&am…

防爆组合式智能全温振荡防爆培养箱,守护安全场所

品牌:宇晶峰 型号:BGZ-929PY-03ZC 使用温度:4~60C 温度分辨率/波动度/分布精度:0.1C/0.5C/1C(38C时) 回旋幅度/回旋频率范围(r/min):Φ26mm(选配Φ50mm)/30~300(选配5~400) 回旋频率…

如何选择适合的冲压件清洗机?冲压件清洗机的选购指南

冲压件清洗机是工业生产中不可或缺的设备之一,主要用于去除冲压过程中产生的油污、灰尘、碎屑等污染物,确保冲压件的清洁度和质量。适当选择合适的冲压件清洗机对于提高生产效率、降低成本以及保证产品质量都具有重要意义。以下是一份关于如何选择适合的…