Java中的网络基础认知(如果想知道Java中有关网络基础的知识,那么只看这一篇就足够了!)

ops/2024/11/25 6:54:32/

        前言:网络基础是现代通信和信息技术的基石,涉及数据传输、网络协议、路由、交换、网络设备以及网络安全等多个方面,深入了解网络基础,不仅能提升技术能力,还能为更复杂的网络架构与应用打下坚实的基础。


✨✨✨这里是秋刀鱼不做梦的BLOG

✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客

在正式开始讲解之前,先让我们看一下本文大致的讲解内容:

目录

1.网络发展史简介

2.独立模式与网络互连

3.局域网(LAN)

4.广域网(WAN)

5.网络通信基础 —— IP和端口号

        (1)IP地址

        (2)端口号

6.协议

        (1)协议的重要性

        (2)常见协议

7.协议分层

        (1)OSI七层模型

        (2)TCP/IP五层模型

8.网络设备所在分层

9.TCP/IP通信过程

10.封装和分用

        (1)封装(Encapsulation)

        (2)分用(Demultiplexing)


        ——本篇文章只是将网络基础内容进行粗略的讲解,读者如果对某一部分十分感兴趣可以上网查阅学习

1.网络发展史简介

        网络技术的发展经历了从单机独立到全球互联的漫长历程。在早期的计算机时代,计算机的使用场景非常单一,每台计算机只能单独运行任务,无法与其他设备进行通信。这种模式被称为独立模式

        随着计算机技术的进步,人们对共享资源和协同工作的需求逐渐提升。为了解决这一问题,网络互连的概念应运而生。网络互连是指通过某种技术手段,将多台计算机连接在一起,实现数据共享和通信。这一概念不仅提升了工作效率,也为后来的网络通信技术奠定了基础。

2.独立模式与网络互连

        在上文中,我们了解到了独立模式,但是独立模式的局限性在于资源的孤立和无法协作,这与现代社会对高效通信的需求格格不入,为解决这一问题,网络互连成为历史的必然选择。

        网络互连的核心是通过协议和设备连接多台计算机,使其能够在网络中协同工作。例如,在一个小型办公室中,网络互连可以通过交换机连接所有电脑,实现文件和打印机共享。在更大的范围内,通过路由器连接多个局域网,就可以形成一个广域网,实现跨地域的通信。

        这一发展不仅仅是技术上的飞跃,更是一场社会生产方式的变革。通过网络,信息流通效率大大提升,全球化的步伐也因此加快。

3.局域网(LAN)

        局域网(Local Area Network)是最常见的网络类型之一,主要应用于家庭、办公室和校园等小范围场景。局域网的特点是组网灵活、速度快、安全性高。

局域网的组成方式有以下几种:

  1. 网线直连:适用于两台设备直接通信,如两台电脑之间共享文件。
  2. 集线器连接:通过集线器将多台电脑连接在一起,但通信效率较低。
  3. 交换机连接:交换机提高了数据传输效率,是现代局域网的主流设备。
  4. 交换机与路由器结合:当需要与外部网络通信时,路由器和交换机可以协同工作。

        局域网的典型案例包括公司内部网和家庭无线网络。例如,在一个企业中,局域网可以用来支持邮件服务器、文件服务器以及视频会议系统的运行,从而提高工作效率。

4.广域网(WAN)

        如果说局域网是一个家庭,那么广域网就是一个城市甚至一个国家的通信网络,广域网(Wide Area Network)通过路由器连接多个局域网,形成了覆盖范围更广的网络

        广域网的典型应用是互联网,它是全球范围内的广域网集合。通过互联网,世界各地的用户可以实现快速的信息交流和资源共享。另一个应用场景是企业专用网络,例如跨国公司的总部与分支机构之间通过专线建立的广域网,能够保证数据的私密性和通信的可靠性。

        从技术角度来看,广域网的实现依赖于多种设备和协议的协同工作,路由器在广域网中扮演着重要角色,它们通过复杂的路由算法选择最佳路径,将数据从源端传递到目的地。

        

