文档详情

第1讲 网络应用程序设计基础.ppt

发布:2017-06-02约7.98千字共33页下载文档
文本预览下载声明
网络编程方法纵览 应用层 网络接口层 网际层 IP 运输层(TCP 或 UDP) ASP CGI WinInet …… 直接网卡编程技术 基于Pacekt Driver的网络编程方法 基于NDIS的网络编程方法 Winpcap编程 原始套接字 流式套接字 数据报套接字 1.3.1 面向应用的网络编程方法 WinInet编程 基于WWW应用的网络编程 面向SOA的Web Service编程 1.3.2 基于TCP/IP协议栈的网络编程 网络套接字 层次低、自由度大 深入了解TCP/IP 掌握套接字编程接口的主要功能和使用方法 1.3.3 面向原始帧的网络编程方法 直接网卡编程 基于Packet Driver的网络编程 基于NDIS的网络编程 WinPcap编程 思考题 TCP/IP的五个层次是什么?各层的主要任务是什么? 路由器、交换机和主机分别处理TCP/IP中的哪些层次? NAT技术主要有哪些?NAT技术对网络应用程序的使用带来哪些影响? * 1、 TCP/IP 详解,卷1:协议,W. R. Stevens著, 范建华 等译,机械工业出版社,2000.04 (Richard Stevens,TCP/IP Illustrated, Vol.1 / Vol.2 / Vol.3) 这是一本众望所归的书。自从1994年出版以来,TCP/IP Illustrated就一直是TCP/IP领域具有传奇色彩的圣经级著作。这一套著作共分为三卷,第一卷通过实际动手实验的方式深入探讨TCP/IP协议,第二卷逐行解释了4.4BSD系统TCP/IP协议栈的15,000行实现代码,第三卷探讨了T/TCP和HTTP等高级协议。整套书最大的特点就是贴近实战,完全符合程序员的胃口,不空谈,不说教,用实验和代码来说明问题。写作这样的书,对于作者要求非常之高,即使在今天看来,敢于这么写作的作者也是凤毛麟角。Richard Stevens以他的写作风格和作品,在TCP/IP编程领域竖立起一座丰碑,令其他作者高山仰止,心向往之。 2.Richard Stevens, UNIX Network Programming, 2/e, Vol.1 / Vol.2 《 UNIX网络编程卷2:进程间通信(第2版) 》《 UNIX网络编程(第2版)第1卷:套接口API和X/Open传输接口API 》 又是Richard Stevens,又是经典名著。这本书的第一版问世于1990年,是Stevens的开山之作,一举奠定了Stevens在网络编程领域的重要地位。如果说TCP/IP Illustrated解答了“什么是TCP/IP”和“TCP/IP是怎么实现的”两个问题,那么这本书则是在回答“怎样运用TCP/IP开发网络应用程序”的问题。显而易见,这本书的内容更加贴近普通程序员,因此,大多数人是先学习UNP,然后再深入学习TCP/IP Illustrated。 这也是一本让人伤感的书,Richard Stevens从1997年开始撰写此书第二版,制定了一个宏大的计划,卷1阐述Socket API和TLI API,卷2阐述除Socket之外的其他IPC机制,卷3阐述网络编程应用。应该说,卷1和卷2都是为了给卷3打基础。然而天妒英才,就在世人翘首企盼第三卷的时候,1999年9月1日,Richard Stevens英年早逝。留下这套未完成的巨著,让人感慨不已。不过最近从Prentice Hall传来好消息,出版社已经找到合适的作者,重新修订这套经典巨著,其中第一卷即将问世,并且已经在Amazon上热卖。相信会有当世高人沿着Stevens的足迹给我们续写第三卷的,让我们拭目以待。 * 分层的目的——层次结构——层次功能——层次中的对象——可借鉴的思想 1.2.1为什么要进行协议分层? 协议软件必须解决的问题 1.硬件失效:主机或者路由器硬件失效或操作系统崩溃而不能工作。网络传输链路可能出现问题,不能完成数据的传输任务。协议软件应该能够检测出这些问题,并尽可能进行恢复工作。 2.网络拥塞:即使所有的软件件工作正常,网络的承载能力也是有限的,所以有可能出现拥塞的现象。协议软件必须采取一定的策略使得受到拥塞的机器能够抑制进一步的负载。 3.分组时延、分组丢失:分组在网络传输的时间特别长,或者分组在网络中丢失了。协议软件必须能够知道这些情况,并设法进行补救。 4.数据损坏:数据在传输过程中,因为种种的原因可能受到损坏。协议软件应该能够检测出来这种错误并尽力进行恢复。 5.数据重复或者乱序:提供多路由的网络可能会出现乱序的分组或者重复的分组。协议软件必须能够处理这些问题。 如果用一个协议来处理所有的问题,显然过于复杂。所以要进行分层处理,每层的协议分别处理不同的问题。 * 强调
显示全部
相似文档