网络接口层协议没有具体协议有什么好处

浅谈TCP/IP协议四层构成的主要功能
对于都不陌生的TCP/IP协议的四个层次,网络接口层、网络层、传输层、应用层,大大小小的考试中都有考过,对于其详细功能做一个小小总结。
TCP(Transmission control protocol)/IP(Internet
protocol)传输控制协议/互联网协议,是互联网的最基本也是最核心的协议。它是一套完备的标准,目标是提供网络的基本数据传输,帮助网络用户实现基本的应用服务,像telnet,FTP,smtp,snmp等。
网络接口层主要用于实现与传输媒介相关的物理特性,由下而上来看,对于接收到的物理帧数据,得到IP数据包,交给网络层;由上而下来看,从网络层接收到IP数据包封装成帧数据,发送到网络中。
网络层主要功能是实现数据包在网络上的分组转发,由下而上来看,对于从网络接口层接收到的IP数据包,进行数据检验,检验此数据是否已经到达目的地址,到达则去除包头,将剩余数据交给传输层,否则选择合适路径继续转发;由上而下来看,从传输层接收到分组数据后,对数据添加包头,封装成IP数据包,交给网络接口层,选择合适的路径进行转发。
网络层有许多协议,ARP(address resolution
protocol)地址解析协议,功能是通过以获取的IP地址来寻找获取相应主机的MAC地址;RARP(reverse address
resolution protocol)反地址解析协议,功能是通过已知的MAC地址来获取相应主机的IP地址;ICMP(Internet
control manage
protocol)网络控制管理协议,是网络层的补充,用于实现报文回送功能,像PING命令就是一种ICMP协议,用于发送ICMP的echo包,用于检验网络是否通畅。
传输层,主要功能是实现两台主机的应用程序的端到端的通信,提供间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。
  传输层协议主要是:传输控制协议TCP(Transmission Control
Protocol)和用户数据报协议UDP(User Datagram protocol)。
应用层,主要实现应用程序的相关功能。主要应该有TELNET,FTP,SMTP,DNS。
参考资料:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。SOA接口的两种常用实现比较:SOAP vs REST - 推酷
SOA接口的两种常用实现比较:SOAP vs REST
SOA架构用于异构系统的协作,因此需要一种跨操作系统、跨语言的通用的消息交换格式。SOAP和REST都是基于文本的消息体,相比二进制消息而言具有跨平台的优势,因此被选作SOA接口的常用实现方法。但SOAP和REST又有各自不同的特点和用途。
SOAP:将HTTP协议作为传输层协议,本质是采用HTTP进行传输,使用XML封装消息内容的RPC调用。
REST:REST并不是一种协议,只是一种设计规范,该设计规范要求程序遵守HTTP协议最初设计的初衷,使用HTTP的GET/PUT/DELTET/POST对资源进行操作,REST接口是以URI资源为基础,对资源进行CRUD操作的接口。
SOAP和REST的对比:
SOAP相对REST来说较为重量级,由于采用XML格式的消息体,消息的有效负荷占比较REST常用的JSON少,不过XML较JSON来说更容易为人阅读。
SOAP接口是自解释的,采用WSDL进行描述,程序可以基于WSDL进行解释并自动生成SOAP调用代码;REST接口只能通过接口文档进行描述,难以做到程序解释接口定义。
SOAP采用HTTP作为传输层协议,对HTTP协议来说服务调用是透明的,防火墙上难以对SOAP进行细粒度的权限控制,也难以使用http的缓存机制提高效率。而REST是标准的HTTP访问,可以充分利用HTTP协议提供的一些好处,例如可以在防火墙上较好地进行权限控制(最小粒度可以基于每个URL的CRUD操作),也可以充分利用缓存提高响应速度和系统的吞吐效率。
由于REST是标准的HTTP访问,其适用性更广,web应用,移动应用都可以在不使用第三方库的情况下方便地使用REST接口构造应用程序。
对于移动程序而言,由于REST的有效负荷占比高于SOAP的XML封装,采用REST接口可以降低程序使用的带宽。
根据REST设计原则,接口是无状态的,因此可以简单地通过对服务器进行水平扩展提升服务能力。
对于WEB Service而言,SOAP和REST各有千秋,SOAP有完善的标准规范和自动化开发工具,REST则更简单,对移动应用更友好。Oracle SOA Suite提供了将SOAP转换为REST接口的快捷方法,可以为已有的SOAP接口提供REST形式的封装,为web service同时提供SOAP和REST接口,是一个综合了各方面优点的完善的解决方案。
已发表评论数()
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
排版有问题
没有分页内容
视频无法显示
图片无法显示2.4 五层协议的体系结构_计算机网络原理与实践(第2版)_红黑联盟读书频道
2.4 五层协议的体系结构
本文所属图书&>&
本书较为全面和系统地介绍计算机网络的发展过程和典型的网络体系结构,并介绍物理层、数据链路层、网络层、传输层和应用层上的各种协议及其工作原理,既介绍成熟技术和经典协议,也介绍一些新标准和新技术的基本&&
通过上节的对比,可以看到OSI与TCP/IP体系都有成功和不足的地方。OSI的七层协议体系结构相对复杂,又不实用,但其概念清晰,体系结构理论也比较完整。TCP/IP协议应用性强,现在得到了广泛的使用,但它的参考模型的研究却比较薄弱。TCP/IP虽然是一个四层的体系结构,但实际上只有应用层、传输层和网络互连层三层,最下面的网络接口层并没有什么具体内容。因此在学习计算机网络的原理时往往采用Andrew S.Tanenbaum建议的一种混合的参考模型。这是一种折中的方案,采用五层协议的体系结构,吸收了OSI和TCP/IP的优点,如图2-8所示,这样概念阐述起来既简洁又清晰。
下面简单介绍一下各层的主要功能,更详尽的讨论将在第3~7章展开。读者也只有认真学完后续章节的内容后才能更好地理解各层的作用。
物理层:物理层是五层体系结构中的底层。它的任务是利用传输介质为通信的网络结点之间建立、管理和释放物理连接,透明地传送比特流。&透明地传送比特流&表示上层协议只看到&0&、&1&比特流,而不用关心物理信号的传输,因而也就&看不见&物理层是如何实现比特流的传输的。物理层利用的一些物理媒体(如双绞线、同轴电缆、光缆等)并不在物理层协议之内而是在物理层协议的下面。因此也有人把这些物理媒体认为是网络体系结构的第0层。
数据链路层:数据链路层在五层体系结构中位于物理层和网络层之间,相对于高层,数据链路层所用的服务和协议都比较成熟。在发送数据时,数据链路层的任务是将在网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上传送以帧(frame)为单位的数据。每一帧都是由数据和一些必要的控制信息,如同步信息、地址信息、差错控制以及流量控制信息等组成的。
网络层:网络层在五层体系结构中位于数据链路层和传输层之间,它的作用是为分组交换网上的不同主机提供通信。而传输层的作用是为运行在不同主机中的进程提供逻辑通信。注意它们之间的区别。在发送数据时,网络层会把传输层产生的报文段或用户数据报封装成分组进行传送。网络层还有一个任务就是路由的选择,使源主机传输层所传下来的分组能够交付到目的主机。
传输层:传输层在五层体系结构中位于网络层和应用层之间,其作用是为运行在不同主机中的进程提供逻辑通信。
应用层:应用层是五层体系结构中的最高层。它可以根据用户所产生的服务请求确定进程之间通信的性质是否满足用户的需要。应用层直接为用户的应用进程提供服务。
图2-9直观地说明了分层的协议体系对应用进程中的数据的影响,数据是如何在各层之间进行传递的,以及在分层的协议体系传递过程中所发生的变化。
假定两台计算机是直接相连的,发送端的应用程序进程要与接收端的应用程序进程进行数据交换,具体过程如下:
1)发送端应用程序进程将它的数据发送到应用层,应用层数据加上本层的控制报头H5,形成应用层的协议数据单元,传到传输层。
2)传输层收到这个数据单元后,加上本层的控制报头H4,再向下交给网络层。
3)网络层进行同样的处理,加上本层的控制报头H3,再传到数据链路层。
4)数据链路层得到数据后,将控制信息分成两部分,分别加到本层数据单元的首部(H2)和尾部(T2),构成数据链路层的协议数据单元,再向下交给物理层。
5)数据到达物理层后,物理层将以比特流的方式将数据通过物理传输媒体传送到接收端主机。比特流是从有首部的这头开始传送的。
6)比特流到达接收端后,再从接收端的物理层开始依次上传,每层根据控制信息进行必要的操作,剥去控制信息,将剩下的数据单元上交给更高的一层。直到最后,把发送端应用程序进程发送的数据交给接收端的应用程序进程。
从这个过程可以看出数据在传送过程中有这样的特点:在发送端自顶向下层层添加控制信息,在接收端自底向上层层剥去控制信息。这样做有什么好处呢?首先,如果数据在传送过程中出现错误,可以根据这些控制信息及时发现和纠正,保证数据传送的可靠性。其次,上层的数据不含有下层的协议控制信息,这样相邻层之间可以保持相对独立性,下层具体实现方法的变化不会影响上层功能的执行。
应用程序进程间的数据交换是一个复杂的过程,但在用户看来,就好像发送端应用程序进程直接把它的数据交给了接收端应用程序进程。同理,图2-8中任何两个对等层之间,也好像直接把数据传送给对方一样。实际上对等层之间是没有直接通信能力的,这只是一种形式上的逻辑通信,需要依靠下面各层提供支持。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。千兆网络接口在S3C2440A系统中的应用
> 千兆网络接口在S3C2440A系统中的应用
千兆网络接口在S3C2440A系统中的应用
  嵌入式系统广泛应用在工业测控、智能仪表、智能家庭等很多领域。随着嵌入式系统应用范围的不断扩展及网络应用的日益普及,使得越来越多的嵌入式系统需要网络功能。三星公司是国内应用较多的嵌入式微处理器之一,在应用系统中,目前只支持10/100M的网络接口,有很大的实用价值,既可以拓展的应用领域,也可以给其它嵌入式系统高速接入网络提供一种简单易行的参考。本文引用地址:  设计方案  本系统主要由S3C2440A、存储器、AX88180、千兆PHY芯片88E1111、嵌入式、网络驱动程序等组成(见图1)。嵌入式内核负责系统任务的管理并集成TCP/IP协议,方便实现网络功能控制。S3C2440A负责整个系统的控制,它与AX88180以总线方式连接,是通信控制的主体。S3C2440A通过网络驱动程序实现对AX88180内部寄存器编程,实现对以太网数据的发送和接收,从而完成网络与系统之间的数据传输。AX81之间采用RGMII接口方式互连,负责数据传送底层协议的实现。  这里简要介绍一下S3C2440A与AX88180器件,这两个器件是通信控制的主体。  S3C2440A是基于ARM920T核的16/32位RISC微处理器,运行频率高达500MHz,主要面向手持设备以及高性价比、低功耗的应用,适用于开发各类高端手持、小型终端以及网络应用产品,具有非常丰富的片上资源,比如LCD、SDRAM、NAND FLASH、DMA、AD、PWM控制器,以及UART、USB、摄像头、触摸屏、IIC、IIS、SPI、SD、MMC、AC97等接口。  AX88180是台湾亚信公司推出的一款Non-PCI千兆以太网控制芯片,内置1000Mbps以太网媒体存取控制器(MAC);有40KBytes SRAM网络封包缓存器;硬件支持IP/TCP/UDP checksum offloads。它可以十分方便地实现与一般16/32位微处理器连接,可以象SRAM一样被访问。它符合IEEE 802.3/lEEE 802.3u/IEEE 802.3ab协议,适用于串流媒体、多媒体网络、高频宽传输等领域,如数字媒体、家用网关及IP电视等。  硬件设计  由于硬件电路比较复杂,这里只给出核心电路连接,如图2所示。S3C2440A与AX88180之间采用总线方式相连,地址总线A2-A15、数据总线D0-D31、读写信号等可以直接连接,AX88180的40M~100M时钟信号由S3C2440A提供,AX88180中断信号与S3C2440A EINT11相连,整个接口电路无需外加电路;AX88180与PHY芯片之间采用简化的千兆比特媒体独立接口RGMII接口,信号一一对应直接相连即可。  软件设计  从整体角度考虑,网络系统可以分为硬件层、设备驱动层、网络协议层和应用层。在S3C2440A系统上移植有嵌入式Linux、集成TCP/IP等协议栈,应用层的程序可以自己编写也可以移植,这里我们主要分析一下设备驱动程序的实现。  在嵌入式Linux中,整个网络驱动程序的框架可分为四层,分别为协议接口层、网络设备接口层、设备驱动功能层、网络设备和网络媒介层,这个框架在内核网络模块中已经搭建完成,在设计驱动程序的时候,要做的主要工作就是根据上层网络设备接口层定义的device结构和底层具体的硬件特性,来完成设备驱动的功能。驱动程序主要由初始化、打开、关闭、数据接收及发送等函数组成。  初始化函数  初始化函数完成网络设备的初始化,由数据结构device中的init函数指针来调用,加载AX88180驱动模块后,就会调用初始化过程。该首先通过检测物理设备的硬件特征来检测网络物理设备是否存在,之后配置设备所需要的资源,比如中断等。这些过程完成后,就要构造设备设备数据结构,用检测到的数据初始化其相关变量,最后向Linux内核注册设备并申请内存空间。  打开函数  打开函数在网络设备驱动程序中是在网络设备状态由down状态转为up状态时,即被激活的时候被调用,有很多AX81的初始化工作可以放在这里做。在驱动程序作为一个模块被装入时,打开函数还要防止模块卸载时设备处于打开状态。  关闭函数  关闭函数和打开函数做相反的工作,是在设备状态由up转为down时被调用的,作用是释放资源以减少系统负担。在驱动程序作为模块装入时,关闭函数还要减少没备被引用的次数,以便卸载驱动程序。  发送函数  发送函数是网络驱动程序的关键过程之一,它与dev-&hard_start_xmit连接,在内核通过设备向外发送数据时调用它。系统给AX88180分配一块64K的地址空间,其中8000H-FBFFH作为发送缓冲区地址,在系统调用驱动程序的xmit时,发送的数据放在一个sk_buff结构中,发送到数据缓冲区地址,再由AX88180发送到网络上。如果发送成功,hard_start_xmit释放sk_buff,返回0;如果设备暂时无法处理,则返回1。硬件在发送结束后产生中断。  中断和接收函数  中断和接收函数也是驱动程序的关键过程之一,如果有数据收到,AX88180会产生一个中断通知系统,在中断处理程序中驱动程序申请一块sk_buff(),从AX88180读出数据并放置到接收缓冲区地址0000H~7000H里,然后来填充sk_buff中的一些信息,由skb-&dev=dev判断收到帧的协泌类型,填入skb-&protocol,再把指针skb-&mac.raw指向硬件数据,然后丢弃帧头。之后还要设置skb-&pkt_type,标明链路层数据类型,最后调用netif_rX()把数据传送给协议层。  下面是发送函数部分代码:  结语  本文介绍的千兆网络接口在S3C2440A系统中的应用方案已经得以实现,1000 Full-duplex模式下,数据传输速率可以达到200Mbp,在使用FTP下载数据时,速度可以达到4Mbps以上,是使用100M网络接口的5~6倍。如果使用其它更高速度的微处理器,网络接口的速度会更高。linux操作系统文章专题:
linux操作系统文章专题:
linux相关文章:
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一

我要回帖

更多关于 网络接口层协议 的文章

 

随机推荐