计算机网络的发展背景可以追溯到20世纪初。以下是计算机网络发展的一些重要背景因素和阶段:
第一阶段 - 早期计算机网络(1960年代至1970年代):
第二阶段 - 商业化和互联网的崛起(1980年代至1990年代):
第三阶段 - 移动互联网和物联网(2000年代至今):
未来趋势 - 量子互联网和更高级的互联互通性:
总的来说,计算机网络的发展背景涵盖了技术、政治、商业和社会因素,互联网已经成为全球通信和信息交流的基础设施,并持续演化以满足不断变化的需求和挑战。
协议在我们日常生活中随处可见!!!
我们人与人能正常的沟通,实际上就是“协议”作用!比如语言的“协议”、动作的“协议”,随着社会的发展、语言的发展…已经形成了很多约定俗成的“协议”
所以“协议”从根本作用上看,就是为了能够更高效的沟通!
- 计算机生产厂商有很多
- 计算机操作系统, 也有很多
- 计算机网络硬件设备, 还是有很多
- 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人站出来, 约定一个共同的标准, 大家都来遵守, 这就是 网络协议
在上图的例子中,A和C都是中国人,他们都讲汉语,也就是他们共同遵守了“汉语协议”所以他们才能高效地沟通
而他们通过电话这种通信设备进行通信,那A的电话机是怎样与C的电话机进行通信呢? —— 因为遵守了“电话机协议”我们再思考和发现,好像协议也能分类、分层!
为何需要分层
从上图例子中,汉语交流遵循了“汉语协议”我们可以统一为在“语言协议层”遵循协议;通过电话机远程通信可以统一为在“通信设备层”遵循协议
如此分层之后,我们就不用强耦合地去设置:只能遵循于“汉语协议”和“电话机协议”的通信过程;而是将通信过程的协议分为“语言层”和“通信设备层”。如此一来,我们通信的过程中就可以灵活地适应和变化,也就是 —— 低耦合
网络通信的过程是十分复杂的,需要经过很多环节。如果不分层,当有其他情况或者变动就无法灵活适应。
所以我们分层的依据是:功能比较集中,耦合度比较高的模块就分为一层;每一层都要解决特定的问题!
因此,通过上图的例子,我们便能深刻地认识到“协议”和“分层”带来的通信效率
- OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
- OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
- 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯
⭕OSI七层模型的各个分层:
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
一般而言
- 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容
- 对于一台路由器, 它实现了从网络层到物理层
- 对于一台交换机, 它实现了从数据链路层到物理层
- 对于集线器, 它只实现了物理层
由上文我们知道,网络通信的过程中分出了好几层,每一层都有其对应的协议。协议其实就是一种约定,可以理解为就像签订了某种说明书;所以通信数据通过网络传输必定经过一个层层封装到层层解封的过程。
举个例子
我们在网购的时候,也有一个分层的体现。比如我要买一瓶洗面奶,卖家不是自己跑来我家将洗面奶给我,而是把洗面奶拿去顺丰寄件,然后那边的顺丰就寄来我学校的顺丰,然后顺丰再送到我家。这些都是分层的表现。
而洗面奶,从卖家手里每经过一层,就会有“封装”的表现。在卖家那里,他需要给洗面奶加上使用说明书 ——> 在寄顺丰的时候,需要给洗面奶加上我的收货地址 ——> 等到我拿到手,洗面奶已经被加了“好几层”,而当我要使用的时候,我自己也需要去解封再使用
在上面这个例子中:
⭕通过上面例子的理解,现在我们可以更加深刻的体会知识
数据包封装和分用
- 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).
- 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)
- 首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息,称为报头
- 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理
下图为数据封装的过程(解包则相反)
下图为数据包分用的过程
同一个网段内的两台主机进行文件传输
跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器
⭕综上所述,网络通信的过程,就是数据包从发送端开始,经过一层层网络协议栈的协议报头封装,一层层发送到接收端的底层,再经过一层层网络协议栈的解包,最终到用户端拿到数据。而要时刻记得,通信是一个双向的过程。
⭕TCP/IP的五层层级结构,每一层都有什么内容、做了什么事、如何具体解包分用、协议的内容… … 就是我们计算机网络所要学习的主要内容及核心。等到一连贯的知识学习后,我们便能深刻了解一个数据包,是如何从我们的主机发送到别人的主机。
IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4
- IP地址是在IP协议中, 用来标识网络中不同主机的地址;
- 对于IPv4来说, IP地址是一个4字节, 32位的整数;
- 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;
- MAC地址用来识别数据链路层中相连的节点;
- 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
- 在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)
对于上面这两个地址,我们这里先做感性的简单认识,在后面的学习中会慢慢加深对其的理解
举个例子:现在我们去旅游,会有一个目的地,但是往往都不是能够瞬间从起点咻的一下到达终点,中间会途径各种地点,而中间途径各种地点的时候如何选择下一个地点,就是因为我们知道了我们终点是哪,终点在哪个方向
所以在形容地址的时候我们会有2套地址
1.从哪里来(起点)- 到哪里去(终点)
2.在走的过程中上一站从哪来,下一站去哪里类比此例子就能很好的理解ip地址和mac地址
ip地址就像是第一套地址,所以分为目的IP 和 源IP:为我们未来每一个阶段提供方向,方便进行路径选择而mac地址就像是第二套地址,因为我们在网络通信往往中间都要途径各种路由器(主机)