精华内容
下载资源
问答
  • 2021-03-30 15:17:35

    返回总目录

    下一篇

    1、介绍

    TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式。TCP/IP是一组协议的代名词,包括许多别的协议,组成了TCP/IP协议簇。其中比较重要的有SLIP协议、PPP协议、IP协议、ICMP协议、ARP协议、TCP协议、UDP协议、FTP协议、DNS协议、SMTP协议等。

    基于 TCP/IP 的参考模型,可以将协议分成 4 个层次,从上到下分别为应用层、传输层、网际层和网络访问层,如下图所示。分层以后,层中的协议只负责该层的数据处理。

     

    TCP/IP 参考模型每层的作用
    层次 说明
    应用层 为应用程序提供服务并规定应用程序中相关的通信细节。
    传输层 为两台主机上的应用程序提供端到端的通信,提供流量控制、错误控制和确认服务。
    网际层
    更多相关内容
  • 以太网模型以及以太网的接入方案

    千次阅读 2019-08-30 10:18:31
    以太网的实现采用层次结构的概念,每一层都有自己的功能,就像建筑物一样,每一...以太网模型有不同的分层方式,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 已经足够应对超过大部分的应用。

    展开全文
  • (掌握分层模型作用、数据帧结构、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等)进行后续处理。
    展开全文
  • OSI 参考模型介绍

    千次阅读 2021-07-10 08:33:15
    OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型 ,是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了 7 层。每一层都有相关、相对应的物理设备,比如路由器,交换机...

    OSIOpen System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型 ,是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了 7 层。每一层都有相关、相对应的物理设备,比如路由器,交换机。

    在这里插入图片描述
    上图来源:https://www.cnblogs.com/qishui/p/5428938.html

    OSI 分层 (7 层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
    TCP/IP 分层(4 层):网络接口层、 网际层、运输层、 应用层。
    TCP/IP五层协议 (5 层):物理层、数据链路层、网络层、运输层、 应用层。

    每一层的作用如下:

    • 物理层:通过媒介传输比特,确定机械及电气规范,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流,这一层的数据叫做比特bit
    • 数据链路层:将比特组合成字节,再将字节组成,使用链路层地址(以太网mac地址)来访问介质,并进行差错检测CRC校验)。数据链路层又分为2个子层:逻辑链路控制子层(LLC)和媒体访问控制子层(MAC)。将比特组装成帧和点到点的传递。这一层的数据叫做Frame
    • 网络层:本层通过IP寻址来建立两点之间的连接,为源端的传输层来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。这一层的数据叫做Package
    • 传输层:传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。提供端到端的可靠报文传递和错误恢复能力,这里端口号即是这里的“端”,通常说的TCP UDP就是在这层。这一层的数据叫做Segment
    • 会话层:建立、管理和终止会话(会话协议数据单元 SPDU
    • 表示层:对数据进行翻译、加密和压缩(表示协议数据单元 PPDU
    • 应用层:允许访问 OSI 环境的手段(应用协议数据单元 APDU

    1. 模型优点

    OSI 七层模型是一种框架性的设计方法 ,建立七层模型的主要目的为解决异构网络互连时所遇到的兼容性问题,其最主要的功能使就是帮助不同类型的主机实现数据传输。
    它的最大优点
    将服务、接口和协议这三个概念明确地区分开来,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

    服务说明某一层为上一层提供一些什么功能,接口说明上一层如何使用下层的服务,而协议涉及如何实现本层的服务;这样各层之间具有很强的独立性,互连网络中各实体采用什么样的协议是没有限制的,只要向上提供相同的服务并且不改变相邻层的接口就可以了。

    网络七层的划分也是为了使网络的不同功能模块分担起不同的职责,从而带来如下好处:

    • 减轻问题的复杂程度,一旦网络发生故障,可迅速可迅速定位故障所处层次,便于查找和纠错;
    • 在各层分别定义标准接口,使具备相同对等层的不同网络设备能实现互操作,各层之间则相对独立,一种高层协议可放在多种低层协议上运行;
    • 能有效刺激网络技术革新,因为每次更新都可以在小范围内进行,不需对整个网络动大手术;
    • 便于研究和教学;

    2. 每一层的协议

    物理层:RJ45IEEE802.3 (中继器,集线器)
    数据链路:PPPHDLCVLANMAC (网桥,交换机)
    网络层:IPICMPARPRARPOSPFRIP(路由器)
    传输层:TCPUDP
    会话层:NFSSQLRPC
    表示层:JPEGMPEG
    应用层:FTPDNSTelnetSMTPHTTPWWW

    3. OSI 和 TCP/IP的区别

    这里以四层为例

    在这里插入图片描述

    3.1 区别和联系

    • OSI模型有7层,TCP/IP只有4或者5层。
    • TCP/IP 模型对“服务”,“协议”和“接口”等概念没有很清楚的区分开。
    • OSI先于协议出现,因此不会偏向于任何一组特定的协议,通用性更强,但有些功能不知该放哪一层上,因此不得不加入一些子层。
    • TCP/IP 模型的通用性比较差。在技术发生变化时,OSI模型比TCP/IP模型中的协议更容易被替换。
    • 无线连接服务的支持标准不同,TCP/IP 一开始就对面对连接服务和无连接服务并重,而OSI 在开始的时只强调面向连接这一种服务。一直到很晚 OSI 才开始制定另一种无连接服务的有关标准。
    • 都是计算机通信的国际标准,OSI 原则上是国际通用,TCP/IP 是当前工业界使用最多。
    • 两者都可以解决异构网的互连,实现世界上不同厂家生产的计算机之间的通信。
    • 各协议层次的功能大体上相似,都存在网络层,传输层和应用层。
    • 都是采用协议分层的方法,将庞大且复杂的问题划分为若干个较为容易处理的范围较小的问题。

    Thanks

    展开全文
  • 计算机网络——习题整理(五)

    千次阅读 2021-03-20 14:42:16
    今天是数据链路层~ 上期传送门 数据链路层 为了避免传输过程中帧的丢失,数据链路层采用的方法是() ... 无连接无确认(更快,一般以太网LAN采用); 下列协议,()不是链路层的标准 A.ICMP B.HDLC C
  • 今天我们先学习一下以太网最基本也是重要的知识——OSI 参考模型。 OSI 的来源 OSI(Open System Interconnect),即开放式系统互联。 一般都叫 OSI 参考模型,是 ISO(国际标准化组织)组织在 1985 年研究的网络...
  • 1.OSI参考模型 1.1 OSI参考模型简介 OSI(Open System Interconnect),即开放式系统互连。 一般都叫OSI参考模型,是ISO组织在1985年研究的网络互连模型。该体系结构标准定义了网络互连的七层框架(物理层、数据链路...
  • 数据链路层,以太网和物理层 概观 在前面的章节中,我们了解了应用层和传输层端口通信,我们还研究了用于远程传输...数据链路层是OSI模型中的第二层。其功能是主要准备数据包以通过物理媒体传输。它还用于控制将...
  • OSI(网络)参考模型

    千次阅读 2022-04-13 14:03:00
    (网络)参考模型 前言 1:OSI参考模型 2:分层结构 3:TUP/IP协议 4:数据封装与解封封装 一、1:参考模型 OSI参考模型: 国际标准化组织(ISO) 1984年颁布了开放系统互连(OSI)参考模型 一个开放式体系结构,将网络...
  • 数通技术-网络参考模型

    千次阅读 2021-12-20 19:27:16
    OSI七层模型 应用层 对应用程序提供服务 表示层 进行数据格式的转换,以确保一个系统生成的应 用层能够被另一个系统的应用层所识别和理解 会话层 在通信双方之间的建立、管理和终止会话 ...
  • OSI参考模型以及各层对应协议

    千次阅读 2021-09-29 20:57:20
    前言:国际标准化组织(International Standard Oranization,ISO)于1984年颁布了开放系统互联(Open System Interconnection,OSI)参考模型。OSI参考模型是一个开放式体系结构,它规定将网络分成七层。
  • 目录 一、简介 二、相关概念 三、名词解释 ...四、网络参考模型 4.1、OSI参考模型 4.2、TCP/IP模型 4.3、OSI与TCP/IP模型比较 【扩展资料】 一、简介 互联网协议(Internet Protocol S...
  • OSI参考模型之数据链路层数据链路层数据链路层设备:网卡、交换机数据链路层包含的MAC子层和LLC子层交换机工作原理 数据链路层 数据链路层设备:网卡、交换机 因为OSI参考模型在现实中没有与之对应的设备。所以一般...
  • TCP/IP网络参考模型总结

    千次阅读 2019-09-03 11:26:04
    TCP/IP是一组通信协议的代名词,这组协议使用任何具有网络设备的用户能访问和共享Internet上的信息,其中重要的协议族是传输控制协议... 目前还没有按OSI实现的网络产品,OSI仅作为理论的参考模型被广泛使用  
  •  今天我们先学习一下以太网最基本也是重要的知识——OSI参考模型。  1、OSI的来源  OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究...
  • TCP/IP 参考模型

    千次阅读 2020-04-03 01:07:45
    TCP/IP 参考模型TCP/IP 参考模型概述:TCP/IP 的四层协议:应用层:传输层:网络层:网络接口层: TCP/IP 参考模型概述: TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型。ARPANET是由美国...
  • ISO/OSI参考模型和TCP/IP参考模型

    千次阅读 2019-08-24 15:25:02
    OSI参考模型 国际标准化组织(ISO)提出的网络体系结构模型,称为开放系统互连参考模型(OSI/RM).OSI有7层,自下而上依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。低三层统称为通信子网,它是...
  • 详细图解OSI参考模型

    千次阅读 2020-09-12 11:34:04
    开放系统互联参考模型 协议的分层 在这一模型中,每个分层都接收由它下一层所提供的特定服务,并且负责为自己的上一层提供特定的服务。上下层之间进行交互时所遵循的约定叫做“接口”。同一层之间的交互所遵循的...
  • 注:网络体系结构是分层的体系结构,学术派标准OSI参考模型有七层,而工业标准TCP/IP模型有四层。后者成为了事实上的标准,在介绍时通常分为5层来叙述但应注意TCP/IP模型实际上只有四层。 1、TCP/IP模型 (1)物理...
  • OSI参考模型与TCP/IP参考模型

    千次阅读 2019-09-07 16:23:06
    OSI参考模型 1、应用层 OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。 直接针对用户的需要 2、...
  • OSI七层参考模型

    2019-10-25 15:36:40
    OSI七层参考模型:由ISO组织提出的OSI七层模型。 最开始的网络厂商是不兼容的,不能直接对接,为了促进各厂商的融合,ISO组织提出了OSI(Open System Interconnection,OSI)七层模型 OSI七层就是定义了数据在传输...
  • OSI参考模型详解

    2018-12-06 18:03:15
    参考模型。这一模型将通信协议中必要的功能分成7层。通过这些分层,使得那些比较复杂的网络协议更加简单化。 在这一模型中,每个分层都接收由它下一层所提供的特定服务,并且负责为自己的上一层提供特定的服务。上下...
  • OSI 参考模型和TCP/IP模型图例2. 举例理解OSI参考模型2.1 案例12.2 案例23. OSI参考模型简介4. OSI参考模型的分层5. 对等通信6. 封装与解封装7. TCP/IP7.1 TCP/IP简介7.2 数据包7.3 传输层中的 TCP 和 UDP7.3.1 ...
  • 认识计算机网络参考模型

    千次阅读 2022-03-03 19:02:10
    文章目录前言一、OSI参考模型二、OSI与TCP/IP1.OSI与TCP/IP的关系2.OSI与TCP/IP的区别三、封装与解封1.封装2.解封四、协议总结
  • 原文链接:...   OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。...
  • 2.1.1 OSI七层参考模型 2.1.2 OSI七层工作原理 2.1.3 PDU 2.2 四层的介绍 2.2.1TCP/IP 参考模型 2.2.2 TCP/IP协议族的组成 2.2.3 数据封装和解封过程 2.2.4设备与层的对应关系及各层间通信 2.3OSI与TCP/IP的...
  • 简述网卡、集线器、交换机等在OSI参考模型的层次 一、网卡 网卡工作在数据链路层,网卡保存有明确的mac地址因此可以确认其属于数据链路层。 二、集线器 集线器工作于OSI参考模型的第一层物理层。 三、交换机 交换机...
  • 开放系统互连 (OSI) 参考模型是一个概念性框架,描述了独立于底层电信网络基础设施的功能。它将数据通信的过程分为七个抽象层,并将协议标准化为适当的网络功能组,以确保通信系统内的互操作性。 OSI 模型最初是为了...
  • 今天我们先学习一下以太网最基本也是重要的知识——OSI参考模型。 1、OSI的来源 OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络...
  • 比如现在以太网通用的网线(双绞线)、早期以太网采用的是同轴电缆(现在主要用于有线电视)、光纤,现在的WiFi无线网使用电磁波都属于物理层的概念;物理层的能力决定了最大传输速率、传输距离、抗...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,634
精华内容 9,853
关键字:

以太网参考模型