【Java网络编程】计算机网络基础概念

就目前而言,多数网络编程的系列的文章都在围绕着计算机网络体系进行阐述,但其中太多理论概念,对于大部分开发者而言,用途甚微。因此,在本系列中则会以实际开发者的工作为核心,从Java程序员的角度出发,详细解读Java的网络编程核心内容。

一、计算机网络的“前世今生”与基础概念

   先来看看维基百科对于 计算机网络 这个名词的解释:

计算机网络是指将位于不同地理位置,但具有独立功能的多台设备,通过通信设备和线路连接起来,在网络操作系统,网络管理软件、网络通信协议的协调管理下,实现资源共享和信息传递的计算机系统。

简单来说,计算机网络就是用于满足不同机器之间通信、共享的一种系统。

其实一开始计算机网络是用于军事化目的的,因美国军方需要一种多节点的通信技术,确保在其一部分节点被摧毁后,也能够确保通信依旧正常,因此组建了一个部门ARPA并在1966年完成了ARPANET(阿帕网)项目,该项目也是最早的计算机网络之一。
当然,后续随着科技不断进步,各种网络相关的技术百家争鸣,出现了各式各样的网络技术,但同时也带来了很大的局限性,例如:不同的计算机网络之间并不能相互通信、不同操作系统之间无法通信、覆盖范围及其有限等。因此,ARPA需要一种技术将不同的计算机局域网互联,最终ARPA组织创建了一个新的项目被称为internetwork因特网,也被称为“互联网”。

   在internetwork项目的研发过程中,1974年,Robert E. Kahn以及Vinton G. Cerf两位教授正式提出了新的传输协议:TCP/IP协议,用于满足不同计算机网络之间的互联通信,ARPA1982年接受TCP/IP选定为Internet主要的计算机通信系统,作为因特网通信的“基石”。

1.1、计算机网络的组成

从组成上而言,计算机网络主要由主机、协议、传输介质以及软件四部分组成。

  • 主机:可以是手机、电脑、服务器、电子手表等任意计算机硬件。
  • 协议:各类定义归法的网络通信协议,如TCP/IP、IPX/SPX、AppleTalk等。
  • 传输介质:传输数据的通道,可以是实体铜线、电缆、光纤,也可以是无形的电磁波空间介质。
  • 软件:涵盖所有联网的应用,如QQ、微信、支付宝、淘宝、京东等各类软件。

1.2、计算机网络的功能组成

计算机网络体系主要提供的两个核心功能就在于:

  • 资源共享:资源子网实现。
  • 数据通信:通信子网实现。

资源子网以及通信子网也对应着OSI中的上三层和下三层。

   不过如果学习过计算机网络课程的小伙伴应该都知道,其实计算机网络是一个复杂而庞大的系统,由软件、驱动、硬件、线路等多部门共同组成,但对于这些理论性内容不再阐述,有兴趣的可以自行了解。

1.3、网络分层与OSI七层模型的由来

   计算机网络是个非常复杂的系统,由于最初各个计算机网络体系结构不同,导致双方网络之间无法互通,因此,20世纪90年代,ISO国际标准化推出了OSI模型打算制定计算机网络体系标准。

简单来说就类似于国内的普通话,因为不同省份的方言不同,导致不同地方的人交流起来并不方便,因此定义了“普通话”这一标准,所有人都遵循该标准进行交流沟通。

   但由ISO组织制定的OSI网络七层模型结构并没有得到广泛应用,实际中应用最广泛的是TCP/IP体系结构。换句话说,OSI七层模型只是理论上官方制定的国际标准,而TCP/IP体系结构才是事实上的国际标准。

