文章目录
- OSI七层模型
- TCP/IP五层(或四层)模型
- 为什么要有TCP/IP协议
- 网络传输的基本流程
- 网络传输流程图
- 数据包封装和分用
- 网络中的地址管理
- IP地址
- Mac地址
- 比较IP地址和Mac地址
OSI七层模型
OSI即Open System Interconnection,开发系统互连。OSI七层模型是一个逻辑上的定义和规范,每一层都有其特定的功能和协议。OSI七层模型是一种框架性的设计方法,其主要功能就是使不同的两台主机实现数据传输。下面是七层网络模型的结构图:
OSI七层模型提供了一个通用的框架,不同厂商和技术可以通过遵循该模型实现互操作性。
值得注意的是:即使在网络的角度上来看,七层模型设计的非常完善,但是在实际的操作过程中,会话层和表示层一般是不能接入到操作系统中的,所以在工程实践中,最终实现的大多都是5层协议。
TCP/IP五层(或四层)模型
四层模型就是不算物理层。TCP/IP是一组协议的代名词,它还包含了许多协议,组成了TCP/IP协议簇。TCP/IP协议簇是目前最广泛的网络通信的协议集。具体的TCP/IP协议套件是一个分层模型,相比于OSI七层模型,TCP/IP模型更加简洁和实用。下面介绍TCP/IP每个层次的作用:
- 应用层:提供直接面向用户的应用服务,通过不同的应用协议实现各种网络功能,如电子邮件、文件传输和网页浏览。常见的协议有HTTP和SSH协议
- 传输层:负责两台主机之间的数据传输,即端到端之间,包括数据分段、传输控制、错误检测与纠正。使用到的协议有:TCP协议和UDP协议。
- 网络层:负责数据包的路由和转发,确保数据从源主机传输到目的主机,处理数据包的逻辑地址(IP地址)寻址和路由选择。使用到的协议有IP协议
- 数据链路层:负责在相邻节点之间传输数据帧,包括物理介质访问、数据帧的封装和解封等。协议有以太网、WI-FI(无线网络)等。
- 物理层:负责信号的的传递方式,比如现在以太网通用的网线(双绞线)、早期采用的同轴电缆、光纤、电磁波等。物理层的能力大小决定了数据传输的上限。
对于上述对TCP/IP各个层次作用的解释的一些名词做出解释
-
端口:端口是一个用于标志一台主机运行某个程序的整数
-
数据分段:将较大的数据包拆分成更小的数据段的过程
-
数据帧:数据帧(Data Frame)是在计算机网络中用于数据传输的基本单位,组成部分有:
- 帧头:包含了控制信息,如目标地址、源地址、数据帧类型或长度等。通俗一点讲就是它的作用就是找到目标主机和目标主机如何正确接收这些数据的方法。
- 数据部分:实际传输的数据
- 帧尾:包含校验等错误检测信息,用于检查数据在传输过程中是否损坏。
-
路由:路由是指数据根据特定算法确定到目的地址的传输路径的一个过程,简单来说们,就是选择合适路径的过程。
此外,一般来说:
- 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容
- 对于一台路由器,实现了从网络层到物理层
- 对于一台交换机,实现了从数据链路层到物理层
- 对于集线器,只实现了物理层
为什么要有TCP/IP协议
本质就是两个需要通信的两个主机距离变远了。之所以要遵循协议,这是为了两个主机能够在同一个规则下进行数据传输,这样即使相隔很远,只要遵循规则,我们就能做到正确的传输数据。那为什么是TCP/IP协议呢?因为TCP/IP协议有以下特征:灵活性,支持全球网络、可靠性和安全性等。协议即规则。
下面给出TCP/IP协议栈与操作系统 的宏观关系示意图:
由于都遵循TCP/IP协议,两台主机封装的数据和解包的数据在同一个层次中是一致的。这句话是什么意思呢?意思就是假如主机A发送一个数据帧给主机B,假设在A的传输层中得到的数据是XXX,那么在B接收到数据帧后解包,在B的传输层中得到的数据也是XXX。当然这里的数据可能是某个结构体。
网络传输的基本流程
网络传输流程图
两台计算机设备通过TCP/IP协议通信的过程如下:
- 局域网通信:
- 跨网络通信:
数据包封装和分用
- 数据包在不同的协议层有不同的称谓,比如在传输层就叫数据段,在网络层就叫数据报,在数据链路层就叫数据帧
- 发送数据时,数据从应用层开始往下,每依次经过一层协议就要在数据首都加上一段数据,这个过程称为封装。
- 接收数据时,数据从物理层开始往上,每依次经过一层协议就要剥掉响应的首部数据,这个过程称为解包。
- 解包时,根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理.比如在网络层解包后发现该数据使用的是TCP协议,那么在向上传递数据时就会选择TCP协议而不是UDP。这个过程也被称为分用。
- 对于每一层来说,上一层的传递的数据部分都被称为有效载荷,本层加的数据首部称为报头,所以报文=报头+有效载荷。
下面给出封装和解包过程:
分用示意图:
网络中的地址管理
IP地址
IP地址是在网络层用IP协议标识和定位设备的逻辑地址,其中IP协议分为IPv4和IPv6。IPv4下的IP地址是一个4字节,32位的无符号整数表示,通常写成四个十进制数字,每个数字占一个字节,数据范围是[0-255]。IPv6下的IP地址是16字节,采用八组十六进制数字,每组都是16位,即两个字节。
作用:
- 唯一标识一台网络上的设备。
- IP地址帮助路由器决定数据包如何从源地址传输到目标地址。
- 路由器根据目标IP地址将数据包从一个网络传输到另一个网络。
Mac地址
Mac地址是用于在数据链路层标识和定位设备的物理地址,由48位二进制表示,通常用十六进制的表示,被厂商预先分配给网卡。
作用:
- 每个网卡都有唯一的Mac地址,用于在局域网中唯一标识设备。
- 在局域网中,数据帧的源地址和目标地址是MAC地址,通过MAC地址确保数据帧能够准确地从发送端传输到接收端。
比较IP地址和Mac地址
IP地址可以在不同的网络中标识唯一设备,帮助路由器将数据包从一个网络到另一个网络。Mac地址用于定位网络内部的目标设备。这俩各种再网络传输过程中起到了不可替代的作用。
简单来说,IP地址告诉路由器数据应该转发给哪一个网络,Mac地址告诉路由器数据应该发给这个网络的那一台主机。
下面给出网络通信的流程图: