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

JavaEE 初阶第十八期:叩开网络世界的大门

专栏:JavaEE初阶起飞计划

个人主页:手握风云

目录

一、网络发展史

1.1. 独立模式

1.2. 网络互连

二、网络分类

2.1. 局域网

2.2. 广域网

三、IP地址

3.1. 概念

3.2. 格式

四、端口号

4.1. 概念

4.2. 格式

五、协议

5.1. 概念

5.2. 作用

5.3. 五元组

5.4. 协议分层

六、TCP/IP分层模型

七、网络设备所在分层

八、封装和分用


一、网络发展史

1.1. 独立模式

        在互联网诞生之前,早期的计算机系统是独立且封闭的。这些大型主机(Mainframe)通常服务于单一机构,比如大学、政府部门或大型企业。每台计算机都拥有自己的操作系统和处理能力,但它们彼此之间无法直接通信或共享数据。这个阶段的计算模式类似于一个独立的岛屿,信息和资源被严格地限制在各自的系统内部。

        这种“独立模式”的特点是:

  • 封闭性强:系统之间缺乏标准化的通信协议,数据传输需要通过物理介质(如磁带或软盘)手动复制和移动。
  • 资源利用率低:每个系统都必须独立拥有所有所需的资源和数据,无法实现资源的集中管理和共享。
  • 沟通受限:不同机构或部门之间的数据交换效率低下,极大地阻碍了合作与信息流通。

        然而,正是这种模式的局限性,促使人们思考如何让计算机能够互相连接,从而为后来的网络互连奠定了基础。

1.2. 网络互连

        “网络互连”是互联网发展史上最关键的飞跃。它的核心思想是创建一个“网络的网络”,让原本孤立的计算机系统能够通过统一的规则互相交流。这一进程始于20世纪60年代末,美国国防部高级研究计划局(ARPA)创建的 ARPANET 是其雏形。

        “网络互连”模式的关键转折点是 TCP/IP 协议族的诞生。这套协议就像是不同语言之间的“通用翻译器”,它将数据分割成小的数据包,并确保这些数据包能够准确、高效地在不同类型的网络中传输和重组。这使得不同制造商、不同技术的计算机系统能够首次实现无缝连接。

        随着越来越多的网络(包括大学、研究机构和后来的商业网络)接入 ARPANET,并采用 TCP/IP 协议,一个跨越地域、开放互联的全球网络逐渐形成。这就是现代互联网的开端。

二、网络分类

2.1. 局域网

        局域网(Local Area Network,简称 LAN)是本地、局部组建的私有网络,也称为内网。其内部主机之间能方便地进行网络通信,但未连接的局域网之间无法直接通信。组建方式多样,包括基于网线直连多台主机,或通过集线器、交换机,以及交换机与路由器组合等方式实现连接。

2.2. 广域网

        广域网(Wide Area Network,简称 WAN)则是通过路由器将多个局域网连接起来,形成的大范围网络,局域网是广域网的子网。例如,将分布在各地甚至海外的分公司通过专线连接,便构成广域网;全球化的公共型广域网即互联网(公网、外网),是广域网的子集,有时 “广域网” 也泛指互联网。

三、IP地址

3.1. 概念

        IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址。就像我们发送快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。

3.2. 格式

        IP地址本质上一个32位的整数,32位地址分成4个部分,以.分割,通常用“点分十进制”来表示,每个部分都是0~255之间的十进制整数。

四、端口号

4.1. 概念

        在网络通信中,IP地址⽤于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。 简单说:端口号用于定位主机中的应用程序,像Chrome浏览器、微信,都需要联网。比如,快递,不光需要确认收货地址,还需要确认收件人的手机号。

4.2. 格式

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

五、协议

5.1. 概念

        协议,网络协议的简称,网络协议是⽹络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的⼀组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。

5.2. 作用

        计算机之间的传输媒介是光信号和电信号。通过"频率"和"强弱"来表示0和1这样的信息。要想传递各种不同的信息,就需要约定好双⽅的数据格式。协议如同网络世界的 “语言”,确保不同设备(如计算机、服务器、路由器、手机等)之间能够理解彼此发送的信息,实现有序、可靠的通信。统一了数据格式,合理分配网络资源。

5.3. 五元组

        在TCP/IP协议中,是用于唯一标识一个网络连接或数据流的五个关键信息的组合,主要用于网络设备(如路由器、防火墙、负载均衡器)对数据包进行识别、过滤、转发或追踪:

  1. 源 IP 地址:发送数据包的设备的 IP 地址,用于标识数据的来源设备。
  2. 目的 IP 地址:接收数据包的设备的 IP 地址,用于标识数据的目标设备。
  3. 源端口号:发送方设备上发起通信的进程所使用的端口号,通常在客户端随机分配(动态端口)。
  4. 目的端口号:接收方设备上对应服务的端口号,用于定位目标设备上的特定服务(如 80 端口对应 HTTP 服务)。
  5. 传输层协议:数据包所使用的传输层协议,常见的有 TCP(传输控制协议)和 UDP(用户数据报协议)。

