分层模型介绍

一:为什么要协议分层

网络通信的过程很复杂,数据以电子信号的形式穿越介质到达正确的计算机,然后转换成最初的形式,以便接收者能够阅读,为了降低网络设计的复杂性,将协议进行了分层设计。

二:分层设计的意义:

通信服务层的模块设计可相对独立于具体的通信线路和通信硬件接口的差别

通信服务层的模块设计可相对独立于具体用户应用要求的不同

简化了相关的网络操作;提供了不同厂商之间的兼容性;促进了标准化工作;结构上进行了分层;易于学习和操作。

各个层次独立,一层的变化不会影响到邻层。



三:分层模型-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

时间: 2024-10-17 23:16:48

分层模型介绍的相关文章

Internet概念与TCP/ IP分层模型

Internet是世界上规模最大.用户最多.影响最大的计算机互联网络.本模块介绍Internet的概念及TCP/ IP分层模型. 一.Internet的概念 Internet的概念(也可认为是Internet的结构)可以从以下几个方面理解: 从网络通信的观点来看,Internet是一个由TCP/IP把各个国家.机构.部门的内部网络连接起来的庞大的数据通信网: 从信息资源的角度来看,Internet是一个集各个领域.部门内各种信息资源,以共享为目的的信息资源网: 从技术的角度来看,Internet

OSI模型和TCP/IP分层模型?看完这一篇就够了!

最近看了<图解TCP/IP>这本书,于是将这本书中的精髓做一个归总,以便之后查阅. 1.何为协议? 1.1 介绍 协议就是计算机与计算机之间通过网络实现通信事先达成的一种"约定".这种"约定"使那些由不同厂商的设备.不同的CPU以及不同的操作系统组成的计算机之间,只要遵循相同的协议就能够实现通信.反之,如果使用的协议不同,就无法通信. Windows操作系统的平板电脑和Mac操作系统的一体机电脑,虽然操作系统不同,硬件组成不同,但是只要事先达成一个详细的

通过金矿模型介绍动态规划

对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划.本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你在阅读中发现有不通顺的地方,让你产生错误理解的地方,让你难得读懂的地方,请跟贴指出,谢谢! ----第一节----初识动态规划-------- 经典的01背包问题是这样的: 有一个包和n个物品,包的容量为m,每个物品都有各自的体积和

数据封装 DataEncapsul时网络分层模型

如今学习分了十分十分重 要.重要性重要到网络课程学(图1数据封装)习中不论怎么也得也得把握它首要 内容是一个包.悉数数据包含 TFTP头被别的一个协议 这儿是UDP封装,先是被榜首个协议这儿是TFTP报头(或许 报尾)包装封装"然后.然后下一个IP一贯重复下去,直到硬件物理层这儿是以太网 当别的一台机器接纳到包.内核剥去IP和UDP头,硬件先剥去以太网头.TFTP次序再剥去TFTP头,毕竟得到数据.如今总算讲到身败名裂的网络分层模型 LayerNetworkModel这种网络模型在描绘网络体系上

性能测试分层模型-选自书籍:小强软件测试疯狂讲义

百度搜索:小强测试品牌 新书推荐 本书终于在前段时间出版了,现在已经可以在各大网店购买了,搜索书名即可.书籍购买地址:https://detail.tmall.com/item.htm?id=547310727717 这里我特别提前说一句:任何东西都有一定的受众群体,世界上也没有任何东西可以让所有人100%满意.So,本书也是.只要本书中有一个篇章的内容给你带来了影响那就是这本书的价值!感谢大家的支持. 引子 我为什么会把这个话题放到最开始呢?就是因为这些年在企业工作中.在教育领域培训中接触过不

理解 Neutron Server 分层模型 - 每天5分钟玩转 OpenStack(69)

本节开始讨论 Neutron 的各个服务组件,首先学习 Neutron Server . 上图是 Neutron Server 的分层结构,至上而下依次为: Core API对外提供管理 network, subnet 和 port 的 RESTful API. Extension API对外提供管理 router, load balance, firewall 等资源 的 RESTful API. Commnon Service认证和校验 API 请求. Neutron CoreNeutron

Python socket编程之IO模型介绍(多路复用*)

1.I/O基础知识 1.1 什么是文件描述符? 在网络中,一个socket对象就是1个文件描述符,在文件中,1个文件句柄(即file对象)就是1个文件描述符.其实可以理解为就是一个“指针”或“句柄”,指向1个socket或file对象,当file或socket发生改变时,这个对象对应的文件描述符,也会发生相应改变. 1.2 什么是I/O 1.先了解什么是I/O? I/O(input/output),即输入/输出.操作系统会对IO设备进行编址,IO设备用操作系统分配的地址来处理自己的输入输出信息.

网络分层模型

目前存在的两种网络分层模型:OSI模型和TCP/IP模型.OSI模型一共分为七层,TCP/IP模型和OSI模型类似,但是只分为四层. OSI模型 OSI的全程是Open Systems Interconncection,即开放系统互联,它由ISO(International Organization for Standardization)制定.OSI是网络通信的一种通用框架,它分为七层,并且定义了在每一层上数据的处理方法. 层数 层名 备注 7 应用层(Application) 6 表示层(P

IO模型介绍

IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步.异步.阻塞.非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西.这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不相同.所以,为了