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

news2025/1/31 7:59:11

就目前而言,多数网络编程的系列的文章都在围绕着计算机网络体系进行阐述,但其中太多理论概念,对于大部分开发者而言,用途甚微。因此,在本系列中则会以实际开发者的工作为核心,从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.coloradmin.cn/o/1575613.html

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

相关文章

[lesson10]C++中的新成员

C中的新成员 动态内存分配 C中的动态内存分配 C中通过new关键字进行动态内存申请C中的动态内存申请是基于类型进行的delete关键字用于内存释放 new关键字与malloc函数的区别 new关键字是C的一部分malloc是由C库提供的函数new以具体类型位单位进行内存分配malloc以字节位单位…

k8s1(1),Linux运维基础开发与实践

#设置主机名 hostnamectl hostnameXXX #配置免密(包括操作机) ssh-keygen ssh-copy-id master*/slave* #传输hosts cat > /etc/hosts <<EOF 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain loca…

线程安全性问题的原因

1.抢占式执行随机调度 这里的意思就是&#xff0c;当两个线程同时启动的时候&#xff0c;两个线程会同时进行&#xff0c;并且是抢占式执行的。 而且是随机调度资源的。 如代码&#xff1a; public class Deome4 {public static void main(String[] args) {Thread t1 new …

Kubesphere在创建服务的添加容器步骤搜索镜像步骤找不到镜像

Kubesphere在创建服务的添加容器步骤搜索镜像步骤找不到镜像 {"status": "failed","message": "invalid character p after top-level value" }添加了标签也没用&#xff08;如&#xff1a;mysql:5.7&#xff09; 可以看到 dockerhu…

AI颠覆职场:这些行业将被重塑,你准备好了吗?

人工智能&#xff08;AI&#xff09;已经成为我们生活中不可或缺的一部分。从智能手机到自动驾驶汽车&#xff0c;AI技术的应用无处不在。然而&#xff0c;这股技术浪潮也引发了一个问题&#xff1a;哪些行业将面临被AI替代的风险&#xff1f;本文将深入探讨这一问题&#xff0…

C++进阶(五) 哈希

1. unordered系列关联式容器 1.1 unordered_map 1.2 unordered_map的接口说明 2. 底层结构 2.1 哈希概念 2.2 哈希冲突 2.3 哈希函数 2.4 哈希冲突解决 2.4.1 闭散列 2.4.2 开散列 3. 模拟实现 3.1 unordered_set 3.2 unordered_map 4.哈希的应用 4.1 位图 4.1.…

阿里千问大模型 Qwen1.5 开源 32B 模型,将开源进行到底!!!

阿里开源的千问系列模型&#xff0c;一直受到业界好评&#xff0c;之前版本有0.5B、1.8B、7B、14B、72B&#xff0c;但一直缺少的30B级别开源模型&#xff0c;这也一直是一个遗憾。 怎么说呢&#xff1f;72B模型太大&#xff0c;很多人用不起来&#xff0c;无论是微调&#xf…

线程池小项目【Linux C/C++】(踩坑分享)

目录 前提知识&#xff1a; 一&#xff0c;线程池意义 二&#xff0c;实现流程 阶段一&#xff0c;搭建基本框架 1. 利用linux第三方库&#xff0c;将pthread_creat线程接口封装 2. 实现基本主类ThreadPool基本结构 阶段二&#xff0c;完善多线程安全 1. 日志信息打印…

Go数据结构的底层原理(图文详解)

空结构体的底层原理 基本类型的字节数 fmt.Println(unsafe.Sizeof(0)) // 8 fmt.Println(unsafe.Sizeof(uint(0))) // 8 a : 0 b : &a fmt.Println(unsafe.Sizeof(b)) // 8int大小跟随系统字长指针的大小也是系统字长 空结构体 a : struct { }{} b : struct {…

jdk目录结构

