JavaEE-网络初识

文章目录

  • 一、网络背景
    • 1.1 起源
    • 1.2 国内网络的发展
  • 二、关键概念
    • 2.1 网络
    • 2.2 设备
    • 2.3 ip地址与端口号
  • 三、协议
    • 3.1 协议分层
    • 3.2 OSI七层模型
    • 3.3 TCP/IP五层模型
    • 3.4 数据传输过程的简单叙述


一、网络背景

1.1 起源

在国外大概时上世纪70年代左右,网络就出现了,最初是军用,后面开始民用。那时世界最大的格局就是美苏争霸(冷战)并且人类已经解锁了核武器这种大杀器,一旦核战争打起来就又可能是灭国之战,甚至是灭世之战。
假如美国要打苏联,美国肯定希望它核弹投过去之后,能够直接把对方打得瘫痪掉,无法还手,一旦苏联有还手之力那么就会反过来丢一波核弹,两败俱伤~~
当时的科学家就在研究,希望能够有这样的一种通信网络,即使遭受核打击也能正常工作,从而完成反击,在这个背景下,互联网就诞生了,一个不怕核打击的系统。
为什么不怕核打击,主要就体现在网络冗余的特性上。你打掉一部分网络,我还要通路进行通信。
在这里插入图片描述

1.2 国内网络的发展

国内网络的发展可以从网吧或者说游戏的兴衰史中窥得一二。上个世纪刚建国之后一穷二白,到了90年代电脑都是稀罕物更别提网络。
到了90年代末生活中逐渐出现了CS、极品飞车、大航海时代、三国群英传等单机游戏。
到了21世纪初网吧开始兴起,出现了星际争霸、红色警戒、魔兽争霸、流星蝴蝶剑等游戏,这些游戏能够支持局域网的对战。
随着时间的推移,一个神奇的游戏登场了,拉开了新时代的序幕,那就是传奇。这个游戏能够支持广域网对战,有很多的公司、网吧等越来越多的设备都连在一起构成一个非常大规模的网络,甚至大到城市与城市之间,国家与国家之间。魔兽世界、完美世界、天龙八部等游戏纷纷兴起,它们的共同特点都是广域网对战,2000~2010 年左右也是网页最辉煌的十年。
时间进一步推移来到2007年,乔布斯发布了初代iPhone,标志着移动互联网的时代开始了。直到几年后的2012年iPhone4登场,安卓登场(三星、小米…),移动互联网真的开始蓬勃发展了。游戏的发展也开始更换路线,朝着手游的方向发展了。

二、关键概念

2.1 网络

网络分为局域网和广域网,两者没有绝对的界限,范围小的就是局域网,范围大的就是广域网。全世界最大的广域网就叫做The Internet也就是万维网。

2.2 设备

(1)主机
就是上网的设备,可以是手机也可以是电脑,现在还有一些其它设备类型也可以上网。
(2)路由器与交换机
路由器与交换机都是用来组建网络的重要设备,路由器工作在网络层,交换机工作在数据链路层。
路由器上有不同的接口,分为wan口和lan口,lan口连接本局域网的主机或设备,wan口用于连接相邻局域网的lan口,如果说路由器lan口连接了相邻路由器lan口并且将路由器设为桥接模式,那么这两个相邻的局域网就构成了一个局域网。
交换机的作用比路由器更纯粹,它就是为了提供更多的口供主机连接。

2.3 ip地址与端口号

ip地址是用来表示网络中的一个设备的位置,可以通过ip地址找到设备从而进行进一步的通信。对于ip其实是32位的整数也就是4个字节的数字(ipv4),但是往往是通过点分十进制来表示的,就是每8个字节使用.符号分割,然后每一部分的数字都使用十进制表示。就类似下图这种。
在这里插入图片描述
ip地址用来表示网络中的设备,端口号则是用来标识一个设备上的程序,每个设备上的程序启动时都会关联上一个不重复的端口号,也可以叫做绑定。
有些程序是有固定的端口号的,主要是上古时期一些大佬为了避免发生端口的冲突,就给一些知名的程序分配了不同的端口号。例如http服务器对应80、ssh服务器对应22等等这些知名端口号一共分配了1024个。随着时间的发展,这些知名的端口号不再是约束,反而更多的是建议,比如说你要搞一个http服务器你也可以不绑定80.

三、协议

听起来很抽象,其实也是一个比较简单的概念。协议就是一种约定,是通信双方对于通信规则的约定,一定是通信双方都认可的。听起来协议和标准很相似,其实肯定还是不一样的,稍微想一下就知道标准认可面是很广的,往往听到的都是一些国家标准等等,协议的认可面则是可大可小。

3.1 协议分层

