初识计算机网络 | 计算机网络的发展 | 协议初识

1.计算机网络的发展

"矛盾是普遍存在的,矛盾是事物联系的实质内容和事物发展的根本动力!"

计算机在诞生之初,在军事上用来计算导弹的弹道轨迹!在发展的过程中(商业的推动,国家政策推动),计算机的应用场景被发现!被应用于各种各样的场景当中!

现在,个人计算机、笔记本电脑、手机终端等便携设备持有的人群越来越多,甚至外观上一点也不像电脑的家用电器、汽车等设备中,一般都内置一个小型的芯片,使这些设备具有计算机的控制功能,不经意间,我们的生活和计算机紧密相连!在这些计算机设备,大多数都有联网功能

1.1.从独立模式都网络互连模式

独立模式:计算机之间相互独立。

现在有三个人,需要用在三台电脑处理业务,张三需要用这三台计算机,那么李四要等张三处理完他才能用;王五也需要,那么他要等待,张三和李四处理完业务!另外张三在处理不同的业务需要跑到不同的电脑之前!很麻烦,而且效率很低!

网络互联:多台计算机连接在一起, 完成数据共享。

在计算机不断地发展当中,人们不局限于单机模式,将一个个计算机连接在一起形成计算机网络,相连的多台计算机之间信息可以共享!同时,在相隔很远的计算机之间也可以即时传递信息。

局域网LAN:

计算机网络的发展从单机模式,到特定的几台计算机的相连发展成"小"规模的局域网(LAN Local Area Network) ,和"更大"规模的广域网(WAN Wide Area Network)

随着相连的计算机增多,通过交换机和路由器连接在一起,形成LAN。

广域网WAN :将远隔千里的计算机相连(将一个一个局域网相连,随着连接的数量增多,距离变长,会变复杂!

其中局域网和广域网是一对相对的概念;局域网可以是一个公司的网络,那么广域网是多个公司相连形成的网络,有其他的说法还会有城域网,概念只是在表述的时候能划分区域和连接网络的规模的大小。

在同一个公司,同一个学校、同一个实验室持有的计算机相连,形成了私有的网络,在不断的发展当中,将不同的私有网络连接成更大的私有网络,慢慢演化成互联网被公众使用等等,从计算机通信到信息通信不断发展。

2.网络协议初识
2.1.协议如同人和人对话

在计算机网络中,有人会经常提及"协议"一词,如:IP、TCP、HTTP等协议;在计算机中,简单来说,协议(在C语言层面上就是一个struct结构体)就是:计算机与计算机之间通过网络实现通信时,事先达成的一种"约定"!不同的厂家的设备、不同的操作系统,必须遵循相同的协议才能通信!

在我们生活当中,如两个人聊天,我们不知不觉就遵循了某种协议:**将聊天使用的语言当成协议,聊天本身就是通信,聊天的内容当成数据!**只有使用双方都能听得懂的语言,才能畅通无阻的交流!

关于为什么我说"最近可好"你能听懂的原因,汉字本身就是符号,而符号的意义是人赋予的,之所以"最近可好"是"最近可好"的意思!但如果,对一个刚出生的婴儿所这句话的时候他不能听懂,说明,需要学习!计算机通过特定的光电信号, 通过"频率" 和 "强弱" 来表示 0 和 1 这样的信息,这是人赋予特定的含义!计算机硬件设备也要有特定的最基本的通信程序来分析识别。

2.2.协议分层

我们通过电话的,进行聊天,在逻辑上认为是两个人在直接聊天,到实际上A说的话通过电话机,在通过一定的设备,在通过电话机,就信息传递到C。

将这样的场景,分为两层,两层之间没有太大的关系,A和C用汉语,B和C用英语聊天都可以通过电话机,也可以通过无线电。这让做分层的好处在于,如果一层改变协议其他层就需要改变,降低耦合;另外分层能将复杂的项目简单化。

在面向对象中,通过继承和多态的方式可以,达到分层的效果,注意分层不一定是上下的关系,还可能是左右的关系。

相关推荐
wjs20248 分钟前
Chrome 浏览器:现代网络浏览的先锋
开发语言
爱学的小涛12 分钟前
【NIO基础】基于 NIO 中的组件实现对文件的操作(文件编程),FileChannel 详解
java·开发语言·笔记·后端·nio
吹老师个人app编程教学13 分钟前
详解Java中的BIO、NIO、AIO
java·开发语言·nio
爱学的小涛13 分钟前
【NIO基础】NIO(非阻塞 I/O)和 IO(传统 I/O)的区别,以及 NIO 的三大组件详解
java·开发语言·笔记·后端·nio
北极无雪18 分钟前
Spring源码学习:SpringMVC(4)DispatcherServlet请求入口分析
java·开发语言·后端·学习·spring
AI视觉网奇41 分钟前
pymeshlab 学习笔记
开发语言·python
木向1 小时前
leetcode42:接雨水
开发语言·c++·算法·leetcode
gopher95111 小时前
final,finally,finalize的区别
java·开发语言·jvm
m0_687399841 小时前
QT combox 前缀匹配
开发语言·数据库·qt
汤兰月1 小时前
Python中的观察者模式:从基础到实战
开发语言·python·观察者模式