PS:国际标准化组织提出的OSI模型未得到广泛应用的原因:
①制定时太过理想化,未考虑实际的应用场景。
②拆分过于精细化,实现起来过于复杂,运行效率并不高。
OSI体系的制定周期过长,导致按其标准生产的设备无法及时投入市场抢占份额。
OSI体系因为分层过多,设计也不合理,有些相同的功能在多个层次重复出现。

   但因为TCP/IP体系中的最后一层没有制定规范的标准,所以对于学习计算机网络完善体系时会缺失一部分,所以又提出了一种折中方案,也就是综合OSI以及TCP/IP两个体系的优缺点,提出了一种五层结构的原理体系,因此在接触计算机网络体系时,通常都会存在三种分层结构:

  • 法定标准体系:OSI七层结构。
  • 实际应用体系:TCP/IP四层结构。
  • 原理教学体系:五层结构。

二、OSI七层网络模型与TCP/IP协议簇

   计算机网络体系采用的是分层结构,每个层次之间互不干扰,上层不需要关心下层的具体实现,下层只需要为上层提供服务即可。

ISO组织定义的国际标准OSI模型中,是七层网络模型。
在实际应用最广泛的TCP/IP模型中,是四层网络模型。
当然,在计算机网络教学中,也提出了五层网络模型。

但无论多少层网络模型,其实本质上都是在叙述相同的内容,只不过拆分的精细度不同而已,三种网络模型对应如下:

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

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

相关文章

测试自动化流程设计思路

a) 背景介绍 基于当前互联网敏捷开发的现状,手工人力测试已不足以满足当前快速的版本迭代;以下将介绍一种可实现的自动化设计与使用。 b) 当前版本迭代流程 研发同学从代码库master分支拉出新代码进行研发工作得开发开发完成之后提交到代码库测试同学介入…

ES入门十一:正排索引和倒排索引

索引本质上就是一种加快检索数据的存储结构,就像书本的目录一下。 为了更好的理解正排索引和倒排索引,我们借由一个 **唐诗宋词比赛,**这个比赛一共有两个项目: 给定诗词名称,背诵整首给诗词中几个词语,让…

构建第一个ArkTS用的资源分类与访问

应用开发过程中,经常需要用到颜色、字体、间距、图片等资源,在不同的设备或配置中,这些资源的值可能不同。 应用资源:借助资源文件能力,开发者在应用中自定义资源,自行管理这些资源在不同的设备或配置中的表…

男生穿什么裤子显腿长?男生显腿长裤子分享

现在市面上出现很多劣质而且不耐洗不耐穿的裤子,不但穿着体验感差,而且还可能会对皮肤有影响。为此作为一名穿搭博主,我专门做了这篇关于男生裤子的测评,希望大家能够通过一下的科普知识,对选择裤子有更详细的了解。 什…

CDN加速原理那些事

名词解释 CNAME记录(CNAME record) CNAME即别名( Canonical Name );可以用来把一个域名解析到另一个域名,当 DNS 系统在查询 CNAME 左面的名称的时候,都会转向 CNAME 右面的名称再进行查询,一直追踪到最后…

创建型模式--4.抽象工厂模式【弗兰奇一家】

1. 奔向大海 在海贼世界中,位于水之都的弗兰奇一家是由铁人弗兰奇所领导的以拆船为职业的家族,当然了他们的逆向工程做的也很好,会拆船必然会造船。船是海贼们出海所必备的海上交通工具,它由很多的零件组成,从宏观上看…

算法:完全背包问题dp

文章目录 一、完全背包问题的特征二、定义状态三、状态转移四、降维优化五、参考例题5.1、Acwing:3.完全背包问题5.2、Acwing:900. 整数划分 一、完全背包问题的特征 完全背包问题是动态规划中的一种经典问题,它的主要特征可以总结如下&…

[HackMyVM]靶场Flossy

难度:Medium kali:192.168.56.104 靶机:192.168.56.142 端口扫描 ┌──(root㉿kali2)-[~/Desktop] └─# nmap 192.168.56.142 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-01 21:01 CST Nmap scan report for 192.168.56.142 Host is up (0.00018s latency).…

聊聊Linux内核中内存模型

介绍 在Linux中二进制的程序从磁盘加载到内存,运行起来后用户态是使用pid来唯一标识进程,对于内核都是以task_struct表示。二进制程序中的数据段、代码段、堆都能提现在task_struct中。每一个进程都有自己的虚拟地址空间,虚拟地址空间包含几…