网络通信是一个非常复杂的事情,如果你只使用一个协议来约定所有细节,那么这个协议就会变得非常庞大非常复杂,所以就要对协议进行拆分,把一个功能复杂的协议拆分成多个功能更单一的协议了。
但是拆分出来的协议太多了,因此就要对这些协议进行分类甚至是分层。 协议分层就是将多种协议按照功能分为不同的层级,每个层级都有对应的主线任务,上层协议会调用下层协议的功能,下层协议会给上层协议提供服务。
分层的好处主要有两点,第一点就是达到一种封装的效果,某一层的协议不需要去了解其它层的细节。第二点就是任意层的协议都是可以灵活替换的,达到解耦合的效果。

3.2 OSI七层模型

这个模型只存在于教科书当中,实际上现实世界中是不存在的,原因之一应该就是层数多,搞得有点复杂了。

3.3 TCP/IP五层模型

可以认为TCP/IP是OSI七层模型的简化版本,是现实世界采用的网络分层模型,目前咱们接触到的网络大部分都是使用五层模型的(电脑上网)。当然也有不是的,4G/5G就是另一套专门的模型协议(手机流量上网)。
关于五层协议究竟是哪五层?
(1)物理层
硬件上的相关约定。例如网线、网口…
(2)数据链路层
关注的是通信过程中两个相邻节点之间的通信。
(3)网络层
关注的通信过程中对于通信路径的规划,规划出的路径就决定了要经过哪些节点,也就是“点到点的传输”。
(4)传输层
关注的是通信双方的起点和终点,也就是“端到端的传输”。
(5)应用层
和具体的应用程序有关,传输的数据是干啥的,有啥意义…
这五层要牢牢记住。有人会把五层叫成四层,也可以,没算物理层就是四层,算了就是五层。另外OSI七层模型比五层多了 表示层和会话层,实际上五层就是将这多出来的两层一起合并到了应用层。

3.4 数据传输过程的简单叙述

假如A通过QQ发送hello world给B,应用层就会将hello world组织成应用层数据包。
然后通过系统调用api将数据交给传输层,传输层对数据进行进一步封装构成传输层数据包,传输层有两个协议分别位tcp和udp,这里假设使用的实际udp那么封装的传输层数据包就是udp数据包。之后再将udp数据包交给网络层(通过系统内核调用api)。
在这里插入图片描述

网络层典型的协议就是IP协议,会将udp数据包封装成ip数据包后交给数据链路层。

在这里插入图片描述
数据链路层典型的协议就是以太网协议,电脑通过有线网传输数据走的就是以太网协议。以太网也有自己的数据包格式,将ip数据包进一步封装成以太网数据帧。上述数据已经进入网卡驱动中了,下一步就是真正发送出去了。
在这里插入图片描述
数据包到达物理层之后就通过硬件设备将上述的二进制数据转化为光信号/电信号/电磁波进行发射。
上述层层包装数据,不停添加包头的过程就叫做封装。
上述数据发射出去并非直接到达B,而是先到和A连接的路由器/交换机,数据经过路由器/交换机一系列转发之后,最终到达B。当数据到达B之后要做的事就是封装的逆过程分用。
B的物理层先将电或者光信号转为二进制数据传给数据链路层,链路层再按照以太网协议对以太网数据帧进行拆分,将解析出来的载荷部分也就是ip数据包交给网络层。网络层拿到之后进一步拆分出载荷也就是udp数据包交给传输层。传输层收到后继续拆分出载荷,将载荷也就是应用层数据包交给应用层。QQ程序拿到了应用层数据包就按照自己的协议格式来进行解析,拿到结构化数据后显示到界面上。这样的将数据一层层拆分,封装的逆过程就叫做分用。
实际上A和B之间的路由器和交换机上也进行了封装和分用,只不过路由器封装分用到网络层就知道下一步如何转发数据(工作在网络层),交换机封装分用到数据链路层就知道下一步如何转发数据(工作在数据链路层)。

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

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

相关文章

U-Mail邮件系统取得多项适配认证,全面支持国产化信创环境

随着信息技术的发展,信息化建设越来越深入到社会各个领域,成为驱动经济社会发展的重要力量。在此背景下,我国正加快构建国家信息安全保障体系,实现自主可控,形成安全可靠的信息技术体系。这正是我们所说的“信创”&…

ssl证书价格一年多少钱?怎么申请?

随着各大平台下架了一年期免费证书,免费证书的有效期都为90天。更多企业选择付费证书。费用是众多用户关心的话题,一年期SSL证书价格在几十到几千元不等。 一年期SSL证书价格查看https://www.joyssl.com/certificate/select/0-1000.html?nid16 下面是…

如何官方查询论文分区,中科院及JCR

中科院分区 有一个小程序:中科院文献情报中心分区表 点2023升级版,输入期刊名 大类1区 JCR分区 进入官方网站 Journal Citation Reports 输入要查询的期刊名,点开 拼命往下拉 这就是根据影响因子的排名,在computer science&am…

农业场景下的slam论文汇总

文章目录 概述2020Ground-Level Mapping and Navigating for Agriculture Based on IoT and Computer VisionCanopy Density Estimation in Perennial Horticulture Crops Using 3D Spinning Lidar SLAM 2021Mobile 3D scan LiDAR: a literature reviewSLAM in the Field: An E…

