第2章 嵌入式网络协议栈基础知识
本章教程为大家介绍嵌入式网络协议栈基础知识,本章先让大家有一个全面的认识,后面章节中会为大家逐一讲解用到的协议。
基础知识整理自百度百科,wiki百科等。
2.1 初学者重要提示
2.2 TCP/IP协议栈简介
2.3 TCP/IP参考模型
2.4 OSI参考模型
2.5 RL-TCPnet和参考模型的对应关系
2.6 网络协议收录文件RFC
2.7 以太网和IEEE802.3
2.8 网线相关知识
2.9 总结
2.1 初学者重要提示
u 网络协议栈涉及到的知识点非常多,而且新的网络知识也是层出不穷。但是网络的基础知识还是非常有必要系统地学习一下,推荐书籍TCP/IP详解卷1,卷2和卷3。如果觉得书籍太厚,没有学习的动力,可以看卷1的前几章,有个框架上的认识,然后有什么不明白的知识点,网上搜索即可。现在网络方面的知识铺天盖地,学习也很方便,这里尤其推荐wiki百科,知识点汇总的非常全面,特别是给出的参考资料,都非常值得一读。
不过,还是推荐大家系统地学习一下,这样才能有纵览全局的感觉,对知识点的认识也全面。
u 对于本章节讲解的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(AdvancedResearch Projects Agency Network,ARPANET)网项目,因此也被称作DoD模型(DoD Model)。这个协议由互联网工程任务组负责维护。
TCP/IP提供点对点的连接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。它将软件通信过程抽象化为四个抽象层,采取协议堆栈的方式,分别实现不同通信协议。协议组下的各种协议,依其功能不同,被分别归属到这四个层次结构之中,常被视为是简化的七层OSI模型。下面我们就分别讲解TCP/IP参考模型和OSI参考模型。
2.3 TCP/IP参考模型
TCP/IP参考模型是首先由ARPANET所使用的网络体系结构。这个体系结构在它的两个主要协议TCP和IP出现以后被称为TCP/IP参考模型。这一网络协议共分为四层:应用层,传输层,网络层和链路层。
l APRANET ARPANET是由美国国防部(U.S.Department of Defense,DoD)赞助的研究网络。最初,它只连接了 美国境内的四所大学。随后的几年中,它通过租用的电话线连接了数百所大学和政府部门。最终 ARPANET发展成为全球规模最大的互连网络-因特网。最初的ARPANET于1990年永久性地关闭。
u 应用层(Application Layer)
应用层用于向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。每一个应用层协议一般都会使用到两个传输层协议之一:面向连接的TCP传输控制协议和无连接的UDP用户数据报文协议。
运行在TCP协议上的高层协议:
l HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
l HTTPS(Hypertext Transfer Protocol over SecureSocket Layer, or HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。
l FTP(File Transfer Protocol,文件传输协议),用于文件传输。
l POP3(Post Office Protocol, version 3,邮局协议),收邮件用。
l SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。
l TELNET(Teletype over the Network,网络电传),通过一个终端(terminal)登陆到网络。
l SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆。
运行在UDP协议上的高层协议:
l BOOTP(Boot Protocol,启动协议),应用于无盘设备。
l NTP(Network Time Protocol,网络时间协议),用于网络同步。
l DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。
其他:
l DNS(Domain Name Service,域名服务),用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上)。
l ECHO(Echo Protocol,应答协议),用于查错及测量应答时间(运行在TCP和UDP协议上)。
l SNMP(Simple Network Management Protocol,简单网络管理协议),用于网络信息的收集和网络管理。
l ARP(Address Resolution Protocol,地址解析协议),用于动态解析以太网硬件的地址。
u 传输层(Tramsport Layer)
传输层的协议,能够解决诸如端到端的可靠性(数据是否已经到达目的地)和保证数据按照正确的顺序到达这样的问题。在这一层定义了两个端到端的协议。
l 传输控制协议(TCP,Transmission Control Protocol)
TCP是面向连接的协议,它提供可靠的报文传输和对上层应用的连接服务。为此,除了基本的数据传输外,它还有可靠性保证、流量控制、多路复用、优先权和安全性控制等功能。
l 用户数据报协议(UDP,User Datagram Protocol)
UDP是面向无连接的数据包的协议,它是一个不可靠协议,因为它不检查数据包是否已经到达目的地,并且不保证它们按顺序到达。如果一个应用程序需要这些特性,那它必须自行检测和判断,或者使用TCP协议。UDP的典型性应用是按时到达比可靠性更重要的场合,比如流媒体(音频和视频等)。
u 网络层(Internet Layer)
网络层是整个体系结构的关键部分,其功能是使主机可以把分组发往任何网络,并使分组独立地传向目标。这些分组可能经由不同的网络,到达的顺序和发送的顺序也可能不同。高层如果需要顺序收发,那么就必须自行处理对分组的排序。网络层使用因特网协议(IP,Internet Protocol)。TCP/IP参考模型的网络层和OSI参考模型的网络层在功能上非常相似。
u 链路层(Network Access Layer)
链路层在TCP/IP参考模型中并没有详细描述,只是指出主机必须使用某种协议与网络相连。
2.4 OSI参考模型
开放系统互连参考模型 (Open System InterconnectionReference Model,简称OSI)是国际标准化组织ISO和国际电报电话咨询委员会CCITT联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
TCP/IP参考模式和OSI参考模型无法做到完全匹配,下面的图表显示了TCP/IP和其它的协议在OSI模型中的大致位置:
2.5 RL-TCPnet和参考模型的对应关系
为了更好的认识TCP/IP参考模型,OSI参考模型和RL-TCPnet协议栈的对应关系,绘制了如下的表格,这是个大致的轮廓。
由上面的表格可以看出,TCP/IP参考模型中的链路层对应的就是实际应用时的MAC+PHY,传输层和网络层是由RL-TCPnet协议栈实现的,而应用层就是RL-TCPnet支持的Telnet,SMTP,HTTP等。 |