【STM32F407】第2章 嵌入式网络协议栈基础知识

最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=104619

第2章   嵌入式网络协议栈基础知识

本章教程为大家介绍嵌入式网络协议栈基础知识,本章先让大家有一个全面的认识,后面章节中会为大家逐一讲解用到的协议。

基础知识整理自百度百科,wiki百科等。

2.1 初学者重要提示

2.2 TCP/IP协议栈简介

2.3 TCP/IP参考模型

2.4 OSI参考模型

2.5 网络协议收录文件RFC

2.6 以太网和IEEE 802.3

2.7 网线相关知识

2.8 总结

 

 

2.1   初学者重要提示

1、  网络协议栈涉及到的知识点非常多,而且新的网络知识也是层出不穷。但是网络的基础知识还是非常有必要系统地学习一下,推荐书籍TCP/IP详解卷1,卷2和卷3。如果觉得书籍太厚,没有学习的动力,可以看卷1的前几章,有个框架上的认识,然后有什么不明白的知识点,网上搜索即可。现在网络方面的知识铺天盖地,学习也很方便,这里尤其推荐wiki百科,知识点汇总的非常全面,特别是给出的参考资料,都非常值得一读。

不过,还是推荐大家系统地学习一下,这样才能有纵览全局的感觉,对知识点的认识也全面。

2、  对于本章节讲解的TCP/IP参考模型有个了解即可,而以太网部分比较重要,希望大家可以多查阅相关资料进行学习。

2.2   TCP/IP协议栈简介

