(讲稿)网络编程概论课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(讲稿)网络编程概论课件

考试方式:考查 考查内容:听课情况+试验+作业+软件(设计报告、软件原型) 网络基本课程体系 为什么开设本课程 如何通过计算机网络实现用户之间的通信?如何开发基于网络的应用系统(如协议分析、网络计费、网络监控、防火墙、网络入侵检测等)?如何有效地管理网络?……解决上述问题的关键是网络编程和网络协议分析。 到目前为止,还没有一本深入浅出地、全面地介绍网络编程技术,特别是涉及到比较底层(即数据链路层、网络层和传输层)的网络编程方法的教材。 较底层的网络编程方法是开发一些网络应用的必备基础知识。网络工程、信息安全、计算机软件、计算机应用等专业的本科生和研究生均应该掌握这些知识。 网络编程的实质 计算机网络程序设计就是利用网络应用编程接口编写网络应用程序,实现网络应用进程间的信息交互功能。 所需具备的知识与技术 熟悉windows和linux OS; C,C++语言; Windows程序设计,linux程序设计; 多进程、多线程技术; 网络协议; C/S编程模式. 开发工具: 授课内容及要求 Windows程序设计,linux程序设计、多线程技术(补充) Socket编程技术--Winsock编程技术(掌握); Winsock I/O方法(掌握); IP多播编程(掌握); Raw socket编程(基本掌握); SPI编程(掌握); 基于NDIS的编程(基本掌握); 基于Winpcap的网络编程(掌握); 基于网络编程的网络应用介绍(了解)。 1.2 TCP/IP简介 1.2.1 OSI模型与TCP/IP结构   OSI/RM(Open System Interconnection/Reference Model,开放系统互连参考模型)将计算机网络通信定义为一个七层框架模型,如图1.1所示。 1.2.2 TCP/IP基本概念   作为一个整体的结构体系,TCP/IP必然要涉及到一系列基本但非常重要的概念,本节主要简要介绍IP地址、地址解析及端口号等基本概念。 端口号   TCP和UDP采用端口号来识别应用程序。 如:FTP的TCP端口号是21,Telnet的端口号是23。 任何TCP/IP实现所提供的服务都使用通用端口号1~1023。这些通用端口号由Internet号分配机构(Internet Assigned Numbers Authority, IANA)来管理。 大多数TCP/IP用户应用程序的端口在1024~5000之间分配。 常用协议 以太网数据链路层帧结构 IP TCP UDP ARP/RARP 硬件类型(Hardware Type):该16位字段识别硬件接口类型,0x0001表示以太网接口,其他接口对应的值如表1.3所示。 ICMP 1.3 网络编程应考虑的问题 1.3.1 并发环境下的网络编程 单进程。 在多进程或多线程应用程序中,涉及到资源共享、进程或线程间的同步,因而要复杂得多。 在多进程或多线程应用中,使用的系统调用或函数必须是多线程安全的版本,否则应用编程人员需要避免使用或自己编写相应的函数。 在多线程应用中,对调用或函数的使用有很多限制。例如在Solaris 2.5中,在Solaris线程中访问定界数据会导致总线错误。在Solaris操作系统中,在一个线程中关闭另一个线程正在使用的网络端口会导致应用程序“死掉”,而这种情况在Digital UNIX(后称为Tru64 UNIX)中则不会出现。   因此,在多进程或多线程应用中,需要仔细考虑这些限制。 1.3.2 异构环境下的网络编程 网络通信常常是在多个平台之间进行,因此网络应用程序必须考虑不同平台之间的异构性: (1)字节顺序。不同的平台以不同的方式存放一个二进制数。最常见的有两种格式:大数在前的(big-endian)字节顺序和小数在前的(little-endian)字节顺序。 (大数在前的字节顺序是指将一个多字节数的高序字节存储在内存的起始地址;而小数在前的字节顺序则相反,将低序字节存储在内存的起始地址。) 在操作系统中,IBM AIX,Sun OS,HP Unix,Solaris采用大数在前的字节顺序;而Digital Unix,Linux,BSDi,SystemV4,DOS, Windows 9x/2000/NT则采用的是小数在前的字节顺序。 同一数值在具有不同字节顺序的平台上的表示刚好相反。因此,作为网络编程人员,必须清楚各种字节顺序间的区别,并采用相应的措施来解决因这种差别所带来的问题。 (2)字的长度。不同的实现对于相同的数据类型可能有不同的表示长度。如,64位操作系统与32位操作系统中,

文档评论(0)

宝贝计划 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档