精华内容
下载资源
问答
  • (掌握分层模型作用、数据帧结构、MAC、转发过程) 6.1 什么是协议: 为了使数据可以在网络上从源传递到目的地,网络上所有的设备需要“讲”相同的“语言”,好比两个人交谈,要使用相同的语言。 数
    6. 以太网帧结构:
    网络中传输数据时需要定义并遵循一些标准,以太网是根据IEEE 802.3标准来管理和控制数据帧的。了解IEEE802.3标准是充分理解以太网中链路层通信的基础。
    (掌握分层模型作用、数据帧结构、MAC、转发过程)
    6.1 什么是协议:
    为了使数据可以在网络上从源传递到目的地,网络上所有的设备需要“讲”相同的“语言”,好比两个人交谈,要使用相同的语言。
    数据通信协议的定义:决定数据的格式和传输的一组规则或者一组惯例。在网络中,为了完成通信,必须使用多层上的多种协议。这些协议按照层次顺序组合在一起,构成了协议栈(Protocol Stack),也称为协议族(Protocol Suite)。不同的协议栈用于定义和管理不同网络的数据转发规则。常用的协议栈 :TCP/IP、IPX/SPX、AppleTalk等。
    协义只是一套规划,而协义栈就是协议的分层实现。
    6.2 协议为什么要分层:
    6.2.1 网络通信的过程很复杂:
    1)数据以电子信号的形式穿越介质到达正确的计算机,然后转换成最初的形式,以便接收者能够阅读。
    2)为了降低网络设计的复杂性,将协议进行了分层设计。
    6.2.2 分层设计的意义:
    1)通信服务层的模块设计可相对独立于具体的通信线路和通信硬件接口的差别。
    2)而通信服务层的模块设计又可相对独立于具体用户应用要求的不同。
    3)简化了相关的网络操作;提供了不同厂商之间的兼容性;促进了标准化工作;结构上进行了分层;易于学习和操作。
    4)各个层次独立,一层的变化不会影响到临层。

    6.3 分层模型之——OSI(参考模型,非强制):
    应用、表示、会话、传输、网络、数据链路、物理层共7层。

    国 际 标 准 化 组 织 ISO 于 1984 年 提 出 了 OSI RM ( Open System
    Interconnection Reference Model,开放系统互连参考模型)。OSI参
    考模型很快成为了计算机网络通信的基础模型。
    6.3.1 OSI参考模型具有以下优点:简化了相关的网络操作;提供了不同厂商
    之间的兼容性;促进了标准化工作;结构上进行了分层;易于学习和操
    作。
    6.3.2 OSI参考模型各个层次的基本功能如下:
    物理层:
    通过物理的网卡、线缆、光纤等在设备之间传输比特流,规定了电平、速度和电缆针脚。
    --------
    数据链路层:
    将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。控制网络层与物理层之间的通信。
    --------
    网络层:
    提供逻辑地址,供路由器确定路径。IP寻址和路由选择。
    --------
    传输层:
    提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。建立、维护和管理端到端的连接。分为可靠传输(传输前先建立连接,TCP(Transmission Control Protocol 传输控制协议))和不可靠传输(传输数据前不先建立连接,直接传输,UDP(User Datagram Protocol 用户数据报协议))。
    --------
    会话层:
    负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序(如QQ、迅雷)之间的服务请求和响应组成。
    --------
    表示层:
    提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。包括数据格式化、加密、解密等。
    --------
    应用层:
    OSI参考模型中最靠近用户的一层,为应用程序提供网络服务(接口)。
    --------
    6.3.3 OSI层次设计理念:

    6.3.4 OSI层次举例:
    发送信息是从上往下处理:
    ①甲地写信的人(应用层处理,如QQ)——②防止泄密,对信息进行了加密(表示层处理,数据格式化、加密、解密)——③这个人可能会写很多信件(多个会话),为了区分这些信是写给哪些人的将每封信<会话>的信息记录下来(会话层处理,建立、维护和管理会话)——④选择传递方式(如顺丰、邮局,传输层处理,可靠传输/不可靠传输)——⑤顺丰/邮局处理,信件该发往哪里(网络层处理,IP寻址/路由选择)——⑥将信件/信息进行打包处理(数据链路层处理,控制网络层与物理层之间的通信。)——⑦将同目的地的信件包裹采用空运(光纤)、陆运(双绞线)等方式送达目的地(物理层处理,比特流传输)乙地收信人。
    邮局对于写信的人来说是下层,运输部门是邮局的下层----下层是为上层提供服务的
    写信人与收信人之间使用相同的语言----即协议
    甲乙两地邮局之间的约定----同层次之间使用相同的协议

    对于发送方来说是高层到低层处理(应用层至物理层)。对于接收方是从低层到高层处理(物理层到应用层)。

    6.4 分层模型之——TCP/IP(在使用的模型):
    6.4.1 概念
    Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

    TCP/IP模型同样采用了分层结构,层与层相对独立但是相互之间也具备非常密切的协作关系。TCP/IP模型将网络分为四层。TCP/IP模型不关注底层物理介质,主要关注终端之间的逻辑数据流转发。TCP/IP模型的核心是网络层和传输层,网络层解决网络之间的逻辑转发问题(IP),传输层保证源端到目的端之间的可靠传输(TCP)。最上层的应用层通过各种协议向终端用户提供业务应用。
    网络工程师重点关注传输层、互联网层、数据链路层与物理层。

    应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端,每一层上都使用该层的协议数据单元PDU(Protocol Data Unit)彼此交换信息。不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。假设QQ发送一句Hello,首先应用层将其处理为一个PDU数据,该数据在传输层添加TCP/或UDP报头后得到的PDU被称为Segment(数据段);数据段被传递给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包或报文);数据包被传递到数据链路层,封装数据链路层报头得到的PDU被称为Frame(数据帧)最后,帧被转换为比特流或光信号,通过网络介质传输
    这种协议栈逐层向下传递数据(应用层---网络接口层),并添加报头和报尾的过程称为封装(反过来则称为解封装)

    数据包在以太网物理介质上传播之前必须在数据链路层封装头部和尾部信息,封装后的数据包称为数据帧,数据帧中封装的信息决定了数据如何传输。以太网上传输的数据帧有两种格式,选择哪种格式由TCP/IP协议簇中的网络层决定。一种帧格式为Ethemet_II(平时使用的),另一种为IEEE802.3(在通信协议中使用)。

    不同的Type字段值可以用来区别这两种帧的类型,当Type字段值小于等于1500(或者十六进制的0x05DC)时,帧使用的是IEEE 802.3格式。当Type字段值大于等于1536 (或者十六进制的0x0600)时,帧使用的是Ethernet II格式以太网中大多数的数据帧使用的是Ethernet II格式。

    Ethernet_II的帧中各字段说明如下:
    1. DMAC(Destination MAC)是目的MAC地址。DMAC字段长度为6
    个字节,标识帧的接收者。
    2. SMAC(Source MAC)是源MAC地址。SMAC字段长度为6个字节
    ,标识帧的发送者。
    3. 类型字段(Type)用于标识数据字段中包含的高层协议,该字段长
    度为2个字节。类型字段取值为0x0800的帧代表IP协议帧;类型字
    段取值为0x0806的帧代表ARP协议帧
    4. 数据字段(Data)是网络层数据,最小长度必须为46字节以保证帧
    长至少为64字节,数据字段的最大长度为1500字节。(46-1500字节byte)
    5. 循环冗余校验字段(FCS)提供了一种错误检测机制。该字段长度
    4个字节。
    以太网数据帧的长度范围为64-1518字节(byte)之间。

    IEEE802.3帧格式类似于Ethernet_II帧,只是Ethernet_II帧的Type域被802.3帧的Length域取代,并且占用了Data字段的8个字节作为LLC和SNAP字段。
    1. Length字段定义了Data字段包含的字节数。
    2. 逻辑链路控制LLC(Logical Link Control)由目的服务访问点DSAP(Destination Service Access Point)、源服务访问点SSAP(Source Service Access Point)和Control字段组成。
    3. SNAP(Sub-network Access Protocol)由机构代码(Org Code)和类型(Type)字段组成。Org Code三个字节都为0。Type字段的含义与Ethernet_II帧中的Type字段相同。IEEE802.3帧根据DSAP和SSAP字段的取值又可分为以下几类:
    1)当DSAP和SSAP都取特定值0xff时,802.3帧就变成了Netware-ETHERNET帧,用来承载NetWare类型的数据。
    2)当 DSAP 和 SSAP 都 取特定 值 0xaa 时, 802.3帧就 变成ETHERNET_SNAP帧。ETHERNET_SNAP帧可以用于传输多种协议。
    3)DSAP和SSAP其他的取值均为纯IEEE802.3帧。

    以太网在数据链路层上通过MAC地址来唯一标识网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址,大多数网卡厂商把MAC地址烧入了网卡的ROM中。发送端使用接收端的MAC地址作为目的地址。以太帧封装完成后会通过物理层转换成比特流在物理介质上传输。

    如同每一个人都有一个名字一样,每一台网络设备都用物理地址来标识自己,这个地址就是MAC地址。网络设备的MAC地址是全球唯一的。MAC地址长度为48比特,通常用十六进制表示。MAC地址包含两部分: 前 24 比 特 是 组 织 唯 一 标 识 符 ( OUI , Organizationally Unique Identifier),由IEEE统一分配给设备制造商。例如,华为的网络产品的MAC地址前24比特是0x00e0fc。后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要MAC地址的设备)。

    单播:局域网上的帧可以通过三种方式发送。第一种是单播,指从单一的源端
    发送到单一的目的端。每个主机接口由一个MAC地址唯一标识,MAC地址的OUI中,第一字节第8个比特表示地址类型。对于主机MAC地址,这个比特固定为0,表示目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。在冲突域中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会接收并处理收到的帧。

    广播:第二种发送方式是广播,表示帧从单一的源发送到共享以太网上的所有主机。广播帧的目的MAC地址为十六进制的FF:FF:FF:FF:FF:FF所有收到该广播帧的主机都要接收并处理这个帧。广播方式会产生大量流量,导致带宽利用率降低,进而影响整个网络的性能。当需要网络中的所有主机都能接收到相同的信息并进行处理的情况下,通常会使用广播方式。

    组播:第三种发送方式为组播,组播比广播更加高效。组播转发可以理解为选择性的广播,主机侦听特定组播地址,接收并处理目的MAC地址为该组播MAC地址的帧。组播MAC地址和单播MAC地址是通过第一字节中的第8个比特区分的。组播MAC地址的第8个比特为1,而单播MAC地址的第8个比特为0。当需要网络上的一组主机(而不是全部主机)接收相同信息,并且其他主机不受影响的情况下通常会使用组播方式。(如网络教室教学)

    帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果帧的FCS值与本机计算的值不同,主机会认为帧已被破坏,并会丢弃该帧。如果该帧通过了FCS校验,则主机会根据帧头部中的Type字段来确定将帧发送给上层哪个协议处理。本例中,Type字段的值0x0800,表明该帧需要发送到IP协议上处理。在发送给IP协议之前,帧的头部和尾部会被剥掉。
    1)网络设备如何确定以太网数据帧的上层协议?
    答: 以太网帧中包含一个Type字段,表示帧中的数据应该发送到上层哪个协议处理。比如,IP协议对应的Type值为0x0800,ARP协议对应的Type值为0x0806。
    2)终端设备接收到数据帧时,会如何处理?
    答:主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果检查通过,就会剥离帧头和帧尾,然后根据帧头中的Type字段来决定把数据发送到哪个上层协议(如IP、ARP等)进行后续处理。
    展开全文
  • 以太网的实现采用层次结构的概念,每一层都有自己的功能,就像建筑物一样,每一...以太网模型有不同的分层方式,ISO(国际标椎组织)提出OSI七层网络模型,自上而下分别为:应用层,表示层,会话层,传输层,网络层...

    以太网的实现采用层次结构的概念,每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持,每一层都为上一层功能的实现打好基础。

    实际上,用户接触到的只是最上面的一层,根本感觉不到底层的存在。要理解与以太网,必须从最下层开始,自下而上理解每一层的功能。

    五层结构

    以太网的模型有不同的分层方式,ISO(国际标椎组织)提出OSI七层网络模型,自上而下分别为:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。OSI七层模型主要是为了解决异种网络互连时所遇到的兼容性问题。它最大的优点是将服务,接口和协议这三个概念明确区分来,也使网络的不同功能模块承担起不同的职责。由于互联网网络体系结构以TCP/IP协议为核心 ,因而基于TCP/IP的参考模型将以太网可以分为四层,自上而下分别为:应用层,传输层,网络互联层,网络接口层。

    根据个人理解,把以太网分成五层比较容易理解。这五层结构不尽符合OSI结构强调的不同层次承担不同的职责的特点,同时也符合TCP/IP协议参考模型协议之间互相支持,相互调用的逻辑关系。

    如上图所示,最底下的一层叫做'物理层',也叫作‘PHY层’,最上层的一层叫做“应用层”,中间的三层(自下而上)分别是“链路层”也叫“MAC层” “网络层”和“传输层”。越下面的层,越靠近硬件;越上面的层越接近用户。

    层与协议

    每一层都有其各自的功能,为了实现这些功能,需要大家都遵循一个共同的规则

    那么这个共同的规则,就叫做协议。以太网的每一层都定义了很多协议。这些协议的总称就叫做“互联网协议”,他们是互联网的核心,下面介绍每一层的功能,及其中的主要协议。

    下面对以太网的五层结构模型进行详细解释,让大家对网络的通信过程,每层的具体定义和功能,数据收发机制以及要遵守的协议进行理解。不同层由于封装包机制不同,数据的叫法也不同,这样有利于大家更好的理解下面的内容。传输层叫做段,网络层叫数据报,链路层叫做帧。

    物理层也叫作“PHY层”,它负责将上层所要发送的信息编码成电流脉冲或其他信号用于网上传输。

    物理层由计算机和网络介质之间的实际界面组成,可定义成电气信号,信号线的状态和时钟要求,数据编码和数据传输用的连接器。如常用的RS-232规范,曼彻斯特编码就属于这一层,所有比物理层高的层都通过事先定义好的接口而与他通话。

    链路层

    数据链路层通过物理网络链路提供可靠的数据传输。不同的数据链路层定义了不同的网络和协议特征,其中包括物理编址,网络拓扑结构,错误校验,帧序列以及流控

    物理编址(相对应的是网络编址)定义了设备在数据链路层的编址方式;网络拓扑结构定义了设备的物理连接方式,如总线拓扑结构和环拓扑结构,错误校验向发生传输错误的上层协议告警;数据帧序列重新整理并传输除序列以外的帧;流控可能延缓数据的传输以便接收设备不会因为在某一时刻接收到超过其处理能力的信息流而崩溃。

    以太网协议

    早期的时候,每家公司都有自己的电信号分组方式,后来逐渐形成了以“以太网”为主的一整套协议。

    以太网规定,一组电信号构成一个数据包,叫做“帧”,每一帧分成三个部分:以太网首部  数据 以及以太网尾部。

    “以太网首部”包括数据帧的一些说明项,比如发送者 接收者  数据类型等等  “数据”部分则是数据的具体内容;“以太网尾部”则是CRC校验码。

    以太网首部的长度固定为14字节。数据的长度最短为46字节,最长为1500字节,以太网尾部的长度固定4字节,因此整个帧最短为64字节,最长1518字节,如果数据很长,就必须分割成多个帧进行发送。

    MAC地址

    上面提到了  以太网数据帧的首部  包含了发送者和接收者的信息,那么发送者和接收者是如何标识的

    以数据链路层实际上由两个独立的部分组成   介质存取控制和逻辑链路控制层。MAC 描述在共享, 介质环境中如何进行站的调度、发生和接收数据。MAC 确保信息跨链路的可靠传输,对数据传输进行同步,识别错误和控制数据的流向。一般地讲,MAC 只在共享介质环境中才是重要的,只有在共享介质环境中多个节点才能连接到同一 传输介质上。IEEE MAC 规则定义了地址,也就是 MAC 地址,以标识数据链路层中的多个设备,因此链路层也叫“MAC 层”。

    每块网卡出厂的时候,都有一个全世界独一无二的 MAC 地址,长度是 48 个二进制位,通常用 12 个十六进制数表示。

    前 6 个十六进制数是厂商编号,后 6 个是该厂商的网卡流水号。有了 MAC 地址,就可以定位网卡和数据包的路径了。

    广播

    定义地址只是第一步, 那么一块网卡怎么会知道另一块网卡的 MAC 地址? ARP 协议可以解决这个问题。这个留到后面介绍,这里只需要知道,以太网数据帧必须知道接收方的 MAC 地址,然后才能发送。 其次,就算有了 MAC 地址,系统怎样才能把数据帧准确送到接收方?

    其实,以太网采用了一种很“原始”的方式,它不是把数据帧准确送到接收 方,而是向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方。 它们读取这个帧的“首部”,找到接收方的 MAC 地址,然后与自身的 MAC 地址相比较,如果两者相同,就接受这个帧,做进一步处理,否则就丢弃这一帧。这种发送方式就叫做“广播”(broadcasting)。 有了数据帧的定义、网卡的 MAC 地址、广播的发送方式,“链路层”就可以 在多台计算机之间传送数据了。

    网络层

    网络层负责在源和终点之间建立连接。它一般包括网络寻径,还可能包括流量控制、错误检查等。相同 MAC 标准的不同网段之间的数据传输一般只涉及到数据链路层,而不同的 MAC 标准之间的数据传输都涉及到网络层。例如 IP 路由器工作在网络层,因而可以实现多种网络间的互联。

    规定网络地址的协议,叫做 IP 协议。它所定义的地址,就被称为 IP 地址。 目前,广泛采用的是 IP 协议第四版,简称 IPv4。这个版本规定,网络地址由 32 个二进制位组成。

    习惯上,我们用分成四段的十进制数表示 IP 地址,从 0.0.0.0 一直到 255.255.255.255。 互联网上的每一台计算机,都会分配到一个 IP 地址。这个地址分成两个部 分,前一部分代表网络,后一部分代表主机。比如,IP 地址 172.16.254.1,这 是一个 32 位的地址,假定它的网络部分是前 24 位(172.16.254),那么主机部分就是后 8 位(最后的那个 1)。处于同一个子网络的电脑,它们 IP 地址的网络部分必定是相同的,也就是说 172.16.254.2 应该与 172.16.254.1 处在同一个子网络。

    根据 IP 协议发送的数据,就叫做 IP 数据报。不难想象,其中必定包括 IP 地址信息。 但是前面说过,以太网数据帧只包含 MAC 地址,并没有 IP 地址的信息。那么是否需要修改数据定义,再添加 IP 地址信息呢? 答案是不需要,我们可以把 IP 数据报直接放进以太网数据帧的“数据”部分, 因此完全不用修改以太网的规格。这就是互联网分层结构的好处:上层的变动完全不涉及下层的结构。 具体来说,IP 数据报分为“标头”和“数据”两个部分。

    “标头”部分主要包括版本、长度、IP 地址等信息,“数据”部分则是 IP 数据报的具体内容。 IP 数据报的“标头”部分长度为 20 到 60 字节,整个数据报的总长度最大为 65,535 字节。因此理论上,一个 IP 数据报的“数据”部分,最长为 65,515 字 节。前面说过,以太网数据帧的“数据”部分,最长只有 1500 字节。因此,如 果 IP 数据报超过了 1500 字节,它就需要分割成几个以太网数据帧,分开发送了。

    传输层

    传输层向高层提供可靠的端到端的网络数据流服务。传输层的功能一般包括流控、多路传输、虚电路管理及差错校验和恢复。流控管理设备之间的数据传输, 确保传输设备不发送比接收设备处理能力大的数据;多路传输使得多个应用程序的数据可以传输到一个物理链路上;虚电路由传输层建立、维护和终止;差错校验包括为检测传输错误而建立的各种不同结构;而差错恢复包括所采取的行动 (如请求数据重发),以便解决发生的任何错误

    udp协议

    我们必须在数据包中加入端口信息,这就需要新的协议。最简单的实现叫做 UDP 协议,UDP 数据段也是由“标头”和“数据”两部分组成。

    “标头”部分主要定义了发出端口和接收端口,“数据”部分就是具体的内 容。然后,把整个 UDP 数据段放入 IP 数据报的“数据”部分,而 IP 数据报又是放在以太网数据帧之中的。 UDP 数据段非常简单,“标头”部分一共只有 8 个字节,总长度不超过 65,535 字节,正好放进一个 IP 数据报。

    TCP协议

    为了提高网络可靠性,诞生了 TCP 协议。这个协议非常复杂,但可以近似认为,它就是有确认机制的 UDP 协议,每发出一个数据都要求确认。如果有一个数据遗失,就收不到确认,发出方就知道有必要重发这个数据了。 TCP 协议能够确保数据不会遗失,缺点是过程复杂、实现困难、消耗较多的资源。TCP 数据段和 UDP 数据段一样,都是内嵌在 IP 数据报的“数据”部分。 TCP 数据段没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常 TCP 数据段的长度不会超过 IP 数据报的长度,以确保单个 TCP 数据段不必再分割。

    应用层

    应用层是最接近终端用户的第一层,这就意味着应用层和用户之间是通过应用软件直接相互作用的。注意,应用层并非由计算机上运行的实际应用软件组成,而是由向应用程序提供访问网络资源的API(应用程序接口)组成,应用层的功能一般包括标识通信伙伴,应用层必须为传输层数据的应用子程序定义通信伙伴的标识和可用性。定义资源可用性时,应用层为了请求通信而必须判定是否有足够的网络资源,在同步通信中,所有应用程序之间的通信都需要应用层的协同操作。

    应用程序收到“传输层”的数据,接下来就要进行解读。由于互联网是开放 架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。“应用层” 的作用,就是规定应用程序的数据格式。 应用层的 HTTP(超文本传输)协议、DNS(域名解析)协议、FTP(文件传送)协议、SMTP(简单邮件管理)协议等。

    举例来说,TCP 协议可以为各种各样的程序传递数据,比如发 Email 用的 SMTP(简单邮件管理)协议、网上冲浪用到的 HTTP(超文本传输)协议、下载资料用到的 FTP(文件传送)协议等等,这些应用程序协议就构成了“应用层”。 这是最高的一层,直接面对用户。它的数据就放在 TCP 数据段的“数据”部 分。因此,现在的以太网的数据帧就变成下图这样。

    至此,整个以太网的五层结构就介绍完毕。包括计算机和单片机在内的任何设备需要联网,就必须搭建这五层物理连接以及处理层内和层与层之间的 TCP/IP 协议方能实现网络应用。

    以太网的接入方案

    以太网的五层结构模型及各层所要实现的功能,按 照这一模型诞生出了各式各样的单片机网络连接方案来满足客户的不同要求。单片机的种类繁多,从低端到高端,有以 51 单片机为代表的 8 位单片机和以 ARM 为代表的 32 位单片机,不同档次的单片机实现网络接口的方法不同。对于像 ARM 等高端处理器一般都可以运行嵌入式操作系统,例如嵌入式 Linux。对于无操作系 统要求的单片机如何实现网络接入,我下面将这些方案按 TCP/IP 协议栈的不同归 结为两大类:第一类是传统的软件TCP/IP协议栈方案;第二类是最新的硬件TCP/IP 协议栈方案。下面我就这两类方案的实现方式进行分析。

    MAC + PHY方案

    所谓的 TCP/IP 协议栈是一系列网络协议的统称,不仅包括我们熟知的 TCP 协 议和 IP 协议,还有网络层的 ICMP(Internet 控制报文)协议、IGMP(Internet 组 管理)协议、ARP(地址解析)协议,传输层的 UDP(用户数据包)协议,应用层 的 HTTP(超文本传输)协议、DNS(域名解析)协议、FTP(文件传送)协议、 SMTP(简单邮件管理)协议等等。

    传统的以太网接入方案如下图,由 MCU+MAC+PHY 再加入网络接口实现以太网的物理连接,通过在主控芯片中植入 TCP/IP 协议代码实现通信及上层应用。

    应用这种软件TCP/IP。由于软件协议栈操作需要主控 MCU 不断地响应中断,这在很大程度上占用了 MCU 的运算/时钟资源。经过测试发现,单线程操作的情况下,MCU 的运行速度和数据的处理速度仅能满足需要,但随着线程增多,MCU 的工作效率直线下降,会 严重影响通信质量。

    代码量方面,即便是采用轻量级的 TCP/IP 协议栈 LWIP 协议,也会为主控芯 片带来超过 40KB 的代码量,这对于本身内存资源匮乏的单片机来说负荷过重。

    再从安全性的角度,设备并入互联网之后必须考虑网络安全问题,这种软件协 议栈的方式系统一旦受到复杂的恶意攻击,单片机很有可能瘫痪掉,这对系统就 是致命性打击,虽然目前网络技术不断发展,各类新的加密技术试图让通信变得 更加安全,但是还会出现各种各样的漏洞。

    硬件协议栈芯片方案

    硬件协议栈芯片方案如下图所示。由 MCU+硬件协议栈芯片(内含 MAC和 PHY) 直接加网络接口,便可方便的实现单片机联网,所有的处理 TCP/IP 协议的工作都 是通过这位 MCU 的“小秘书”——硬件协议栈芯片来完成。

    所谓硬件协议栈是指通过将传统的软件 TCP/IP 协议栈用硬件化的逻辑门电路 来实现,如下图所示。

    以太网芯片的内核由传输层的 TCP、UDP、ICMP、IGMP 等协议、网络层的 IP、 ARP、PPPoE 等协议以及链路层的 MAC 构成,再加上物理层的 PHY 和外围的寄存 器、内存、SPI 接口组成了这一整套硬件化的以太网解决方案。

    这套硬件 TCP/IP 协议栈代替了以往的 MCU 来处理这些中断请求,即 MCU 只 需要处理面向用户的应用层数据即可,传输层、网络层、链路层及物理层全部由 外围 WIZnet 的芯片完成。这套方案从硬件开销和软件开发两个方面来简化前面所 述的五层网络模型,简化产品开发方案。这样一来,工程师们就不必再面对繁琐 的通信协议代码,只需要了解简单的寄存器功能以及 Socket 编程便能完成产品开 发工作的的网络功能开发部分。

    由于硬件协议栈的加入协助单片机处理了几乎所有的 TCP/IP 协议工作,不仅 极大地减少了单片机的中断次数,让单片机腾出更多资源去完成其他工作,而且 硬件化的电路处理协议会更加快速、稳定。经试验测试,单线程下,该方案的通 信速度是软件协议方案的 10 倍左右;随着线程的增加,因为硬件协议栈是通过独 立的 Socket 进行通信,因而通信速度实现累加,而且单片机工作效率仍然会维持 在高位。

    代码量方面,因为这套方案主要是完成对 Socket 的编程以及寄存器的调用, 因此仅有 10K 左右的代码量,远小于软件协议方案,对 51 以及 STM32 等内存很 有限的单片机来说非常适用。

    从成本角度来讲,硬件协议栈芯片的价格跟用 MAC+PHY 比起来基本差不多。 而前者简单易用,用很短时间便能完成产品的开发过程。另外,官方例程库及上 位机程序丰富,也缩短了测试过程,后期基本免于维护。

    最后安全性方面,硬件化的逻辑门电路来处理 TCP/IP 协议是不可攻击的,也 就是说网络攻击和病毒对它无效,这也充分弥补了网络协议安全性不足的短板。 也正是因为这一优势,硬件协议栈技术在未来物联网以及智能家居领域有着广泛 的发展前景,让人们尽情享受现代科技带来的乐趣的同时,免受安全问题的困扰。

    当然,不可避免的硬件化的协议栈相对来说失去了软件协议栈那样的灵活性。 目前只支持 4 个/8 个 Socket,不能随时开启更多 Socket。但是,在嵌入式应用中 8 个 Socket 已经足够应对超过大部分的应用。

    展开全文
  • 对于OSI七层协议模型,进行区别,从下往上以此是: 各层功能 物理层 简单的说,物理层(Physical Layer)确保原始的数据可在各种物理媒体上传输。在这一层上面规定了激活、维持、关闭通信端点之间的机械特性、...

    对于OSI七层协议模型,进行区别,从下往上以此是:

    各层功能

    • 物理层 
      简单的说,物理层(Physical Layer)确保原始的数据可在各种物理媒体上传输。在这一层上面规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性,为上层协议提供了一个传输数据的物理媒体。这一层传输的是bit流。

    机械性能:接口的型状,尺寸的大小,引脚的数目和排列方式等。

    电气性能:接口规定信号的电压、电流、阻抗、波形、速率及平衡特性等。

     工程规范:接口引脚的意义、特性、标准。

     工作方式:确定数据位流的传输方式,如:单工、半双工或全双工。

     物理层协议有:

     美国电子工业协会(EIA)的RS232,RS422,RS423,RS485等;

     国际电报电话咨询委员会(CCITT)的X.25、X.21等;

     物理层的数据单位是位(BIT),典型设备是 集线器HUB 。

    这层主要和硬件有关,与软件关系不大。

    主要功能:RJ45等将数据转化成0和1;

     

    • 数据链路层 
      数据链路层(Data Link Layer)在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。这一层中将bit流封装成frame帧。

     链路层屏蔽传输介质的物理特征,使数据可靠传送。

     内容包括介质访问控制、连接控制、顺序控制、流量控制、差错控制和仲裁协议等。

     链路层协议有:

     协议有面向字符的通讯协议(PPP)和面向位的通讯协议(HDLC)。

     仲裁协议:802.3、802.4、802.5,即:

     CSMA/CD(Carrier Sense Multiple Access with Collision Detection)、Token Bus、Token Ring

     链路层数据单位是帧,实现对MAC地址的访问,典型设备是交换机Switch。

    主要功能:规定了0和1的分包形式,确定了网络数据包的形式;

    • 网络层 
      网络层(Network Layer)负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。

    网络层管理连接方式和路由选择。

    连接方式:虚电路(Virtual Circuits)和数据报(Datagram)服务。

    虚电路是面向连接的(Connection-Oriented),数据通讯一次路由,通过会话建立的一条通路。

    数据报是非连接的(Connectionless-Oriented),每个数据报都有路由能力。

    网络层的数据单位是包,使用的是IP地址,典型设备是路由器Router。

    这一层可以进行流量控制,但流量控制更多的是使用第二层或第四层。

    主要功能:确定计算机的位置,怎么确定?IPv4,IPv6!

     

    • 传输层 
      传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。在这一层,数据的单位称为数据段(segment)。

    提供端到端的服务。可以实现流量控制、负载均衡。

     传输层信息包含端口、控制字和校验和。

     传输层协议主要是TCP和UDP。

     传输层位于OSI的第四层,这层使用的设备是主机本身。

    主要功能:每一个应用程序都会在网卡注册一个端口号,该层就是端口与端口的通信!常用的(TCP/IP)协议;

    • 会话层 
      这一层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步,访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。使通信会话在通信失效时从校验点继续恢复通信。

     会话层主要内容是通过会话进行身份验证、会话管理和确定通讯方式。

     一旦建立连接,会话层的任务就是管理会话。

    主要功能:建立一个连接(自动的手机信息、自动的网络寻址);

    • 表示层 
      这一层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。

    表示层主要是解释通讯数据的意义,如代码转换、格式变换等,使不同的终端可以表示。

     还包括加密与解密、压缩与解压缩等。

    主要功能:解决不同系统之间的通信,eg:Linux下的QQ和Windows下的QQ可以通信;

    • 应用层 
      这一层为操作系统或网络应用程序提供访问网络服务的接口。

     应用层应该是直接面向用户的程序或服务,包括系统程序和用户程序,

     例如www、FTP、DNS、POP3和SMTP等都是应用层服务。

     数据在发送时是数据从应用层至物理层的一个打包的过程,
     接收时是数据从物理层至应用层的一个解包的过程,
     从功能角度可分为三组,1、2层解决网络信道问题,3、4层解决传输问题,5、6、7层处理对应用进程的访问。
     从控制角度可分为二组,第1、2、3层是通信子网层,第4、5、6、7层是主机控制层。

    现场总线通信

    对于工业现场总线技术,一般只取三层,分别是物理层,链路层和应用层,是比较简单的,因为工业数据需要稳定可靠。如下表格可以做出比较详细的说明和比较:

    通信数据包一般做如下封装:

     

     

     

    展开全文
  • u-boot 2016.7之以太网驱动模型

    千次阅读 2017-05-18 14:42:11
    u-boot 2016.7引入了设备树(device tree) 和 驱动模型...具体细节建议参考./doc/driver-model/README.txt。对于u-boot2016.7的网络驱动,也属于DM应用的一个范例,此篇着重介绍u-boot2016.7的DM 模型及网络驱动模型

            u-boot 2016.7引入了设备树(device tree) 和 驱动模型DM(driver model),这为设备的驱动的定义和访问

    接口提供了统一的方法,提高了驱动之间的兼容性和可移植性。具体建议参考/doc/driver-model/README.txt。

    对于u-boot2016.7的以太网络驱动,也属于DM应用的一个范例,此篇着重介绍u-boot2016.7的DM 模型及网络驱动

    模型的细节,关于设备树(device tree)的相关细节,在后续篇章中进行介绍。

     1、使能DM功能

           在配置u-boot时,使能DM功能,即在/configs/xxx_defconfig中定义了:CONFIG_DM=y;

           在配置u-boot时,使能网络设备的DM功能,即在/configs/xxx_defconfig中定义了:CONFIG_DM_NET=y;

         

    2、DM整体框架

          DM 主要有udevice、dirver、uclass、uclass_dirver四部分组成,其中:

          udevice:是指设备对象,类似可以理解为kernel中的device。

          dirver:是udevice的驱动,和底层硬件设备通信,并且为上层提供设备操作接口。

          uclass:使用相同方式的操作集的device的组。相当于是一种抽象。uclass为使用相同接口的设备提供了统一

                      的接口。

          uclass_dirver:对应uclass的驱动程序。主要提供uclass操作时,如bind和probe  udevice时的一些操作。

     

      其调用关系见图1:

     

                                                       图1

    3、数据结构和dirver声名

          DM 主要有udevice、dirver、uclass、uclass_dirver四部分组成,相应与之对应的有四个数据结构

          struct udevice、struct dirver、struct uclass、struct uclass_dirver。

          对于dirver和uclass_dirver的声明,u-boot提供了:

      U_BOOT_DRIVER(xxx_gmac) = {
        .name    = "xxx_gmac",
        .id    = UCLASS_ETH,
        .of_match = xxx_gmac_ids,
        .ofdata_to_platdata = xxx_gmac_ofdata_to_platdata,
        .probe    = xxx_gmac_probe,
        .remove    = xxxgemac_remove,
        .ops    = &xxx_gmac_ops,
        .priv_auto_alloc_size = sizeof(struct xxx_priv),
        .platdata_auto_alloc_size = sizeof(struct eth_pdata),
      };

      和

      UCLASS_DRIVER(eth) = {
        .name        = "eth",
        .id        = UCLASS_ETH,
        .post_bind    = eth_post_bind,
        .pre_unbind    = eth_pre_unbind,
        .post_probe    = eth_post_probe,
        .pre_remove    = eth_pre_remove,
        .priv_auto_alloc_size = sizeof(struct eth_uclass_priv),
        .per_device_auto_alloc_size = sizeof(struct eth_device_priv),
        .flags        = DM_UC_FLAG_SEQ_ALIAS,
      };


    4、u-boot 2016.7网络驱动模型

          一般以太网的硬件原理框图见图2:

         

                                   图2

         以太网的网络驱动模型是DM模型的具体体现,其模型框图见图3:

       

                               图3

    4、u-boot 2016.7网络初始化流程

          u-boot 2016.7的网络初始化流程见图4:

         

                                                                       图4

         其中xxx_gmac.c和xxx_phy_device.c是硬件平台相关的文件,xxx_gmac.c提供了gmac的对gmac的初始化和

         对gmac的操作接口及对phy芯片的配置,xxx_phy_device.c提供phy芯片的操作接口及向u-boot注册phy设备。

         当把u-boot移植到新平台或新的板级平台时,若u-boot中没有集成相应的mac控制器驱动或phy芯片驱动时,

         需手动完成xxx_gmac.c和xxx_phy_device.c并添加。

    展开全文
  • OSI参考模型与TCP/IP参考模型

    千次阅读 2019-09-07 16:23:06
    OSI参考模型 1、应用层 OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。 直接针对用户的需要 2、...
  • OSI参考模型 国际标准化组织(ISO)提出的网络体系结构模型,称为开放系统互连参考模型(OSI/RM).OSI有7层,自下而上依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。低三层统称为通信子网,它是...
  • 计算机网络参考模型解读

    千次阅读 2020-06-26 09:26:24
    目录计算机网络参考模型OSI参考模型TCP/IP参考模型数据传输过程 OSI参考模型 OSI参考模型是一个开放式体系结构,它规定将网络分为七层,从下往上依次是物理层,数据链路层,网络层,传输层,会话层,表示层和应用层...
  • OSI参考模型及各分层作用

    千次阅读 2018-04-05 16:36:07
    OSI参考模型及各分层作用 ISO国际标准化组织定制了国际标准OSI(Open Systems Interconnection,开放式通信互联参考模型),对通信系统进行了标准化。现在,OSI所定义的协议虽然并没有得到普及,但是在OSI协议...
  • 目录 一、简介 二、相关概念 三、名词解释 ...四、网络参考模型 4.1、OSI参考模型 4.2、TCP/IP模型 4.3、OSI与TCP/IP模型比较 【扩展资料】 一、简介 互联网协议(Internet Protocol S...
  • Internet参考模型 Internet参考模型又称TCP/IP参考模型,该模型中有两个核心协议:TCP和IP。 1、子网层 子网层大体上对应OSI的物理层和数据链路层。Internet体系结构的子网层是开放的。 子网协议有:以太网协议;...
  • TCP/IP四层参考模型1.OSI七层参考模型2.TCP/IP四层或五层参考模型三.网络数据传输基本流程1.网络传输流程图2.数据的封装和分用3.初识IP地址和MAC地址3.1 IP地址3.2 MAC地址3.3 数据传输过程IP地址...
  •  今天我们先学习一下以太网最基本也是重要的知识——OSI参考模型。  1、OSI的来源  OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究...
  • OSI七层参考模型

    2019-10-25 15:36:40
    OSI七层参考模型:由ISO组织提出的OSI七层模型。 最开始的网络厂商是不兼容的,不能直接对接,为了促进各厂商的融合,ISO组织提出了OSI(Open System Interconnection,OSI)七层模型 OSI七层就是定义了数据在传输...
  • 比如现在以太网通用的网线(双绞线)、早期以太网采用的是同轴电缆(现在主要用于有线电视)、光纤,现在的WiFi无线网使用电磁波都属于物理层的概念;物理层的能力决定了最大传输速率、传输距离、抗...
  • OSI参考模型简介

    千次阅读 2016-10-23 11:28:11
    OSI(Open System Interconnect)参考模型最初是在1983年由国际标准化组织出版的,它只是一个行业建议标准,协议开发者并不需要严格地遵守它 OSI模型将网络通信过程分为7个不同的层次,由高到低分别为:应用层、...
  • 原文链接:...   OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。...
  • 网络结构参考模型

    2014-12-23 05:42:01
    OSI参考模型  OSI是Open SystemInterconnect的缩写,意为开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。该体系结构标准定义了网络互连的七层框架(物理层、...
  • OSI模型参考

    千次阅读 2018-12-17 12:16:04
     今天我们先学习一下以太网最基本也是重要的知识——OSI参考模型。  1、OSI的来源  OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的...
  • 因特网5层模型及7层OSI参考模型

    千次阅读 2019-12-20 21:01:55
    文章目录因特网5层模型及7层OSI参考模型分层的体系结构:应用层(软件)运输层(软件)网络层(硬件软件混合)链路层(硬件)物理层(硬件)OSI模型表示层会话层封装 因特网5层模型及7层OSI参考模型 在因特网中,...
  • TCP/IP 的四层模型和 OIS参考模型详解

    千次阅读 2016-10-20 19:04:41
     TCP/IP四层模型 TCP/IP参考模型    ISO制定的OSI参考模型的过于...如图2-1所示,是TCP/IP参考模型和OSI参考模型的对比示意图。  图2-1 TCP/IP参考模型  2.1 TCP/IP参考模型的层次结构  TCP/I
  • 国际标准化组织(International Standard Organization,ISO)于1984年颁布了开放系统互连(Open System Interconnection,OSI)参考模型  OSI参考模型是一个开放式体系结构,它规定将网络分为七层,从下往上依次...
  • OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。  完成中继功能的节点通常称为中继系统。在OSI七层模型中,处于不同层...
  • OSI(参考模型)讲通信功能划分为7个分层,称作OSI参考模型。OSI协议以OSI参考模型为基础界定了每个阶层的协议和每个阶层之间接口相关的标准。遵循OSI协议的产品叫做OSI产品,而它们所遵循的通信则被称为OSI通信。 ....
  • 网络通信参考模型 (将网络设备传输数据这个事情分成了几个步骤) 将复杂的流程分解、更容易发现并针对性的解决问题 测试网络通信的命令ping 1、OSI参考模型 ISO国际组织1984年颁布了开放系统互连open system ...
  • OSI参考模型和TCP/IP模型

    千次阅读 2018-08-01 09:48:07
    OSI参考模型 分层结构优点 开放的标准化接口 多厂商兼容 易于理解学习和更新协议标准 模块化过程,降低开发实现复杂度 便于故障排除   物理层 定义电压,接口,线缆标准,传输距离等 ◆介质 一双绞线、...
  • OSI七层参考模型1.1:OSI七层参考模型1.2:TCP/IP协议簇的组成1.3:数据封装过程1.4 设备与层的对应关系二:信号2.1:信号概述2.2:双绞线三:光纤概述3.1:光纤概述3.2:光纤分类四:接口4.1:以太网接口4.2:光纤...
  • TCP/IP参考模型的详解

    千次阅读 2015-06-27 10:10:18
    TCP/IP参考模型    ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用。如图2-1所示,是TCP/IP参考模型和OSI参考模型的对比示意图。  ...
  • OSI参考模型1. 了解OSI参考模型a) OSI的概念b) OSI模型的目的c) OSI模型分为七层用户层面网络层面2. 理解OSI参考模型各层级作用 a) 应用层  b) 表示层 c) 会话层 d) 网络层(IP) e) 数据链路层(MAC) f) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,539
精华内容 8,615
关键字:

以太网参考模型