int count= 1, number; public MyThread(int num) {
number = num;
System.out.println(\创建线程 \}
public void run() {
while(true) {
System.out.println(\线程 \计数 \if(++count== 6) return; } }
public static void main(String args[]) {
for(int i = 0; i < 5; i++) new Thread(new MyThread(i+1)).start(); } }
使用 Runnable 接口来实现多线程使得我们能够在一个类中包容所有的代码,有利于封装,它的缺点在于,我们只能使用一套代码,若想创建多个线程并使各个线程执行不同的代码,则仍必须额外创建类,如果这样的话,在大多数情况下也许还不如直接用多个类分别继承 Thread 来得紧凑。
综上所述,两种方法各有千秋,大家可以灵活运用。
多线程的核心在于多个代码块并发执行,本质特点在于各代码块之间的代码是乱序执行的。我们的程序是否需要多线程,就是要看这是否也是它的内在特点。假如我们的程序根本不要求多个代码块并发执行,那自然不需要使用多线程;假如我们的程序虽然要求多个代码块并发执行,但是却不要求乱序,则我们完全可以用一个循环来简单高效地实现,也不需要使用多线程;只有当它完全符合多线程的特点时,多线程机制对线程间通信和线程管理的强大支持才能有用武之地,这时使用多线程才是值得的。
21
实验四 TCP协议分析
一、 实验目的及任务
1、熟悉TCP协议的基本原理
2、利用Wireshark对TCP协议进行分析
二、 实验环境
与因特网连接的计算机网络系统;操作系统为windows;Wireshark、IE等软件。
三、 实验步骤
1、捕获大量的由本地主机到远程服务器的TCP分组
(1) 启动浏览器,打开http://gaia.cs.umass.edu/wireshark-labs/alice.txt
网页,得到ALICE'S ADVENTURES IN WONDERLAND文本,将该文件保存到你的主机上。
(2) 打开
http://gaia.cs.umass.edu/wireshark-labs/TCP-wireshark-file1.html
(3) 窗口如下图所示。在Browse按钮旁的文本框中输入保存在你的主机
上的文件ALICE'S ADVENTURES IN WONDERLAND的全名(含路径),此时不要按“Upload alice.txt file”按钮
(4) 启动Wireshark,开始分组捕获。
(5) 在浏览器中,单击“Upload alice.txt file”按钮,将文件上传到
22
gaia.cs.umass.edu服务器。一旦文件上传完毕,一个简短的贺词信息将显示在浏览器窗口中。
(6) 停止分组捕获。
2、 TCP 基础
(1) 在显示筛选规则编辑框中输入“tcp”,可以看到在本地主机和服务器
之间传输的一系列tcp和HTTP消息,你应该能看到包含SYN Segment的三次握手。也可以看到有主机向服务器发送的一个HTTP POST消息和一系列的“http continuation”报文。
(2) 根据操作回答“四、实验报告内容”中的1-10题。 3、TCP拥塞控制
(1) 在Wireshark已捕获分组列表子窗口中选择一个TCP 报文段。选择菜
单: Statistics->TCP Stream Graph-> Time-Sequence-Graph(Stevens)。你会看到如下所示的图。
(2) 根据操作回答“四、实验报告内容”中的11-12题。
四、 实验报告内容
在实验的基础上,回答以下问题:
1、向gaia.cs.umass.edu服务器传送文件的客户端主机的IP地址和TCP端口号分别是多少?
2、gaia.cs.umass.edu服务器的IP地址是多少?对这一连接,它用来发送和接收TCP报文的端口号是多少?
3、客户服务器之间用于初始化TCP连接的TCP SYN报文段的序号(sequence number)是多少?在该报文段中,是用什么来标示该报文段是SYN报文段的?
23
4、服务器向客户端发送的SYNACK报文段序号是多少?该报文段中,Acknowledgement字段的值是多少?Gaia.cs.umass.edu服务器是如何决定此值的?在该报文段中,是用什么来标识该报文段是SYNACK报文段的? 5、包含HTTP POST消息的TCP报文段的序号是多少?
6、如果将包含HTTP POST消息的TCP报文段看作是TCP连接上的第一个报文段,那么该TCP连接上的第六个报文段的序号是多少(从客户到服务器方向)?是何时发送的?该报文段所对应的ACK是何时接收的? 7、前六个TCP报文段中数据长度各是多少字节?
8、在整个跟踪过程中,接收端向发送端通知的最小可用缓存是多少?在整个跟踪过程中是否发生过由于接收方可用缓存不够用而限制了发送方的发送速率?
9、在跟踪文件中是否有重传的报文段?判断的依据是什么?
10、 TCP连接的吞吐率(bytes transferred per unit time,单位时间传输的字节数)是多少?写出计算方法和计算过程。
11、 利用Time-Sequence-Graph(Stevens) plotting工具,浏览由客户端向服务器发送的报文段序号和时间对应关系图。你能否辨别出TCP慢启动阶段的起止,以及在图中何处转入避免拥塞阶段?
12、 阐述通过跟踪得到的TCP发送方的行为与理想化的TCP行为有何不同?
24
实验五 802.3协议分析和以太网
一、 实验目的
1、 分析802.3协议 2、 熟悉以太网帧的格式
二、 实验环境
与因特网连接的计算机网络系统;主机操作系统为windows;Wireshark、IE等软件。
三、 实验步骤
1、 捕获并分析以太帧
(1) 清空浏览器缓存(在IE窗口中,选择“工具/Internet选项/删除文件”命令)。 (2) 启动Wireshark,开始分组捕获。 (3) 在浏览器的地址栏中输入:
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-lab-file3.html 浏览器将显示美国权力法案。
(4) 停止分组捕获。首先,找到你的主机向服务器gaia.cs.umass.edu发送的
HTTP GET消息的Segment序号,以及服务器发送到你主机上的HTTP 响应消息的序号。其中,窗口大体如下。
选择“Analyze->Enabled Protocols”,取消对IP复选框的选择,单击OK。窗口如下。
25
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《计算机网络》实验指导书(2011) - 图文(6)在线全文阅读。
相关推荐: