初识网络(JavaEE初阶系列9)

news2024/11/17 23:26:12

目录

前言:

1.网络的发展史

1.1独立模式

1.2网络互联

1.3局域网LAN

1.4广域网WAN

2.网络通信基础

2.1IP地址

2.2端口号

3.认识协议

3.1协议分层

3.2分层的作用

3.3TCP/IP五层(或四层)模型

3.4OSI七层模型

3.5网络设备所在分层

4.封装和分用

结束语:


前言:

1.网络的发展史

网络的主要发展大体可以分为这四个阶段单机阶段=>局域网阶段=>广域网阶段=>移动互联网阶段

1.1独立模式

独立模式就是计算机之间是相互独立的。

1.2网络互联

随着时代的发展,越来越需要计算机之间相互通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连。

网络互连:就是将多态计算机连接在一起,完成数据共享。

数据共享的本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信

根据网络互连的规模的不同,可以划分为局域网广域网。下面就来给大家介绍一下什么是局域网,什么是广域网。

1.3局域网LAN

局域网即Local Area Network,简称LAN。Local即标识了局域网是本地,局部组件的一种私有网络。局域网内的主机之间能方便的进行网络通信,又称为内网局域网和局域网之间在没有连接的情况下是无法进行通信。他就是把一些设备通过交换机/路由器连接起来。

1.4广域网WAN

广域网即Wide Area Network,简称为WAK,广域网就是把更多的局域网也相互连接起来,当规模足够大的时候就变成了广域网。更官方的解释就是通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都是属于其子网。

在上述谈到的交换机和路由器是组网过程中的重要设备。

2.网络通信基础

网络互连的目的是进行网络通信,也是网络数据传输,更具体一点是网络主机中的不同进程间,基于网络传输数据。那么我们在组建网络中如何判断到底是从哪台主机将数据传输到哪台主机呢?这就需要使用IP地址来标识。具体的我们往下看。

2.1IP地址

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

格式:
IP地址是一个32位的二进制数,通常被分隔为4个“8位二进制数”(也就是4个字节),但是通常是用“点分十进制”的方式来表示的,比如:192.168.0.136的形式。或者是你可以打开cmd输入ipconfig命令即可查看。

IP地址解决了网络通信时,定位网络主机的问题,但是还存在一个问题,传输到目的主机后,由哪个进程来接收这个数据呢?这就需要端口号来标识。

2.2端口号

上述的IP是定位大体的位置,但是就像是快递员送包裹一样虽然送到指定的地址也就是收货地址(IP地址)了,但是那么多的人,到底是送给哪一个人也就是收货人(端口号)的,这就需要继续定位了,所以这里的端口号就是用来定位是该主机上的哪一个程序(进程)的。

注意:两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号!!!

3.认识协议

通过上述的介绍相信大家大体对IP和端口号都有了一定的了解,但是此时有了IP地址和端口号,我们是可以定位到网络中唯一的一个进程,但还存在一个问题,网络通信是基于二进制0/1数据来传输,如何告诉对方发送的数据是什么样的呢?

网络通信传输的数据类型可能有多种:图片,视频,文本等。同一个类型的数据,格式可能也不同,如发送一个文本字符串“你好!”,这里我们又该如何标识发送的数据是文本类型,及文本的编码格式呢?基于网络数据传输,就需要使用协议来规定双方的数据格式。

3.1协议分层

对于网络协议来说,往往分成几个层次进行定义。那么在网络通信中约定的协议其实是非常复杂的,那么面对这种复杂的环境,就需要一个复杂的协议,但是协议太复杂也不好,所以就将协议进行了分层,这就相当于是约定了层级和层级之间的调用关系,要求上层协议调用下层协议,下层协议给上层提供支持,不能跨层调用。怎么对这个进行理解呢?我们可以通过在公司中的层级关系来进行理解。如下图所示:

如上所示就是一种层级结构。 

3.2分层的作用

那么分层之后又有什么作用呢?

如果协议分层之后就可以做到一下两点:

  • 层次之间,耦合度比较低,上层协议不必了解下层的细节,下层也不必了解上层的细节。
  • 方便对某一层的协议进行替换。

