网络编程简介.doc
《网络编程简介.doc》由会员分享,可在线阅读,更多相关《网络编程简介.doc(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第13章 网络编程简介这里所说的网络主要是指因特网(Internet)。本章先介绍网络与编程的一些基本概念,然后重点讲解Socket的MFC与C# 编程和ASP.NET的Web编程。13.1 网络与编程本节先介绍网络发展的简史,再给出两种主流的分层网络模型,然后讨论与网络编程有关的接口和技术等基本内容。13.1.1 因特网与万维网因特网(Internet,网际网/互联网) 的前身是1969年底启用的ARPANet (Advanced Research Projects Agency Network,美国国防部高级研究计划署网络,阿帕网),由Bob Taylor和Larry Roberts等人主
2、持研制。1973年底,Robert E. Kahn和Vinton Cerf提出了基于包交换的两个网络协议IP(Internet Protocol, 网际协议)和TCP(Transmission Control Protocol,传输控制协议),1983年元旦ARPANet启用TCP/IP协议集。1986年,ARPANet的主干网被NSFNet(National Science Foundation Network,美国国家科学基金会网络)接替,并改名为Internet(因特网),1991年起对社会开放。1990年10月在CERN(Conseil Europeen pour la Recherc
3、he Nucleaire,欧洲粒子物理研究所)工作的Tim Berners-Lee提出了因特网应用层的两个协议:用于描述网页的HTML(HyperText Markup Language,超文本标记语言)和用于传输网页文档和各种资源数据的HTTP(Hypertext Transfer Protocol,超文本传输协议),创立了万维网(World Wide Web,WWW,环球网),一般简称为Web(蜘蛛网),Web网很快成为因特网的主体。1993年初,美国Illinois(伊利诺)大学的硕士研究生Marc Anderressen与Eric Bina合作在位于该校内的NCSA(National
4、Center for Supercomputing Applications美国超级计算应用中心)开发出支持内嵌图像的网页浏览器马赛克(Mosaic),1994年10月Anderressen等人创办的网景公司Netscape推出了Navigator浏览器,得到广泛使用,大大推动了互联网的普及。1995年微软公司从伊利诺大学购得马赛克技术,并在此基础上开发出IE(Internet Explorer,因特网探索者)浏览器,随Windows 95免费推出。1994年10月Berners-Lee创立了万维网联盟(World Wide Web Consortium,W3C),负责万维网的管理和技术标准的
5、制定。1998年2月W3C推出了划时代的XML(eXtensible Markup Language,可扩展标记语言),2000年1月又推出了用来替代HTML的XHTML(Extensible HTML,扩展的HTML)。传统的万维网Web正在向新的万维网One Web过渡,参见图13-1。图13-1 Web体系结构的发展其中:l URL(Uniform Resource Locator,统一资源定位符) 在因特网的Web服务程序上用于指定信息位置的表示方法,如l URI(Uniform Resource Identifier,统一资源标识符) = URL + URN。l URN(Unifor
6、m Resource Name,统一资源命名) 使用urn方案的URI,不一定意味着有确定的资源可用。如urn:isbn:。l IRI(Internationalized Resource Identifiers,国际化资源标识符) URI的国际化,支持Unicode。13.1.2 IP网络的分层与协议这里的IP网络是指基于因特网协议套件(TCP/IP协议栈)的网络,包括:因特网(Internet)、城域网(Metropolitan Area Network,MAN)和内部网(Intranet)等。为了便于分析和管理,一般将通信网络抽象为若干层。主要有ISO(和IEC共同)制定的7层参考模型(
7、Reference Model)ISO/OSI(国际标准,失败,主要用于理论研究)和因特网5层参考模型TCP/IP协议栈(实事标准,成功,应用十分广泛)。参见表13-1和图13-2&3。表13-1 ISO/OSI 7层参考模型OSI模型数据单元层功能主机层数据7. 应用对应用的网络过程6. 表示数据表示与加密5. 会话主机间通信段4. 传输端到端连接与可靠性 (TCP)介质层包/数据报3. 网络路径确定与逻辑寻址 (IP)帧2. 数据链接物理寻址(MAC & LLC)位1. 物理介质,信号与二进制传送其中:l ISO(International Organization for Standar
8、dization,国际标准化组织) 由153个国家的国家标准学会联合组成的一个非政府国际组织,总部(中央秘书处)设在瑞士的日内瓦,负责制定适应商业和广泛社会需要的各种国际标准,网址为http:/www.iso.org。l IEC(International Electrotechnical Commission,国际电工技术委员会) 一个成立于1906年6月的国际标准化权威组织,属于联合国的甲级咨询机构,负责制定关于电工电子各方面的标准,有42个会员国,总部也设在瑞士的日内瓦,网址为http:/www.iec.ch。l OSI(Open Systems Interconnection,开放系统
9、互连) 一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任 务。该模型的目的是使各种硬件在相同的层次上相互通信。对应的国际标准为:ISO 7498:1984、ISO/IEC 7498-14: 1994、1989、1989、1997)。l MAC(Media Access Control,介质访问控制) 数据链路层的子层,提供寻址和信道访问的控制机制,位于物理层和逻辑链路层之间。l LLC(Logical Link Control,逻辑链路控制)数据链路层的上部子层,在MAC层上传输的多路复用和分离协议,提供流量和差错控制。ISO/OSI 7层参考模型 因特网5层参考模型(及协议) 应用
10、层(Application) 应用层 (HTTP/HTML、FTP、SMTP/POP3/IMAP、) 表示层(Presentation) 会话层(Session) 传输层(Transport) 传输层 (TCP/UDP) 网络层(Network) 互连网层 (IP/ICMP/IGMP) 数据链路层(Data-link) 网络接口层 (ARP/RARP) 物理层(Physical) 物理层图13-2 OSI与因特网参考模型的层次对应关系其中:l ARP(Address Resolution Protocol,地址解析协议) 计算机用来匹配IP地址到硬件地址的协议。计算机调用ARP广播一个请求,目
11、标计算机应答该请求。l RARP(Reverse Address Resolution Protocol, 逆向地址解析协议) 计算机系统在自举时获取IP地址的协议。l IP(Internet Protocol, 网际协议) 定义互联网上包的格式与路由包到其目的地之机制。l ICMP(Internet Control Message Protocol,互连网控制消息协议)提供网络层的控制手段和差错报告。l IGMP(Internet Group Management Protocol,互连网组管理协议) 用来管理组播的,它是参加组播的主机与路由器之间交换组员信息的协议。不过,组播目前存在多个组
12、的地址冲突问题,而且,现有的路由器一般不支持组播。l TCP(Transmission Control Protocol,传输控制协议) 为应用程序提供访问面向连接的通信服务,可靠、控制流量。特点:面向连接、累计确认与超时重传(保证数据传输的可靠性)、拥塞控制(基于滑动窗口协议)、报头变长(24B)。l UDP(User Datagram Protocol,用户数据报协议) 为用户提供无连接的服务,高效但不可靠,主要用于传输多媒体数据。特点:无连接、无差错控制(不重传)、报头中的校验和可选(可不计算和存储)、报头定长(8B)。l FTP(File Transfer Protocol , 文件传
13、输协议) 因特网上管理文件传输的通讯协议,用于从一台计算机到另一台计算机传送完整的文件。l SMTP(Simple Message Transfer Protocol, 简单邮件传输协议) 用于电子邮件的传输。l POP3((Post Office Protocol,邮局协议第三版) 提供用户计算机对(本地邮件服务器中的)电子邮箱进行远程存取的脱机协议。l IMAP(Internet Message Access Protocol,因特网消息访问协议)提供用户计算机对(本地邮件服务器中的)电子邮箱进行远程操作的联机协议。图13-3 IP网络模型13.1.3 因特网编程通用的因特网编程,一般采用
14、传统的套接字(Sockets)网络API,在Windows平台中对应的是Winsock。微软还自己开发了用于因特网应用层的编程接口WinInet。1Sockets和Winsock因特网(Internet)最初是基于Unix的,而Sockets(套接字/插座)是Unix第一个支持TCP/IP协议栈的网络API,最早于1982年8月随4.2 BSD版Unix推出,常被称为Berkeley sockets(伯克利套接字)。Unix的BSD(Berkeley Software Distribution,美国加州大学 伯克利分校软件分发)版,是由Sun公司的创始人之一兼首席技术官Bill Joy(比尔乔
15、伊)于1977年在伯克利分校读研期间自己开发的。Sockets也是由他编写的。Winsock(Windows Sockets API)是从Sockets移植过来的TCP/IP编程的低级Windows API,由JSB公司的Martin Hall、Sun公司的Mark Towfiq和Geoff Arnold、微软公司的Henry Sanders和J Allard等人共同开发。图13-4 Bill JoyWinsock的版本有:l 1.0(1992年6月,微软不支持)l 1.1(1993年1月,微软在Windows for Workgroups 3.1的扩展包中支持,该扩展包也是Windows 9
16、5和Windows NT 3.x的组成部分)l 2(1994年,未公开发布)l 2.1.0(1996年1月,首个公开发布的Winsock 2规范,微软在Windows 95的扩展包中支持,该扩展包也是Windows 98和Windows NT 4.0及后续Windows版本的组成部分)l 2.2.0(1996年5月,去掉了对16位Windows应用程序的支持) l 2.2.1(1997年5月)l 2.2.2(1997年8月)在Windows中,除了可以直接用Winsock API进行C/C+编程外,还可以用Winsock的MFC和.NET BCL封装进行面向对象和组件的编程。MFC封装的Win
17、sock类有:基本的异步套接字类CAsyncSocket和简单的套接字类CSocket。为了使用Winsock编程,程序员得详细了解因特网应用层的具体协议内容。2WinInet使用Winsock编程,程序员必须与基本的网络通信打交道,还必须详细了解因特网应用层协议的具体内容,包括对话模式、命令的组成和格式、命令发送的顺序等等。为了方便因特网应用程序的编写,微软在Winsock之外,还自己开发了用于因特网应用层编程的接口WinInet(Win32 Internet Extensions,32位Windows的因特网扩展)。WinInet的优点:l 支持高速缓存似IE,将HTML和其他因特网文件放
18、入本地磁盘的特定目录,下次可直接加载该文件,而不是重复从因特网下载l 安全支持基本的质询/响应鉴别和SSL(Secure Socket Layer安全套接字层)l 采用缓冲I/Oread函数不返回值,可读取单独的文本行l 简单可使用状态回调函数OnStatusCallBack来对UI更新和注销;调用一个函数CInternetSession:OpenURL就可以找到IP地址、建立连接并准备好文件读取l 友好可分析和格式化报头,访问已经被移动的新位置处的服务器和文件MFC也包括了对WinInet的封装,提供了一些十分好用的类与全局函数,包括对HTTP、FTP、Gopher等协议的处理。13.1.4
19、 万维网编程万维网是因特网的主体,主要由HTTP和HTML两个协议组成,参见图13-1。传统的C/S(Client/Server,客户/服务器)结构,也正在被B/S(Browser/ Server,浏览器/服务器)结构所代替。基于浏览器的应用程序(瘦客户端,thin client 或lean client),正在逐步取代基于窗口的网络应用程序(胖客户端,fat client或rich client)。所以网络编程的重点是万维网的编程。浏览器(browser)是用来显示和操作Web网页(page)的一种应用程序。1HTML最初,万维网的网页是全文本(所以才叫超文本),后来才引入图片和各种多媒体信
20、息。HTML(HyperText Markup Language,超文本标记语言),是书写Web文档的一套语法规范,由万维网的发明人Tim Berners-Lee于1990年设计。1 特点l 是一种描述文档的标记语言,用标签(tag)来说明文档的内容与格式;l 源自SGML,是其应用与简化。其中,SGML(Standard Generalized Markup Language,标准通用化标记语言)是现代标记语言的鼻祖,为国际标准(ISO/IEC 8879:1986);l 支持超链接;图13-5 Tim Berners-Leel 支持C/S交互(如表单、JavaScript、Java Appl
21、et);l 基于HTTP,与平台无关。2 版本HTML的版本有:(圆括号内为制定者)l 0.91990.10. 基本超文本。(Berners-Lee & Connolly)l 1.01992.1. 内嵌图、文字格式。(CERN)l 2.01995.11. 表单。(IETF:RFC 1866)l 3.01996. 数字、表格、控件。未公开、未标准化。(W3C)l 3.2REC: 1997.1.14. 规范对Applet、脚本和颜色的支持。(W3C:REC标准)l 4.0REC: 1997.12.18 (1998.4.24推出修订版). 提倡结构与外观的分离,支持CSS(Cascading Sty
22、le Sheets,层叠样式表单),提高了对(动态)页面的控制能力、改进外观和功能、支持多语言文档。(W3C:REC标准)l 4.01REC: 1999.12.24. 对4.0的修正与补充,如更新样式表单、添加内容短表、修正文档脚本等。(W3C:REC标准)l 5.0WD: 2008.1.22. 副标题为“HTML和XHTML的词汇和关联API”。在此版本中,为帮助Web应用的开发者而引入了许多新特性,并基于主流开发实践而引入了许多新元素,而且还为努力改进交互性的用户代理而定义清晰的顺应标准给予了特别关注。HTML5最初由Apple、the Mozilla Foundation和Opera S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 编程 简介
限制150内