最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=104619
本章教程为大家介绍嵌入式网络协议栈基础知识,本章先让大家有一个全面的认识,后面章节中会为大家逐一讲解用到的协议。
基础知识整理自百度百科,wiki百科等。
目录
第2章 嵌入式网络协议栈基础知识
2.1 初学者重要提示
2.2 TCP/IP协议栈简介
2.3 TCP/IP参考模型
2.4 OSI参考模型
2.5 网络协议收录文件RFC
2.6 以太网和IEEE 802.3
2.6.1 标准以太网(10Mbsp)
2.6.2 快速以太网(100Mbps)
2.6.3 千兆以太网(1000Mbps)
2.7 网线相关知识
2.7.1 屏蔽双绞线和非屏蔽双绞线
2.7.2 双绞线分类
2.7.3 交叉线和直通线
2.8 总结
1、 网络协议栈涉及到的知识点非常多,而且新的网络知识也是层出不穷。但是网络的基础知识还是非常有必要系统地学习一下,推荐书籍TCP/IP详解卷1,卷2和卷3。如果觉得书籍太厚,没有学习的动力,可以看卷1的前几章,有个框架上的认识,然后有什么不明白的知识点,网上搜索即可。现在网络方面的知识铺天盖地,学习也很方便,这里尤其推荐wiki百科,知识点汇总的非常全面,特别是给出的参考资料,都非常值得一读。
不过,还是推荐大家系统地学习一下,这样才能有纵览全局的感觉,对知识点的认识也全面。
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参考模型。
TCP/IP参考模型是首先由ARPANET所使用的网络体系结构。这个体系结构在它的两个主要协议TCP和IP出现以后被称为TCP/IP参考模型。这一网络协议共分为四层:应用层,传输层,网络层和链路层。
ARPANET是由美国国防部(U.S.Department of Defense,DoD)赞助的研究网络。最初,它只连接了
美国境内的四所大学。随后的几年中,它通过租用的电话线连接了数百所大学和政府部门。最终
ARPANET发展成为全球规模最大的互连网络-因特网。最初的ARPANET于1990年永久性地关闭。
1、 应用层(Application Layer)
应用层用于向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。每一个应用层协议一般都会使用到两个传输层协议之一: 面向连接的TCP传输控制协议和无连接的UDP用户数据报文协议。
运行在TCP协议上的高层协议:
运行在UDP协议上的高层协议:
其他:
2、 传输层(Tramsport Layer)
传输层的协议,能够解决诸如端到端的可靠性(数据是否已经到达目的地)和保证数据按照正确的顺序到达这样的问题。在这一层定义了两个端到端的协议。
TCP是面向连接的协议,它提供可靠的报文传输和对上层应用的连接服务。为此,除了基本的数据传输外,它还有可靠性保证、流量控制、多路复用、优先权和安全性控制等功能。
UDP是面向无连接的数据包的协议,它是一个不可靠协议,因为它不检查数据包是否已经到达目的地,并且不保证它们按顺序到达。如果一个应用程序需要这些特性,那它必须自行检测和判断,或者使用TCP协议。UDP的典型性应用是按时到达比可靠性更重要的场合,比如流媒体(音频和视频等)。
3、 网络层(Internet Layer)
网络层是整个体系结构的关键部分,其功能是使主机可以把分组发往任何网络,并使分组独立地传向目标。这些分组可能经由不同的网络,到达的顺序和发送的顺序也可能不同。高层如果需要顺序收发,那么就必须自行处理对分组的排序。网络层使用因特网协议(IP,Internet Protocol)。TCP/IP参考模型的网络层和OSI参考模型的网络层在功能上非常相似。
4、 链路层(Network Access Layer)
链路层在TCP/IP参考模型中并没有详细描述,只是指出主机必须使用某种协议与网络相连。
开放系统互连参考模型 (Open System Interconnection Reference Model,简称OSI)是国际标准化组织ISO和国际电报电话咨询委员会CCITT联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
TCP/IP参考模式和OSI参考模型无法做到完全匹配,下面的图表显示了TCP/IP和其它的协议在OSI模型中的大致位置:
RFC(Request For Comments)是由互联网工程任务组IETF发布的一系列备忘录。文件收集了有关互联网的相关信息,以及UNIX和互联网社区的文件,并以编号排定。目前RFC文件是由互联网协会ISOC赞助发行。
RFC始于1969年,由斯蒂芬·克罗克用来记录有关ARPANET开发的非正式文档,最终演变为用来记录互联网规范、协议、过程等的标准文件。基本的互联网通信协议在RFC文件内都有详细说明。RFC文件还额外加入许多的论题在标准内,例如对于互联网新开发的协议及发展中所有的记录。
大家在学习中需要了解具体的网络协议,可以直接上官网:https://www.rfc-editor.org/ 搜索即可,这里将主要的几个协议地址罗列出来,方便参看。
(以太网在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,即载波多重访问/碰撞侦测)的总线技术。
下面以速率的不同,为大家介绍标准以太网,快速以太网和千兆以太网。
早期以太网只有10Mbps的吞吐量时,使用的是带有冲突检测的载波侦听多路访问(CSMA/CD,Carrier Sense Multiple Access/Collision Detection)的访问控制方法。这种早期的10Mbps以太网称之为标准以太网,以太网可以使用粗同轴电缆、细同轴电缆、非屏蔽双绞线、屏蔽双绞线和光纤等多种传输介质进行连接。并且在IEEE 802.3标准中,为不同的传输介质制定了不同的物理层标准,在这些标准中前面的数字表示传输速度,单位是“Mbps”,最后的一个数字表示单段网线长度(基准单位是100米),Base表示“基带”的意思,Broad代表“宽带”。
随着网络的发展,传统标准的以太网技术已难以满足日益增长的网络数据流量速度需求。在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三个子类。
高速的千兆以太网给用户带来了提高核心网络的有效解决方案,这种解决方案的最大优点是继承了传统以太网技术价格便宜的优点。千兆技术仍然是以太网,它采用了与10M以太网相同的帧格式、帧结构、网络协议、全/半双工工作方式、流控模式以及布线系统。由于该技术不改变传统以太网的桌面应用、操作系统,因此可与10M或100M的以太网很好地配合工作。升级到千兆以太网不必改变网络应用程序、网管部件和网络操作系统,能够最大程度地保护投资。此外,IEEE标准将支持最大距离为550米的多模光纤、最大距离为70千米的单模光纤和最大距离为100米的同轴电缆。千兆以太网填补了IEEE 802.3以太网中快速以太网标准的不足。千兆以太网支持的网络类型如下:
要连接局域网,网线是必不可少的。在局域网中常见的网线主要有双绞线、同轴电缆、光缆三种。 双绞线,是由许多对线组成的数据传输线。它的特点就是价格便宜,所以被广泛应用。我们这里重点也是讲解双绞线,后面教程中的网络通信就是通过双绞线连接的。
根据有无屏蔽层,双绞线分为屏蔽双绞线与非屏蔽双绞线。
非屏蔽双绞线(Unshielded Twisted Pair,UTP)是一种数据传输线,由四对不同颜色的传输线互相缠绕所组成,每对相同颜色的线传递来回两个方向的电脉冲,这样的设计是利用了电磁感应相互抵消的原理来屏蔽电磁干扰。UTP广泛用于以太网路(局域网络)和电话线中。非屏蔽双绞线电缆最早在1881年被用于贝尔发明的电话系统中。1900年美国的电话线网络亦主要由UTP所组成,它们由电话公司所拥有。
目前UTP被广泛用于电脑网络,但由于使用过长的UTP电缆传输数据会导致信号衰减问题,因此主要用作短途传输,一般不多于100米。UTP电缆末端通常连接RJ-45,以便插入到与其相容的连接器中。非屏蔽双绞线电缆具有以下优点:
UTP非屏蔽双绞线横切面:
非屏蔽双绞线内部结构
屏蔽双绞线(英语:Shielded Twisted Pair,STP),是一种广泛用于数据传输的铜质线材。此种线由四组两条一对地互相缠绕并包装在绝缘管套中的铜线所组成,四对不同颜色的传输线互相缠绕,每对相同颜色的线传递来回两个方向的电脉冲,这样的设计是利用了电磁感应相互抵消的原理来屏蔽电磁干扰。
双绞线外的金属网(通常是铜质)可以进一步屏蔽传输线,使之不受外部电磁场干扰,同时作为接地之用。但这种额外的保护结构降低了线材的弹性。这种线常用在以太网(局域网络)中,屏蔽双绞线额外的保护结构提高了此种线材的价格。
屏蔽双绞线的其它规格:
STP屏蔽双绞线横切面:
F/UTP双绞线内部结构:
S/FTP双绞线内部结构:
TIA(Telecommunication Industry Association,美国通信工业协会)和EIA(Electronic Industries Alliance,美国电子工业协会)为双绞线电缆定义了不同质量的型号,双绞线常见的有三类线,五类线和超五类线,以及六类线,前者线径细而后者线径粗,具体型号如下:
类型数字越大、版本越新,技术越先进、带宽也越宽,当然价格也越贵。这些不同类型的双绞线标注方法是这样规定的,如果是标准类型则按CATx方式标注,如常用的五类线和六类线,则在线的外皮上标注为CAT 5、CAT 6。而如果是改进版,就按xe方式标注,如超五类线就标注为5e(字母是小写,而不是大写)。
无论是哪一种线,衰减都随频率的升高而增大。在设计布线时,要考虑到受到衰减的信号还应当有足够大的振幅,以便在有噪声干扰的条件下能够在接收端正确地被检测出来。双绞线能够传送多高速率(Mb/s)的数据还与数字信号的编码方法有很大的关系 。
TIA(Telecommunication Industry Association,美国通信工业协会)和EIA(Electronic Industries Alliance,美国电子工业协会)制定了双绞线标准,其中应用最广的是EIA/TIA-568A和EIA/TIA-568B,这两个标准最主要的不同就是芯线序列的不同。而我们平时所说的直通线和交叉线和这两个标准有什么关系呢?且往下看。
EIA/TIA 568B的线序定义依次为橙白、橙、绿白、蓝、蓝白、绿、棕白、棕(从序号1开始)
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)中,全部的四对差分对都被使用。
另外特别注意,现在一般的设备均支持自动翻转,加之交换机价格已经非常低廉,所以使用交叉的情况基本消失。
本章节主要为大家讲解了网络方面的预备知识,为后面章节的讲解做了个基础介绍,更多网络方面的协议会在后面的章节中逐一介绍。