资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
计算机网络原理实验指导书目录计算机网络原理实验指导书1实验一 IP协议分析2一、实验目的2二、实验学时2三、实验类型2四、实验步骤2实验二TCP网络编程5一、实验目的5二、实验学时5三、实验类型5四、实验步骤5实验一 IP协议分析一、实验目的1. 掌握IP数据报的报文格式2. 掌握子网掩码和路由转发二、实验学时4学时三、实验类型验证型实验四、实验步骤实验分组进行,每组6人,采用网络结构二.说明:主机A、C、D的默认网关是172.16.1.1;主机E、F的默认网关是172.16.0.1.主机B启动静态路由服务方法:在命令行方式下,输入staticroute_config. 按照拓扑结构图连接网络,使用拓扑验证检查连接的正确性.练习一:领略真实的ARP同一子网1. 主机A、B、C、D、E、F在命令行下运行arp -a命令,察看ARP高速缓存表.问题l ARP高速缓存表由哪几项组成?2. 主机A、B、C、D启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件提取ARP、ICMP. 3. 主机A、B、C、D在命令行下运行arp -d命令,清空ARP高速缓存. 4. 主机A ping 主机D172.16.1.4. 5. 主机A、B、C、D停止捕获数据,并立即在命令行下运行arp -a命令察看ARP高速缓存. 问题结合协议分析器上采集到的ARP报文和ARP高速缓存表中新增加的条目,简述ARP协议的报文交互过程以与ARP高速缓存表的更新过程.练习二:编辑并发送IP数据报1. 主机A启动仿真编辑器,编辑一个IP数据报,其中: MAC层: 目的MAC地址:主机B的MAC地址对应于172.16.1.1接口的MAC. 源MAC地址:主机A的MAC地址. 协议类型或数据长度:0800. IP层: 总长度:IP层长度. 生存时间:128. 源IP地址:主机A的IP地址172.16.1.2. 目的IP地址:主机E的IP地址172.16.0.2. 校验和:在其他所有字段填充完毕后计算并填充.问题l IP在计算校验和时包括哪些内容? 2. 在主机B两块网卡分别打开两个捕获窗口、E上启动协议分析器,设置过滤条件提取IP协议,开始捕获数据. 3. 主机A发送第1步中编辑好的报文. 4. 主机B、E停止捕获数据,在捕获到的数据中查找主机A所发送的数据报.问题l 第1步中主机A所编辑的报文,经过主机B到达主机E后,报文数据是否发生变化?若发生变化,记录变化的字段,并简述发生变化的原因. 5. 将第2步中主机A所编辑的报文的生存时间设置为1.重新计算校验和. 6. 主机B、E重新开始捕获数据. 7. 主机A发送第5步中编辑好的报文. 8. 主机B、E停止捕获数据,在捕获到的数据中查找主机A所发送的数据报.问题l 主机B、E是否能捕获到主机A所发送的报文?简述产生这种现象的原因.实验二TCP网络编程一、实验目的1. 了解基于MFC的TCP网络编程的方式2. 学习使用MFC编写简单的TCP网络程序二、实验学时4学时三、实验类型设计型实验四、实验步骤该实验以两位同学为一组,一位同学开发服务器程序,一位同学开发客户端程序.使得客户端与服务器之间能够实现信息交换.一、Windows Socket和套接口的基本概念 网际协议是一种用于互联网的网络协议,已广为人知.它可广泛用于大多数计算机操作系统上,也可用于大多数局域网LAN和广域网WAN.从它的设计看来,它是一个无连接的协议,并不能保证数据投递万无一失.两个上层协议依赖IP协议进行数据通信.如果希望在Microsoft Windows下通过TCP和UDP协议建立网络应用程序,则需要使用Winsock套接口编程技术.套接口,就是一个指向传输提供者的句柄.Win32中,套接口不同于文件描述符,所以它是一个独立的类型SOCKET.Windows Sockets描述定义了一个Microsoft Windows的网络编程界面,它是从Unix Socket的基础上发展而来的,为Windows TCPIP提供了一个BSD型的套接字规范,除与43BSD Unix Sockets完全兼容外,还包括一个扩充文件,通过一组附加的API实现Windows式的编程风格;而Winsock则是在MicrosoftWindows中进行网络应用程序设计的接口.Windows在Internet支配域中的TCPIP协议定义了Winsock网络编程规范,融入了许多新特点.使用Socket的目的是使用户在网络协议上工作而不必对该网络协议有非常深入的了解.此外,编写的程序还可被迅速地移植到任何支持Socket的网络系统中去. Winsock提供了二种可为指定传输协议打开、计算和关闭会话的能力.在Windows下,TCPIP上层模型在很大程度上与用户的Winsock应用有关:换言之,用户的Winsock应用控制了会话的方方面面,必要时,还会根据程序的需要格式化数据. 套接口有三种类型:流式套接口、数据报套接口与原始套接口. 流式套接口定义了一种可靠的面向连接的服务,实现了无差错无重复的顺序数据传输.数据报套接口定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠和无差错.原始套接口允许对低层协议如IP或ICMP直接访问,主要用于新的网络协议实现的测试等. 面向连接服务器处理的请求往往比较复杂,不是一来一去的请求应答所能解决的,而且往往是并发服务器.使用面向连接的套接口编程,可以通过图来表示.无连接服务器一般都是面向事务处理的,一个请求、一个应答就完成了客户程序与服务程序之间的相互作用.若使用无连接的套接口编程,程序的流程可以用图表示.套接口工作过程如下:服务器首先启动,通过调用socket建立一个套接口,然后调用bind将该套接口和本地网络地址联系在一起,再调用listen使套接口做好侦听的准备,并规定它的请求队列的长度,之后,调用accept来接收连接.客户在建立套接口后就可调用connect和服务器建立连接.连接一旦建立,客户机和服务器之间就可以通过调用read和write来发送和接收数据.最后,待数据传送结束后,双方调用close关闭套接口. 在网络编程中,掌握端口的概念十分重要. 端口:基于TCPIP协议的网络中,计算机都分配有一个IP地址,用一个32位二进制数来表示,正式的称呼是Ipv4地址.客户机需要通过TCP或UDP和服务器通信时,必须指定服务器的IP,地址和服务端口号.另外,服务器打算侦听接入客户机请求时,也必须指定一个IP,地址和一个端口号.在选择端口时,应特别小心,因为有些可用端口号是为已知的服务保留的,如文件传输协议和超文本传输协议,即FTP和.已知的协议,即固定协议,采用的端口由互联网编号分配认证控制和分配,RFC 1700中说明的编号. 从本质上说,端口号可分成3类:已知端口、已注册端口、动态和私用端口. 已知端口0-1023,由IANA控制,是在UNIX中为固定服务保留的. 已注册的端口1024-49151,由IANA列出来的,供普通用户的普通用户进程或程序使用. 动态和私用端口49152-65535. 普通用户应用应选择1024-49151之间的已注册端口,从而避免端口号已被另一个应用或系统服务所用.此外,49152-65535间的端口可自由使用,因为IANA这些端口上没有注册服务.二、MFC CSocket类的通信流程使用CSockct类进行网络二进制数据通信的连接流程,如下表所示.服务器端注释客户端lCsocketm_server构造一个socket对象Csocket m_client2m_server.create创建socketM_client.create3m_server.listen听等连接与服务器建立连接m_client.connectstraddr,nport此时阻塞.等待服务器端侦听.4Csocket m_receive;m_server.accpet此时阻塞,等待客户机连接构造新的socket对象用以接收客户端的连接5CsocketFile file;构造一文件对象CsocketFile file6CArchivearinCArchivearout构造流对象CArchivearinCArchivearout7arinvalue;aroutvalue;aroutvalue;注意事项:利用cArchive类进行网络数据传输的操作固然方便直观,但是如果编写的程序是和别人的程序进行通信的话,就要注意对方的程序是否也用了CArchive类,否则会造成数据相互不能识别.程序编写步骤客户机/服务器模式是socket点对点网络程序典型的模式.它用到的方法也是面向连接TCP连接的套接字MFC典型方式.其工作过程是:服务器首先启动,创建套接字后等待客户的连接;客户启动以后,创建套接字,然后和服务器建立连接;连接建立后,客户机和服务器可以通过建立的套接字连接进行信息通信.注意其中红色字体为LX1需做,黑色字体为LX2需做,蓝色字体表示二者都需做的部分.先建立一个MFC,选DialogBased,工程名为Lx2,如图所示.下一个对话框选择Window Sockets,后面的选项酌情考虑,或者连续选择默认的即可,如图所示.如果忘了添加Windows Sockets选项,可以在文件头部添加下列语句进行补救: #includeWinsock.h #includews2tcpip.h #pragma ment 注:这些语句支持winsock2.出现Dialog以后,编辑界面,使其如图所示并且对控件点击右键,选择属性选项,把每个控件的ID改掉.各个控件的ID如下表,并且在对话框视图中点击右键,选择Class Wizard选项,用该工具对控件添加变量.控件ID变量名绑定变量类型对应界面上的控件IDC_CONTENT m_msg CString输入发送内容的文本框IDC_CONTENTm
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号