作为非专业的网络从业人员,我们平时接触最多的大概也就是TCP/IP协议的五层模型(或者说四层模型),TCP/IP到底是什么?我们要明确他并不是某个协议,而是一个协议族,准确的说是包含了TCP/IP协议模型中各层的协议。我给大家展示一张图。
OSI模型与TCP/IP模型对比
TCP/IP协议模型,简化了原有的OSI模型。OSI模型更加注重通信协议的必要功能是什么,TCP/IP则更加强调在计算机上实现协议应该开发那种应用程序。
数据链路层是用来做什么的?根据分层模型我们知道数据链路层介乎于物理层和网络层之间,
TCP/IP最底层是负责数据传输的硬件。各种我们所见到的网线、电话线等物理媒介,在物理层中,数据是依靠电信号来传输的,高电平、低电平,我们逻辑上理解的0和1。
单纯的0和1是没有任何意义的,这个时候数据链路层就出现了,它将数据封装成帧(frame),使一组0和1成为有意义的数据,并且向网络层提供服务(其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。)。我们平时所说的数据链路大多指的是以太网或者无线局域网等。
为了实现这些服务,数据链路层实现了具体的功能:
数据链路层
- 功能:
- 将数据封装成帧
- 控制帧的传输:处理简单的传输差错,调节发送速率,接送方匹配
- 维持两个连接网络实体间的链路建立、维持和释放管理
我们来看一下上面的功能是如何实现的,首先我们来了解一些概念:
MAC地址
MAC地址用于识别数据链路中互联的节点。MAC(Medium/Media Access Control)地址,用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节(48位)。其中,前三个字节是由IEEE的注册管理机构RA负责给不同厂家分配的代码(高位24位),也称为“编制上唯一的标识符(Organizationally Unique Identifier),后三个字节(低位24位)由各厂家自行指派给生产的适配器接口,称为扩展标识符(唯一性)。一个地址块可以生成224个不同的地址。MAC地址实际上就是网卡的硬件地址。
帧
我们以以太网协议为例,每一帧分成两个部分:标头(Head)和数据(Data)。
Head部分包括:目的MAC地址、源MAC地址、帧中数据的协议类型(长度或类型)等等,其中最重要的是MAC地址,Head的长度,固定为22字节。数据长度规定最⼩46字节,最⼤1500字节(网上很多head为18字节,实际上现在多为22字节)
以太网驱动程序首先根据以太网首部中的“数据类型”字段确定该数据帧的有效载荷(payload,指除去协议首部之外实际传输的数据)是IP、ARP 还是RARP 协议的数据报(这两个协议后面再说,只需要知道是根据IP解析MAC和根据MAC解析IP),然后交给相应的协议处理。ARP和RARP数据包的长度不够46 字节,要在后⾯补填充位。
网友评论