stack和queue的使用

前言 前面我们对string、vector、list做了介绍并对底层进行了实现!本期我们继续来介绍STL容器,stack和queue! 本期内容介绍 stack 常用接口的介绍 queue 常用接口的介绍 什么是stack? 这里的栈和我们C语言实现的数据结构的那个栈功能是一样…

leetcode代码记录(最长连续递增序列

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 给定一个未经排序的整数数组&#xff0c;找到最长且 连续递增的子序列&#xff0c;并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r&#xff08;l < r&#xff09;确定…

如何查看当前python环境的安装路径

起因&#xff1a;在查看python安装路径时&#xff0c;由于环境变量未添加&#xff0c;导致直接用python无法查看&#xff0c;但是pip又可用。因此找到另外一种代替方法。 利用pip show 库 pip show numpy

代码随想录第34天| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果

1005.K次取反后最大化的数组和 1005. K 次取反后最大化的数组和 - 力扣&#xff08;LeetCode&#xff09; 代码随想录 (programmercarl.com) 贪心算法&#xff0c;这不就是常识&#xff1f;还能叫贪心&#xff1f;LeetCode&#xff1a;1005.K次取反后最大化的数组和_哔哩哔…

德兰梅尔:耐高温热销的膜元件亮相2024上海国际生物发酵展

德兰梅尔&#xff1a;耐高温热销的膜元件盛装亮相2024上海国际生物发酵展&#xff0c;8月7-9号上海新国际博览中心与您不见不散&#xff01; 据了解&#xff0c;从成立至今&#xff0c;德兰梅尔一直专注膜技术、膜产品的开发生产。在中国市场上&#xff0c;德兰梅尔刚步入中国…

共享门店模式:一种资源优化的创新合伙人机制

共享门店模式&#xff0c;亦被称为“共享股东”模式&#xff0c;是一种创新的合伙人机制。它运用新颖的思维、方式及系统&#xff0c;吸引并集结拥有资源和能力的人才&#xff0c;共同合作&#xff0c;并使他们转变为门店的分红股东。 这一模式的核心在于门店资源的共享&#x…

(css)el-tag标签,el-select多选框,el-cascader级联选框自定义样式

(css)el-tag标签&#xff0c;el-select多选框&#xff0c;el-cascader级联选框自定义样式 css: :root {--button-color: #065de0; }// 标签 .tagNew {margin-right: 20px;border-radius: 20px; }.el-tag.el-tag--info {background-color: var(--button-color);border-color: v…

字符串匹配算法之BF与KMP算法

目录 BF算法(暴力匹配算法) KMP算法 核心思想&#xff1a; next数组 next数组的优化 BF算法(暴力匹配算法) #include <assert.h> int BF(const char* str, const char* sub) {assert(str ! NULL && sub ! NULL);if (str NULL || sub NULL){return -1;}int…

MySQL学习笔记(二)

1、把查询结果中去除重复记录 2、连接查询 从一张表中单独查询&#xff0c;称为单表查询。emp表和dept表联合起来查询数据&#xff0c;从emp表中取员工名字&#xff0c;从dept表中取部门名字&#xff0c;这种跨表查询&#xff0c;多张表联合起来查询数据&#xff0c;被称为连…

深入理解计算机系统 家庭作业 2.84

这题没有这个要求所以可以用 ? > : < 这种运算 以下代码用的是位级运算.因为我误解了题意 呜呜呜 想看用判断的代码请自行百度 ((((ux<<9>>9)<<((ux<<1>>24)-127)) - ((uy<<9>>9)<<((uy<<1>>24)-127)))>…

【攻防世界】ics-05(PHP伪协议+代码审计+Linux指令)

首先根据题目提示&#xff0c;进入云平台设备维护中心页面&#xff1a; 页面无异常&#xff0c;检查源代码&#xff1a; 发现注入点 ?page&#xff0c;大致有如下思路&#xff1a;1、SSTI模板引擎漏洞&#xff1b;2、XXS&#xff1b;3、PHP伪协议。 首先尝试SSTI漏洞&#xf…