简单的TCP客户端程序_第1页
简单的TCP客户端程序_第2页
简单的TCP客户端程序_第3页
简单的TCP客户端程序_第4页
简单的TCP客户端程序_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机网络实验教学大纲实验名称:实验一、模拟Ethernet帧的发送过程(即CSMA/CD协议的实现)实验类型:综合性实验实验类别:基础专业基础专业实验学时:2(4)所涉及的课程及知识点:计算机网络;局域网技术、Ethernet帧、CSMA/CD协议。实验目的局域网技术发展十分迅速,目前,Ethernet是应用最广泛的局域网。因此,学习Ethernet技术对深入掌握局域网知识是非常重要的。本课程设计的目的是模拟Ethernet帧的发送过程,使学生熟悉Ethernet帧的数据发送流程,即CSMA/CD工作流程。实验内容编写程序模拟Ethernet结点的数据发送流程。实验要求用两个线程模拟两台网络

2、中的主机进行网络通信。通信中进行数据的发送时,由发送的线程号和总线模拟变量进行或运算,当结果与要发送的数据相等时,既说明没有发生冲突,没有冲突就记录数据发生的次数;如果不相等,则说明发生了冲突,发生冲突后,对两台主机进行冲突次数记录,并分别调用冲突处理函数,进行延迟时间的推算(延迟函数是根据网络数据发生冲突时的原理CMSA/CD来进行时间的计算)。再获得延迟时间后,分别对两个线程延迟。数据发送后置接收标志,然后接收数据。在数据接收完之后,判断循环次数,当次数满时,退出循环。在循环中,可以添加一些其他的线程处理机制。实验仪器设备和材料清单要求:具备局域网网络环境,VC+实验要求课外必须预习,根据

3、实验任务,查阅资料,进行理论分析和研究,确定实验方案,或根据规定的实验方案,确定实验步骤。准备、编写实验程序,另安排了4学时的课外上机时间,学生可根据自己的实际情况,延长课外机时。实验步骤1)用两个线程a和b来模拟Ethernet上的两台主机。 2)用一个双字类型变量 Bus来模拟总线(将其初始化为“0”,并且总线等于“0”时表示总线空闲)。 3)两个子线程向总线发送自己的数据。数据用该线程的线程号进行模拟,发送数据用线程号和Bus的“或”操作进行模拟(即BusBus | ID,ID为该线程的线程号)。 4)每台主机须向总线上成功发送10次数据,如果其中某次数据发送失败,则该线程结束。5)发送

4、流程须遵循CSMA/CD。随机延迟算法中的冲突窗口取0.005。在数据发送成功(即BusID)后,报告“ID sendsuccess”,产生冲突(即Bus !ID)后报告“ID send conllision”,发送失败(即冲突计数器值为0)后报告“ID send failure”。随着主机发送成功次数增加,报告其已发送成功的次数,如“主机A发送成功数=3”。实验成绩评定方法实验成绩总分以100分计,其中实验准备占30,实验操作占40,其它占30%。实验报告要求要求学生从实验方法的建立、实验步骤的设计、实验设备的选择、实验数据的处理、实验结果的分析讨论等方面写出报告。报告包含:系统概述运行环境

5、编译使用方法实现环境程序文件列表等 主要数据结构 主要算法 遇到的问题及解决方法 体会与建议可正确编译的可读性好的源代码八、思考题实验名称:二、发送 Ethernet ARP包实验类型:综合性实验实验类别:基础专业基础专业实验学时:2(4)所涉及的课程及知识点:计算机网络;地址解析协议(Address Resolution Protocol,ARP)、ARP协议的帧结构。一、实验目的IP数据包常通过Ethernet发送。Ethernet设备并不识别32位IP地址,它们是以48位MAC地址传输Ethernet数据包的。因此,IP驱动器必须把IP目的地址转换成Ethernet网络目的地址。这两种地

6、址之间存在着某种静态的或动态的映射,通常需要查看一张表来进行这种映射。地址解析协议(Address Resolution Protocol,ARP)就是用来确定这些映象的协议。 ARP工作时,送出一个含有所希望的 IP地址的Ethernet广播数据包。目的地主机(或另一个代表该主机的系统)以一个含有IP和Ethernet地址对的数据包作为应答。发送者将这个地址对高速缓存起来,以节约不必要的ARP通信。本课程设计的目的是进一步熟悉ARP协议的帧结构以及它的运作过程。二、实验内容在熟悉ARP协议并了解Winpcap编程的前提下,构造ARP包,选择并打开网卡,将ARP包发送出去。 1)命令行格式:

