【JavaSE】【网络原理】初识网络

【JavaSE】【网络原理】初识网络

目录

一、网络互联

网络互联

网络互联是指将两个以上的通信网络通过一定的方法,用一种或多种网络通信设备相互连接起来,以构成更大的网络系统。
网络互联的目的是以实现不同网络中的用户可以进行互相通信、共享软件和数据等。

数据共享

数据共享就是让在不同地方使用不同计算机、不同软件的用户能够读取他人数据并进行各种操作、运算和分析。

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

二、局域网与广域网

局域网 LAN
局域网,即 Local Area Network,简称LAN。
Local 即标识了局域网是本地,局部组建的一种私有网络。

指在较小的地理区域内,通过传输介质连接的一组计算机及其外围设备的网络 。局域网的传输速度较快,一般在几百Mbps到几Gbps,延迟较低。局域网是一种私有网络,一般在一座建筑物内或建筑物附近,主要用于办公室、学校、研究所或家庭等相对较小的地理范围内。局域网便于共享资源,如打印机、文件服务及其他应用程序,并可实现数据和信息的快速交换。

局域网组建网络的方式:

  • 基于交换机,路由器组建:
    !](https://i-blog.ZEEKLOGimg.cn/direct/d1b05f07e4714770b20290ba4572a2a3.png)

基于交换机组建:

基于集线器组建:

基于网线直连:

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

连接不同地区局域网或城域网计算机通信的远程网。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。广域网并不等同于互联网。

三、网络通信基础

3.1 IP地址

IP地址:通俗理解就是标识网络中一台设备所在的位置。就像我们发送快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。

IP地址格式:

  • IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:
    01100100.00000100.00000101.00000110。
  • 通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。如:
    100.4.5.6。

3.2 端口号

端口号:通俗理解,因为一台主机上会有多个应用程序同时使用网络,二端口号就是区分一台主机上多个应用程序的。

端口号格式:

  • 端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。

两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号。

3.3 网络协议

网络协议:简单理解就是,通信双方对于发送数据,接收数据格式的约定。最终体现为在网络上传输的数据包的格式。

构成三要素:

  1. 语法:即数据与控制信息的结构或格式;
    类似打电话时,双方要使用同样的语言:普通话
  2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;
    语义主要用来说明通信双方应当怎么做。用于协调与差错处理的控制信息。
    类似打电话时,说话的内容。一方道:你瞅啥?另一方就得有对应的响应:瞅你咋的!
  3. 时序,即事件实现顺序的详细说明。
    时序定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是
    异步传输。
    女生和男生的通话,总是由男生主动发起通话,而总是在男生恋恋不舍的时候,由女生要求
    结束通话。

3.4 五元组

五元组:进行一次网络通信,5个非常关键的信息,有源IP,源端口,目的IP,目的端口,协议类型。

  1. 源IP:标识源主机
  2. 源端口号:标识源主机中该次通信发送数据的进程
  3. 目的IP:标识目的主机
  4. 目的端口号:标识目的主机中该次通信接收数据的进程
  5. 协议类型:标识发送进程和接收进程双方约定的数据格式

四、协议分层

协议分层:

网络通信的过程非常复杂,如果一个协议包含了网络通信中的各方面问题,这个协议将非常复杂,庞大。
把一个大的协议,拆分成若干个小协议,功能单一的协议,但是这些协议又过多。
我们就将这些小协议进行归类,讲这些小协议以类型进行分层。

只有两个相邻层的协议之间才能进行交互。

协议分层的好处:

  1. 对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
  2. 对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可。
  3. 封装:上层协议不需要了解下层协议的细节。
  4. 解耦:分层之后,灵活的替换其中的某一层,对于整体的工作过程影响很小。

4.1 OSI七层网络模型

OSI七层网络模型:这个体系过于复杂,实际应用的真实网络分层方式更简化。

4.2 TCP/IP五层(四层)网络模型

TCP/IP五层(四层)网络模型:TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。

分为以下五层:

  1. 应用层:关注拿到数据之后怎么使用。负责应用程序间沟通,网络编程主要就是针对应用层。
  2. 传输层:关注两个任意设备之间进行通信,但是不关心中间设备,只关心起点与终点,也就是源主机和目的主机。
  3. 网络层:关注两个任意设备之间如何进行通信。负责地址管理和路由选择。
  4. 数据链路层:完成两个相邻设备之间如何进行通信。负责设备之间的数据帧的传送和识别。
  5. 物理层:规定一些网络通信中的硬件设施符合的要求。负责光/电/电磁信号的传递方式。

有些资料将数据链路层和物理层合在一起,所以也叫TCP/IP四层协议。

4.3 网络设备

主机:工作过程中主要涉及物理层到应用层。通过应用程序满足网络通信的需求。

路由器:工作主要涉及物理层到网络层,组建局域网,进行进行网络数据包之间的转发。

交换机:工作主要涉及物理层到数据链路层,对路由器接口的扩展,不需要考虑组网的问题。

但是现实的路由器和交换机很多都有对方的功能了。

五、网络数据通信基本流程。

5.1 封装和分用

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在⽹络层叫做数据报
    (datagram),在链路层叫做帧(frame)。
  • 应⽤层数据通过协议栈发到⽹络上时,每层协议都要加上⼀个数据⾸部(header),称为封装
    (Encapsulation)。
  • ⾸部信息中包含了⼀些类似于⾸部有多⻓,载荷(payload)有多⻓,上层协议是什么等信息。
  • 数据封装成帧后发到传输介质上,到达⽬的主机后每层协议再剥掉相应的⾸部,根据⾸部中的"上层协议字段"将数据交给对应的上层协议处理,称为分用。

5.2 简述过程

我们就使用两个设备之间的通信,简述发出和接收两个过程。

封装:

  1. 数据链路层构造好“数据链路层数据帧”后,继续调用物理层的API,把“数据链路层数据帧”交给物理层,物理层给网卡,网卡将上诉二进制数据,最终以光/电/电磁信号发送出去。

网络层构造好“网络层数据报“后,继续调用数据链路层的API,把“网络层数据报”交给数据链路层,数据链路层拿到后构造出“数据链路层数据帧
4.1. “数据链路层数据帧” 遵守数据链路层协议,主要是以太网协议。
4.2. 以以太网协议为例:数据链路层数据帧,也就是以太网数据帧由以太网帧头+以太网载荷+以太网帧尾。以太网载荷就是网络层数据报

传输层构造好“传输层数据段”后,继续调用网络层的API,把“传输层数据段”交给网络层,网络层拿到数据后构造出“网络层数据报”。
3.1. 这个“网络层数据报”遵守网络层协议,主要是IP协议。
3.2. 以IP协议来说:“网络层数据报”,也就是IP数据段由IP报头+IP载荷。IP载荷就是“传输层数据段”。

应用程序调用传输层提供的API,把数据交给传输层。传输层拿到数据之后构造出“传输层数据段”。
2.1. 这个“传输层数据段”遵守传输层协议,主要是TCP协议,UDP协议。
2.2. 以TCP协议来说:传输层数据段,也就是TCP数据段由TCP段头+TCP载荷。TCP载荷就是“用户数据包”。

应用程序,获取到用户输入,构造一个“用户数据包”。
1.1. 这个用户数据包遵守开发这个程序的程序猿定义的应用层协议。

分用:

  1. 信号到达接受方网卡,网卡将这些信号还原为二进制数据,交给上层数据链路层。
  2. 数据到达数据链路层,通过帧头帧尾包含的数据反应出使用的数据链路层协议,按该协议进行解析,将载荷数据传给上层网络层。
  3. 数据到达网络层,通过报头包含的数据反应出使用的网络层协议,按该协议进行解析,将载荷数据传给上层传输层。
  4. 数据到达传输层,通过段头包含的数据反应出使用的传输层协议,按该协议进行解析,将载荷数据传给上层应用层。
  5. 数据到达应用层,按照程序的应用层协议解析,将信息输出给接受者。

当涉及到路由器与交换机时就有下面工作流程:

路由器工作:

主机的数据 =>路由器,路由器收到之后,物理层,数据链路层,网络层解析 (没有传输层),重新构造出新的网络数据包,构造出以太网数据帧,构造出二进制数据,进行转发。
路由器是工作在网络层,这也叫三层转发。

交换机工作:

主机的数据 =>交换机,交换机收到之后,物理层解析,数据链路层解析(没有网络层了),重新构造出新的以太网数据帧,发给下一个设备数据链路层中,得到的以太网数据帧的帧头,信息就足以支持交换机进行下一步工作。
交换机是工作在数据链路层。这也叫二层转发。

Read more

人工智能|大模型—— 开发 ——Agent Skills设计详解

人工智能|大模型—— 开发 ——Agent Skills设计详解

一、什么是Agent Skills         在与 AI Agent 协作开发时,我们常常希望它能遵循一些特定的、可复用的操作流程,比如按照固定格式创建 Git Release、执行项目代码检查、或是生成符合团队规范的文档。OpenCode Agent Skill 提供了一种机制,允许我们将这些可复用的指令和行为封装起来,供 Agent 在需要时发现并调用。         一个 Skill 本质上是一份包含了特定指令的 Markdown 文件,它定义了一项任务的名称、描述以及具体的执行步骤。通过这种方式,我们可以将复杂的、重复性的工作流程标准化,让 Agent 能够像调用工具一样,精确、一致地执行这些预定义的任务。这不仅提升了协作效率,也确保了输出结果的规范性。         总而言之,Skills的核心价值在于:把重复的指令打包,按需加载。 二、opencode配置skill 创建一个 Skill 的过程非常直接,核心是在指定的目录中放置一个名为 SKILL.

By Ne0inhk
为什么 Agent 会成为下一个 AI 应用爆发点?如何为企业带来盈利

为什么 Agent 会成为下一个 AI 应用爆发点?如何为企业带来盈利

🐇明明跟你说过:个人主页 🏅个人专栏:《深度探秘:AI界的007》 🏅 🔖行路有良友,便是天堂🔖 目录 一、前言 1、好聊天≠能执行 2、静态问答 → 动态执行 二、什么是 Agent 1、具备感知、规划、决策、执行能力的智能体 2、核心能力 三、为什么说 Agent 会成为爆发点 1、应用能力从“问答”跃迁到“任务执行” 2、开发成本降低、生态系统成熟 3、开放模型(如 Qwen、Yi) + RAG + Tool Use 更易落地 四、典型应用场景盘点 1、

By Ne0inhk

让“小爱音箱PRO”智能起来:接入豆包AI

下面提供从 0 到 1 的完整流程,包含豆包 API 申请、MiGPT 部署、配置与使用,确保你能顺利让小爱音箱 Pro 用上豆包的强大能力。 一、准备工作(必做) 二、申请豆包 API 密钥(关键步骤) 豆包 API 需通过火山引擎方舟平台申请,以下是详细步骤: 1. 注册与实名认证 1. 访问火山引擎官网:https://www.volcengine.com/ 2. 注册账号并完成实名认证(个人 / 企业均可) 3. 登录后进入方舟大模型平台 2. 创建 API 密钥与推理接入点 1. 进入控制台 → API 密钥管理 → 点击 "

By Ne0inhk
让 AI 帮你编译部署鸿蒙应用:harmonyos-build-deploy Skill

让 AI 帮你编译部署鸿蒙应用:harmonyos-build-deploy Skill

让 AI 帮你编译部署鸿蒙应用:harmonyos-build-deploy Skill 这不是一篇教你敲命令的文章。这是一篇关于如何让 AI 成为你的鸿蒙开发助手,帮你完成从编译到部署全流程的实践分享。 为什么要做这个 Skill? 不是给开发者用的,是给 AI 用的 传统的 CLI 工具设计理念是:开发者学习命令 → 开发者执行命令。 但在 AI Coding 时代,我们有了新的可能:开发者描述需求 → AI 理解并执行。 harmonyos-build-deploy 的设计初心就是: 让 Claude 能够理解鸿蒙项目,自动完成编译、签名、部署、调试的全流程。开发者只需要用自然语言描述需求。 什么是 Claude Code Skill? Claude Code 是 Anthropic 推出的 AI 编程助手。

By Ne0inhk