一:为什么要协议分层
网络通信的过程很复杂,数据以电子信号的形式穿越介质到达正确的计算机,然后转换成最初的形式,以便接收者能够阅读,为了降低网络设计的复杂性,将协议进行了分层设计。
二:分层设计的意义:
通信服务层的模块设计可相对独立于具体的通信线路和通信硬件接口的差别
通信服务层的模块设计可相对独立于具体用户应用要求的不同
简化了相关的网络操作;提供了不同厂商之间的兼容性;促进了标准化工作;结构上进行了分层;易于学习和操作。
各个层次独立,一层的变化不会影响到邻层。
三:分层模型-OSI
建立七层模型的主要目的是为了解决异种网络互连时所遇到的兼容性问题。它将“服务”,“接口”,和“协议”三个概念明确的区分开来。
服务:某一层为上一层提供一些什么功能
接口:上一层如何使用下一层的服务
协议:如何实现本层的服务
这样,各层之间具有很强的独立性,互联网络中个实体采用什么协议是没有什么限制的。只要向上提供相同的服务并且不改变邻层的接口就可以了。
OSI参考模型具有以下优点
简化了相关的网络操作 ,提供设备间的兼容性和标准接口 ,促进标准化工作 ,结构上可以分隔 易于实现和维护。
OSI七层功能
OSI参考模型各个层次的基本功能如下:
物理层:在设备之间传输比特流,规定了点评,速度和电缆针脚
数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(MAC)来访问介质,并进行差错检测。
网络层:提供逻辑地址,供路由器确定路径。
传输层:提供面向链接或非面向链接的数据传递以及进行重传前的差错检测。
会话层:负责建立,管理和终止表示层实体间的通信会话。该层的通信由不同的设备中的应用程序间的服务请求和响应组成。
表示层:提供各种用于应用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。可以加密。
应用层:OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。
四:分层模型-TCP/IP
TCP/IP模型将网络分为四层结构。TCP/IP模型不关注底层物理介质,主要关注终端之间的逻辑数据流转发。TCP/IP模式的核心是网络层和传输层:网络层解决网络之间的逻辑数据流转发问题,传输层保证源端到目的端之间的可靠传输。最上层的应用层通过各种协议向终端用户提供业务应用
五:TCP/IP封装
应用数据需要经过TCP/IP每一层处理后才能通过网络传输到目的端,每一层上都是用该层的协议数据单元PDU彼此交换了信息。不同层的PDU中包含有不同的信息,因此PDU在不同的层被赋予了不同的名称。如上层数据在传输层添加了TCP报头后被称为数据段。网络层添加IP报头后成为数据包,数据包在数据链路层添加数据链路层包头而成为数据帧;最后,帧被转换为比特,通过网络传输介质。这种协议栈逐层向下传递数据,并添加报头和报尾的过程叫做封装。
六:终端之间的通信
数据链路层控制数据帧在物理链路上传输。
数据包在一台物理介质上传播之前必须封装头部和尾部信息。封装后的数据包成为数据帧,数据帧中封装的信息决定了数据如何传输。以太网上传输的数据帧有两种格式,选择那种格式有TCP/IP协议簇中的网络层决定。接下来我们来介绍一下这两种数据帧格式。
如上图两种格式,这两种格式的主要区别是,Etherne_II格式中包含一个Type字段,标识以太帧处理完成后将被发送到那个上层协议进行处理。而在IEEE802.3中,相同的位置是长度字段。不同的Type字段值可以用来区分这两种帧的类型,当Type字段值小于等于1500时使用IEEE 802.3格式。当Type大于等于1536 时,帧使用Ethernet II格式。以太帧中还包括元和目的MAC地址,分别代表发送者的MAC和接受者的MAC,此外还有帧校验序列字段,用于检验传输过程中的帧的完整性。
以太网数据帧的长度在64-1518字节之间。
在IEEE802.3格式中length定义了Data字段包含的字节数。
逻辑链路控制LLC由目的服务访问点源服务访问点和control字段组成
SNAP由机构代码和类型字段组成。Org code 三个字节都为0,Type字段的含义与Ethernet II帧中的Type含义相同。
以太网在二层链路上通过MAC地址来唯一表示网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址,大多数网卡厂商把MAC地址烧入了网卡的ROM。发送端使用接收端的MAC地址作为目的地址。以太帧封装完后会通过物理层转换成比特流在物理介质上传输。
MAC地址有两部分组成,分别是供应商代码和序列号。其中前24位代表该供应商代码,由IEEE管理和分配。剩下24位序列号由厂商自己分配
七:帧的三种发送方式
单播:从单一源端发送到单一的目的端。在冲突域中,所有的主机都能收到源主机发送的单播帧,但其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会接受并处理收到的帧
广播:表示帧从单一的源发送到共享以太网上的所有主机。广播帧的目的MAC地址为FF:FF:FF:FF:FF:FF,所有收到该广播的主机都要接受并处理这个帧。
组播:组播转发可以理解为选择性的广播,主机监听特定的组播地址,接收并处理目的MAC地址为改组播MAC地址的帧。
八:数据帧的发送和接收
帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。主机检查帧头中的目的MAC地址,如果这个目的MAC地址不是本机MAC地址,也不是本机监听的组播或广播MAC地址,择丢弃收到的帧。
如果目的MAC地址是本机MAC地址,则接受该帧,检查该帧的校验序列,并于本机计算的值对比来确定帧在传输的过程中是否保持了完整性。如果帧的FCS值与本机计算的值不同,主机会认为帧已经破坏,并且会丢弃该帧。如果该帧通过了FCS校验,则主机会根据帧头的Type字段来确定该帧发送到上层那个协议。
原文地址:http://blog.51cto.com/13560258/2083543