第9章节 网络通信应用.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章节 网络通信应用

第9章 网络通信应用 在信息社会,随着互联网的普及,网络应用越来越广泛,通过互联网传输信息成为PC的必备要素。在嵌入式设备上,也越来越多的利用网络传输信息。Linux操作系统从一开始就提供网络功能,并且,Linux上的socket库兼容BSD socket库,为开发网络应用提供良好的支持。对应用程序员来说,掌握socket开发可以快速的实现网络应用程序。本章主要内容如下: TCP/IP协议簇介绍 socket通信的概念 通过socket进行面向数据流的通信 通过socket进行面向数据报的通信 socket开发的高级应用 9.1 网络通信基础 互联网(internet)是目前世界上应用最广泛的网络,最早从美国军方的科研项目ARPA(Advanced Research Projects Agency)发展而来。互联网采用TCP/IP协议传输数据,虽然TCP/IP协议并不是ISO规定的标准协议,但是作为应用最广泛的协议已经成为大规模网络通信的事实标准。本节介绍TCP/IP协议簇以及其中重要的IP协议、TCP协议和UDP协议。 9.1.1 TCP/IP协议族 TCP/IP协议实际上是由一组协议组成的,通常也称作TCP/IP协议簇。根据ISO/OSI参考模型对网络协议的规定,对网络协议划分为7层。 9.1.2 IP协议 在图看出,IP协议工作在传输层,负责数据包的传输管理。IP协议实现两个基本功能:寻址和分段。寻址是IP协议提供的最基本功能,IP协议根据包头中目的地址传送数据报文。在传送数据报文过程中,IP协议可以根据目的地址选择报文在网络中的传输路径,这个过程称作路由。 分段是IP协议一个重要功能。由于不同类型的网络之间传输的网络报文长度是不同的,为了能适应在不同的网络中传输TCP/IP协议报文,IP协议提供分段机制帮助数据包穿过不同类型的网络。IP协议在协议头记录了分段后的报文数据,但是IP协议并不关心数据的内容。 9.1.2 IP协议 9.1.3 TCP协议 TCP协议是一个传输层协议。如图9-1所示,TCP协议位于网络互联层后,是IP协议的上层协议。TCP是一个面向连接的可靠传输协议。在一个协议栈处理程序中,如果发现数据包的IP层后携带了TCP头,会把数据包交给TCP协议层处理。TCP协议层对数据包排序并进行错误检查,按照TCP数据包头中的序列号排序,如果发现排序队列中少某个数据包,则启动重传机制重新传送丢失的数据包。 TCP协议层处理完毕后,把其余数据交给应用层程序处理,如FTP的服务程序和客户程序。面向连接的应用几乎都使用TCP协议作为传输协议。TCP传输协议有高度可靠性,可以最大限度保证数据在传递过程中不丢失。 9.1.4 UDP协议 UDP与TCP一样是传输层协议,但是UDP协议没有控制数据包的顺序和出错重发机制。因此,UDP的数据传输时不稳定的。通常UDP被用在对数据要求不是很高的场合,如查询应答服务等。使用UDP作为传输层协议的有NTP(网络时间协议)和DNS(域名服务系统)。 UDP另一个重要问题就是安全性不高。由于UDP没有连接的概念,在一个数据传输过程中,UDP数据包可以很容易的被伪造或者篡改。 9.1.5 学习分析协议的方法 网络协议一般都比较抽象,给人感觉枯燥。学习网络协议需要一个直观的认识,推荐读者使用网络协议分析的工具分析协议。目前有很多的网络协议分析工具,著名的Sniffer就是一款专业的网络协议分析利器,本书介绍一个比较流行的工具Ethereal,这是一个开源的网络协议分析工具,功能十分强大,使用libpcap库做数据包解析,使用GTK+库做界面,由于这两个库是跨平台的,所以Ethereal可以在多种平台使用。Ethereal最大的特点是支持用表达式书写包过滤条件,同时支持常见协议的深度分析,如HTTP,SIP等。Ethereal最新版本已经更名为WireShark,官方网站是,官方网站有软件的使用手册以及下载。 软件的安装本书不做介绍,安装过程一般不需要选择,按照提示一步一步进行即可。本节介绍WireShark软件的使用。 9.2 socket通信基本概念 socket常被翻译成套接字或者插口,socket实际上就是网络上的通信端点。使用者或应用程序只要连接到socket便可以和网络上任何一个通信端点连接,传送数据。socket封装了通信的细节,在Linux系统,为使用者提供了类似文件描述符的操作方法,程序员可以不必关系通信协议内容而专注应用程序开发。根据数据传送方式,可以把socket分成面向连接的数据流通信和无连接的数据报通信。 9.2.1 创建socket对象 在使用socket通信之前,需要创建socket对象。对应用程序员来说,soeket对象就是一个文件句柄,通常

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档