计算机网络课程设计报告学院:计算机学院专业:姓名:学号:班序号:指导老师:联系方式:实验一Wireshark的简单使用Wireshark是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具。Wireshark可能算得上是今天能使用的最好的开元网络分析软件。实验目的:1)学会正确安装和配置网络网络协议分析仪软件Wireshark。2)掌握使用Wireshark分析各种网络协议,加深对协议格式、协议层次、和协议交互过程的理解。实验环境:1)、运行Windows2000/2003/XP/SERVER/VISTA/LINUX操作系统的PC一台。2)、每台PC具有一块以太网网卡,通过双绞线与局域网的相连。3)、Wireshark程序可从Wireshark网站同时获取源文件和二进制发行版。Windows操作系统下安装wireshark:下载Wireshark安装包并执行它即可,根据提示“Next”或者“下一步”,Wireshark安装包包含WinPcap,所以您不需要单独下载安装它。如果您没有安装WinPcap。您将无法捕捉网络流量。但是您还是可以打开以保存的捕捉包文件。简单应用:开始捕捉数据包,打开CaptureInterfaces捕捉接口对话框,选择一个能捕捉到数据包的网络接口比如现在只捕捉百度网页的数据包,只要在过滤工具栏中输入它的ip地址apply即可看到本机与百度服务器之间信息交换的数据包:要详细了解一个数据包信息,只要双击就可以看到数据包信息树窗格了。还可以只看源地址为百度发送的数据包,过滤栏输入如下地址:在上述基础上还可以加上端口号等等。捕捉到数据包的信息后,可以在Statistics工具栏下具体分析了,有协议等级,协议类型,发包流量等等,都可以通过具体的图形或对话框显示出来。三次握手简单实现:首先通过访问某个网站获取大量的数据包,再从中过滤出一个三次握手的过程,下面通过帧序号滤出一个过程,只得到三个数据包:通过Statistics工具栏下的FlowGraph的到三次握手的建立连接过程如下:Wireshark本身提供一些现成的过滤命令,只要打开过滤栏后面的Expression就可以选择提供的协议等,这里我们选择TCP协议,里面提供了窗口大小、标志、检验和、丢失的分组,重传的分组等等,我们选中重传分组,然后“OK”,“Apply”后看到了一些重传的数据包通过”FlowGraph”看起来更加明了,如下图所示:还可以利用Wireshark作出数据传输中的半关闭状态,如下所示的过滤:在得到数据包中找到符合半关闭的数据包过滤出来,如下图所示:通过”FlowGraph”看起来更加明了,如下图所示:实验二拥塞步骤一:熟悉wireshake界面各个按键功能.步骤二:打开优酷网站链接,并且多打开几个视频网页,并滤过tcp协议下的数据报。步骤三:在filter中键入tcp.analysis.duplicate_ack_num=3,以便滤过连续的三个ack包,目的是检测出三个ack,那么一个新的拥塞避免阶段开始。步骤四:做IOGraph:点击statistics找到IOGraph,弹出窗口如下图;打开人人网从图中可以看出当主机为原端,打开的网页为目的端时,大约在92s时发生拥塞,在92s连续收到三个ack后,窗口的大小由4800000变为一半2400000。同理,也可以反过来看。上图是同时显示了原端,目的端不同时的图像。ns-2网络模拟一、在Linux平台下安装NS2首先,我们将ns‐allinone‐2.33.tar.gz的压缩包放在用户家目录下,然后在Linux桌面环境中安装,打开终端,使用命令tarxvzfns‐allinone‐2.33.tar.gz执行解压操作,解压完毕后,我们进入新生成的目录ns‐allinone‐2.33,然后执行./install来安装NS‐2。我们在用户家目录中的.bashrc文件中将相应的路径加入PATH、LD_LIBRARY_PATH、TCL_LIBRARY这三个环境变量中,打开终端,进入用户家目录/home/user/,使用gedit打开.bashrc文件,命令为gedit.bashrc,然后将相应的路径加入到相关的环境变量,多个路径之间用英文冒号“:”隔开,注意将/home/user/设置为你自己机器当前的家目录。最后会出现如下图提示:然后将NS‐2要求设定的路径加入PATH环境变量的参数中:ExportPATH=$PATH:/home/user/ns‐allinone‐2.33/bin:/home/user/ns‐allinone‐2.33/tcl8.4.11/unix:/home/user/ns‐allinone‐2.33/tk8.4.11/unixexportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/ns‐allinone‐2.33/otcl‐1.11:/home/user/ns‐allinone‐2.33/libexportTCL_LIBRARY=$TCL_LIBRARY:/home/user/ns‐allinone‐2.33/tcl8.4.11/library完成上述步骤之后,我们可以在新打开的终端中输入ns来检测我们的NS‐2环境是否构建成功,若出现百分号“%”,并且输入“nam”之后可以打开NAM程序,说明我们的实验环境已经构建成功。二tcl文件1#创建一个模拟器类对象setns[newSimulator]#设置ns的颜色参数#数据流0为蓝色$nscolor0blue#数据流1为红色$nscolor1red#数据流2为白色$nscolor2white#调用ns对象的node过程创建网络节点n0setn0[$nsnode]#调用ns对象的node过程创建网络节点n1setn1[$nsnode]#调用ns对象的node过程创建网络节点n2setn2[$nsnode]#设置节点n0的形状为六边形$n0shapehexagon#节点n0的颜色为红色$n0colorred#节点n0标识服务器$n0labelserver#设置节点n2的形状为六边形$n2shapehexagon#设置节点n2的颜色为蓝色$n2colorblue#打开并关联一个Trace跟踪文件out.tr,其文件描述字为fsetf[openout.trw]$nstrace-all$f#打开并关联一个NAM跟踪文件out.nam,其文件描述字为nfsetnf[openout.namw]$nsnamtrace-all$nf#建立两条双向链路#在节点n0和n1间创建一个带宽1Mb、时延50ms、队列类型为DropTail的双向链路$nsduplex-link$n0$n11Mb50msDropTail#在节点n1和n2间创建一个带宽0.55Mb、时延50ms、队列类型为DropTail的双向链路$nsduplex-link$n1$n20.55Mb50msDropTail#设置节点n1和n2的链路队列大小为4$nsqueue-limit$n1$n24#设置节点相对位置(指定在NAM中显示的相对方位)#设置n1在n0的东偏北10度$nsduplex-link-op$n0$n1orient10deg#设置n2在n1的东偏北10度$nsduplex-link-op$n1$n2orient10deg#n1和n2之间的链路与水平方向夹角为0.5$nsduplex-link-op$n1$n2queuePos0.5#创建一个TCP发送代理tcpsendersettcpSender[newAgent/TCP]#设置发送窗口大小为8$tcpSendersetwindow_8#将tcpsender代理添加到节点n0上$nsattach-agent$n0$tcpSender#创建一个CBR流量产生器类对象cbsetcbr[newApplication/Traffic/CBR]#将cbr流量产生器添加到tcpsender代理上$cbrattach-agent$tcpSenderr#设置数据包大小为1000$cbrsetpacket_size_1000#数据发送速率是1Mbps$cbrsetrate_1Mbps#创建一个TCP接收代理tcpReceiversettcpReceiver[newAgent/TCPSink]#将tcpsender代理添加到节点n2上$nsattach-agent$n2$tcpReceiver#调用ns的connect过程创建一条从tcpsender代理到tcpReceiver代理间的连接。$nsconnect$tcpSender$tcpReceiver#以下是对此次操作所作的总体概述#0.0S欢迎来到TCP慢启动场景3$nsat0.0$nstrace-annotate\WelcometotheScenario3demonstrationofTCPwithslow-start\#0.01s和拥塞避免,显示分组丢失$nsat0.01$nstrace-annotate\andcongestionavoidance,showingpacketdrop.\#0.15s节点0是发送方,节点2是接收方。$nsat0.15$nstrace-annotate\Hereisthetopology:node0isthesender,andnode2isthereceiver.\#0.25s节点1是个以大小是4个分组为一个队列的路由器$nsat0.25$nstrace-annotate\Node1isarouterwithaqueuesizeof4packets.\#0.35s从0-1的链路是1-Mbps,从1-2的链路是0.55Mbps。$nsat0.35$nstrace-annotate\Thelinkfromnodes0to1isa1-Mbpslink,andthelinkfromnodes1to2is0.55Mbps.\#0.50s当队列被使用时,你可以通过节点1看到队列出现$nsat0.50$nstrace-annotate\You'llseethequeueappearaboveNode1asitisbeingused.\#0.60sTCP分组的大小是1000字节$nsat0.60$nstrace-annotate\TheTCPpacket(segment)sizeis1000bytes.\#0.70s一个分组从1-2链路看起来比从0-1链路大$nsat0.70$nstrace-annotate\Apacketwilllookbiggerwhenittravelsthe1-2linkthanwhenittravelsthe0-1link,\#0.71s这是为了显示分组被压缩成更小的管子。$nsat0.71$nstrace-annotate\toshowthatthepackethastobe'squeezed'intothesmallerpipe.\#慢启动阶段$nsat0.85$nstrace-annotate\\$nsat0.86$nstrace-annotate\Let'swatchtheshow.\#0.87秒节点2通告自己的接受窗口大小是8$nsat0.87$nstrace-annotate\Node2advertisesareceiverwindowof8packets.\#0.88秒节点0以拥塞窗口大小为1开始启动并发送了一个分组$nsat0.88$nstrace-annotate\Node0beginswithitscongestionwindow(cwnd)at1andsends1packet...\#1.12秒节点2返回ACK$nsat1.12$nstrace-annotate\Node