5.网络通信基础 —— IP和端口号

        网络通信的核心在于数据的传输与交换。为了让数据能够准确地从源主机传输到目标主机,需要两个重要的信息:IP地址端口号

        (1)IP地址

        IP地址(Internet Protocol Address)用于标识每台主机在网络中的位置。它的作用类似于邮寄地址,确保数据包能够找到目标主机,IP地址有两种格式:IPv4和IPv6,其中IPv4采用点分十进制形式(如192.168.1.1)

        (2)端口号

        端口号用于区分主机内的不同应用程序或服务。每个网络应用都会绑定一个特定的端口号,如HTTP服务的默认端口号是80,通过IP地址与端口号的结合,网络能够精准定位目标应用

        这两者的配合使得网络通信更加高效,例如,在访问一个网站时,浏览器会根据网站的IP地址定位服务器,同时通过端口号与服务器的Web服务进行通信,从而加载网页内容。

6.协议

        协议是网络通信的基础,它规定了通信双方的数据格式和规则。没有协议,不同厂商生产的设备无法协作,网络通信将无法实现。

        (1)协议的重要性

        协议的存在相当于人与人之间的语言约定。例如,HTTP协议规定了浏览器与服务器之间的通信规则,而TCP协议确保了数据在传输过程中的可靠性。

        (2)常见协议

在工作中,我们常见的协议有以下几种:

  • HTTP/HTTPS:用于网页访问。
  • FTP:用于文件传输。
  • SMTP:用于电子邮件发送。

        协议在网络中的作用类似于交通规则,确保数据在复杂的网络环境中能够有序传递。

7.协议分层

        了解完了什么是协议之后,在让我们了解一下协议的分层,我们为了应对网络通信的复杂性,协议被设计为分层结构,每一层负责处理不同的问题,分层结构的主要优势是模块化设计,便于实现和维护,以下为两种常见的分层:

        (1)OSI七层模型

        OSI模型将网络功能分为七层:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层,这种划分方式清晰地定义了每一层的职责,使不同厂商的设备能够无缝协作(如图)。

        (2)TCP/IP五层模型

        TCP/IP模型是实际网络中广泛使用的分层模型,它将OSI模型简化为五层:应用层、传输层、网络层、数据链路层和物理层(如图)。

  • 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

  • 传输层:负责两台主机之间的数据传输,如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。

  • 网络层:负责地址管理和路由选择,例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。

  • 数据链路层:负责设备之间的数据帧的传送和识别,例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。

  • 物理层:负责光/电信号的传递方式,比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。

8.网络设备所在分层

        了解了协议分层之后,让我们看一下常见的网络设备所在的分层,以下为一些常见的设备所在的分层:

  • 对于一台主机:它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四层;

  • 对于一台路由器:它实现了从网络层到物理层,也即是TCP/IP五层模型的下三层;

  • 对于一台交换机:它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;

  • 对于集线器,它只实现了物理层;

        注意我们这里说的是传统意义上的交换机和路由器,也称为二层交换机(工作在TCP/IP五层模型的下两层)、三层路由器(工作在TCP/IP五层模型的下三层)。

         随着现在网络设备技术的不断发展,也出现了很多3层或4层交换机,4层路由器。我们以下说的网络设备都是传统意义上的交换机和路由器。

9.TCP/IP通信过程

        首先先让我们了解一下什么是TCP/IP通信:

        TCP/IP通信是计算机网络中广泛使用的一种通信协议,主要用于在不同的设备和系统之间进行数据传输。TCP/IP协议是“传输控制协议”(TCP)和“因特网协议”(IP)这两种协议的组合,通常用于计算机网络中的数据交换。

TCP/IP通信过程主要包括以下步骤:

  1. 建立连接:通过三次握手确保通信双方准备就绪。
  2. 数据传输:按照分层协议封装数据并发送。
  3. 释放连接:通过四次挥手终止通信。

        案例:访问一个电子商务网站时,浏览器与服务器通过TCP建立连接,随后使用HTTP协议完成商品信息的加载与订单提交。

10.封装和分用

        在计算机网络中,封装(Encapsulation)和分用(Demultiplexing)是两个非常重要的概念,它们涉及到数据的传输和接收过程中如何处理和组织数据。

        (1)封装(Encapsulation)

        封装是指将数据从应用层传输到物理层的过程中,每一层协议都在数据前面加上特定的头部信息(Header),这些头部信息用来描述数据包的相关信息。

        封装的目的是为了确保数据能够在网络中按照正确的方式进行传输,并且每一层协议能够正确处理和解析数据。