jdk目录详解 JDK(Java Development Kit&#xff0c;Java开发包&#xff0c;Java开发工具)是一个写Java的applet和应用程序的程序开发环境。它由一个处于操作系统层之上的运行环境还有开发者 编译&#xff0c;调试和运行用Java语言写的applet和应用程序所需的工具组成。 JDK(J…

京东云轻量云主机8核16G配置租用价格1198元1年、4688元三年

京东云轻量云主机8核16G服务器租用优惠价格1198元1年、4688元三年&#xff0c;配置为8C16G-270G SSD系统盘-5M带宽-500G月流量&#xff0c;华北-北京地域。京东云8核16G服务器活动页面 yunfuwuqiba.com/go/jd 活动链接打开如下图&#xff1a; 京东云8核16G服务器优惠价格 京东云…

C语言基础语法-教案19(预处理-宏定义)

最近给大家争取到一个 深夜福利 保证你在深夜手机刷到 嘎嘎香~ 那就是 官方授权 大流量卡 缺点&#xff1a;月租太便宜 185GB~ 100分钟通话时长~ 长期套餐~ 畅想自由的气息 流量自由的同时还拥有超长通话&#xff0c;而且免费领取。 名额有限&#xff0c;咱们废话不…

流程表单平台优势明显,助力企业流程化办公!

要想提升办公效率&#xff0c;实现流程化办公&#xff0c;可以了解低代码技术平台、流程表单平台的应用价值和优势特点。在科技越来越发达和先进的今天&#xff0c;采用专业的平台和软件可以为企业带来超前的发展态势&#xff0c;创造更多市场价值。流辰信息为广大用户提供的流…

闲鱼订阅监控/上新提醒

以前闲鱼推出过一款服务&#xff0c;叫做闲鱼助手&#xff0c;帮助用户快速显示最新发布的信息。当时我也开发过一款闲鱼助手的工具。 写一个闲鱼助手的助手工具_闲鱼助手源码-CSDN博客 但是时间并不是很长&#xff0c;该功能被取消了。 最近不知道闲鱼从哪个版本开始&#x…

数字三角形(线性dp)-java

线性DP是动态规划问题中的一类问题&#xff0c;指状态之间有线性关系的动态规划问题。 文章目录 前言 一、数字三角形问题 二、算法思路 三、使用步骤 1.代码如下&#xff08;示例&#xff09;&#xff1a; 2.读入数据 3.代码运行结果 总结 前言 线性DP是动态规划问题中的一类…

工业和信息化部教育与考试中心颁发的证书有哪些?含金量如何?怎么考取?​

近期有很多网友朋友们对工业和信息化部教育与考试中心颁发的证书是否是真的证书&#xff0c;是否国家认可&#xff0c;是否全国通用&#xff0c;含金量如何&#xff1f;如何查询真假&#xff0c;以及如何报考等等相关问题有疑问&#xff0c;所以今天给大家在这里一一解答。 添加…

2.AK/SK鉴权

目录 什么是AK/SK AK/SK使用机制 时序图 什么是AK/SK 在云服务中&#xff0c;AK&#xff08;Access Key ID&#xff09;和SK&#xff08;Secret Access Key&#xff09;是访问云服务API的关键凭证对&#xff0c;主要用于身份验证和授权。AK是用户访问云服务的身份标识&…

AJ65SBTB1-32D1 三菱cc-link远程高速输入模块。

AJ65SBTB1-32D1 三菱cc-link远程高速输入模块 AJ65SBTB1-32D1用户手册, AJ65SBTB1-32D1外部连接。 AJ65SBTB1-32D1参数说明&#xff1a;DC输入32点 DC24V 5mA&#xff1b;响应时间0.2ms&#xff1b;32点1公共端&#xff1b;1线式&#xff1b;正/负公共端共用&#xff1b;端子排…

[StartingPoint][Tier1]Responder

Important 由于靶机IP是动态的,所以这里需要手动解析 # echo "<靶机IP> unika.htb">>/etc/hosts //10.10.16.59/testshare到底是什么? SMB&#xff08;Server Message Block&#xff09;是一种用于在计算机之间共享文件、打印机和其他资源的网络协议&…

1995-2021年各省分品种能源产量和消费量数据

1995-2021年各省分品种能源产量和消费量数据 1、时间&#xff1a;1995-2021年 2、来源&#xff1a;能源统计年鉴、各省年鉴 3、指标&#xff1a;能源消费总量、煤炭消费量、焦炭消费量、原油消费量、汽油消费量、煤油消费量、柴油消费量、燃料油消费量、天然气消费量、电力消…