赞
踩
在计算机发展初期,计算机之间相互独立,每个终端各自持有数据,这明显对于数据的共享很不友好,为了高效的数据传输和共享,世界各地的科学家、实验室就开始想办法提出自己的解决方案用来解决多设备数据共享的问题,所以在这一阶段形成了网络互联的概念,在这一阶段,不同设备之间可以进行数据共享,那么随着设备的增多,技术的发展,就产生了局域网,广域网这样的技术概念,那么具体的内容我们我们慢慢抽丝剥茧学习,这部分只是有一个网络发展的概念就行。
我们之前说为了解决多设备之间数据共享的问题,世界各地的实验室、科学家们提出了诸多解决方案,而这个数据通信的解决方案其实就是协议。
协议可以理解成一种约定,即通信双方提前约定好通信的数据格式,在通信过程中双方基于该数据格式进行通信,站在语言角度理解协议就是通信双方都能识别的结构体数据类型。
但是这时就存在一个问题,计算机的生产厂商有很多,操作系统也有很多,衍生的网络硬件设备也有很多,那么如何让这些不同厂商之间生产的计算机都能相互顺畅的通信呢,所以这时就需要标准的存在,而这个统一的标准就是网络协议。
当今的网络协议是OSI(Open System Interconnection)提出的OSI七层模型。
为什么网络协议要分层?
联想到我们之前对于分层的理解,分层一般是为了可以松耦合,层与层之间不会有太多的联系,方便后期维护。
比如:当物理层发生变化时,我们只需要改动物理层的代码,其他层次的代码无需改动。
为什么存在网络协议?
首先客观事实是,通信距离变远,必定会引发新的问题:
- 如何使用数据的问题;
- 可靠性问题;
- 主机定位问题;
- 数据报局域网转发问题。
那么以上这些问题我们都会在后面的学习中有所体现,简言之网络协议的不同层次可以分别解决上述的问题。
分层名称 | 功能 | 每层功能概述 |
---|---|---|
应用层 | 针对特定应用的协议 | ![]() |
表示层 | 设备固有数据格式和网络标准数据格式的转换 | ![]() |
会话层 | 通信管理、负责建立和断开通信连接(数据流动的逻辑通路)、管理传输层以下的分层 | ![]() |
传输层(TCP) | 管理两个节点之间的数据传输、负责可靠性传输(确保数据被可靠地传送到目标地址,即数据传输可靠性) | ![]() |
网络层(IP) | 地址管理与路由选择(路由器) | ![]() |
数据链路层 | 互联设备之间传送和识别数据帧(交换机) | ![]() |
物理层 | 以0/1代表电压的高低以及灯光的闪灭、界定连接器和网线的规格(集线器、调制解调器) | ![]() |
为什么上面我们说是TCP/IP四层模型呢?
OSI七层模型是非常优秀的网络协议,但是对于应用层、表示层和会话层,一般这三个层次被统一称为应用层,原因大概是因为这三个层次如果分开实现会引发其他问题导致问题复杂,这三层一般是由用户实现。
对于物理层我们一般不关心,所以在软件的角度考量,我们认为是OSI四层模型就可以,或者带上物理层称为OSI五层模型。
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
数据链路层解决数据报局域网转发问题,该层一般集成在网卡驱动程序中实现。
网络层解决主机定位问题。
传输层解决可靠性问题。
应用层解决如何使用数据的问题。
网络层和传输层集成在OS内部实现。
即操作系统源码中包含有实现网络层(IP协议)和传输层(TCP协议)的代码。
这两个层次合起来也称为TCP/IP协议栈。
所有的操作系统只要入网,就必须遵守TCP/IP协议栈,保证不同主机之间的数据通信。
虽然操作系统千千万,但是操作系统中TCP/IP协议栈的内容一定是一样的,这也就是为什么不同设备间可以进行通信的缘由。
所以你知道了网络也是OS源码的一部分,所以应用层想要使用网络,就必须存在有系统调用接口,而将这些系统调用进行封装就形成了网络库。
场景:A设备给C设备发送数据。
实际上,B设备也受到了A设备的数据,但是B设备查看时发现不是发给自己的消息就忽略了,而C设备收到分析后发现是发送给自己的数据。
即局域网中所有主机都受到了消息,经过对比Mac地址后确定通信双方。
区分不同设备的依据是Mac地址,不同设备有不同的Mac地址。
MAC地址(Media Access Control Address),也称为物理地址或硬件地址,是一个用来确认网络设备位置的地址。在OSI模型中,MAC地址位于数据链路层,它使得数据可以从源网络介质发送至目标网络介质,从而进行可靠的数据传输。
MAC地址具有以下特点:
- 唯一性:MAC地址是全球唯一的,每个网络设备(如网卡、路由器、交换机等)都有一个唯一的MAC地址。
- 固定性:MAC地址是写在网卡上的,一般来说是固化在网卡上的EEPROM(电可擦写可编程只读存储器)中,可通过网卡驱动程序进行配置。
- 层次化:MAC地址由六组两个十六进制数(共六个字节)组成,用冒号(:)或者连字符(-)分隔。前三个字节称为组织唯一标识符(OUI),用来标识厂商或组织;后三个字节由厂商自行分配,标识网络设备。
在发送数据和接收数据的过程中,可能会发生数据碰撞(一个局域网就是一个碰撞域),这是因为局域网可以被视为一种临界资源,在任何一个时刻,仅允许一个设备向局域网中发送数据。
- 如果数据链路层是以太网的标准,那么以太网通信标准中(碰撞检测与避免),当设备A发送数据发生数据碰撞后,设备A就停止发送,让出局域网这个临界资源供其他设备使用,其他设备皆是如此,所以以太网的处理方式可以认为是一种乐观的处理机制,因为同一时间有两个设备同时发送数据的概率并不高。
- 如果数据链路层是令牌环网的标准,那么局域网中会存在一个令牌,谁持有令牌谁可以发送数据,有点类似持有锁。
所以思考下:局域网中,主机越多越好还是越少越好?
当然是越少越好,越少就意味着更小的数据碰撞可能性,当主机数目变多后,会存在有交换机这样的设备来解决处理。
如果要黑掉一个局域网,就不断地向该局域网中发送垃圾数据
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/801097
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。