5.4. 协议分层

  • 分层的作用

        网络通信是一个非常复杂的话题,为了解决复杂的问题,网络协议相应地也会非常复杂。我们就可以进行拆分,每个协议负责一个部分。拆分之后,协议就会变多,还得需要分层,约定协议与协议之间的调用关系。

        分层之后,每个协议只负责自己的那一部分,因此协议也更简单,更好理解。并且解耦合更加方便,可以灵活地对协议进行替换。

六、TCP/IP分层模型

  1. 物理层:网络通信中依赖的硬件设施,网线、光纤、天线;
  2. 数据链路层:负责两个节点之间的通信,通过网线、光纤或者无线信号连接的设备;
  3. 网络层:负责任意两个节点之间的路径规划;
  4. 传输层:管理两个节点之间的数据传输,并且只关心传输的起点和终点,不关心传输的过程;
  5. 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)。

七、网络设备所在分层

  • 对于⼀台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四层;
  • 对于⼀台路由器,它实现了从网络层到物理层,也即是TCP/IP五层模型的下三层
  • 对于⼀台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;

八、封装和分用

        我们想象这样一个场景:我在微信中想一个好友发送一条信息“hello”。

  • 发送方

        发送方从应用层输入“hello”,然后点击“发送”按钮。微信应用程序能获取到字符串,然后按照一定的应用层协议构造成应用层数据包。接下来把应用层数据包通过操作系统的API传给传输层。传输层涉及到的TCP/UDP协议打包成传输层数据包。接着再把传输层数据包传到网络层。在网络层,通过IP协议,在传输层数据包的基础上加上IP报头,再传给数据链路层。数据链路层最重要的协议是以太网协议,在IP数据报基础上拼接信息。最后是物理层,需要把0101这样的数据转化成光信号或者电信号通过物理介质传播出去。

  • 接收方

        在物理层收到光信号或者电信号,转化成0101数字信号,交给数据链路层。数据链路层通过以太网协议进行解析,去掉帧头帧尾,取出载荷,进一步交给网络层。网络层通过IP协议也会进行解析,取出载荷,进一步交给传输层。传输层通过UDP协议,进一步交给应用层。应用层再通过微信应用程序的进行解析,最后把消息显示到界面上。

        封装,相当于包装快递;分用,相当于拆快递。

        交换机从物理层到数据链路层进行分用,解析到数据之后,会对数据重新进行封装,再次发送出去。

http://www.lryc.cn/news/619203.html

相关文章:

  • 随身WIFI每个月需要交钱吗?流量卡还是随身WIFI哪个更好用?正规随身WIFI品牌有哪些?谁才是真性价比之王?
  • 当“超级高速“遇见“智能大脑“:5G-A×AI如何重塑万物智联时代
  • Linux文件系统:从虚拟接口到物理实现的架构解析
  • 存储过程作为系统逻辑核心的架构思考 —— 以 SaaS 系统为例
  • 【ROS2】ROS2 基础学习教程 以lerobot-so100为例
  • 【前端:Html】--3.进阶:图形
  • 基于RAII的智能指针原理和模拟实现智能指针
  • Python函数篇:从零到精通
  • 能刷java题的网站
  • C语言—数组和指针练习题合集(二)
  • [激光原理与应用-256]:理论 - 几何光学 - CMOS与CCD传感器成像原理比较
  • 安卓主题定制实践:17.45MB轻量级主题引擎技术解析
  • python --- 基础语法(1)
  • 为什么我换了项目管理软件?
  • 简单的双向循环链表实现与使用指南
  • Visual Studio中VC++目录、C/C++和链接器配置的区别与最佳实践
  • 无人机智能返航模块技术分析
  • 【前端Vue】如何在log-viewer组件中添加搜索定位功能
  • C语言中关于普通变量和指针变量、结构体包含子结构体或包含结构体指针的一些思考
  • 调整UOS在VMware中的分辨率
  • 广东省省考备考(第七十四天8.12)——资料分析、数量关系(40%-70%正确率的题目)
  • MySQL 数据库表操作与查询实战案例
  • 猫头虎AI分享|智谱直播开源其最新视觉模型:GLM-4.5V,多模态,支持图像、视频输入
  • 一个删掉360安全卫士的方法——Win+R
  • 【代码随想录day 17】 力扣 98.验证二叉搜索树
  • 计算机视觉(6)-自动驾驶感知方案对比
  • 偶遇冰狐智能辅助的录音
  • 【oracle闪回查询】记录字段短时间被修改的记录
  • 【Allegro SKILL代码解析】添加Pin Number
  • Web 安全之互联网暴露面管理