封装过程

        封装通常在数据发送方的每一层协议中进行。举个例子,假设从应用层到物理层的封装过程:

  • 应用层应用层的数据(例如HTTP请求、FTP数据等)会被交给传输层。

  • 传输层(如TCP/UDP):传输层将应用层的数据封装成一个“段”(Segment),并添加传输层头部,包含源端口、目标端口、序列号、校验和等信息。

  • 网络(如IP):网络层将传输层的数据封装成“包”(Packet),并为每个数据包添加IP头部,包含源IP地址、目标IP地址等信息。

  • 数据链路层(如Ethernet):数据链路层将网络层的数据封装成“帧”(Frame),并添加数据链路层的头部和尾部,包含MAC地址等信息。

  • 物理层物理层将数据转换为电信号或光信号,通过物理媒介传输。

——封装是一个向下传递数据的过程,每一层都在上一层的数据上添加了必要的协议头部信息。

        (2)分用(Demultiplexing)

        分用是指在接收方的过程中,数据从物理层到应用层的传输过程中,每一层协议根据头部信息来正确地将数据传递到对应的上层协议。

        简而言之,分用是将接收到的数据根据其协议头中的信息分发给合适的处理单元或应用。

分用过程

  • 物理层:物理层将接收到的电信号或光信号转换为数据帧,并将帧传递到数据链路层。

  • 数据链路层:数据链路层从帧中提取出网络层数据包,并根据数据链路协议进行错误检查和数据纠错。

  • 网络网络层从包中提取出传输层数据段,并根据IP地址将数据传递给正确的主机。

  • 传输层:传输层根据端口号将数据分发到正确的应用进程。例如,如果是HTTP请求,它会将数据交给Web服务器;如果是FTP请求,则交给FTP服务器。

  • 应用层:应用层最终处理接收到的数据,完成实际的业务逻辑。

        这里我们使用一个例子来帮助你进一步理解:假设你正在通过浏览器访问一个网站,浏览器(应用层)发出一个HTTP请求,该请求通过TCP(传输层)发送,通过IP协议(网络层)经过以太网(数据链路层),最终通过物理层发送出去。在接收方,物理层首先接收到信号,并通过数据链路层解开帧,再通过网络层解包,传输层根据端口号将数据交给HTTP应用层进行处理。


以上就是本篇文章的全部内容了~~~


http://www.ppmy.cn/ops/136504.html

相关文章

【Java 解释器模式】实现高扩展性的医学专家诊断规则引擎

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

Python--类

Python 类练习 最近由于工作需要用到Python写脚本,因此,因此,快速学习一下Python. 如果你学过多种语言, 学习Python就很快了。 推荐菜鸟教程Python 3的教程。Link: https://www.runoob.com/python3/python3-tutorial.html 作为学习&#xf…

周末总结(2024/11/24)

工作 人际关系核心实践: 要学会随时回应别人的善意,执行时间控制在5分钟以内 坚持每天早会打招呼 遇到接不住的话题时拉低自己,抬高别人(无阴阳气息) 朋友圈点赞控制在5min以内,职场社交不要放在5min以外 职场的人际关系在面对利…

前端HTML

声明:以下内容来自泷羽sec的学习笔记,仅作学习,如有按照知识进行破环网络安全,后果自负!! 泷羽sec:https://space.bilibili.com/350329294/channel/collectiondetail?sid4031268&spm_id_f…

Android \android-sdk\platform-tools\adb.exe start-server‘ failed

发现通知栏里不停发出报错\android-sdk\platform-tools\adb.exe start-server failed -- run manually if necessary 也无法找到链接上的实体设备 最后是端口号被占用。 5037为adb.exe的默认端口号, 查看该宽口号的使用情况,如下操作: 打开命…

038_High_Level_Skip_in_Matlab中的高端跳过循环

循环控制 Matlab的循环控制语句有两个,分别是for和while。for循环是一种计数循环,while循环是一种条件循环。在循环中,有时候我们需要跳过一些循环,这时候就需要用到continue语句;当我们需要提前结束循环,…

【Unity How】Unity中如何实现物体的匀速往返移动

直接上代码 using UnityEngine;public class CubeBouncePingPong : MonoBehaviour {[Header("移动参数")][Tooltip("移动速度")]public float moveSpeed 2f; // 控制移动的速度[Tooltip("最大移动距离")]public float maxDistance 5f; // 最大…

DataGrip 连接 Redis、TongRDS

连接 Redis 或 TongRDS 有些旧版本 没有 redis 驱动用不了 1)选择驱动 2)添加连接信息 3)测试连接 4)保存连接 5)使用案例