3.3TCP/IP五层(或四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。

TCP/IP通讯协议采用了5层的层级结构,分别是:物理层、数据链路层、网络层、传输层和应用层,每一层都有自己的任务和责任,通过不同层次之间的协调和合作,实现了计算机之间的数据传输。

具体内容如下所示:

  • 物理层:物理层是网络通信的最低层,主要负责将数字信号转换成物理信号,例如电信号、光信号等,然后通过物理介质(例如电缆、光纤等)进行传输。(网络通信的基础设施)
  • 数据链路层:数据链路层负责将物理层传输的数据进行分帧和差错检测,确保数据的可靠传输,同时也负责寻址和流量控制等功能。(主要关注的是两个相邻节点之间的传输)
  • 网络层:网络层主要负责数据的路由和转发,将数据包从源主机传输到目标主机,在路由选择方面,网络层采用了一些算法和协议,例如IP协议和路由选择协议等。(主要负责两个遥远节点之间,路径规划)
  • 传输层:传输层主要负责数据传输的可靠性和数据流量的控制。TCP协议是传输层协议的一种,它能够保证数据传输的可靠性,并且通过拥塞控制等机制,保证了网络流量的合理分配。(不考虑中间的路径,只关注起点和终点)
  • 应用层:引用层是网络通信的最高层,他负责实现应用程序之间的通信,常见的引用层协议包括HTTP、FTP、SMTP等,他们提供了数据交换的标准格式和规范,使得不同操作系统和应用程序之间能够进行数据的交换和共享。(关注传输过来的数据是要干啥的)

物理层针对于程序猿来说可能考虑的会比较少,所以很多时候也可以称之为TCP/IP四层模型。

3.4OSI七层模型

OSI参考模型与TCP/IP参考模型对比图如下所示:

3.5网络设备所在分层

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

4.封装和分用

那么在协议的背景下,数据如何通过网络来进行传输呢?我们可以采用封装分用。主要的过程如下所示:

  • 发送方发送数据,要把数据从上到下,依次交给对应的层次的协议,进行封装。
  • 接收方收到数据,要把数据从下到上,依次交给对应的层次的协议,进行解析。

封装:应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装

分用:数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的“上层协议字段”将数据交给对应的上层协议处理。

下面我们通过QQ发送一条短信为例,来讲解封装和分用的整个过程,比如现在A要发送给B一条短信:“网络基础知识”。

封装:

  • 应用层(QQ应用程序):拿到上述用户数据进行封装,封装成应用层数据包。

  • 传输层:拿到上述传来的数据之后,应用层要调用传输层提供的API,来处理这个数据,传输层有很多协议,最典型的就是UDP和TCP,此处我们以UDP为例。(注:这两个协议小编会在后续的博客中给大家慢慢交代的)

UDP会针对上述数据包再进行封装,首先他会把上述整个应用层数据包作为UDP数据包的数据部分(载荷)。然后再在前面加上UDP数据报头。

  • 由传输层到网络层:UDP数据报已经有了,接下来就要把这个数据报交给网络层的协议。网络层最常见的就是IP协议。在上述的基础上还需要再加上一个IP协议的报头,此时是让整个UDP作为IP的载荷。

注意:这里的源IP和目的IP就是在这次传输过程中,最初的起点和终点。 

  • 网络层交给数据链路层:最典型的协议叫做以太网。这里是将上述的整体再次作为载荷然后在首部和尾部分别加上以太网帧头和以太网帧尾。

注意:这里的mac也是用来描述地址的,他叫做物理地址,IP是用来进行网络层的路径规划的,而mac是用来描述数据链路层的,他是描述两个即将进行传输的相邻节点。拿运输快递来举例子,如果快递的地址是从郑州->西安,那么IP地址的源IP就是郑州,而目的IP就是西安,是一直不变的,但是从浙江到西安还需要经过很多其他站点,比如说是郑州-> 洛阳 ->三门峡 -> 西安。所以这里的mac地址就相当于是每到一个站点就会更新一下自己的源mac和目的mac。

  • 数据链路层到物理层:此时物理层就要将上述的0101的二进制数据转换成光信号/电信号/电磁波信号然后进行传输。

分用:
经过上述的过程操作系统就帮助咱们已经封装好了,然后接下来就是接收了,接收与上述过程更好相反。发送是从上到下依次封装,新增报头。接收是从下到上,依次分用,去掉报头。

  • 物理层:

网卡,接收到高低电平二进制数据,就会对这里的信号进行解析,还原成0101这样的二进制序列。

  • 从物理层到数据链路层:

此时就把上述的0101这种序列数据当做一个以太网数据帧(此处是以太网线,收到的数据,就是要交给以太网协议来处理了)。

此时将帧头和帧尾去掉,取出中间的载荷部分,再往上交给网络层。此时以太网数据帧头中会有一个消息类型,根据这个类型就知道了网络层是IP协议了。

  • 从数据链路层到网络层: 

此时就由网络层的IP协议进行解析数据报,也是去掉IP报头,同时还会做一些其他工作,最重要的还是取出载荷,然后交给上层的传输层协议。在IP数据报也有一个字段会标识当前传输层用的是哪一个协议。

  • 从网络层到传输层:

此处是由UDP来解析处理,还是去掉报头,取出载荷,把数据交给应用层。此时借助端口号来区分具体的应用程序。

  • 从传输层到应用层:

 接下来就由QQ这个程序,进行解析应用层数据报。

 总结一下:

  • 发送方就是在层层封装,就像是在包装快递。
  • 接收方就是在层层分用,就像是在拆快递。

注意:

  • 不同的协议层对数据包有不同的称谓,在传输层叫做“段”,在网络层叫做“数据报”,在链路层叫做“帧”
  • 首部信息中包含了一些类似于首部有多长,载荷有多长,上层协议是什么等信息。
  • 上述里面的信息都是简单给大家举个例子,不是真的只包含这些东西,也不一定包含上述的信息。

结束语:

这节中小编主要是与大家分享了网络方面的一些基础知识,后期小编还会继续出有关于网络方面的知识的,希望这节对大家了解网络有一定帮助,想要学习的同学记得关注小编和小编一起学习吧!如果文章中有任何错误也欢迎各位大佬及时为小编指点迷津(在此小编先谢过各位大佬啦!)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/837842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Delphi Professional Crack,IDE插件开发和扩展IDE

Delphi Professional Crack,IDE插件开发和扩展IDE 构建具有强大视觉设计功能的单源多平台本机应用程序。 Delphi帮助您使用Object Pascal为Windows、Mac、Mobile、IoT和Linux构建和更新数据丰富、超连接、可视化的应用程序。Delphi Professional适合个人开发人员和小型团队构建…

MGRE综合

实验 一、实验思路 1.先按照上图配置IP地址及环回 2.写缺省使公网可通 3.让R1、R4、R5每台路由器均成为中心站点形成全连网状结构拓扑 4.让R1成为中心站点R2R3为分支站点 5.分区域宣告ospf之后更改ospf在虚拟接口Tunnel工作方式为broadcast及让R1 当选DR 二、上虚拟机操作…

2023奇安信天眼设备--面试题

1.在天眼分析平台网络协议中sip、dip、sport、dport字段表示的含义是什么? sip 源IP、dip 目的IP、sport 源端口、dport 目的端口 2.在天眼分析平台DNS协议中dns type字段表示的含义是? dns type表示DNS请求类型 0代表DNS请求,1代表DNS响应 3.dns_typ…

题解 | #1006.Touhou Red Red Blue# 2023杭电暑期多校5

1006.Touhou Red Red Blue 贪心/DP 题目大意 你将依次收到 n n n 个物品,他们具有颜色红、绿或蓝,记为 R , G , B R,G,B R,G,B 你有一个大小为 2 2 2 的物品栏。每当你收到一个物品,你可以考虑将其放入物品栏或直接丢弃 物品栏是一个栈…

JavaScript |(四)正则表达式 | 尚硅谷JavaScript基础实战

学习来源:尚硅谷JavaScript基础&实战丨JS入门到精通全套完整版 文章目录 📚正则表达式📚正则表达式字面量方式📚字符串&正则表达式🐇split()🐇search()🐇match()🐇replace()…

机器学习基础知识(1)

什么是机器学习 机器学习是一种通过输入大量数据来构建一种模型(网络),这个训练好的模型将会被用来预测或执行某些操作,这个训练的过程和方法就是机器学习。 我们也可以理解为构建一个“函数”,使得这个函数面对我们…

python+django+mysql项目实践三(用户管理)

python项目实践 环境说明: Pycharm 开发环境 Django 前端 MySQL 数据库 Navicat 数据库管理 用户列表展示 urls view models html <!DOCTYPE html> <html

c++ 速度之巅-位图算法,上亿数据的快速操作

问题&#xff1a; 有很多不重复的整数&#xff0c;其中最大值不超过40亿&#xff0c;最小值是0&#xff0c;要求判断某个指定的整数&#xff0c;是否在这个集合中。 最快的算法&#xff1a; 使用位图算法 使用2个字节(一个字节八位)&#xff0c;表示16个数&#xff08;0-15&am…

梯形速度曲线轨迹规划(速度前馈+PID、SCL+ ST代码)

S形速度曲线轨迹规划算法和应用详细介绍,请查看下面文章博客,这里不再赘述: S速度曲线轨迹规划(普通变频位置闭环控制算法详细介绍+SCL代码)_RXXW_Dor的博客-CSDN博客位置控制用PD控制器,详细内容介绍请查看下面博客文章:PD控制器算法详细解读_RXXW_Dor的博客-CSDN博客鉴…

【CSS】倾斜按钮

效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"/><meta http-equiv"X-UA-Compatible" content"IEedge"/><meta name"viewport" content"widthdevice-…

[JAVAee]锁策略

目录 乐观锁与悲观锁 乐观锁 乐观锁的冲突检测 悲观锁 读锁与写锁 重量级锁与轻量级锁 重量级锁 轻量级锁 自旋锁 公平锁与非公平锁 可重入锁与不可重入锁 乐观锁与悲观锁 乐观锁 在乐观锁中,假设数据并不会发生冲突,在正式提交数据时会对数据进行冲突检测,如果发…

【2023 华数杯全国大学生数学建模竞赛】 A题 隔热材料的结构优化控制研究 问题分析、模型建立及参考文献

【2023 华数杯全国大学生数学建模竞赛】 A题 隔热材料的结构优化控制研究 问题分析、模型建立和参考文献 1 题目 A 题 隔热材料的结构优化控制研究 新型隔热材料 A 具有优良的隔热特性&#xff0c;在航天、军工、石化、建筑、交通等高科技领域中有着广泛的应用。 目前&#…

【逗老师的PMP学习笔记】4、项目整合管理

目录 一、制定项目章程1、制定项目章程的整体输入、输出和工具技术2、输入2.1、输入-商业文件2.2、输入-协议2.3、输入-事业环境因素组织过程资产 3、工具与技术3.1、专家判断3.2、数据收集3.3、人际关系与团队技能3.4、会议 4、输出4.1、输出-项目章程4.2、输出-假设日志 二、…

router-view路由出口

这边文章主要讲router-view搭建后台管理系统的一个基本模板 一.创建自己的路由规则 1.新建文件夹src/router/index.js npm i vue-router3.6.5 2.配置好文件 import Vue from "vue"; import VueRouter from "vue-router"; Vue.use(VueRouter);// 1.创建…

软件测试/测试开发:常见面试题与流程篇

本系列文章总结归纳了一些软件测试工程师常见的面试题&#xff0c;主要来源于个人面试遇到的、网络搜集&#xff08;完善&#xff09;、工作日常讨论等&#xff0c;分为以下十个部分&#xff0c;供大家参考。如有错误的地方&#xff0c;欢迎指正。有更多的面试题或面试中遇到的…

2.4G无线收发芯片XL2409开发板,上手简单,集成 M0+核MCU

XL2409开发板是一款基于 2.4G SoC芯片 XL2409的开发工具&#xff0c;为开发者提供了一个快速了解、测试XL2409芯片性能的工具。XL2409开发板可以通过连接JI_LINK&#xff0c;ST_LINK&#xff0c;DAP_LINK进行开发和调试&#xff0c;使用 Keil 开发环境。上手简单&#xff0c;烧…

【LeetCode】094. 分割回文串II

文章目录 1. 解题思路1.1 创建dp表1.2 状态转移方程1.3 提前求出所有子串是否是回文串 2. 整体代码 1. 解题思路 1.1 创建dp表 这道题我们使用动态规划的方法来解&#xff0c;首先创建一个大小为字符串长度的dp表。dp[i] 表示 s[0, i] 的字符串最小划分多少次可以全划分为回文…

Linux QQ v3.1.2 2023.5.30 版本安装和体验

新电脑首次登陆需要手机扫码。 功能的确比2.x&#xff0c;1.x的时候强了很多。 官方地址&#xff1a; https://im.qq.com/linuxqq/index.shtml 如果连QQ都非常好的支持Linux了&#xff0c;那么说明使用Linux的人群真得非常多了。 ubuntu linuxqq_3.1.2-13107_amd64.deb 12…

随机RSI震荡指标公式(StochRSI),RSI和KDJ二合一

随机RSI震荡指标(StochRSI)是由图莎尔钱德和斯坦利克罗发明的一种摆动指标&#xff0c;结合了相对强弱指标&#xff08;RSI&#xff09;和随机指标&#xff08;KDJ&#xff09;的原理&#xff0c;目的是提高灵敏度&#xff0c;解决RSI难以达到超买超卖区的问题&#xff0c;以便…