《网络编程技术作业.doc》由会员分享,可在线阅读,更多相关《网络编程技术作业.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、网络编程技术作业1 1常用的网络操作系统有哪些?各有什么特点?各适用于什么场合? 2Windows NT或UNIX环境下如何实现对文件加锁? 3通信时可以采用的。I/O模型有哪些? 4什么叫进程?什么叫线程?两者之间的区别与联系是什么? 5如何创建一个进程?Linux中的进程创建函数返回时如何判断是父进程返回还是子进程返回? 6Windows环境下如何创建一个线程?如何结束一个线程?如何挂起一个线程? 7分析1.5.3节中代理服务器的守护进程程序daemonize(),熟悉程序中主要函数的功能及其使用方法。 8论述利用信号量和P、V操作如何实现进程间的互斥和同步。 9如何理解字节顺序?编程时如
2、何实现字节顺序之间的转换? 10如何实现应用程序与底层硬件之间的接口? 11曼彻斯特编码和差分曼彻斯特编码的编码规则是什么? 12 NE2000网卡寄存器有哪些?它们的地址如何分配? 13 NE2000包含哪两个缓冲区?通过哪几个指针来管理NE2000网卡的缓冲区? 14如何实现NE2000网卡初始化? 15针对UM9008(或NE2000)网卡芯片,编写网卡初始化程序。 网络编程技术作业2 lPacket Driver中,通过哪几个参数来描述网络接口? 2网络适配器初始化成功后返回的句柄的含义是什么? 3Packet Driver初始化包括哪些内容? 4网卡初始化时如何嵌入用户的中断服务程序
3、? 5填写下述功能的正确内容。 功能号: AH=2。 用 途:_。 适 用:所有机型。 入口参数:AH=2 /*功能号*/ AL=_ BX=_ DL=_ CX=unsigned typelen /*名字的长度,小于等于8个字节,可设为0*/ DS:SI=_ ES:DI=_ 出口参数: 正确返回 carry flag(进位标志)_。 AX=_。 错误返回 carry flag_。 DH=_。 6填写下述功能的正确内容。 功能号:AH=6。 用 途:_。 适 用:所有机型。 入口参数:AH=6 /*功能号*/ BX=_ CX=_ ES:DI=_ 出口参数: 正确返回 carry flag_。 CX
4、=_。 错误返回 carry flag_。 DH=_。 7填写下述功能的正确内容。 功能号: AH=14h(十进制为20)。 用 途:_ 适 用:所有机型: 入口参数:AH=20 /*功能号(十进制*/ BX=_ CX=_ 8填写下述功能的正确内容。 功能号: AH=1。 用 途:_。 适 用:所有机型。 入口参数: AH=1 /*功能号*/ AL=_ BX=_ 出口参数: 正确返回 carry flag清零。 BX=_。 CH=_。 DX=_。 CL=_。 AL=_。 AL=1 _ AL=2 _ AL=5 _ AL=6 _ AL=0FFh _ 9 NDIS支持哪几种驱动方式? 10分析了解W
5、indows DDK中附带的一个中间层驱动例程passthru的原理、功能及其使用方法。 11 VPacket 只能用于Win98,能否通过修改使之能应用于Windows 2000/XP等环境? 12了解常见的个人防火墙(如费尔PC防火墙)是基于哪些驱动程序实现的。 13编写针对UM9008(或NE2000)网卡芯片的Packet Driver 网络编程技术作业3 1请对常用的Socket操作与文件操作做对比分析,了解它们之间的异同点。 2Socket有哪几种通信方式,备对应于TCP/IP协议簇中的什么协议? 3试说明面向连接的Socket与无连接的Socket的工作原理有哪些不同,其主要区别
6、是什么。 4在Socket编程时如何获取本机的名字?如何获取IP地址? 5Socket提供哪些地址格式转换函数?这些函数如何使用? 6Socket程序的开始一般需要包含哪些标准系统头文件? 7Socket通信程序中如何处理非阻塞操作? 8编写网络代理服务器程序。 9编写基于Socket的网络监视程序sniffer 网络编程技术作业4 1与Berkeley Socket相比,WinSock具有哪些相同的功能?扩充了哪些功能? 2WinSock提供哪些网络地址数据库函数? 3WinSock能处理哪些网络事件? 4WinSock如何进行异步事件操作? 5熟悉VB、VC、C+、Delphi等语言自带的
7、WinSock控件的功能及其使用方法。 6 Select能处理哪些事件?简述Select的工作原理。 7分析WinSock I/O的各种模型的工作原理及其功能。 8试说明套接字模式的阻塞模式和非阻塞模式之间的区别。 9综述完成端口的概念、原理及利弊。 10如果要构建个大型网站,一般选用什么I/O模型? 11读下面程序,说明其功能。 1.#include 2.#include 3.#include 4.#include 5.#include 6.#include 7.#include 8.#include 9.#include headers.h #define INTERFACE eth0 /
8、*Prototype area*/ 10.int Open_Raw_Socket(void); 11.int Set_Promisc(char *interface, int sock); 12.int main() 13.int sock, bytes_recieved, fromlen; 14.char buffer65535; 15.struct sockaddr_in from; 16.struct ip *ip; 17.struct tcp *tcp; 18.sock = Open_Raw_Socket(); 19. Set_Promisc(INTERFACE, sock); 20.
9、 while(1) 22. 23. fromlen = sizeof from; 24. bytes_recieved = recvfrom(sock, buffer, sizeof buffer, 0, (struct sockaddr *)&from, &fromlen); 25. printf(nBytes received : %5dn,bytes_recieved); 26. printf(Source address : %sn,inet_ntoa(from.sin_addr); 27. ip = (struct ip *)buffer; /*See if this is a TC
10、P packet*/ 28. if(ip-ip_protocol = 6) 29. printf(IP header length : %dn,ip-ip_length); 30. printf(Protocol : %dn,ip-ip_protocol); 31. tcp = (struct tcp *)(buffer + (4*ip-ip_length); 32. printf(Source port : %dn,ntohs(tcp-tcp_source_port); 33. printf(Dest port : %dn,ntohs(tcp-tcp_dest_port); 34. 35.
11、36. 37.int Open_Raw_Socket() 38. int sock; 39. if(sock = socket(AF_INET, SOCK_RAW, IPPROTO_TCP) 0) /*Then the socket was not created properly and must die*/ 40. perror(The raw socket was not created); 41. exit(0); 42. ; 43. return(sock); 44. 45.int Set_Promisc(char *interface, int sock ) 46. struct
12、ifreq ifr; 47. strncpy(ifr.ifr_name, interface,strnlen(interface)+1); 48. if(ioctl(sock, SIOCGIFFLAGS, &ifr) = -1) /*Could not retrieve flags for the interface*/ 49. perror(Could not retrive flags for the interface); 50. exit(0); 51. 52. printf(The interface is : %sn, interface); 53. perror(Retrieve
13、d flags from interface successfully); 54. ifr.ifr_flags |= IFF_PROMISC; 55. if (ioctl (sock, SIOCSIFFLAGS, &ifr) = -1 ) /*Could not set the flags on the interface */ 56. perror(Could not set the PROMISC flag:); 57. exit(0); 58. 59. printf(Setting interface : %s : to promisc, interface); 60. return(0
14、); 61. 作业5 1OSI/RM分为几层?TCP/IP分为几层?它们之间的对应关系如何? 2OSI/RM网络层和传输层各提供哪些服务?TCP/IP协议的网络层和传输层各提供哪些服务? 3TCP/IP协议簇中的应用层提供哪些应用?各个应用分别通过哪个传输层协议来传送? 4计算可以存在多少个A类、B类和C类网络?在每类网络中可以有多少台主机? 5个数据报长度为4000字节(固定首部长度)。现在经过一个网络传送,但此网络能够传送的最大数据长度为1500字节。试问应当将它划分为几个短的数据报片?各数据报片的数据字段长度、片偏移字段和MF标志应为什么数值? 6假定一个通过Ethernet传送的电子邮
15、件报文其应用层PDU的长度是54字节,不考虑各报头的选项和帧校验和,请计算所组成的数据帧的效率(即有效数据与报文总长度之比),并说明计算的依据。 7试设计个基丁TCP/IP协议和网络编程技术实现的“网络协议分析软件”。要求: (1)能分析出MAC地址、帧类型、IP地址、协议类型、网络应用类型、报文长度以及判断是数据包还是应答包等。 (2)对协议分析的结果进行屏幕显示并保存在文件中。 (3)说明系统的工作原理、功能模块组成、采用的网络编程方法、各功能模块的工作流程等。 8下列报文是从以太网上拦截下来的报文(不包括同步序列和CRC校验),请分析: (1)这是以太刚帧还是802.3帧? (2)使用的是什么网络协议(IPX、IP、ARP、RARP)? (3)划分出帧头、网络层报头、传输层报头和数据部分。 (4)对各层报头中的一些关键域加以说明。 00 80 ad 18 5d 8e 00 d0 f8 00 03 6c 08 00 45 00 00 28 55 05 40 00 80 06 ee aa c0 a8 00 89 ca 6c 2b 82 04 0f 00 50 01 46 45 ca 07 bc 14 00 50 10 22 38 bf 5l 00 00 47 45 54 20 2f ba 注:上面的数据帧不包含前导码、帧定界符和校验和。