计算机网络实验报告1

计算机网络实验报告1

任务1

目标: 创建一个以自己姓名命名的java项目,编写java代码,将自己的学号和姓名打印出来,将操作过程中的关键步骤和实验结果截图

实验代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.company;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你的名字: ");
String name = scanner.nextLine();
System.out.print("请输入你的学号: ");
long ID = scanner.nextLong();
System.out.println("您好,"+name+"! 你的学号是: "+ID);

}
}

任务2

目的:访问自己经常访问的网站,并将访问过程中的网络包抓取下来并截图;另外根据不同的过滤规则抓取网络包,并截图,书写实验报告

首先我们打开 Wireshark 软件,找到有流量的网卡,这里是无线网卡 WLAN

结果如下,这个软件会将所有的包都抓取下来,且实时更新:

设置过滤规则

学习博客: https://www.cnblogs.com/mq0036/p/11187138.html

利用地址过滤

我们首先在 cmd 中ping一下目标网站的域名,这里我以一个著名的学习网站:https://codewithmosh.com/ 为例。

然后我打开这个网页,并在 Wireshark里面设置过滤词: ip.addr == 104.193.88.77

addr 这个过滤类型是对所有 Source address和Destination address 进行筛选,因此这里一共显示了8条数据。

如果我只对 Source address进行筛选,那么我们可以这样写:ip.src == 104.193.88.77

或者对 Destination address进行筛选, 那么我们就这样写:ip.dst == 104.193.88.77

利用协议过滤

因为我们有个下载可见的 ftp,所以这里我直接在搜索框中搜 ftp 就能抓取所有协议是ftp的网络包了

进阶任务1

Java项目:任意构造两个类,两个类分别具有不同的属性和操作,并分别实例化一个对象,完成任意操作。

Main class:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.company;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
System.out.print("请输入要加法还是减法,加法输入1,减法输入0: ");
byte flag = scanner.nextByte();
Plus pluscal = new Plus();
Minus minuscal = new Minus();
System.out.print("请输入两个待操作的数: ");
double number1 = scanner.nextDouble();
double number2 = scanner.nextDouble();
double result;
switch (flag){
case 1:
result = pluscal.plus(number1,number2);
System.out.println("结果为: "+result);
break;
case 0:
result = minuscal.minus(number1,number2);
System.out.println("结果为: "+result);
break;
default:
System.out.println("输入错误,程序结束!");
break;
}
}
}

class1: Plus calculator

这个类实现的功能很简单,就是返回两个数字相加

1
2
3
4
5
6
7
8
package com.company;

public class Plus {
public double number1=0,number2=0;
public double plus(double number1,double number2){
return number1+number2;
}
}

class2: Minor calculator

同理,这个类就是返回两个数字相减

1
2
3
4
5
6
7
8
package com.company;

public class Minus {
public double number1=0,number2=0;
public double minus(double number1,double number2){
return number1-number2;
}
}

实验结果:

实验感悟

这几个类设计的非常简单,但是却让我了解了Java文件的运行模式:它是一门面向对象的语言。因此我们可以通过实现一系列操作降低代码的耦合度。 Idea提供了很方便的快捷指令将写在 Main函数当中的方法独立抽象出来生成一个类。这一方法在我的博客中有详细说明。Extracting the Class

进阶任务2

安装发包软件(自己寻找),发送不同协议的网络包,并用 wireshark 抓取。

这里我使用 Xcap 软件来作为发包工具。下载地址: http://xcap.weebly.com/

首先我们要选择打开的接口,然后往这个接口发送数据包。因为Wireshark中若选择 WLAN,会有很多干扰。很难找到xcap发出的数据包。因此这里我选择 本地连接10做为接口。

紧接着,我们在 Packet group中新建一个报文组。

这里,我已经将一些数据包保存为一个 .pcap 文件,我们只需要点击 Read from .pcap file 这个选项,从里面选择我们要发送的不同协议的数据包即可。

紧接着,我们将接口选择刚才已经打开的 Interface2,结果如下:

然后我们打开 Wireshark, 选择本地连接10,并选中我们要发送的几种数据包:

然后,我们在本地连接10 成功收到了 xcap发出的五种不同协议的数据包。实验结果让人满意

-------------本文结束,感谢您的阅读-------------