flutter webview加载本地文件出现跨域解决方案

一直报错 [INFO:CONSOLE(17)] "Access to image at file:///android_asset/flutter_assets/assets/jump/box_bottom.png from origin null has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome…

带你玩转OpenHarmony AI:打造智能语音子系统

简介 AI时代,智者当先,判断一个终端设备是否智能,语音能力是必不可缺的。智能家居、智慧厨房、智能汽车等等,一切衣食住行都在往智能方向发展,那我们该如何在OpenAtom OpenHarmony(简称“OpenHarmony”&am…

未来十年,IT行业的无限可能!

未来十年,IT行业的无限可能! 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 博客首页 怒放吧德德 To记录领地 🌝分享学…

多联机分户计费控制系统

中央空调多联机分户计费控制系统,针对国内常见几种品牌的多联机空调系统实行,远程控制与计费管理。系统采用MQTT网络协议,以订阅/发布模式实行设备感知,实现对室外机、室内机的状态监测、实时故障报警、累计分摊费用的实时数据传导…

AI - 各类AI针对Excel分析对比

一个水果销量表,Excel包含多个年份sheet,需要提取某个品种的水果每年的销量,看看几个AI的分析结果吧 1、文心一言3.5(不支持Excel) 不支持上传Excel文件 2、 通义千问2.5(完成★) 顺利完成…

C++-函数

函数(Function):是一个提前封装好的、可重复使用的、完成特定功能的独立代码单元。 特点:提前封装、可重复使用的、完成特定功能 将针对特定功能的、有重复使用需求的代码,提前封装到函数内, 在需要的时候…

游戏陪玩/在线租号/任务系统网站源码

源码介绍 游戏陪玩系统/在线租号系统/小姐姐陪玩任务系统/网游主播任务威客平台源码/绝地吃鸡LOL在线下单/带手机端/声优线上游戏任务系统网站源码 界面美观,功能齐全,已对接支付,安装教程放源码压缩包里了! 界面截图 源码下载 https://download.csdn.net/download/huayula…

【计算机网络原理】浅谈应用层协议的自定义和传输层UDP协议的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

如何在cPanel面板中开启双因素身份验证

本周有一个客户,购买Hostease的主机, 客户购买的是Linux虚拟主机,带cPanel面板的。询问我们的在线客服,如何加强他的cPanel的安全性。cPanel的双因素身份验证功能可以帮助帮客户加固安全性。 双因素身份验证(2FA)是一种增强安全性…

【虚拟机软件】 VMware Workstation Pro 17 新建 Linux 虚拟机教程(CentOS 7 版本)

文章目录 下载安装 VMware Workstation Pro 17 软件下载 Linux 的 ISO 映像文件Linux版本选择 新建虚拟机准备配置新建安装 后续设置文章导航 我是一名立志把细节说清楚的博主,欢迎【关注】🎉 ~ 原创不易, 如果有帮助 ,记得【点赞…

slam14讲(第8讲、前端里程计)LK光流、直接法

直接法的引出 因为第7讲大部分都是讲特征点法,通过提取orb特征点和点的描述子,来构建两帧图像之间的特征点对应关系。这种方法会有缺点: 关键点和描述子提取计算耗时,如果相机的频率高,则slam算法大部分耗时被占。特…

【MySQL精通之路】InnoDB(10)-行格式

目录 1.表数据结构 1.1 聚集索引数据结构 1.2 辅助索引数据结构 2.行格式 2.1 REDUNDANT行格式 2.2 REDUNDANT存储特性 2.3 COMPACT行格式 2.4 COMPACT存储特性 2.5 DYNAMIC行格式 2.6 DYNAMIC存储特性 2.7 COMPRESSED行格式 2.8 COMPRESSED存储特性 3.定义表格的…

数组-区间合并

一、题目描述 二、题目思路 这里提供满足基本要求的解题思路: 1.先对列表内按照start大小升序排序,这里创建Comparator接口的实现类,重写compare方法。 2.遍历intervals,设置laststart、lastend两个变量与当前区间相比较&#…

Ansible实战YAML语言完成apache的部署,配置,启动全过程

🏡作者主页:点击! 🏝️Ansible专栏:点击! ⏰️创作时间:2024年5月24日15点59分 目录 💯趣站推荐💯 🎊前言 ✨️YAML语言回顾 🎆1.编写YAML文…

k近邻和kd树

K近邻 选取k值的时候可以采用交叉验证的方法 一般采用欧氏距离 kd树 采用树这个特殊的数据结构来实现k近邻算法 先假设是二维的情况 下面讲解kd树的完整构造过程 找这个中位数是按照每棵子树来创建的 前提是已经有了一棵kd树,然后来一个实例点

Python UDP编程简单实例

TCP是建立可靠的连接,并且通信双方都可以以流的形式发送数据。 相对于TCP,UDP则是面向无连接的协议,不需要建立连接,只需要知道对方IP地址和端口号,就可以直接发送数据包。但是只管发送不保证到达。 虽然UDP传输数据…