《华南理工大学计算机网络实验指南.docx》由会员分享,可在线阅读,更多相关《华南理工大学计算机网络实验指南.docx(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机网络实 验 指 南(计算机类本科生试用)广东省计算机网络重点实验室计算机科学与工程学院华南理工大学2014年5月目 录目 录1实验一 网线制作31. 实验目的32. 实验器材及安排33. 实验步骤33.1任务与说明33.2直通线43.3交叉线43.3 RJ45接头的制作步骤5实验二 网络报文抓取与分析71实验目的72实验环境72.1 Wireshark介绍72.2 实验要求73实验步骤83.1 wireshark的安装83.2 查看本机的网络适配器列表83.3 在指定网络适配器上进行监听83.4 记录一个TCP三次握手过程93.5 一个TCP握手不成功的例子93.6 侦听网络上的ARP包
2、103.7 侦听网络上的ICMP包11实验三 路由器的基本操作131 实验目的132 实验环境和要求133 实验步骤134 主要实验内容144.1 观察和验证类144.2 配置类15实验四 组网实验18实验四 组网实验181. 实验目的182. 实验环境和要求182.1 实验拓扑182.2 实验器材182.3 实验要求193.实验步骤(参考)193.1 按实验图连接线路193.2 两个路由器的初始化配置193.3 路由配置21实验五:网络Socket编程231. 实验目的232. 实验主要内容232.1 实验要求232.1 推荐参考书籍233. 实验环境要求244.编程参考244.1套接字简介
3、244.2 WinSock简介31可选实验 交换机相关的实验321. 实验目的322. 实验设备323. 实验拓扑324. 主要实验内容334.1 交换机的基本配置334.2 VLAN间路由35致谢37附录1:实验室网络设备的使用38附录2:实验报告提交要求40附录3:Packet Tracer简介41实验一 网线制作1. 实验目的(1)了解常用传输介质的性质。(2)了解直通线和交叉线及其使用的情形。(3)制作UTP直通线和交叉线。(4)使用测试仪检查网线制作是否成功。(5)通过网线制作熟悉相关工具和测试仪的使用。2. 实验器材及安排(1)每人网线一根,RJ-45连接器(水晶头)三个(2)每组
4、公用压线钳和测线仪(3)考核方式:直连线、交叉线制作效果,实验报告(包括网线制作心得,实验后提交)3. 实验步骤3.1任务与说明任务:根据下面表格的排线方法来做一条直通线和一条交叉线。说明:为节约资源,本次实验每个同学只使用三个水晶头和一根网线。先做好一条直连线经检查合格后。剪去网线的一端,再做一根交叉线。即共用一次T568B线端。线序标准:主要有T568A和T568B两个标准,如下表所示:引针号T568AT568B12345678白绿绿白橙蓝白蓝橙白棕棕白橙橙白绿蓝白蓝绿白棕棕3.2直通线 制作一条T568B的标准直通线,用于工作站和集线器(或交换机或路由器)之间的连接,即用于DTE和DCE
5、之间的连接。如下图所示:直通线示意图说明:DTE:Data Terminal Equipment数据终端设备,产生或接收数据,通常是一些数据输入输出设备例:计算机、路由器、扫描仪、打印机等DCE:Data Communication Equipment数据通信设备,数据电路终端设备,通常产生时钟。例:Modem、Hub 、Switch等3.3交叉线制作一条交叉线,用于两个集线器或交换机之间的连接,即用于DTE和DTE之间或DCE和DCE之间的连接。一头是T568A的接线标准,另一头是T568B的接线标准。交叉线的制作应利用已经做好的直连线资源。制作的直连线通过检查并登记后,请剪去一端,另外一端
6、保持不变。在剪去的一端制作一个T568A线序的接头。如下图所示:交叉线示意图3.3 RJ45接头的制作步骤步骤1:清除末端线的外皮将双绞线端头剪齐,再将双绞线端头伸入剥线钳刀口,使线头触及前挡板,然后适度握紧卡线钳同时慢慢旋转双绞线,让刀口划开双绞线的保护胶皮,取出端头从而剥下保护胶皮。双绞线的外皮除去3厘米左右,步骤2:根据正确的颜色序列排好线的位置按照T568B的线序标准对双绞线进行排序。(注意线要拉直,线序正确)。排好序后的线应该尽量笔直紧靠并在一个平面内。 注意,水晶头的编号方式如下:RJ-45 水晶头线序步骤3:用RJ-45压线工具将排完序的双绞线一次性剪断,长度控制在12mm左右。
7、 目的是使得八根线的线端是齐平的,为下一步网线的插入作准备。注意:在剪线之前就应该把用力捏紧八根线,以免线扭动而出现线端不齐平的现象,并且要保持紧捏直到双绞线插入水晶头中。 步骤4:用将双绞线插入水晶头中用劲往里推。线要插到底。同时应注意线与水晶头的PIN脚对应。完全插入后,外层绝缘套应伸入到水晶头内,这样做出来的网线才会结实、耐用。步骤5:用压线钳用力压紧。(注意力度一定要足够) 要保证水晶头正确的放到了压线钳的槽中(压线钳的槽中突起的小铁片应该与水晶头外面的凹槽槽对应吻合,同时水晶头应顶到压线钳槽的底部)。放置好后可尽力往下压,(放置正确一般是很难把水晶头压坏的,但放置不正确则很容易压坏,
8、应小心)步骤6:测试将网线的两端分别插入测试仪的两个接口,通过观察测试仪器上亮灯的顺序,测试网线是否连接正确。步骤7:检查登记制作好后的网线应该到指导老师处检查登记方能生效。实验二 网络报文抓取与分析1实验目的(1)、学习了解网络侦听(2)、学习抓包工具Wireshark的简单使用(3)、对所侦听到的信息作初步分析,包括ARP报文,ICMP报文。(4)、从侦听到的信息中分析TCP的握手过程,进行解释(5)、分析了解TCP握手失败时的情况2实验环境2.1 Wireshark介绍Wireshark(前称Ethereal)是一个免费的网络报文分析软件。网络报文分析软件的功能是抓取网络报文,并逐层显示
9、报文中各字段取值。网络报文分析软件有个形象的名字“嗅探工具”,像一只猎狗,忠实地守候在接口旁,抓获进出该进口的报文,分析其中携带的信息,判断是否有异常,是网络故障原因分析的一个有力工具。 网络报文分析软件曾经非常昂贵,Ethereal/wireshark 开源软件的出现改变了这种情况。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal/wireshark 是目前世界使用最广泛的网络报文分析软件之一。请需要的同学在教学在线上下载中文操作手册。2.2 实验要求软件: Wireshark (目前最新版本1.4.1)
10、硬件:上网的计算机3实验步骤3.1 wireshark的安装wireshark的二进制安装包可以在官网http:/www.wireshark.org/download.html#release下载,或者可以在其他网站下载。注意:下载后双击执行二进制安装包即可完成wireshark的安装。安装包里包含了WinPcap,并不需要单独安装WinPcap。3.2 查看本机的网络适配器列表操作:单击菜单Capture中的Interfaces选项记录下你看到的信息,并回答问题:(1)、你机器上的网络适配器有几个?(2)、它们的编号分别是?3.3 在指定网络适配器上进行监听操作:在步骤3.2中弹出的Inte
11、rfaces选项中,选择指定的网络适配器并单击start按钮记录并解释wireshark监听的包内容(解释1条记录即可)3.4 记录一个TCP三次握手过程操作:在步骤3.3的基础上,单击start按钮后,打开命令行窗口并输入:telnet ,然后停止继续侦听网络信息。在wireshark的Filter中输入表达式:(ip.src=192.168.1.100 or ip.dst=192.168.1.100) and (tcp.dstport=23 or tcp.srcport=23)其中192.168.1.100是你所在机器的IP,请自行根据自己机器的IP地址修改filter(可使用IPconf
12、ig查看)。telnet服务的传输层采用了tcp协议,并且其默认端口是23。在wireshark窗口中,记下所显示的内容(可事先通过重定向的方式记录)并回答问题。(1)根据得到的信息解释所键入的filter定制中的参数的含义?(2)请从得到的信息中找出一个TCP 的握手过程。并用截图形式记录下来。(3)结合得到的信息解释TCP 握手的过程。3.5 一个TCP握手不成功的例子操作:在步骤3.3的基础上,单击start按钮后,打开命令行窗口并输入:telnet 192.168.1.101,然后停止继续侦听网络信息。在wireshark的Filter中输入表达式:ip.src=192.168.1.1
13、00 or ip.dst=192.168.1.100 and (tcp.dstport=23 or tcp.srcport=23)其中192.168.1.100是你所在机器的IP,telnet服务是tcp协议并且其默认端口是23。上面的IP 192.168.1.101 可改为任何没有打开telnet 服务的IP。比如:可以用身边同学的IP。(注:此IP 的机器上要求没有打开telnet 服务,但要求机器是开的,否则将无法主动拒绝一个TCP 请求)(1)试从得到的信息中找出一个TCP 的握手不成功的过程,并用截图记录下来(2)并结合所得到的信息解释这个握手不成功的例子。3.6 侦听网络上的ARP
14、包3.6.1 验证ARP工作原理关于 ARP 的说明:IP 数据包常通过以太网发送。但以太网设备并不识别32 位IP 地址,它们是以48 位以太网地址传输以太网数据包的。因此,必须把目的IP 地址对应到以太网的MAC 地址。当一台主机自己的ARP表中查不到目的IP对应的MAC地址时,需要启动ARP协议的工作流程。ARP 工作时,送出一个含有目的IP 地址的广播ARP请求数据包。如果被请求目的IP对应的主机与请求机位于同一个子网,目的主机将收到这个请求报文,并按照RFC826标准中的处理程序处理该报文,缓存请求报文中的源IP和源MAC地址对,同时发出ARP应答(单播),请求机收到ARP应答,将应
15、答中的信息存入ARP表,备下次可能的使用。如果被请求目的IP对应的主机与请求机不在同一个子网,请求机所在的缺省网关(代理ARP)会发回一个ARP应答,将自己的MAC地址作为应答内容,请求机即将目的IP和网关的MAC地址存入ARP表中。为了维护ARP表的信息是反应网络最新状态的映射对,所有的ARP条目都具有一个老化时间,当一个条目超过老化时间没有得到更新,将被删除。要看本机的 ARP 表(也即IP 与MAC 地址对应表)中的内容,只需在命令行方式下键入:arp a命令即可。在下面的实验中,为了能够捕捉到ARP 消息,首先将本机的ARP 表中的内容清空。这样当你使用Ping 命令时,它会首先使用A
16、RP请求报文来查询被ping机器IP 的MAC 地址。(当本地的ARP 表中有这个IP 对应的MAC 地址时,是不会再查询的)。要将本机的ARP 表中的内容清空,请使用命令:arp d *。关于ARP 更进一步的说明,请同学到网上查阅相关资料。3.6.1 验证实验操作:在步骤3.3的基础上,单击start按钮后,打开命令行窗口并输入:arp d (清除ARP表)ping 192.168.1.101 (Ping 任意一个和你的主机在同一个局域网的IP,说明:被Ping 的主机不能开防火墙)。在wireshark的Filter中输入表达式:arp,然后就能会出现ARP 消息的记录。请根据记录回答以
17、下问题:(1)记录下你所看到的信息,用截图形式。(找到ARP请求和ARP应答两个报文)(2)请分析解释你的记录中的内容表示什么意思,从而说明ARP的工作原理。3.6.2 设计一个ARP缓存刷新机制的验证为了避免子网中频繁发起ARP请求,让ARP工作得更加高效,每台主机(包括路由器)内部的内存中都开辟了一个ARP缓存空间,叫ARP表。按照教材上的讲解,ARP表的刷新因素主要有:(1)从应答中提取IP-MAC映射对;(2)从机器启动的时候发送的免费ARP请求(gratuitous ARP)中提取源IP-MAC映射对;(3)从子网中侦听到的普通ARP请求广播帧中读取源IP-MAC映射对。在PT模拟演
18、示中,已经看到:侦听到ARP广播请求的主机,并没有刷新自己的ARP表。请设计一个实验来分析说明现实网络中,上述第二条和第三条刷新机制是否存在或者被实现。注意:(1)实验室B3-230、231的所有PC的 consel 网卡都处于同一个大子网中(255.255.252.0)。(2)建议:这个设计实验,以48人的组来完成,并请组长在实验报告中写明实验方法,得到的结论,分析过程等,尽量详细。(组长一人写,并写明协助一起完成的组成员;组成员在自己的实验报告中,只需说明参加哪位组长的实验即可。)(3)如果时间来不及,请在宿舍继续完成该项。3.7 侦听网络上的ICMP包关于 ICMP 的说明:ICMP 是
19、“Internet Control Message Protocol”(Internet 控制消息协议)的缩写。它是TCP/IP 协议族的一个子协议,用于在IP 主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。我们在网络中经常会使用到 ICMP 协议,只不过我们觉察不到而已。比如我们经常使用的用于检查网络通不通的Ping 命令,这个“Ping”的过程实际上就是ICMP 协议工作的过程。还有其他的网络命令如跟踪路由的Tracert 命令也是基于ICMP 协议的。另外,ICMP
20、 消息也常常被用于作为网络攻击的手段。关于ICMP 更进一步的说明,请同学到网上查阅相关资料。操作:在步骤3.3的基础上,单击start按钮后,打开命令行窗口并输入:ping 192.168.1.101 (Ping 任意一个和你的主机在同一个局域网的IP,说明:被Ping 的主机不能开防火墙)。在wireshark的Filter中输入表达式:icmp,然后就能会出现ICMP 消息的记录。请根据记录回答以下问题:(1)记录下你所看到的信息?(找到回声请求和回声应答两个报文)(2)请分析解释一下你的记录中的内容,从而说明ping应用的原理。(提示:因为ICMP 报文是放在IP 报文中发送的,故wi
21、reshark侦听到的报文中有部分内容是属于ICMP 报文的,另有部分内容是属于IP 报文的,请注意加以区分)实验三 路由器的基本操作1 实验目的(1)熟悉路由器的各种操作模式,包括用户模式、特权模式、全局配置模式、其它各种配置模式;(2)掌握模式之前的转换方法,掌握帮助命令的使用;(3)掌握show命令;(4)掌握路由器的基本配置,包括名字、口令和接口等的配置;(5)掌握单子网通达的方法。2 实验环境和要求实验可以在真实网络环境中和Packet tracer模拟器(或别的模拟器中)中完成。请大家在网络实验室完成实验,在安排时间内无法完成的同学,请继续在模拟器packet tracer上完成。
22、路由器、交换机、上网主机,线缆若干条。3 实验步骤步骤1. 观察路由器的面板和背板;步骤2. 连接路由器和主机,注意使用的线缆和两端的插口;步骤3. 启动路由器,观察路由器的指示灯变化;步骤4. 启动主机的超级终端,逻辑连接路由器,进入CLI用户模式;步骤5. 从该模式出发,开始各项试验。注意:锐捷实验系统不采用超级终端,采用sceCRT,无须手动启动,由锐捷实验系统自动调用。4 主要实验内容4.1 观察和验证类1) 你所用的路由器的型号是什么? 2) 路由器上Console口的作用是什么?(请查资料回答) 3) 控制终端(Console terminal,即你的个人电脑)连在哪一个口上? 4
23、) 观察你所用的路由器(从玻璃窗观察机柜内路由器的接口),使用show interface命令,了解路由器上所有端口作用,完成以下表格。(请填写路由器几个网络端口的作用)路由器端口名称MTU状态备注 5) 比较路由器在不同模式下的提示符。把正确的选项填入下表中:模式种类提示符1. 用户模式(User EXEC Mode)2. 特权模式(Privileged EXEC Mode)3. 全局配置模式(Global configuration mode)4. 路由配置模式(Router configuration mode)5. 接口配置模式(Interface configuration mode
24、)A. Router# B. Router C. Router(config-if)#D. Router(config-router)# E. Router(config)#6) 比较路由器在不同模式下的功能。把正确的选项填入下表中:模式描述主要功能1. User EXEC Mode2. Privileged EXEC Mode3. Global configuration mode4. Router configuration mode5. Interface configuration modeA. 详细查看路由器的运行情况,对路由器进行调试、测试,B. 设置IP地址和子网掩码C. 运行简
25、单的配置命令D. 有限度地查看路由器的运行情况,可远程登录E. 设置路由选择协议7) 写出进入下列模式的命令:欲进入的模式当前模式命令Privileged EXEC ModeRouter Global Config Mode Router #Interface Config ModeRouter (config)#Router Config ModeRouter (config)#8) 使用帮助命令:在路由器提示符下打入“?”获得帮助,并回答以下问题:1.路由器回应了什么信息? _ 9) 运行其他show命令,回答以下问题:A. show clock命令的作用是什么? B. show hist
26、ory命令的作用是什么? C. show arp命令的作用是什么? D. show running-config命令的作用是什么? ,它的信息保存在哪里?。E. show startup-config命令的作用是什么? ,它的信息保存在哪里?。10) 键入show interface命令获得端口配置的统计信息。回答以下问题:A. 找到接口 fastEthernet 0/0 的如下信息:MTU的数值是多少? B. 找到接口 fastEthernet 0/0 的如下信息:带宽的数值是多少?C. 除了fastethnet接口外,还有什么接口? 4.2 配置类1)为路由器配置一个名字,并截屏。 注意:
27、掌握hostname命令2)为路由器的以太接口配置IPv4地址,是否生效?并将操作过程和生效验证截屏。(参考4.2.1的拓扑和配置步骤) 注意:掌握ip address 命令和show ip route命令。回答:(1)PC1和PC2是否通达?为什么?3)为路由器的以太接口配置IPv6地址,是否生效?并将操作过程和生效验证截屏。注意:和IPv4地址类似,ipv6 address命令(本实验为选做)4.2.1 IPv6单子网通达实验参考步骤1) 绘制拓扑2) 首先配置路由器,如下图所示: 注意:(1)一定不要忘记使用“no shutdown”开启接口。(2)配置完一个接口,使用show ipv6
28、 route查看IPv6路由表,注意观察随着接口地址的配置,路由表发生了什么变化?3) 设置路由器接口下的PC的IPv6地址,让它和它的网关位于同一个子网,如上图中PC0的静态配置方法如下:(由于实验室未开启DHCPv6服务器,无法有状态获取IPv6地址)第一步:安装ipv6,在dos控制台,键入命令:ipv6 install (如果在GUI界面安装了,该步骤省略) 第二步:为验证网卡配置一个IPv6地址: Ipv6 adu 4/2:5 注意:上述命令的语法是ipv6 adu ifindex/address life validlifetime ,其中的参数ifindex表示验证网卡的索引号,
29、如果不知道这号码,可使用命令ipv6 if 查看。第三步:在IPv6地址的配置中,并没有标识它所示的子网,所以,需要为它指明:Ipv6 rtu 2:/64 4 (其中的4是索引号)4) 完成了上述的配置和设置,PC和网关就能够互相ping通了。问:PC0和PC1是否能够ping通?为什么? 实验四 组网实验1. 实验目的路由器的基本使用和基本配置是本实验要达到的主要目标,本课程陆续开设的实验课,会对教材讲授到的基本原理进行验证,加深基本知识和基本技能的掌握。主要掌握以下路由器的基本操作:1) 通过路由建立起网络之间的连接。2) 熟悉路由器的基本操作命令,并掌握组网的基本技术。3) 掌握静态路由
30、的方法。4) 掌握距离矢量路由协议中RIP的基本配置方法。5) 掌握距离链路状态路由选择协议中OSPF的基本配置方法。2. 实验环境和要求2.1 实验拓扑2.2 实验器材1) 路由器两台2) 交换机两台3) 学生实验主机4) 网线若干。请注意主机与交换机,交换机与路由器之间使用直通线。路由器与路由器之间使用交叉线。2.3 实验要求给定3个C类网络地址:192.168.6.0,192.168.7.0,192.168.8.0。1) 请按实验网络拓扑作出网络规划。并写出路由器的端口地址和各节点网络地址。2) 配置静态路由,使R1和R2两边的机器能够互相连通。3) 配置动态路由,使R1和R2两边的机器
31、能够互相连通。3.实验步骤(参考)3.1 按实验图连接线路3.2 两个路由器的初始化配置3.2.1 R1配置1) 登录路由器R1,进入普通用户模式 R12) 键入enable 进入超级用户模式 R1#3) 使用 configure terminal进入全局配置模式 R1(config)# 配置FastEthernet 0/0 端口1. R1(config)#interface FastEthernet 0/02. R1(config-if)#ip address 192.168.6.254 255.255.255.03. R1(config-if)#no shutdown配置FastEther
32、net 0/1 端口1. R1(config)#interface FastEthernet 0/12. R1(config-if)#ip address 192.168.7.5 255.255.255.2523. R1(config-if)#no shutdown 3.2.2 R2配置参看R1配置方法进入全局配置模式 R2(config)#配置FastEthernet 0/0 端口1. R2(config)#interface FastEthernet 0/0 2. R2(config-if)#ip address 192.168.8.254 255.255.255.03. R2(confi
33、g-if)#no shutdown配置FastEthernet 0/1端口1. R2(config)#interface FastEthernet 0/12. R2(config-if)#ip address 192.168.7.6 255.255.255.2523. R2(config-if)#no shutdown效果:此时两路由器的端口都应是UP,并两路由器的FastEthernet 0/1端口能ping 通,FastEthernet 0/0端口和下接的本网段主机能ping通,但两网段的主机还不通,无法互访。 3.3 路由配置3.3.1 静态路由配置R1 配置:1. 进入全局配置模式 R
34、1(config)#2. R1(config)#ip route 192.168.8.0 255.255.255.0 192.168.7.6R2 配置:1. 进入全局配置模式 R1(config)#2. R2(config)#ip route 192.168.6.0 255.255.255.0 192.168.7.5效果:此时,两边主机都能ping通,并可以正常互访。在路由器R1上删除静态路由:R1(config)#no ip route 192.168.3.0 255.255.255.0 192.168. 7.6在路由器R2上删除静态路由:R2(config)#no ip route 192
35、.168.1.0 255.255.255.0 192.168. 7.53.3.2 动态路由配置 RIP参看前面的配置方法进入全局配置模式R1配置1. R1(config)#router rip (启动RIP路由协议)2. R1(config-router)#network 192.168.6.0 (指定192.168.6.0 可接受RIP信息)3. R1(config-router)#network 192.168.7.0 (指定192.168.7.0 可接受RIP信息)R2配置1. R2(config)#router rip (启动RIP路由协议)2. R2(config-router)#n
36、etwork 192.168.7.0 (指定192.168.7.0 可接受RIP信息)3. R2(config-router)#network 192.168.8.0 (指定192.168.8.0 可接受RIP信息)效果:此时两网段任意主机都能互访,在全局配置模式下用show ip route 命令,可看到路由标识是以R开头。在R1添加网段192.168.4.0,在R2则可看到此网段的路由。删除在R1中的RIP: R1(config)#no router rip删除在R2中的RIP:R2(config)#no router rip OSPF参看前面的配置方法进入全局配置模式R1配置1. R1(
37、config)# router ospf 10 (启动 ospf 路由协议)2. R1(config-roueter)# network 192.168.6.0 0.0.0.255 area 0 (指定连接的网络)3. R1(config-roueter)# network 192.168.7.0 0.0.0.255 area 0 (指定连接的网络)R2配置1. R1(config)#router ospf 100 (启动 ospf 路由协议)2. R1(config-roueter)# network 192.168.7.0 0.0.0.255 area 0 (指定连接的网络)3. R1(c
38、onfig-roueter)# network 192.168.8.0 0.0.0.255 area 0(指定连接的网络)效果:此时两网段任意主机都能互访。删除在R1中的OSPF: R1(config)#no router ospf 10删除在R2中的OSPF:R2(config)#no router ospf ,100问题:配置后的路由选择协议是否正常工作,请使用一种方法检查,并给出检查的结果,截图在这里。实验五:网络Socket编程1. 实验目的(1)掌握Socket网络编程的基本原理和方法。(2)深刻理解Socket的底层运作原理。(3)通过实践加深对计算机网络体系结构和运行机制的理解。
39、(4)提高编程和分析问题,解决问题的能力。2. 实验主要内容2.1 实验要求1) 基本要求:实现一个FTP协议的客户端和服务端,完成基本的文件传输功能。2) 提交的内容:文档报告(包括设计文档,使用说明), 源代码,可执行程序,以上内容分成三个文件夹存放(分别是Doc、Src、bin),再统一打包提交到教学在线。3) 建议附加功能(可酌情获得加分,有附加功能的FTP可以分组进行,最多不超过3人) 多客户端访问。 在获取文件之前能够先得到文件列表。 有兴趣的同学可以提交其它的作品,但作品必须基于底层的Socket(具体见实验要求),不能使用高层封装的Socket(如Java类库,MFC等)。 2
40、.1 推荐参考书籍UNIX网络编程UNIX环境高级编程TCP/IP网络互联技术 卷III (winsock版 )WINDOWS网络编程 3. 实验环境要求 (1)实验平台:Linux或Windows均可(2)开发语言:C或C+(3)开发环境:不限,如Visual C+, .NET, Vi等重要要求:为了让同学们更好的理解Socket的底层运作原理,Linux平台下只能使用底层库socket(socket.h),Windows平台下只能使用Winsock(winsock.h),请勿使用其它高层封装的Socket库(如Java库,MFC等)。4. 编程参考4.1套接字简介(1)网络应用程序编程接口
41、(API)计算机用它来对网络发送或接收信息。(2)套接字接口(socket interface)由加州大学伯克利分校UNIX小组开发,目前最为流行。定义了网络上的各种操作(如生成套接字,发送/接收消息等。(3)常用的套接字接口n Linux/Unix下:Berkeley Socket是最突出的一套接口。n Windows下:Win Socket ,也称winsock,与Berkeley Socket很类似的接口可认为一个IP与一端口(port)联合在一起形成一个套接字,它是网络上的一个传输接口。在网络的另外一端可有一个对应的套接字与通信。4.1.1 客户/服务器模式TCP/IP网络应用中,最常
42、用的通信模式是客户/服务器模式(Client/Server model),即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。客户端与服务器的连接方式主要有两种:n 流式套接口连接流式套接口是可靠的双向通讯的数据流。传送的包会按发送时的顺序到达。n 数据报套接口连接 使用这种方式,传送的包不一定会按发送时的顺序到达。当然每个包的内部是无错误的。 (1)服务器端n 服务器先要端打开一个通信通道,并告知本地主机它需要在某个端口上(如FTP为21)接收客户请求;n 等待客户请求到达该端口;n 接收到服务请求,处理该请求并应答。直至交互完成;n 返回第二步,等待另一客户请求;n 关闭服务器
43、。(2)客户端n 打开一个通信通道,连接到服务器所在主机的特定端口,此时,服务器端已经在这个Socket等待请求;n 向服务器发服务请求报文,等待并接收应答;n 继续提出请求并等待应答;n 请求结束后关闭通信通道并终止。从上面所描述过程可知:n 客户与服务器进程的作用是非对称的,它们各自完成的功能不同,因此编码也不同。n 服务进程一般是先于客户请求而启动的,启动后即在相应的Socket监听来自客户端的请求。只要系统运行,该服务进程一直存在,直到正常或强迫终止。服务器方面初始时需要执行的操作:int socket ()建立一个Socketint bind()与某个端口绑定int listen()开始监听端口int accept()等待/接受客户端的连接请客户端需要执行的操作:int socket ()建立一个Socketint connect() 连接到服务器4.1.2 使用伯克利套接字(1)int socket (int domain, int type, int protocol)功能:创建套接字。返回值:返回值是新创建套接字的句柄,即以后引用该套接字时使用的标识符。错误时返回-1。参数 domain 描述将使用的协议族。AF_INET :用于表示因特网协议族。AF_UNIX :用于表示U n i x 管道功能参数 type表明通信的语义。SOCK_STREAM:字节流服务,
限制150内