7、arpsend src_ip src_mac dst_ip dst_mac flag 其中arpsend作为程序名。 各参数意义:src_ip:源IP地址。src_mac:源MAC地址。dst_ip:目的IP地址。dst_mac:目的MAC地址。flag:0表示ARP请求;1表示ARP应答。 例如: arpsend 192.168.1.I FA:01:02:C3:04:05 192.168.1.2 0D:E1:02:03:B4:06 12)输出:Send OK。3)程序的正确性的检验。可以安装一个截包软件,如 Iris,运行该软件以查看能否收到程序发出的ARP包,并检查包中各字段填充的内容(如

8、各地址、协议类型)是否准确。三、实验仪器设备和材料清单要求:具备网络环境并连入Internet,VC+四、实验要求课外必须预习,根据实验任务,查阅资料,进行理论分析和研究,确定实验方案,或根据规定的实验方案,确定实验步骤。准备、编写实验程序,另安排了4学时的课外上机时间,学生可根据自己的实际情况,延长课外机时。五、实验步骤首先,定义ARP包的数据结构。根据ARP分组结构,分别定义两个子结构,即物理帧结构。/*DLC头数据结构*/typedef struct DLCHeaderunsigned char DesMAC6;unsigned char SreMAc6; unsigned short

9、Ethertype; DLCHEADER;/ARP桢typedef struct ARPFrame unsigned short HW_Type;unsigned short Prot_Type;unsigned char HW_Addr_Len; unsigned char Prot_Addr_Len;unsigned short Flag; unsigned char Send_HW_Addr6;unsigned char Send_Prot_Addr4;unsigned char Targ_HW_Addr6; unsinged char Targ_port_Addr4;unsigned

10、char padding18;ARPFRAME;/ ARP包=DLC头+ARP帧typedef struct ARPPacket;DLCHEADER dlcHeader;ARPFRAME arpFrame;*PARPPACKETARPPacket ARPPACKET; 其次,定义三个子函数。 TransAndFilellMAC(CHAR *argv,unsigned char*a)其功能是判断argv(MAC地址)的格式是否正确。正确,则将它填到a中并返回1;否则,指出MAC格式错误并返回0。 TransAndFilellIP(CHAR *argv,unsigned char*b)其功能是判断