互联网协议族(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为TCP/IP协议族(TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP。

因为该协议家族的两个核心协议:TCP(传输控制协议)和IP(网际协议),为该家族中最早通过的标准。而且网络通讯协议普遍采用分层的结构,当多个层次的协议共同工作时,类似计算机科学中的堆栈,因此又被称为TCP/IP协议栈(TCP/IP Protocol Stack)。这些协议最早发源于美国国防部(缩写为DoD)的ARPA(Advanced Research Projects Agency Network,ARPANET)网项目,因此也被称作DoD模型(DoD Model)。这个协议由互联网工程任务组负责维护。

TCP/IP提供点对点的连接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。它将软件通信过程抽象化为四个抽象层,采取协议堆栈的方式,分别实现不同通信协议。协议组下的各种协议,依其功能不同,被分别归属到这四个层次结构之中,常被视为是简化的七层OSI模型。下面我们就分别讲解TCP/IP参考模型和OSI参考模型。

2.3   TCP/IP参考模型

TCP/IP参考模型是首先由ARPANET所使用的网络体系结构。这个体系结构在它的两个主要协议TCP和IP出现以后被称为TCP/IP参考模型。这一网络协议共分为四层:应用层,传输层,网络层和链路层。

  •   APRANET

ARPANET是由美国国防部(U.S.Department of Defense,DoD)赞助的研究网络。最初,它只连接了

美国境内的四所大学。随后的几年中,它通过租用的电话线连接了数百所大学和政府部门。最终

ARPANET发展成为全球规模最大的互连网络-因特网。最初的ARPANET于1990年永久性地关闭。

 

 1、 应用层(Application Layer)

应用层用于向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。每一个应用层协议一般都会使用到两个传输层协议之一: 面向连接的TCP传输控制协议和无连接的UDP用户数据报文协议。

运行在TCP协议上的高层协议:

  •   HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
  •   HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。
  •   FTP(File Transfer Protocol,文件传输协议),用于文件传输。
  •   POP3(Post Office Protocol, version 3,邮局协议),收邮件用。
  •   SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。
  •   TELNET(Teletype over the Network,网络电传),通过一个终端(terminal)登陆到网络。
  •   SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆。

运行在UDP协议上的高层协议:

  •   BOOTP(Boot Protocol,启动协议),应用于无盘设备。
  •   NTP(Network Time Protocol,网络时间协议),用于网络同步。
  •   DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。

其他:

  •   DNS(Domain Name Service,域名服务),用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上)。
  •   ECHO(Echo Protocol,应答协议),用于查错及测量应答时间(运行在TCP和UDP协议上)。
  •   SNMP(Simple Network Management Protocol,简单网络管理协议),用于网络信息的收集和网络管理。
  •   ARP(Address Resolution Protocol,地址解析协议),用于动态解析以太网硬件的地址。

2、  传输层(Tramsport Layer)

传输层的协议,能够解决诸如端到端的可靠性(数据是否已经到达目的地)和保证数据按照正确的顺序到达这样的问题。在这一层定义了两个端到端的协议。

  •   传输控制协议(TCP,Transmission Control Protocol)

TCP是面向连接的协议,它提供可靠的报文传输和对上层应用的连接服务。为此,除了基本的数据传输外,它还有可靠性保证、流量控制、多路复用、优先权和安全性控制等功能。

  •   用户数据报协议(UDP,User Datagram Protocol)

UDP是面向无连接的数据包的协议,它是一个不可靠协议,因为它不检查数据包是否已经到达目的地,并且不保证它们按顺序到达。如果一个应用程序需要这些特性,那它必须自行检测和判断,或者使用TCP协议。UDP的典型性应用是按时到达比可靠性更重要的场合,比如流媒体(音频和视频等)。

3、  网络层(Internet Layer)

网络层是整个体系结构的关键部分,其功能是使主机可以把分组发往任何网络,并使分组独立地传向目标。这些分组可能经由不同的网络,到达的顺序和发送的顺序也可能不同。高层如果需要顺序收发,那么就必须自行处理对分组的排序。网络层使用因特网协议(IP,Internet Protocol)。TCP/IP参考模型的网络层和OSI参考模型的网络层在功能上非常相似。

 4、 链路层(Network Access Layer)

链路层在TCP/IP参考模型中并没有详细描述,只是指出主机必须使用某种协议与网络相连。

2.4   OSI参考模型

开放系统互连参考模型 (Open System Interconnection Reference Model,简称OSI)是国际标准化组织ISO和国际电报电话咨询委员会CCITT联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

TCP/IP参考模式和OSI参考模型无法做到完全匹配,下面的图表显示了TCP/IP和其它的协议在OSI模型中的大致位置:

 

2.5   网络协议收录文件RFC

RFC(Request For Comments)是由互联网工程任务组IETF发布的一系列备忘录。文件收集了有关互联网的相关信息,以及UNIX和互联网社区的文件,并以编号排定。目前RFC文件是由互联网协会ISOC赞助发行。

RFC始于1969年,由斯蒂芬·克罗克用来记录有关ARPANET开发的非正式文档,最终演变为用来记录互联网规范、协议、过程等的标准文件。基本的互联网通信协议在RFC文件内都有详细说明。RFC文件还额外加入许多的论题在标准内,例如对于互联网新开发的协议及发展中所有的记录。

大家在学习中需要了解具体的网络协议,可以直接上官网:https://www.rfc-editor.org/ 搜索即可,这里将主要的几个协议地址罗列出来,方便参看。

 

2.6   以太网和IEEE 802.3

(以太网在TCP/IP参考模型中,属于链路层部分)

以太网Ethernet是一种计算机局域网技术,由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带局域网规范。以太网与IEEE802.3系列标准相类似,IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网是目前应用最普遍的局域网技术,取代了其他局域网标准,如令牌环、FDDI和ARCNET。

以太网的标准拓扑结构为总线型拓扑,但目前的快速以太网(100BASE-T标准)为了减少冲突,将能提高的网络速度和使用效率最大化,使用交换机(Switch hub)来进行网络连接和组织。如此一来,以太网的拓扑结构就成了星型,但在逻辑上,以太网仍然使用总线型拓扑和CSMA/CD(Carrier Sense Multiple Access/Collision Detection,即载波多重访问/碰撞侦测)的总线技术。

下面以速率的不同,为大家介绍标准以太网,快速以太网和千兆以太网。

2.6.1      标准以太网(10Mbsp)

早期以太网只有10Mbps的吞吐量时,使用的是带有冲突检测的载波侦听多路访问(CSMA/CD,Carrier Sense Multiple Access/Collision Detection)的访问控制方法。这种早期的10Mbps以太网称之为标准以太网,以太网可以使用粗同轴电缆、细同轴电缆、非屏蔽双绞线、屏蔽双绞线和光纤等多种传输介质进行连接。并且在IEEE 802.3标准中,为不同的传输介质制定了不同的物理层标准,在这些标准中前面的数字表示传输速度,单位是“Mbps”,最后的一个数字表示单段网线长度(基准单位是100米),Base表示“基带”的意思,Broad代表“宽带”。

  •   10BASE-5(又称粗缆(Thick Ethernet)或黄色电缆):最早实现10 Mbit/s以太网。早期IEEE标准,使用单根RG-11同轴电缆,最大距离为500米,并最多可以连接100台电脑的收发器,而缆线两端必须接上50欧姆的终端电阻。接收端通过所谓的“插入式分接头”插入电缆的内芯和屏蔽层。在电缆终结处使用N型连接器。尽管由于早期的大量布设,到现在还有一些系统在使用,这一标准实际上被10BASE-2取代。
  •   10BASE-2(又称细缆(Thin Ethernet)或模拟网络):10BASE-5后的产品,使用RG-58同轴电缆,最长转输距离约200米(实际为185米),仅能连接30台计算机。计算机使用T型适配器连接到带有BNC连接器的网卡,而线路两头需要50欧姆的终结器。虽然在能力、规格上不及10BASE-5,但是因为其线材较细、布线方便、成本也便宜,所以得到更广泛的使用,淘汰了10BASE-5。由于双绞线的普及,它也被各式的双绞线网络取代。
  •   StarLAN:第一个在双绞线上实现的以太网络标准10 Mbit/s。后发展成10BASE-T。
  •   10BASE-T:使用了3类双绞线、4类双绞线、5类双绞线的4根线(两对双绞线),最长传输距离100米。以太网集线器或以太网交换机位于中间连接所有节点。
  •   FOIRL:光纤中继器链路。光纤以太网络原始版本。
  •   10BASE-F:10Mbps以太网光纤标准通称,通信距离2公里,其中只有10BASE-FL应用比较广泛。

2.6.2      快速以太网(100Mbps)

随着网络的发展,传统标准的以太网技术已难以满足日益增长的网络数据流量速度需求。在1993年10月以前,对于要求10Mbps以上数据流量的LAN应用,只有光纤分布式数据接口(FDDI)可供选择,但它是一种价格非常昂贵的、基于100Mbps光缆的LAN。1993年10月,Grand Junction公司推出了世界上第一台快速以太网集线器Fastch10/100和网络接口卡FastNIC100,快速以太网技术正式得以应用。随后Intel、SynOptics、3COM、BayNetworks等公司亦相继推出自己的快速以太网装置。与此同时,IEEE802工程组亦对100Mbps以太网的各种标准,如100BASE-TX、100BASE-T4、MⅡ、中继器、全双工等标准进行了研究。1995年3月IEEE宣布了IEEE802.3u 100BASE-T快速以太网标准(Fast Ethernet),就这样开始了快速以太网的时代。

快速以太网与原来在100Mbps带宽下工作的FDDI相比,它具有许多的优点,最主要体现在快速以太网技术可以有效地保障用户在布线基础实施上的投资,它支持3、4、5类双绞线以及光纤的连接,能有效地利用现有的设施。快速以太网的不足其实也是以太网技术的不足,那就是快速以太网仍是基于CSMA/CD技术,当网络负载较重时,会造成效率的降低,当然这可以使用交换技术来弥补。100Mbps快速以太网标准又分为:100BASE-TX 、100BASE-FX、100BASE-T4三个子类。

  •   100BASE-TX:是一种使用5类无屏蔽双绞线或屏蔽双绞线的快速以太网技术。它使用两对双绞线,一对用于发送,一对用于接收数据。在传输中使用4B/5B编码方式,信号频率为125MHz。符合EIA586的5类布线标准和IBM的SPT 1类布线标准。使用同10BASE-T相同的RJ-45连接器。它的最大网段长度为100米。它支持全双工的数据传输。
  •   100BASE-FX:是一种使用光缆的快速以太网技术,可使用单模和多模光纤(62.5和125um)。多模光纤连接的最大距离为550米。单模光纤连接的最大距离为3000米。在传输中使用4B/5B编码方式,信号频率为125MHz。它使用MIC/FDDI连接器、ST连接器或SC连接器。它的最大网段长度为150m、412m、2000m或更长至10公里,这与所使用的光纤类型和工作模式有关,它支持全双工的数据传输。100BASE-FX特别适合于有电气干扰、较大距离连接、或高保密环境等情况。
  •   100BASE-T4:是一种可使用3、4、5类无屏蔽双绞线或屏蔽双绞线的快速以太网技术。100Base-T4使用4对双绞线,其中的三对用于在33MHz的频率上传输数据,每一对均工作于半双工模式。第四对用于CSMA/CD冲突检测。在传输中使用8B/6T编码方式,信号频率为25MHz,符合EIA586结构化布线标准。它使用与10BASE-T相同的RJ-45连接器,最大网段长度为100米。

2.6.3      千兆以太网(1000Mbps)

高速的千兆以太网给用户带来了提高核心网络的有效解决方案,这种解决方案的最大优点是继承了传统以太网技术价格便宜的优点。千兆技术仍然是以太网,它采用了与10M以太网相同的帧格式、帧结构、网络协议、全/半双工工作方式、流控模式以及布线系统。由于该技术不改变传统以太网的桌面应用、操作系统,因此可与10M或100M的以太网很好地配合工作。升级到千兆以太网不必改变网络应用程序、网管部件和网络操作系统,能够最大程度地保护投资。此外,IEEE标准将支持最大距离为550米的多模光纤、最大距离为70千米的单模光纤和最大距离为100米的同轴电缆。千兆以太网填补了IEEE 802.3以太网中快速以太网标准的不足。千兆以太网支持的网络类型如下:

  •   1000BASE-T:1 Gbit/s,通信需要使用超五类双绞线或6类双绞线。
  •   1000BASE-SX:1 Gbit/s多模光纤(取决于频率以及光纤半径,使用多模光纤时最长距离在220米至550米之间)。
  •   1000BASE-LX:1 Gbit/s多模光纤(小于550米)、单模光纤(小于5000米)。
  •   1000BASE-LX10:1 Gbit/s单模光纤(小于10KM),长距离方案。
  •   1000BASE-LHX:1 Gbit/s单模光纤(10KM至40KM),长距离方案。
  •   1000BASE-ZX:1 Gbit/s单模光纤(40KM至70KM),长距离方案。
  •   1000BASE-CX :铜缆上达到1Gbps的短距离(小于25 m)方案,早于1000BASE-T,已废弃。

2.7   网线相关知识

要连接局域网,网线是必不可少的。在局域网中常见的网线主要有双绞线、同轴电缆、光缆三种。 双绞线,是由许多对线组成的数据传输线。它的特点就是价格便宜,所以被广泛应用。我们这里重点也是讲解双绞线,后面教程中的网络通信就是通过双绞线连接的。

2.7.1      屏蔽双绞线和非屏蔽双绞线

根据有无屏蔽层,双绞线分为屏蔽双绞线与非屏蔽双绞线。

非屏蔽双绞线(Unshielded Twisted Pair,UTP)是一种数据传输线,由四对不同颜色的传输线互相缠绕所组成,每对相同颜色的线传递来回两个方向的电脉冲,这样的设计是利用了电磁感应相互抵消的原理来屏蔽电磁干扰。UTP广泛用于以太网路(局域网络)和电话线中。非屏蔽双绞线电缆最早在1881年被用于贝尔发明的电话系统中。1900年美国的电话线网络亦主要由UTP所组成,它们由电话公司所拥有。

目前UTP被广泛用于电脑网络,但由于使用过长的UTP电缆传输数据会导致信号衰减问题,因此主要用作短途传输,一般不多于100米。UTP电缆末端通常连接RJ-45,以便插入到与其相容的连接器中。非屏蔽双绞线电缆具有以下优点:

  •   无屏蔽外套,直径小,节省所占用的空间,成本低;
  •   重量轻,易弯曲,易安装;
  •   将串扰减至最小或加以消除;
  •   具有阻燃性;
  •   具有独立性和灵活性,适用于结构化综合布线。因此,在综合布线系统中,非屏蔽双绞线得到广泛应用。

UTP非屏蔽双绞线横切面:

 

非屏蔽双绞线内部结构

 

屏蔽双绞线(英语:Shielded Twisted Pair,STP),是一种广泛用于数据传输的铜质线材。此种线由四组两条一对地互相缠绕并包装在绝缘管套中的铜线所组成,四对不同颜色的传输线互相缠绕,每对相同颜色的线传递来回两个方向的电脉冲,这样的设计是利用了电磁感应相互抵消的原理来屏蔽电磁干扰。

双绞线外的金属网(通常是铜质)可以进一步屏蔽传输线,使之不受外部电磁场干扰,同时作为接地之用。但这种额外的保护结构降低了线材的弹性。这种线常用在以太网(局域网络)中,屏蔽双绞线额外的保护结构提高了此种线材的价格。

屏蔽双绞线的其它规格:

  •   F/UTP双绞线:总屏蔽层为铝箔屏蔽,没有线对屏蔽层的屏蔽双绞线;
  •   U/FTP双绞线:没有总屏蔽层,线对屏蔽为铝箔屏蔽的屏蔽双绞线;
  •   SF/UTP双绞线:总屏蔽层为丝网+铝箔的双重屏蔽,线对没有屏蔽的双重屏蔽双绞线;
  •   S/FTP双绞线:总屏蔽层为丝网,线对屏蔽为铝箔屏蔽的多重屏蔽双绞线;
  •   U/UTP双绞线:即通常所说的UTP双绞线,非屏蔽双绞线。

STP屏蔽双绞线横切面:

 

F/UTP双绞线内部结构:

 

S/FTP双绞线内部结构:

 

2.7.2      双绞线分类

TIA(Telecommunication Industry Association,美国通信工业协会)和EIA(Electronic Industries Alliance,美国电子工业协会)为双绞线电缆定义了不同质量的型号,双绞线常见的有三类线,五类线和超五类线,以及六类线,前者线径细而后者线径粗,具体型号如下:

  •   一类线(CAT1):线缆最高频率带宽是750KHz,用于报警系统,或只适用于语音传输(一类标准主要用于八十年代初之前的电话线缆),不用于数据传输。
  •   二类线(CAT2):线缆最高频率带宽是1MHz,用于语音传输和最高传输速率4Mbps的数据传输。
  •   三类线(CAT3):指在ANSI和EIA/TIA568标准中指定的电缆,该电缆的传输频率16MHz,最高传输速率为10Mbps(10Mbit/s),主要应用于语音、10Mbit/s以太网(10BASE-T)和4Mbit/s令牌环,最大网段长度为100m,采用RJ形式的连接器,已淡出市场。
  •   四类线(CAT4):该类电缆的传输频率为20MHz,用于语音传输和最高传输速率16Mbps(指的是16Mbit/s令牌环)的数据传输,主要用于基于令牌的局域网和10BASE-T/100BASE-T。最大网段长为100m,采用RJ形式的连接器,未被广泛采用。
  •   五类线(CAT5):该类电缆增加了绕线密度,外套一种高质量的绝缘材料,线缆最高频率带宽为100MHz,最高传输率为100Mbps,用于语音传输和最高传输速率为100Mbps的数据传输,主要用于100BASE-T和1000BASE-T网络,最大网段长为100m,采用RJ形式的连接器。这是最常用的以太网电缆。在双绞线电缆内,不同线对具有不同的绞距长度。通常,4对双绞线绞距周期在38.1mm内,按逆时针方向扭绞,一对线对的扭绞长度在12.7mm以内。
  •   超五类线(CAT5e):超5类具有衰减小,串扰少,并且具有更高的衰减与串扰的比值(ACR)和信噪比(SNR)、更小的时延误差,性能得到很大提高。超5类线主要用于千兆位以太网(1000Mbps)。
  •   六类线(CAT6):该类电缆的传输频率为1MHz~250MHz,六类布线系统在200MHz时综合衰减串扰比(PS-ACR)应该有较大的余量,它提供2倍于超五类的带宽。六类布线的传输性能远远高于超五类标准,最适用于传输速率高于1Gbps的应用。六类与超五类的一个重要的不同点在于:改善了在串扰以及回波损耗方面的性能,对于新一代全双工的高速网络应用而言,优良的回波损耗性能是极重要的。六类标准中取消了基本链路模型,布线标准采用星形的拓扑结构,要求的布线距离为:永久链路的长度不能超过90m,信道长度不能超过100m。
  •   超六类或6A(CAT6A):此类产品传输带宽介于六类和七类之间,传输频率为500MHz,传输速度为10Gbps,标准外径6mm。和七类产品一样,国家还没有出台正式的检测标准,只是行业中有此类产品,各厂家宣布一个测试值。
  •   七类线(CAT7):传输频率为600MHz,传输速度为10Gbps,单线标准外径8mm,多芯线标准外径6mm。

类型数字越大、版本越新,技术越先进、带宽也越宽,当然价格也越贵。这些不同类型的双绞线标注方法是这样规定的,如果是标准类型则按CATx方式标注,如常用的五类线和六类线,则在线的外皮上标注为CAT 5、CAT 6。而如果是改进版,就按xe方式标注,如超五类线就标注为5e(字母是小写,而不是大写)。

无论是哪一种线,衰减都随频率的升高而增大。在设计布线时,要考虑到受到衰减的信号还应当有足够大的振幅,以便在有噪声干扰的条件下能够在接收端正确地被检测出来。双绞线能够传送多高速率(Mb/s)的数据还与数字信号的编码方法有很大的关系 。

2.7.3      交叉线和直通线

TIA(Telecommunication Industry Association,美国通信工业协会)和EIA(Electronic Industries Alliance,美国电子工业协会)制定了双绞线标准,其中应用最广的是EIA/TIA-568A和EIA/TIA-568B,这两个标准最主要的不同就是芯线序列的不同。而我们平时所说的直通线和交叉线和这两个标准有什么关系呢?且往下看。

  •   直通线:又叫正线或标准线,两端采用568B做线标准,注意两端都是同样的线序。

EIA/TIA 568B的线序定义依次为橙白、橙、绿白、蓝、蓝白、绿、棕白、棕(从序号1开始)

 

  •   交叉线:又叫反线,线序按照一端568A,一端568B的标准排列好线序,并用RJ45水晶头夹好。

EIA/TIA 568A的线序定义依次为绿白、绿、橙白、蓝、蓝白、橙、棕白、棕(从序号1开始)

 

实际水晶头(RJ-45插座)对于的线序如下:

 

在百兆以太网(Fast Ethernet、10/100M Ethernet)中,仅使用1、2、3、6这四根线,以差分信号传输方式减少电磁干扰,其中1、2为TX(发送)拧在一起,3、6为RX(接收)拧在一起。因此直通线就是两端同为568B,而交叉线就是一端使用568A,另一端使用568B的连接方法。

在千兆以太网(Gigabit Ethernet、1000M Ethernet)或者以太网供电(PoE, Power over Ethernet)中,全部的四对差分对都被使用。

另外特别注意,现在一般的设备均支持自动翻转,加之交换机价格已经非常低廉,所以使用交叉的情况基本消失。

2.8   总结

本章节主要为大家讲解了网络方面的预备知识,为后面章节的讲解做了个基础介绍,更多网络方面的协议会在后面的章节中逐一介绍。

 

posted @ 2021-04-13 17:54  硬汉嵌入式  阅读(176)  评论(0编辑  收藏  举报