目录
一、协议分层
(一)计算机网络
(二)协议分层
(三)OSI模型
(四)TCP/IP协议
二、网络传输过程
三、IP地址和MAC地址
(一)IP地址
(二)MAC地址
一、协议分层
(一)计算机网络
在计算机网络出现前,各个计算机工作都是相互独立的,各个程序的通信都需要依靠别的通讯方法。计算机网络的出现使得各个计算机连接在一起,能够完成数据传输与资源共享。
计算机通信的本质实际是各个计算机上进程的通信,也就是进程间通信,不过只是使用了计算机网络资源。
(二)协议分层
因为计算机的厂商,操作系统,设备硬件都有可能不同,因此需要一个共同的约定来标准化网络的通信,这也就是网络协议。网络协议实际就是网络通信的标准。
计算机的网络通信十分复杂,设计数据的封装、打包、发送、解包以及分用等。因为计算机网络采用分层的思想,将网路通信的过程按照功能进行分层,每一层解决的问题都不尽相同,使其符合高内聚,低耦合的软件工程思想。
因为将计算机网络进行了分层,因此计算机协议也需要进行相应的分层。
(三)OSI模型
OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
层数 | 分层名称 | 功能 |
7 | 应用层 | 针对特定应用的协议 |
6 | 表示层 | 设备固定数据格式和网络标准数据格式的转换 |
5 | 会话层 | 通信管理。负责建立和断开通信连接(数据流动的逻辑通路)。管理传输层以下的分层。 |
4 | 传输层 | 管理两个节点"之间的数据传输。负责可靠传输(确保数据被可靠地传送到目标地址)。 |
3 | 网络层 | 地址管理与路由选择。 |
2 | 数据链路层 | 互连设备之间传送和识别数据帧。 |
1 | 物理层 | 以“0”“1”代表电压的高低、灯光的闪灭。界定连接器和网线的规格. |
(四)TCP/IP协议
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议族。
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。(本质上TCP/IP协议也是OSI七层模型,只不过它把会话层、表示层、应用层合为应用层罢了)
物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wififi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层. (硬件层搞软件的不关注哦,仅讨论TCP/IP上四层)
数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
实际上TCP/IP分层模型是将OSI分层模型中的应用层、表示层和会话层压为了一层。
二、网络传输过程
网络传输的过程主要是将数据封装、传输以及将数据进行解包。其中我们需要先铺设几个概念:
封装:有效载荷+各层报头;
解包:从接收数据分为报头以及有效载荷;
分用:可以将有效载荷交给指定上层协议解包。
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链 路层叫做帧(frame)
上图则是同一网段中两台主机的通信过程。
对于每层协议最重要的是:1、将报头和有效载荷分离;2、将有效载荷正确地交给上层协议进行处理。
以下就是协议分用的过程。
三、IP地址和MAC地址
(一)IP地址
IP地址通常在广域网使用,图上的是内网IP的地址,IPV4一共4个字节,每个字节范围0-255;IPV6是16个字节。
IP地址可以理解为起点到终点。
(二)MAC地址
MAC地址通常在局域网使用,占6个字节。
MAC地址可以理解为起点到终点的一个个站点。