11、argv(IP地址)的格式是否正确。正确,则将它填到b中,并返回1;否则,指出MAC格式错误并返回0。 bool Send()其功能是读取并选择网卡,打开选定网卡后发送。成功后完成关闭网卡、释放资源等工作。Bool Send()/定义各变量LPADAPTER lpAdapter; /网卡结构指针LPPACKET lpPacket; /发送包结构指针ARPPacket ARPPACKET;/获取版本号,以判断操作系统类型DWORD dwVersion=Getversion();DWORDdwWindowsMajorVersion=(DWORD)(LOBYTE(LOWORD(dwVersion)I

12、f(!(dwVersion=0 x80000000& dwWindowsMajorVersion)/*在Windows NT下,获取UNICODE码网卡列表,并选择适当的网卡,将其名称转换伪ASCII码。主要用到函数PacketGetAdapterNames(AdapterNameu,&AdapterULength),第一个参数是char数组,大小为8192*2,用于存放网卡列表,第二个参数是unsigned long型的,其值为sizeof(AdapterNameU).*/else/*在Windows NT下,获取UNICODE码网卡列表,并选择适当的网卡,也使用PacketGetAdapt

13、erNames函数,只不过第一个参数大小为8192.*/打开网卡,参数是选定的网卡名lpAdapter=PacketOpenAdapter(AdapterNameA);/*发送帧:用PacketAllocatePacket()给要发送的包分配空间; 用PacketInitPacket(lpPacket,&,sizeof (ARPPACKET)初始化包结构; 用PacketSetNumWrites(lpAdapter,1) 用PacketSendPacket(lpAdapter,lpPacket,true)发送ARP包; 最后用PacketCloseAdapter(lpAdapter)关闭网卡*

14、/main函数根据命令行的输入,判断输入的正确性,完成ARP包中各字段的填充;再调用子函数send(),完成包的发送。填充ARP包中的各个字段时,要注意主义字节序和网络字节序的转换。如ARPPACKET.dlcHeader.Ethertype=(unsigned short)0 x0608。程序流程图:命令行参命令行参数=6?定义ARP包结构并初始化YYFlag=0?填充DLC的其他字段及ARP头的各个字段进入发送ARP包函数获取网卡列表?选择网卡并打开分配及初始化发送包结构发送包功?释放包结构关闭网卡结束ARP请求,填充DLC头中目的MAC(广播,全F)及FlagARP请求,填充DLC头中目

15、的MAC及Flag开始六、实验成绩评定方法实验成绩总分以100分计,其中实验准备占30,实验操作占40,其它占30。七、实验报告要求要求学生从实验方法的建立、实验步骤的设计、实验设备的选择、实验数据的处理、实验结果的分析讨论等方面写出报告。报告包含:系统概述运行环境编译使用方法实现环境程序文件列表等 主要数据结构 主要算法 遇到的问题及解决方法 体会与建议可正确编译的可读性好的源代码八、思考题实验名称:三、解析IP数据包实验类型:综合性实验实验类别:基础专业基础专业实验学时:2(4)所涉及的课程及知识点:计算机网络;IP数据包的结构及IP协议的工作原理。一、实验目的本章课程设计的目的就是设计一

16、个解析IP数据包的程序,并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从而对IP层的工作原理有更好的理解和认识。二、实验内容本设计的口标是捕获网络中的IP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。程序的具体要求如下:l)以命令行形式运行:ipparse logfile,其中ipparse是程序名,而logfile则代表记录结果的日志文件。2)在标准输出和日志文件中写人捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。3)当程序接收到键盘输入CtrlC时退

17、出。三、实验仪器设备和材料清单要求:具备网络环境并连入Internet,VC+四、实验要求课外必须预习,根据实验任务,查阅资料,进行理论分析和研究,确定实验方案,或根据规定的实验方案,确定实验步骤。准备、编写实验程序,另安排了4学时的课外上机时间,学生可根据自己的实际情况,延长课外机时。五、实验步骤模块分析模块一:函数名:getIpInfo参数类型: 无返回值 :无功能:配置日志文件,设置Window sock ,截获IP数据包,调用各成员函数对IP数据包进行解析,模块二:函数名:getVersion参数类型: BYTE,BYTE&返回值 :无功能:解析IP的版本信息,通过引用调用返回结果。模

18、块三:函数名:getIHL参数类型: BYTE,BYTE&返回值 :无功能:解析报头信息,通过引用调用返回结果。模块四:函数名:*getProcedence参数类型: BYTE返回值 :字符型功能:解析IP首部协议信息,返回结果。模块五:函数名:*getTOS参数类型: BYTE返回值 :字符型功能:解析服务类型,返回结果。模块六:函数名:getFlags参数类型: WORD,BYTE&,BYTE&返回值 :无功能:解析IP首部标志,通过引用调用返回结果。模块七:函数名:getFragOff参数类型: WORD,WORD&返回值 :无功能:获得IP片偏移量,通过引用调用返回结果。模块八:函数名

19、:*getProtocol参数类型: BYTE返回值 :字符型功能:获得协议与协议的字段值,返回结果。模块九:函数名:ipparse参数类型: ofstream,char*返回值 :无功能:将各种信息写入日志和屏幕输出程序流程图获得协议与协议的字段值获得协议与协议的字段值分析IP首部协议信息设置各种配置截获IP数据包输出信息并写入日志分析IP片偏移分析服务类型分析IP的版本信息分析报头信息分析IP首部标志六、实验成绩评定方法实验成绩总分以100分计,其中实验准备占30,实验操作占40,其它占30。实验报告要求要求学生从实验方法的建立、实验步骤的设计、实验设备的选择、实验数据的处理、实验结果的分

20、析讨论等方面写出报告。报告包含:系统概述运行环境编译使用方法实现环境程序文件列表等 主要数据结构 主要算法 遇到的问题及解决方法 体会与建议可正确编译的可读性好的源代码八、思考题实验名称:四、发现网络中的活动主机实验类型:综合性实验实验类别:基础专业基础专业实验学时:2(4)所涉及的课程及知识点:计算机网络;差错控制和查询机制,ICMP协议,网卡的工作原理、局域网扫描器的工作原理。一、实验目的IP协议的优点是简洁,但缺少差错控制和查询机制,而网际控制报文协议(ICMP)具有补充IP功能的作用。在网络管理中,常常要确定当前网络中处于活动状态的主机,这时可以通过使用ICMP的回送和回送响应消息来完

21、成这项工作。本课程设计的目的就是编制程序,利用ICMP数据包,发现指定网段中的活动主机。通过本实验,使学生更加熟悉ICMP报文的结构,对ICMP协议有更好的理解和认识。二、实验内容设计程序,其功能是发送ICMP数据包,以获取指定网络中的活动主机,并将结果显示在标准输出上。 程序的具体要求如下: l)用命令行形式运行:scanhost Start_IP End_IP 其中scanhost为程序名;StartIP为被搜索网段的开始IP地址; End_IP为搜索网段的结束IP地址。 2)输出格式为:活动主机1活动主机2三、实验仪器设备和材料清单要求:具备网络环境并连入Internet,VC+四、实验

22、要求课外必须预习,根据实验任务,查阅资料,进行理论分析和研究,确定实验方案,或根据规定的实验方案,确定实验步骤。准备、编写实验程序,另安排了4学时的课外上机时间,学生可根据自己的实际情况,延长课外机时。五、实验步骤开始 创建套接字开始 发送数据包构造原始套接字,并初始化 分析数据包构造原始套接字,并初始化主程序流程图建立并初始化目的主机的数据结构建立并初始化目的主机的数据结构起始IP地址-IDC_IPADDRESSSTART起始IP地址-IDC_IPADDRESSSTART 结束IP地址-IDC_IPADDRESSEND将开始_IP填入到终此中将开始_IP填入到终此中N开始IP终此IPN开始I

23、P终此IP线程数目太多线程数目太多等待一定时间等待一定时间创建一个线程并执行创建一个线程并执行开始开始YY还有线程在执行还有线程在执行WWaiting结束结束子程序流程图开始开始填充数据包发送数据报接收数据报去掉IP 报头获取IP地址信息数据包是否符合输入数据报中的IP地址结束YN六、实验成绩评定方法实验成绩总分以100分计,其中实验准备占30,实验操作占40,其它占30。七、实验报告要求要求学生从实验方法的建立、实验步骤的设计、实验设备的选择、实验数据的处理、实验结果的分析讨论等方面写出报告。报告包含:系统概述运行环境编译使用方法实现环境程序文件列表等 主要数据结构 主要算法 遇到的问题及解

24、决方法 体会与建议可正确编译的可读性好的源代码八、思考题实验名称:实验五、简单的端口扫描实验类型:设计性实验实验类别:基础专业基础专业实验学时:2(4)所涉及的课程及知识点:计算机网络;TCP IP 协议, Socket 编程。加深对 TCP IP 协议的理解,熟悉 Socket 编程。实验目的实验内容实现一个扫描器,必须能够完成以下所有功能:使用 TCP connect 、 TCP SYN 和 TCP FIN 进行端口扫描,使用 ICMP echo 扫描实现 IP 扫描。并把扫描得知的结果记录下来。 本项目由一人完成。使用端口扫描对一台主机进行扫描,并显示出结果( 一台主机上有哪些端口是打开

25、的 )。对一个网段进行 IP 扫描,显示出结果( 一个网段内有哪些主机是开机的 )。实验仪器设备和材料清单要求:Windows 或 Linux 环境下,具备局域网网络环境,VC+等。实验要求课外必须预习,根据实验任务,查阅资料,进行理论分析和研究,确定实验方案,或根据规定的实验方案,确定实验步骤。准备、编写实验程序,另安排了4学时的课外上机时间,学生可根据自己的实际情况,延长课外机时。友好的用户界面。实验步骤几种扫描方式提示:TCP connect() 扫描 :这是最基本的 TCP 扫描。操作系统提供的 connect() 系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么 connect() 就能成功。否则,这个端口是不能用的,即没有提供服务。这个技术的一个最大的优点是,你不需要任何权限。系统中的任何用户都有权利使用这个调用。另一个好处就是速度。如果对每个目标端口以线性的方式,使用单独的 connect() 调用,那么将会花费相当长的时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论