您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > windows编程技术25网络编程简介
1第25章网络编程简介这里所说的网络主要是指因特网(Internet)。本章先介绍网络与编程的一些基本概念,然后重点讲解套接字(Socket)和WinInet的MFC编程,最后简介ASP.NET的Web编程。25.1网络与编程本节先介绍网络的概念和发展简史,再给出两种主流的分层网络模型,然后讨论与网络编程有关的接口和技术等基本内容。25.1.1网络我们所说的网络(network)一般指计算机网络,它是一种由多台独立自主的计算机通过软硬件互连,以实现资源共享和信息交换的系统。提供资源或信息的计算机和软件被称为服务器,请求和使用资源或信息的计算机和软件被称为客户端。如网站是Web服务器,浏览器就是Web客户端。依据通信的距离和范围,网络可以分成(十米~几公里的)局域网(LocalAreaNetwork,LAN,如校园网)、(几十公里内的)城域网(Metropolitan[都市/大城市]AreaNetwork,MAN,如3G网)和(百公里外的)广域网(WideAreaNetwork,WAN,如因特网)。局域网有多种拓扑结构(参见图25-1),目前使用最广泛的是采用总线型拓扑结构的以太网(Ethernet),它是由美国施乐(Xerox)公司帕洛阿尔托研究中心(PARC)的BobMetcalfe于1976年发明的(1979年他离开了施乐创建了3COM公司),以太网使用CSMA/CD(载波监听多路访问及冲突检测技术)技术,并以10M/S的速率运行在多种类型的电缆上。以太网与IEEE802.3系列标准相似。2网络的核心是协议(Protocol)。25.1.2因特网因特网(Internet,网际网/互联网)的前身是1969年底启用的ARPANet(AdvancedResearchProjectsAgencyNetwork,[美国国防部]高级研究计划署网络,阿帕网),由BobTaylor和LarryRoberts等人主持研制。1973年底,RobertE.Kahn和VintonCerf提出了基于包交换的两个网络协议IP(InternetProtocol,网际协议)和TCP(TransmissionControlProtocol,传输控制协议),1983年元旦ARPANet启用TCP/IP协议集。1986年,ARPANet的主干网被NSFNet(NationalScienceFoundationNetwork,[美国]国家科学基金会网络)接替,并改名为Internet(因特网),1991年起对社会开放。25.1.3万维网1990年10月在CERN(ConseilEuropeenpourlaRechercheNucleaire,欧洲粒子物理研究所)工作的TimBerners-Lee(参见图25-1)提出了因特网应用层的两个协议:用于描述网页的HTML(HyperTextMarkupLanguage,超文本标记语言)和用于传输网页文档和各种资源数据的HTTP(HypertextTransferProtocol,超文本传输协议),创立了万维网(WorldWideWeb,,环球网),一般简称为Web(蜘蛛网),Web很快成为因特网的主体。1993年初,美国Illinois(伊利诺)大学的硕士研究生MarcAnderressen与EricBina合作在位于该校内的NCSA(NationalCenterforSupercomputingApplications美国超级计算应用中心)开发出支持内嵌图像的网页浏览器马赛克(Mosaic),1994年10月Anderressen等图25-1TimBerners-Lee3人创办的网景公司Netscape推出了Navigator浏览器,得到广泛使用,大大推动了互联网的普及。1995年微软公司从伊利诺大学购得马赛克技术,并在此基础上开发出IE(InternetExplorer,因特网探索者)浏览器,随Windows95免费推出。被微软公司挤垮的网景公司于1998年11月被AOL公司收购,并于2003年7月成立了非盈利的Mozilla基金会,在其资助下于2004年11月9日推出了基于Mosaic的Firefox(火狐)浏览器。1994年10月Berners-Lee创立了万维网联盟(WorldWideWebConsortium,W3C),负责万维网的管理和技术标准的制定。1998年2月W3C推出了划时代的XML(eXtensibleMarkupLanguage,可扩展标记语言),2000年1月又推出了用来替代HTML的XHTML(ExtensibleHTML,扩展的HTML)。传统的万维网Web正在向新的万维网OneWeb过渡,参见图25-2。图25-2Web体系结构的发展其中:URL(UniformResourceLocator,统一资源定位符)——在因特网的Web服务程序上用于指定信息位置的表示方法,如。URI(UniformResourceIdentifier,统一资源标识符)——=URL+URN。URN(UniformResourceName,统一资源命名)——使用urn方案的URI,不一定意味着有确定的资源可用。如urn:isbn:0451450523。IRI(InternationalizedResourceIdentifiers,国际化资源标识符)——URI的国际化,支持Unicode。425.1.3IP网络的分层与协议这里的IP网络是指基于因特网协议套件(TCP/IP协议栈)的网络,包括:因特网(Internet)、城域网(MetropolitanAreaNetwork,MAN)和内部网(Intranet)等。为了便于分析和管理,一般将通信网络抽象为若干层。主要有ISO(和IEC共同)制定的7层参考模型(ReferenceModel)ISO/OSI(国际标准,失败,主要用于理论研究)和因特网5层参考模型TCP/IP协议栈(实事标准,成功,应用十分广泛)。参见表25-1和图25-2&3。表25-1ISO/OSI7层参考模型OSI模型数据单元层功能主机层数据7.应用对应用的网络过程6.表示数据表示与加密5.会话主机间通信段4.传输端到端连接与可靠性(TCP)介质层包/数据报3.网络路径确定与逻辑寻址(IP)帧2.数据链接物理寻址(MAC&LLC)位1.物理介质,信号与二进制传送其中:ISO(InternationalOrganizationforStandardization,国际标准化组织)——由153个国家的国家标准学会联合组成的一个非政府国际组织,总部(中央秘书处)设在瑞士的日内瓦,负责制定适应商业和广泛社会需要的各种国际标准,网址为。IEC(InternationalElectrotechnicalCommission,国际电工技术委员会)——一个成立于1906年6月的国际标准化权威组织,属于联合国的甲级咨询机构,负责制定关于电工电子各方面的标准,有42个会员国,总部也设在瑞士的日内瓦,网址为。OSI(OpenSystemsInterconnection,开放系统互连)——一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。对应的国际标准为:ISO7498:1984、ISO/IEC7498-1~4:1994、1989、1989、1997)。MAC(MediaAccessControl,介质访问控制)——数据链路层的子层,提供寻址和信道访问的控制机制,位于物理层和逻辑链路层之间。LLC(LogicalLinkControl,逻辑链路控制)——数据链路层的上部子层,在MAC层上传输的多路复用和分离协议,提供流量和差错控制。ISO/OSI7层参考模型因特网5层参考模型(及协议)5应用层(Application)应用层(HTTP/HTML、FTP、SMTP/POP3/IMAP、……)表示层(Presentation)会话层(Session)传输层(Transport)传输层(TCP/UDP)网络层(Network)互连网层(IP/ICMP/IGMP)数据链路层(Data-link)网络接口层(ARP/RARP)物理层(Physical)物理层图25-2OSI与因特网参考模型的层次对应关系其中:ARP(AddressResolutionProtocol,地址解析协议)——计算机用来匹配IP地址到硬件地址的协议。计算机调用ARP广播一个请求,目标计算机应答该请求。RARP(ReverseAddressResolutionProtocol,逆向地址解析协议)——计算机系统在自举时获取IP地址的协议。IP(InternetProtocol,网际协议)——定义互联网上包的格式与路由包到其目的地之机制。ICMP(InternetControlMessageProtocol,互连网控制消息协议)——提供网络层的控制手段和差错报告。IGMP(InternetGroupManagementProtocol,互连网组管理协议)——用来管理组播的,它是参加组播的主机与路由器之间交换组员信息的协议。不过,组播目前存在多个组的地址冲突问题,而且,现有的路由器一般不支持组播。TCP(TransmissionControlProtocol,传输控制协议)——为应用程序提供访问面向连接的通信服务,可靠、控制流量。特点:面向连接、累计确认与超时重传(保证数据传输的可靠性)、拥塞控制(基于滑动窗口协议)、报头变长(≥24B)。UDP(UserDatagramProtocol,用户数据报协议)——为用户提供无连接的服务,高效但不可靠,主要用于传输多媒体数据。特点:无连接、无差错控制(不重传)、报头中的校验和可选(可不计算和存储)、报头定长(8B)。FTP(FileTransferProtocol,文件传输协议)——因特网上管理文件传输的通讯协议,用于从一台计算机到另一台计算机传送完整的文件。SMTP(SimpleMessageTransferProtocol,简单邮件传输协议)——用于电子邮件的传输。POP3((PostOfficeProtocol,邮局协议第三版)——提供用户计算机对(本地邮件服务器中的)电子邮箱进行远程存取的脱机协议。IMAP(InternetMessageAccessProtocol,因特网消息访问协议)——提供用户计算机对(本地邮件服务器中的)电子邮箱进行远程操作的联机协议。6图25-3IP网络模型25.1.4因特网编程通用的因特网编程,一般采用传统的套接字(Sockets)网络API,在Windows平台中对应的是Winsock。微软还自己开发了用于因特网应用层的编程接口WinInet。1.Sockets和Winsock因特网(Internet)最初是基于Unix的,而Sockets(套接字/插座)是Unix第一个支持TCP/IP协议栈的网络API,最早于1982年8月随4.2BSD版Unix推出,常被称为Berkeleysockets(伯克利套接字)。Unix的BSD(BerkeleySoftwareDistribution,[美国加州大学]伯克利分校软件分发)版,是由Sun公司的创始人之一兼首席技术官BillJoy(比尔·乔伊)于1977年在伯克利分校读研期间自己开发的。Sockets也是由他编写的。Winsock(WindowsSocketsAPI)是从Sockets移植过来的TCP/IP编程的低级WindowsAPI,由JSB公司的MartinHall、Sun公司的MarkTowfiq和GeoffArnold、微软公司的HenrySanders和JAllard等人共同开发。Winsock的版本有:1.0(1992年6月,微软不支持)1.1(1993年1月,微软在Windowsfo
本文标题:windows编程技术25网络编程简介
链接地址:https://www.777doc.com/doc-4311008 .html