计算机网络课程实验五
实验目的:让学生通过实验,对网络原理有更深刻和更直观的认识;掌握网络基本技术,例如:组网、截获/分析数据包、网络编程等;为以后更深入的学习和利用计算机网络打下一个好的基础;
实验环境:与因特网连接的计算机网络系统;主机操作系统为Windows;Ethereal、IE、Java 等软件。
实验内容:
一、查看课程配套的JA V A Applet演示
1. 适当抓屏,参照英文说明,结合课本知识,简要说明各java小程序的运行结果及其功能。
演示1:CSMA/CA处理暴露终端
图1-1(a)
显然,在处理暴露终端时,只要有一个接入点(基站)先发出RTS,其它基站就会接到通知让出信道。
碰撞避免相对容易。
演示2:CSMA/CA处理隐藏终端
图1-1(b)
显然,在处理隐藏终端时,接入点(基站)发出的RTS可能发生碰撞,碰撞避免相对暴露终端而言比较困难。
所以RTS和CTS这样的避免长数据帧碰撞的短控制帧起到了很大的作用。
二、Ethereal实验(使用Wireshark)
2. 你的主机地址、VPN服务器地址各是什么?
图2-1
如上图所示,抓包中46和47号是一对符合要求的LCP配置请求帧(Config-Request)与LCP 配置否认帧(Config-Nak),由此可知:我的主机地址为114.214.196.153,VPN服务器地址为64.34.205.174。
3.你是如何选取LCP配置请求帧与LCP配置否认帧的,根据是什么?
如图2-1所示,编号46和47的包信息分别是Config-Request和Config-Nak,LCP报文代码域分别是0x01和0x03,因此判定是一对LCP配置请求帧与LCP配置否认帧。
4.你是如何区分LCP配置请求帧与LCP配置否认帧的,根据是什么?
同上题
5. 根据附录中的“LCP协议数据报文的封装格式”,分别写出这两个LCP数据帧中的内容。
LCP配置请求帧报文内容如下图
图2-2(a)
内容:代码域:Configuration Request(1),标识域:0x01,长度域:25,数据(21字节)。
LCP配置否认帧报文内容如下图
图2-2(b)
内容:代码帧:Configuration Nak(3),标识域:0x03,长度域:9,数据(5字节)。
6.除了PPP链路控制协议数据报,你还捕获了PPP哪些数据报?
如下图所示
图2-3
共捕获PPP数据报18个,10个LCP(链路控制协议)数据报,其余8个是CHAP(安全性认证)数据报。
三、Java编程
7.当前活动线程的数目为什么是3而不是2?
由给出的Java程序可知,启动了线程A、B两个线程,同时注意到线程子类中的随机休眠(sleep((int)(Math.random()*1000));),在A、B两个线程活动的同时,随机休眠线程也在活动,所以当前活动线程的数目是3而不是2。
8. 连续运行两次MuliThread.class,为什么显示的结果有所不同?
如下图所示,连续运行两次MuliThread.class,显示的结果明显有所不同
考虑随机休眠函数(sleep((int)(Math.random()*1000));)给程序带来了一定随机性,因此,2次运行结果有所不同。