计算机网络原理实验报告

计算机网络原理实验报告
计算机网络原理实验报告

多线程Web服务器

1实验目的:

用JA V A语言开发一个多线程的WEB服务器,它能并行服务于多个请求。发送网页文件,让网页文件能够通过在URL中制定端口号来被浏览器使用。

2实验代码及截图

class ConnectionThread extends Thread {

Socket client;

int counter;

public ConnectionThread(Socket cl,int c) {

client = cl;

counter = c;

}

public void run() // 线程体

{

try {

String destIP=client.getInetAddress().toString(); // 客户机IP地址

int destport=client.getPort(); // 客户机端口号

System.out.println("Connection "+counter+":connected to "+destIP+" on port "+destport+".");

PrintStream outstream=new

PrintStream(client.getOutputStream());

DataInputStream instream=new

DataInputStream(client.getInputStream());

String inline=instream.readLine(); // 读取Web浏览器提交的请求信息

System.out.println("Received:"+inline);

if (getrequest(inline)) { // 如果是GET请求

String filename=getfilename(inline);

File file=new File(filename);

if (file.exists()) { // 若文件存在,则将文件送给Web 浏览器

System.out.println(filename+" requested.");

outstream.println("HTTP/1.0 200 OK");

outstream.println("MIME_version:1.0");

outstream.println("Content_Type:text/html");

int len=(int)file.length();

outstream.println("Content_Length:"+len);

outstream.println("");

sendfile(outstream,file); // 发送文件

outstream.flush();

} else { // 文件不存在时

String notfound="Not Found

Error 404-file not

found

";

outstream.println("HTTP/1.0 404 no found");

outstream.println("Content_Type:text/html");

outstream.println("Content_Length:"+notfound.length()+2);

outstream.println("");

outstream.println(notfound);

outstream.flush();

}

}

long m1=1;

while (m1<11100000)

{

m1++;

} // 延时

client.close();

} catch (IOException e) {

System.out.println("Exception:"+e);

}

}

/* 获取请求类型是否为“GET” */

boolean getrequest(String s) {

if (s.length()>0)

{

if (s.substring(0,3).equalsIgnoreCase("GET"))

return true;

}

return false;

}

/* 获取要访问的文件名 */

String getfilename(String s) {

String f=s.substring(s.indexOf(' ')+1);

f=f.substring(0,f.indexOf(' '));

try {

if (f.charAt(0)=='/')

f=f.substring(1);

} catch (StringIndexOutOfBoundsException e) {

System.out.println("Exception:"+e);

}

if (f.equals("")) f="index.html";

return f;

}

/*把指定文件发送给Web浏览器 */

void sendfile(PrintStream outs,File file) {

try {

DataInputStream in=new DataInputStream(new FileInputStream(file));

int len=(int)file.length();

byte buf[]=new byte[len];

in.readFully(buf);

outs.write(buf,0,len);

outs.flush();

in.close();

} catch (Exception e) {

System.out.println("Error retrieving file.");

System.exit(1);

}

}

}

public class websever {

public static void main(String[] args) {

// TODO Auto-generated method stub

int i=1, PORT=8081;

ServerSocket server=null;

Socket client=null;

try {

server=new ServerSocket(PORT);

System.out.println("Web Server is listening on port "+server.getLocalPort());

while(true){

client=server.accept(); // 接受客户机的连接请求

new ConnectionThread(client,i).start();

i++;

}

} catch (Exception e) {

System.out.println(e);

}

}

}

3实验软硬件环境

eclipse

Windows xp

IE浏览器

4实验步骤

(1) 连接:

Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功。

(2) 请求:

Web浏览器通过socket向Web服务器提交请求。HTTP的请求一般是GET或POST命令(POST用于FORM参数的传递)。GET命令的格式为:

GET 路径/文件名 HTTP/1.1

文件名指出所访问的文件,HTTP/1.1指出Web浏览器使用的HTTP版本。

(3) 应答:

Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。

为了告知 Web浏览器传送内容的类型,Web服务器首先传送一些HTTP头信息,然后传送具体内容(即HTTP体信息),HTTP头信息和HTTP体信息之间用一个空行分开。

(4) 关闭连接:

当应答结束后,Web浏览器与Web服务器必须断开,以保证其它Web浏览器能够与Web

服务器建立连接。

5实验心得

Java中实现多线程有两种途径:继承Thread类或者实现Runnable接口。此处使用了接口的方式生成线程,因为接口可以实现多继承,况且Runnable只有一个run方法,很适合继承。在使用Thread的时候只需继承Thread,并且new一个实例出来,调用start()方法即可以启动一个线程。

在本次试验中,通过用java语言开发一个多线程的web服务器,能并行服务于多个请求,来掌握套接字编程技术,了解并运用http协议的作用原理,实现多线程web服务器设计。

6参考文献:,

1计算机网络:自顶向下方法(原书第4版)/(美)库罗斯(Kurose,J.F.)等著;陈鸣译--北京:机械工业出版社,2008.12

2java从入门到精通:李钟尉,马文强,陈丹丹等编著;-- 清华大学出版社,2008.9

3实验指导书

邮件客户机

1实验目的:

为发送者提供一个图形界面,其中包含:发送电子邮件地址、接受者电子邮件地址、邮件主题和本身。开发一个Internet上的使用STMP协议的网络服务器的邮件客户端,在Windows XP,Windows7系统下,使用JA V A语言开发,并最终运行该程序。

2实验部分代码及截图:

在发件人框中填写相应的信息,点击发送按钮即可向目标邮箱发送邮件。

public class MailMessage {

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

SendFrame frame = new SendFrame();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();}

/**

* Create the frame.

*/

public SendFrame() {

thisFrame=this;

setTitle("Java Mailclient");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 450, 328);

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

contentPane.setLayout(null);

JLabel lblFrom = new JLabel("from:");

lblFrom.setBounds(10, 10, 54, 22);

contentPane.add(lblFrom);

JLabel lblTo = new JLabel("To:");

lblTo.setBounds(10, 42, 42, 22);

contentPane.add(lblTo);

JLabel lblSubject = new JLabel("Subject:"); lblSubject.setBounds(10, 74, 54, 22); contentPane.add(lblSubject);

txt_From = new JTextField();

txt_From.setEditable(false);

txt_From.setText("1025674623@https://www.360docs.net/doc/0418716338.html,");

txt_From.setBounds(49, 11, 383, 21); contentPane.add(txt_From);

txt_From.setColumns(10);

txt_To = new JTextField();

txt_To.setText("1025674623@https://www.360docs.net/doc/0418716338.html,");

txt_To.setColumns(10);

txt_To.setBounds(49, 42, 383, 21); contentPane.add(txt_To);

text_Subject = new JTextField();

text_Subject.setText("作业2:邮件客户机"); text_Subject.setColumns(10);

text_Subject.setBounds(66, 73, 366, 21); contentPane.add(text_Subject);

JLabel lblMassage = new JLabel("Massage:"); lblMassage.setBounds(10, 101, 64, 15); contentPane.add(lblMassage);

JButton btnQuit = new JButton("Quit"); btnQuit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { thisFrame.dispose();

}

});

btnQuit.setBounds(295, 271, 137, 23); contentPane.add(btnQuit);

JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(10, 229, 422, -101); contentPane.add(scrollPane);

Panel panel = new Panel();

panel.setBounds(10, 115, 422, 156);

contentPane.add(panel);

panel.setLayout(null);

ScrollPane scrollPane_1 = new ScrollPane();

scrollPane_1.setBounds(0, 0, 422, 156);

panel.add(scrollPane_1);

final TextArea Send_TextArea = new TextArea();

Send_TextArea.setText("你好!这是一封测试邮件");

Send_TextArea.setBounds(0, 0, 440, 170);

scrollPane_1.add(Send_TextArea);

JButton btnSend = new JButton("Send");

btnSend.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

String txtfrom=txt_From.getText();

String txtto=txt_To.getText();

String txtsubject=text_Subject.getText();

String sendtextarea=Send_TextArea.getText();

try {

MailMessage message=new MailMessage();

message.setFrom(txtfrom);//发件人

message.setTo( txtto);//收件人

String server="https://www.360docs.net/doc/0418716338.html,";//邮件服务器https://www.360docs.net/doc/0418716338.html,

message.setSubject(txtsubject);//邮件主题

message.setContent(sendtextarea);//邮件内容

message.setDatafrom(txtfrom);//发件人,在邮件的发件人栏目中显示

message.setDatato(txtto);//收件人,在邮件的收件人栏目中显示

message.setUser("1025674623");//登陆邮箱的用户名

message.setPassword("zjr*******(保密)");//登陆邮箱的密码

SendFrame smtp=new SendFrame(server,25);

boolean flag;

flag=smtp.sendMail(message,server);

if(flag){

JOptionPane.showMessageDialog(null, "信息已成功发送!", "提示", https://www.360docs.net/doc/0418716338.html,RMATION_MESSAGE);

}

else{

JOptionPane.showMessageDialog(null, "邮件发送失败!", "提示", https://www.360docs.net/doc/0418716338.html,RMATION_MESSAGE);

}

//System.out.println("iuhfihulaeih ba ");

} catch (UnknownHostException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

// JOptionPane.showMessageDialog(null, "信息已成功发送!", "提示", https://www.360docs.net/doc/0418716338.html,RMA TION_MESSAGE);

// System.out.println(txtfrom+"\n"+txtto+"\n"+txtsubject+"\n"+sendtextarea);

}

});

btnSend.setBounds(10, 271, 144, 23);

contentPane.add(btnSend);

JButton btnClear = new JButton("Clear");

btnClear.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

txt_To.setText("");

text_Subject.setText("");

Send_TextArea.setText("");

JOptionPane.showMessageDialog(null, "信息删除成功!", "提示", https://www.360docs.net/doc/0418716338.html,RMA TION_MESSAGE);

}

});

btnClear.setBounds(149, 271, 150, 23);

contentPane.add(btnClear);

}

private boolean debug=true;

BASE64Encoder encode=new BASE64Encoder();//用于加密后发送用户名和密码

private Socket socket;

public SendFrame(String server,int port) throws UnknownHostException, IOException{

try{

socket=new Socket(server,25);

}catch(SocketException e){

// System.out.println(e.getMessage());

}catch(Exception e){

e.printStackTrace();

}finally{

// System.out.println("已经建立连接!");

}

}

//注册到邮件服务器

public void helo(String server,BufferedReader in,BufferedWriter out) throws IOException{ int result;

result=getResult(in);

//连接上邮件服务后,服务器给出220应答

if(result!=220){

throw new IOException("连接服务器失败");

}

result=sendServer("HELO "+server,in,out);

//HELO命令成功后返回250

if(result!=250)

{

throw new IOException("注册邮件服务器失败!");

}

}

private int sendServer(String str,BufferedReader in,BufferedWriter out) throws IOException{

out.write(str);

out.newLine();

out.flush();

if(debug)

{

// System.out.println("已发送命令:"+str);

}

return getResult(in);

}

public int getResult(BufferedReader in){

String line="";

try{

line=in.readLine();

if(debug){

// System.out.println("服务器返回状态:"+line);

}

}catch(Exception e){

e.printStackTrace();

}

//从服务器返回消息中读出状态码,将其转换成整数返回

StringTokenizer st=new StringTokenizer(line," ");

return Integer.parseInt(st.nextToken());

}

public void authLogin(MailMessage message,BufferedReader in,BufferedWriter out) throws IOException{

int result;

result=sendServer("AUTH LOGIN",in,out);

if(result!=334){

throw new IOException("用户验证失败!");

}

result=sendServer(encode.encode(message.getUser().getBytes()),in,out);

if(result!=334){

throw new IOException("用户名错误!");

}

result=sendServer(encode.encode(message.getPassword().getBytes()),in,out);

if(result!=235){

throw new IOException("验证失败!");

}

}

//开始发送消息,邮件源地址

public void mailfrom(String source,BufferedReader in,BufferedWriter out) throws IOException{

int result;

result=sendServer("MAIL FROM:<"+source+">",in,out);

if(result!=250){

throw new IOException("指定源地址错误");

}

}

// 设置邮件收件人

public void rcpt(String touchman,BufferedReader in,BufferedWriter out) throws IOException{

int result;

result=sendServer("RCPT TO:<"+touchman+">",in,out);

if(result!=250){

throw new IOException("指定目的地址错误!");

}

}

//邮件体

//退出

public void quit(BufferedReader in,BufferedWriter out) throws IOException{

int result;

result=sendServer("QUIT",in,out);

}

//发送邮件主程序

public boolean sendMail(MailMessage message,String server){

try{

BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));

BufferedWriter out=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

helo(server,in,out);//HELO命令

authLogin(message,in,out);//AUTH LOGIN命令

mailfrom(message.getFrom(),in,out);//MAIL FROM

rcpt(message.getTo(),in,out);//RCPT

data(message.getDatafrom(),message.getDatato(),message.getSubject(),message.getContent(),in,o ut);//DATA

quit(in,out);//QUIT

}catch(Exception e){

e.printStackTrace();

return false;

}

return true;

}

}

程序实现与服务器之间建立连接,根据服务器端发送的响应来完成建立连接的过程,然后根据服务器发送回的响应信息,根据相应的模式,发送相应的信息,从而建立起与邮件服务器端的连接以发送邮件。

3实验软硬件环境

Eslipse

WINDOWS xp

4实验步骤

(1)创建和解析内容::Message类是创建和解析邮件核心API,它的实例对象代表一封邮件。

(2)发送邮件:Transport类是发送邮件的核心API,它的实例对象实现了某个邮件发送协议的邮件发送对象,例如SMTP协议。

(3)接受邮件的:Store类是接受邮件的核心API,它的是实例实现了邮件接受协议的邮件接收对象,例如POP3协议。

5实验心得

通过本次实验我加深对网络通信协议、网络编程接口等基本概念、基本原理的理解,大致了解了各种应用各种网络通信协议和网络编程接口编写网络应用程序的方法,拓宽了知识领域,锻炼了实践技能。

比如邮件服务器按通讯协议可以划分为两种类型:

1.STMP服务器。是Simple Mail Transfer Protcol的简写,用于替用户发送邮件和

接受外面发送给本地用户的邮件。是遵循SMTP协议的发送邮件服务器,,基于TCP

服务的应用层协议。

2.POP3服务器。是Post Office Protocol 的简写,用于替用户帮助用户读取SMTP服

务器接受进来的该用户的邮件。它定义了邮件客户端软件与POP3服务器的通讯规

则。

不同的邮箱可能对应不同的服务器,应该选择不同的协议,否则会报错。

6参考文献:1计算机网络:自顶向下方法(原书第4版)/(美)库罗斯(Kurose,J.F.)

等著;陈鸣译--北京:机械工业出版社,2008.12

2java从入门到精通:李钟尉,马文强,陈丹丹等编著;-- 清华大学出版社,2008.9

3实验指导书

计算机网络实验三

实验三 IP协议分析 一、实验目的和要求 ?熟练掌握Ethereal的使用方法 ?能对捕获到的包进行较深入的分析 ?掌握IP层的作用以及IP地址的分类方法 ?掌握IP数据包的组成和网络层的基本功能。 二、实验内容 常见网络命令使用;启动Ethereal并设置相应的选项,进行一次简单的ICMP,观察捕获到的数据包,过滤出IP数据包,分析每个IP分组的细节,查看IP数据包的结构与含义,观察IP协议的功能。 三、实验设备 PC机、Ethereal软件、WinpCap软件 四、背景知识 1、IP 地址的编址方法 IP 地址是为每个连接在互联网上的主机分配的唯一识别的 32 位标识符。IP 地址的编址方法共经历了三个阶段: (1)分类的IP 地址 这是一种基于分类的两级IP 地址编址的方法。 表1 IP 地址的分类 如表1 所示,IP 地址分为A,B,C,D,E 五类,其中A、B、C 类地址为可分配主机地址,而D 类地址为组播地址,E 类地址保留以备将来的特殊使用。IP 地址采用点分十进制方式记录,每个地址表被视为4 个以点分隔开的十进制整数,每个整数对应一个字节。 A、B、C 三类地址由两部分组成:网络地址和主机地址,这三类地址的网络地址部分的长度不一 样。每个A 类地址的网络中可以有 1600 万台主机;每个B 类地址的网络中可以有65534 台主机; 每个C 类地址的网络中可以有254 台主机。这样对于一个共有几十台计算机的局域网来说即使分配一个C 类地址也是一种浪费。为此,提出了子网和子网掩码的概念。

(2)划分子网的IP 地址 子网就是将一个A 类、B 类或 C 类网络分割成许多小的网络,每一个小的网络就称为子网。划分子网采用“网络号”+“子网号”+“主机号”三级编址的方法。在划分了子网的网络地址中,子网掩码用于确定网络地址。 子网掩码是一个和IP 地址对应的 32 位二进制数。子网掩码中与IP 地址的网络地址对应的部分为 1,与主机地址对应的部分为0。这样把网络接口的IP 地址与该接口上的掩码相与就得到该接口所在网络的网络地址,而把该IP 地址与掩码的反码相与则可得到主机地址。 (3)无分类域间路由选择CIDR 无分类域间路由选择CIDR 是根据划分子网阶段的问题提出的编址方法。IP 地址采用“网络前缀”+“主机号”的编址方式。目前CIDR 是应用最广泛的编址方法,它消除了传统的A、B、C 类地址和划分子网的概念,提高了IP 地址资源的利用率,并使得路由聚合的实现成为可能。 2、IP 报文格式 IP 报文由报头和数据两部分组成,如图1 所示: 图1 IP 报文格式 其中主要字段的意义和功能如下: * 版本:指IP 协议的版本; * 头长:是指IP 数据报的报头长度,它以4 字节为单位。IP 报头长度至少为 20 字节,如果选项部分不是4 字节的整数倍时,由填充补齐; * 总长度:为整个IP 数据报的长度; * 服务类型:规定对数据报的处理方式;

武汉大学计算机网络实验报告 (2)

武汉大学教学实验报告 动力与机械学院能源动力系统及自动化专业2013 年11 月10 日

一、实验操作过程 1.在仿真软件packet tracer上按照实验的要求选择无线路由器,一般路由器和PC机构建一个无线局域网,局域网的网络拓扑图如下: 2.按照实验指导书上的表9.1(参数配置表)对路由器,DNS服务器,WWW服务器和PC机进行相关参数的配置: 服务器配置信息(子网掩码均为255.255.255.0) 主机名IP地址默认网关 DNS 202.2.2.1 202.2.2.2 WWW 202.3.3.1 202.3.3.3 路由器配置信息(子网掩码均为255.255.255.0) 主机名型号IP地址默认网关时钟频率ISP 2620XM e1/0:202.2.2.2 e1/1:202.3.3.3 s0/0:202.1.1.2 64000 Router2(Server) 2620XM f0/0:192.168.1.1 s0/0:202.1.1.1 Wireless Router Linksys WRT300N 192.168.1.2 192.168.1.1 202.2.2.1 备注:PC机的IP地址将通过无线路由器的设置自动分配 2.1 对router0(sever)断的配置: 将下列程序代码输到router0中的IOS命令行中并执行,对router0路由器进行设置。Router>en Router#conf t

2.3 WWW服务器的相关配置 对www服务器进行与DNS服务器相似的配置,包括它的IP地址,子网掩码,网关等,具体的相关配置图见下图: WWW服务器的相关配置图

计算机网络实验报告

计算机网络实验报告 班级:电信0901 学号:U200914332 姓名:王焕 2012.1

实验四:网络协议与Web通信 一、实验目的 1.了解网络协议数据单元的格式 2.分析网络协议工作基本流程 3.深入理解Web应用的通信过程 二、实验内容 1.网络协议数据单元分析 通过wireshark抓取局域网数据包并分析各个层次的协议数据单元内容 (1)以太网帧头 (2)IP分组首部 (3)ARP包 (4)ICMP包(ping) 2.Web原理实验 (1)HTTP协议分析 (2)通过socket编程模拟HTTP协议通信过程 三、实验原理 1.Web通信经过四个步骤: (1)建立连接 (2)客户端发送HTTP REQUEST请求 (3)服务器端接收请求,生成RESPONSE响应 (4)关闭连接 2.HTTP协议 客户端浏览器或其他程序与Web服务器之间的应用层通信协议。一般在Internet 上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。 3.Java网络编程 Java Socket对网络的封装是非常完美的,对于进行网络编程的程序员,使用网络就像使用本地文件系统一样简单。 与其他Socket网络编程有一个明显的区别就是,在服务器和客户机通信建立时就要另外一个ServerSocket 。 它仅仅适用与服务器端,监听指定端口,如果有socket 连接请求,它就答应,并在服务器端产生一个socket 与其对应,那么用这个socket 就可以和客户端进行通信了。 实验原理图如下:

四、实验内容及分析 1.编译、执行参考程序 本次实验提供了两个原始程序(NetServer.java和NetClient.java),它们可以实现一个服务器/客户端请求响应的完整过程。Dos环境下先后编译执行NetServer.java与NetClient.java,即可得到一次完整的客户端向服务器请求并得到响应的完整过程,结果如下: 2.修改、编写实验程序 参考程序模拟了客户端与服务器之间的对话,但由于其之间交互的数据都是我们设定的而不含有http报头信息,因此不能和真正的web服务器与浏览器对话,以下即为

计算机网络实验报告-答案.

计算机网络实验报告 专业计算机科学与技术 班级计102 学号 109074057 姓名王徽军 组号一组D 指导教师毛绪纹 安徽工业大学计算机学院 二○一二年十二月

目录 实验总体说明 (3) 实验一以太网帧的构成 (3) 实验三路由信息协议RIP (9) 实验四传输控制协议TCP (11) 实验五邮件协议SMTP、POP3、IMAP (12) 实验六超文本传输协议HTTP (14)

实验总体说明 1.实验总体目标 配合计算机网络课程的教学,加强学生对计算机网络知识(TCP/IP协议)的深刻理解,培养学生的实际操作能力。 2.实验环境 计算机网络协议仿真实验室: 实验环境:网络协议仿真教学系统(通用版)一套 硬件设备:服务器,中心控制设备,组控设备,PC机若干台 操作系统:Windows 2003服务器版 3.实验总体要求 ●按照各项实验内容做实验,记录各种数据包信息,包括操作、观察、记录、分析, 通过操作和观察获得直观印象,从获得的数据中分析网络协议的工作原理; ●每项实验均提交实验报告,实验报告的内容可参照实验的具体要求,但总体上应包 括以下内容:实验准备情况,实验记录,实验结果分析,算法描述,程序段,实验过程中遇到的问题以及对思考问题的解答等,实验目的、实验原理、实验步骤不需要写入实验报告中。 实验一以太网帧的构成 实验时间:_____________ 成绩:________________ 实验角色:_____________ 同组者姓名:______________________________

练习一:领略真实的MAC帧 00000000: FF FF FF FF FF FF 8C 89 A5 75 71 10 06 05 14 55 ..q....U 00000010: 85 48 D2 78 62 13 47 24 58 25 00 00 00 00 00 00 .H襵b.G$X%...... 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 ............ 练习二:理解MAC地址的作用 ●记录实验结果 表1-3实验结果 本机MAC地址源MAC地址目的MAC地址是否收到,为什么 主机B 8C89A5-7570BB 8C89A5-757113 8C89A5-7570C1 是,主机A与主机B接在同一共享模块 主机D 8C89A5-771A47 8C89A5-757113 8C89A5-7570C1 是,主机C与主机D接在同一共享模块 主机E 8C89A5-757110 无无否,与主机A、C都不在同一共享模块 主机 F 8C89A5-7715F8 无无否,与主机A、C都不在同一共享模块 练习三:编辑并发送MAC广播帧 ●结合练习三的实验结果,简述FFFFFF-FFFFFF作为目的MAC地址的作用。 答:该地址为广播地址,作用是完成一对多的通信方式,即一个数据帧可发送给同一网段内的所有节点。 练习四:编辑并发送LLC帧 ●实验结果 帧类型发送序号N(S)接受序号N(R) LLC 001F 0 ●简述“类型和长度”字段的两种含义 答:一是如果字段的值小于1518,它就是长度字段,用于定义下面数据字段的长度;二是如果字段的值大于1536,用于定义一个封装在帧中的PDU分组的类型。 思考问题: 1.为什么IEEE802标准将数据链路层分割为MAC子层和LLC子层? 答:出于厂商们在商业上的激烈竞争,IEEE的802委员会未能形成一个统一的、最佳的局域网标准,而是被迫制定了几个不同标准,如802.4令牌总线网、802.5令牌环网等。为了使数据链路层能更好地适应多种局域网标准,802委员会就将局域网的数据链路层拆成两个子层,即逻辑链路控制

福建农林大学计算机网络实验报告二

福建农林大学计算机与信息学院 实验报告 2015年10 月27 日

实验项目列表

实验报告 系:计算机科学专业:计算机科学与技术年级: 姓名:学号:实验室号:计算机号: 实验日期:2015 年10 月27 日指导教师签字:成绩: 报告退发(订正、重做) 实验二网络监听实验 一、实验目的 1、理解网络监听原理 2、熟悉网络监听方法 3、理解网络流量 4、掌握TCP/IP的主要协议和协议的层次结构 二、实验环境与设备 本实验在实际因特网环境下进行操作,需要的设备有:一台PC机,WireShark监听软件。WireShark监听软件可从网址:https://www.360docs.net/doc/0418716338.html,/下载。实验配置如图所示。 因特网 三、实验原理 1、网络协议分析器 如果使用Web浏览器或OICQ聊天这样的网络软件,必须有网络连接才能工作,然而,你知道它们在因特网上传送的是什么类型的信息吗? 例如,计算机要对远程Web服务器发送什么数据来获取它需要的网页呢?计算机如何将邮件发给指定的人呢? 可以通过网络协议分析器(如WireShark)来协助观察网络会话的细节。网络协议分析器是一个能记录所有网络分组,并以人们可读的形式显示的软件。在监听重流量网络时,允许用户过滤掉不想要的分组或查看感兴趣的特定分组,而且还能为用户提供所有分组的统计概要。 2、网络监听原理 在共享式局域网中,位于同一网段的每台主机都可以截获在网络中传输的所有数据,正常情况下,一个网卡只响应目的地址为单播地址和广播地址的MAC帧而忽略其它MAC帧,网卡接收这两种帧时,通过CPU产生一个硬件中断,然后由操作系统负责处理该中断,对数据

计算机网络实验报告89340

计算机专业类课程 实 验 报 告 课程名称:计算机网络 学院:计算机科学与工程 专业:计算机科学与技术 学生:ZYZ 学号:26 指导教师:FB 日期:2016年06月10日

目录 实验一 (3) 实验二 (7) 实验三 (12) 实验四 (17) 实验五 (21)

电子科技大学 实验报告 实验一 一、实验名称:交换机和路由器的基本配置 二、实验学时:4 三、实验容和目的: 理解和掌握交换机和路由器的工作原理;掌握交换机和路由器命令行各种操作模式的区别;能够使用各种帮助信息,以及用命令进行基本的配置。 假设是某公司新进的网管,公司要求你熟悉网络产品。 首先要求你登录交换机或路由器,了解并掌握交换机和路由器的命令行操作,以及如何使用一些基本命令对设备进行配置,包括交换机和路由器的设备名、登录时的描述信息、端口参数的基本配置,以及设备运行状态的查看。 四、实验原理: 交换机和路由器的管理方式基本分为两种:带管理和带外管理。 交换机或路由器的命令行操作模式,主要包括:用户模式、特权模式、全局配置模式、端口模式等几种。 交换机或路由器的基本操作命令包括Exit、End、Show version、Show mac-address-table、Show ip route、Show running-config。 以创建两种类型的标题:每日通知和登录标题。 五、实验器材(设备、元器件) 三层交换机1台、路由器1台、计算机1台。 六、实验步骤:

交换机的配置 第一步:交换机各个操作模式直接的切换 Swtich>enable Swtich#configure terminal !使用enable命令从用户模式进入特权模式,再从特权模式进入全局配置模式第二步:交换机命令行界面基本功能 第三步:配置交换机的名称和每日提示信息 第四步:配置接口状态 第五步:查看交换机的系统和配置信息 第六步:保存配置 路由器的配置 第一步:路由器各个操作模式直接的切换 第二步:路由器命令行界面基本功能 第三步:配置路由器的名称和每日提示信息 第四步:配置接口状态 第五步:配置路由器的接口并查看接口配置 第六步:显示路由表的信息 七、实验数据及结果分析: (1)交换机的配置文件容,即show running-config 的结果

计算机网络原理实验三winsock套接字编程实验报告

实验三、WINSOCK套接字编程实验报告 序号:姓名:刘易学号: 20101150040 成绩指导老师: 1.实验目的: 用C或JA V A语言编写客户端、服务器程序,实现基于TCP或UDP的网络通信数据传输服务,熟悉基于TCP或UDP的Socket编程原理。 2.实验环境: 建立在TCP/IP 网络体系结构之上计算机网络实验环境。各计算机除了安装TCP/IP 软件外,还安装了TCP/IP 开发系统。计算机具备Windows环境中套接字socket 的编程接口功能,可为用户提供全网范围的进程通信功能。 3.实验指导: 参见套接字编程实验指导 4.实验步骤 (1)运行指导书中给出的参考程序,分析实验结果,并回答问题(1)-(3) (2)根据给定参考程序修改代码,完善修改服务器和客户端的功能。并回答问题(4)-(5) 5.实验结果分析 (1)为什么在服务器和客户端要包含winsock2.h文件? (2)为什么在服务器和客户端程序中要加入#pragma comment(lib,"ws2_32.lib") 语句,如果不加会出现什么问题? (3)为什么在服务器和客户端程序中要使用WSAStartup函数,如果不用,程序会有什么问题? (4)修改后的程序完成实现了什么功能,附上修改后的源代码。(修改或填加的代码用波浪线标注,并填加注释),并附上实验截图

客户端改变的代码: { for(;;) { memset(buf, 0, 1024); printf("Please input a line to server:"); scanf("%s",&buf); rval = send(fd, buf, strlen(buf) + 1,0); if(rval < 0) printf("Write error!"); if((rval=recv(fd,buf,sizeof(buf),0)<0)) perror("reading stream message"); if(rval==0) printf("server said :%s\n",buf); } 服务器端修改的代码: for(;;) { memset(buf, 0, sizeof(buf)); if ( (rval = recv(msgsock, buf, sizeof(buf),0) < 0))

计算机网络技术实验报告

重庆交通大学 学生实验报告 实验课程名称《计算机网络技术》课程实验 开课实验室软件与通信实验中心 学院国际学院年级2012 专业班(1)班 学生姓名吴双彪学号6312260030115 开课时间2014 至2015 学年第二学期 实验2简单的局域网配置与资源共享 实验目的: 1、掌握将两台PC联网的技能与方法 2、掌握将几台PC连接成LAN的技能与方法 3、掌握局域网内资源共享的技能与方法 实验内容和要求: 1、选用百兆交换机连接PC若干台; 2、在上述两种情况下分别为PC配置TCP/IP协议,使他们实现互联和资源共享实验环境:(画出实验网络拓图) 实验步骤: 1、选择两台计算机; 选PC0与PC1. 2、设置两台计算机IP地址为C类内部地址; 两台PC机的IP分别设置为:、202.202.242.47、202.202.243.48; 两台PC机的掩码分别设置为:、255.255.255.0、255.255.255.0; 3、用一台计算机Ping另一台计算机,是否能Ping通?

4、我的电脑→工具→文件夹选项→查看→去掉“使用简单文件共享(推荐)”前 的勾;设置共享文件夹。 5、控制面板→管理工具→本地安全策略→本地策略→安全选项里,把“网络访 问:本地帐户的共享和安全模式”设为“仅来宾-本地用户以来宾的身份验证” (可选,此项设置可去除访问时要求输入密码的对话框,也可视情况设为“经典-本地用户以自己的身份验证”); 6、通过网络邻居或在运行窗口输入“\\对方IP地址”实现资源共享。 1)指定IP地址,连通网络 A.设置IP地址 在保留专用IP地址范围中(192.168.X.X),任选IP地址指定给主机。 注意:同一实验分组的主机IP地址的网络ID应相同 ..。 ..,主机ID应不同 ..,子网掩码需相同B.测试网络连通性 (1)用PING 命令PING 127.0.0.0 –t,检测本机网卡连通性。 解决方法:检查网线是否连接好,或者网卡是否完好 (2)分别“ping”同一实验组的计算机名;“ping”同一实验组的计算机IP地址,并记录结 果。答:能。结果同步骤3 (3)接在同一交换机上的不同实验分组的计算机,从“网上邻居”中能看到吗?能ping通 吗?记录结果。 2) 自动获取IP地址,连通网络 Windows主机能从微软专用B类保留地址(网络ID为169.254)中自动获取IP地址。 A.设置IP地址 把指定IP地址改为“自动获取IP地址”。 B.在DOS命令提示符下键入“ipconfig”,查看本机自动获取的IP地址,并记录结果。 C.测试网络的连通性 1.在“网上邻居”中察看能找到哪些主机,并记录结果。 2.在命令提示符下试试能“ping”通哪些主机,并记录结果。 答:能ping通的主机有KOREYOSHI ,WSB ,ST ,LBO ,CL 。思考并回答 测试两台PC机连通性时有哪些方法? 实验小结:(要求写出实验中的体会)

计算机网络实验指导书新

计算机网络实验指导书(新版)

————————————————————————————————作者:————————————————————————————————日期: 2

计算机网络 实验指导书 主编郭雅 参编余小华黄锦煜罗肖辉 主审陶培基 I

前言 计算机网络是信息社会的支柱。培养一大批谙熟计算机网络原理与技术,具有综合应用和研发创新能力的人才,是社会信息化的需要,也是高等院校相关专业的教学目的。 编者在本科院校二级学院工作多年,一直担任计算机网络课程及其实验课程的教学工作。包括编者所在学校在内的许多本科院校二级学院采用了谢希仁编著《计算机网络》作为网络基础课程的教材。该教材内容丰富,说理透彻。针对本科院校二级学院学生的特点,教学中应该基础理论和实践并重,各所院校都开出了一定的实验课时。为规范实验内容,严格实验训练,达到实验教学的目的,编者多年来一直对本类院校的实验教学进行探索,研究在课时有限的情况下,如何组织计算机网络实验教学的内容,使之既能配合课堂教学,加深对所学知识的理解,又能紧跟网络技术的发展,培养和提高学生的实际操作技能。在教学实践中,编者一直坚持编写和完善实验指导书,并与选用谢希仁编著《计算机网络》做教材的一些兄弟院校的教师多次交流,修订完成了这本《计算机网络实验指导书》。 本书内容涵盖诠释网络原理,应用组网技术和实施网络管理等几个方面的实验项目十九个。由于编者水平有限,编写时间紧迫,不足与错误在所难免,恳请专家和广大读者不吝批评指正。 参加本书编写的人员有华南理工大学广州学院计算机工程系余小华老师,华南师范大学增城学院教育信息技术部黄锦煜老师,华南师范大学增城学院网络中心罗肖辉老师。 本书由华南师范大学增城学院计算机系主任陶培基教授担任主审。 感谢广东轻工职业技术学院计算机系教授石硕对本书编写和出版所提供的意见、建议和热忱帮助。 编者 2011年6月 于华南师范大学增城学院,广州 E-mail: hsguoya@https://www.360docs.net/doc/0418716338.html, II

计算机网络原理实验七、传输层可靠传输协议GBN编程实验报告

实验七、传输层可靠传输协议G B N编程实验报告序号:姓名:学号:成绩指导老师: 一、实验目的: 1、通过编写实现一个简单可靠的数据传输协议GBN的发送和接收代码,模拟可靠数据传输 2、理解TCP协议可靠传输的差错检测、重传、累计确认、定时器的可靠传输策略。 二、实验原理: 在GBN中,发送端不需要在接收到上一个数据包的ACK后才发送下一个数据包,而是可以连续发送数据包。在发送端发送数据包的过程中,如果接收到对应已发送的某个数据包的NACK,则发送端将NACK对应的某个数据包进行重发,然后再将该数据包之后的数据包依次进行重发。 三、结果分析: 本次试验中采用java语言进行程序编写 代码注释: (一)S ender类 import java.util.Timer; public class Sender extends Thread{ public int windowsize=3; //发送方窗口长度设为3 public String[] data={"data1","data2","data3", "data4","data5","data6","data7"}; //模拟七个数据包public int sign[]={0,1,2,3,4,5,6}; //为7个数据包标号 public int localack=-1; //保存最近收到的ACK public Timers litime=null; //定时器(这里定为2秒) public int switches=0; //超时标志,1为超时 public int windowsign[]; //当前窗口内待发的数据分组的序号 public int acksign=0;

(完整word版)计算机网络实验报告

计算机网络实验报告 姓名 学号 专业 班级 指导教师毛绪纹 2017.12

实验2-1 PPP 与 PPPoE 学习 实验配置说明 该实验主要用于观察PPPoE和PPP的数据封装格式。其中,PC1到ISP1段的链路使用PPPoE,ISP1已经配置为PPPoE服务器。ISP1和ISP2之间的链路使用PPP。 实验目的 了解PPP协议的封装格式。 了解PPPoE协议的封装格式。 实验步骤 任务:观察PPP协议和PPPoE协议的数据封装格式 步骤1:准备工作 单击主窗口右下角 Realtime 和 Simulation 模式切换按钮数次,直至交换机指示灯呈绿色 步骤2:建立PPPoE连接 单击拓扑图中的 PC1,在弹出窗口中单击 Desktop 选项卡,选择桌面上的 Command 工具,在其中输入 ipconfig 命令查看 PC1 的 IP 地址信息, PC1 在初始状态下并未配 置 IP 地址。选择 PPPoE 拨号工具,在弹出窗口中输入拨号信息,即用户名(User Name)和密码(Password):ISP1 预设了两个用户名,分别为 user 和 admin,密码与用户名相同。输入拨号信息后单击 Connect 按钮,建立 PPPoE 连接。关闭 PPPoE 拨号窗口,重新打开 Command 工具,输入 ipconfig 命令查看 PC1 是否获取到 IP 地址。如已获取到 ISP1 预设的地址池范围内的 IP 地址,则表示 PPPoE 拨号成功。

步骤3:添加并捕获数据包 进入 Simulation(模拟)模式。设置 Event List Filters(事件列表过滤器)只显示 ICMP 事件。单击 Add Simple PDU(添加简单PDU)按钮,在拓扑图中添加PC1 向PC2 发送的数据包。单击 Auto Capture/Play(自动捕获/播放)按钮捕获数据。此时PC1 上出现信封图标,并在信封图标上闪烁“√”图标。此时可再次单击 Auto Capture/Play (自动捕获/播放)按钮停止捕获数据包。 步骤4:观察PPPoE协议封装格式 选择事件列表中PC1 到Switch0 或者 Switch0 到 ISP1 的数据包,即事件列表中的第二或第三个数据包。单击其 Info 项上的色块,在弹出的 PDU 信息窗口中选择Inbound PDU Details 选项卡。 步骤5:观察PPP协议的封装格式

计算机网络实验报告

农林大学计算机与信息学院 信息工程类 实验报告 课程名称:计算机网络 姓名: 系:计算机科学与技术系 专业:计算机科学与技术 年级:2011级 学号: 指导教师:周术成老师 职称: 2014年 5 月 4 日

农林大学计算机与信息学院实验报告 系:计算机与信息系专业:计算机科学与技术年级:2011 :学号:实验课程:_ 计算机网络 实验室号____田C-305__ 计算机号:实验时间: 指导教师签字:成绩: 实验一以太网组网实验 1.实验目的和要求 1.熟悉局域网所使用的基本设备 2. 掌握以太网组建方法 3. 掌握网络连通性测试方法 2.实验原理 以太网事实上是一簇局域网技术,不同的以太网在链路层帧头的格式、电缆的类型和传输速度上有很大的差异以太网可以利用同轴电缆、双绞线、光缆等不同的传输介质进行组网,也可以运行10Mb/s、100Mb/s、1000Mb/s 的网络速度。不管采用何种传输介质,以及网络速度各不相同,只要是以太网,采用的都是CSMA/CD介质访问控制方法。即任何结点没有可预约的发送时间,所有结点平等地争用发送时间,并随机地发送数据。 组建局域网常用的传输介质为双绞线,作为10BASE-T 和100BASE-TX 以太网的传输介质,非屏蔽双绞线在组网中起着重要的作用。非屏蔽双绞线UTP 中的8 芯导线采用了不同的颜色,分成4 对,其中橙和橙白一对,绿和绿白一对,蓝和蓝白一对,棕和棕白一对。以太网使用的UTP 分为直通UTP 和交叉UTP。 UTP 双绞线有两种接法:T568A 标准和T568B 标准。 直通UTP:线的两头都按T568B 线序标准连接。 交叉UTP:线的一头按T568A 线序连接,另一头按T568B 线序连接。 组装不同类型的局域网需要不同的设备,10Base-T 和100Base-TX 组网所需要的设备有:UTP 电缆、以太网卡、10M/100M 集线器、以太网交换机等。现在的以太网在逻辑上采用星型拓扑结构,用这种拓扑结 构,每台计算机用电缆线连接到共享网络设备上,如集线器和交换机等。 集线器和交换机都是用以太网接口连接多台设备,然而,它们在实现上有很大不同。集线器是第1 层设备,是以太网的集中连接点,具有信号放大功能,扩大以太网的地理围。通常采用RJ-45 接口,计算 机或其他终端设备通过双绞线电缆与集线器相连。当数据到达集线器的一个端口后,集线器不进行过滤处 理,直接将收到的数据包复制并广播到所有其他的端口,而不管这些端口连接的设备是否需要这些数据。 因此,网络中集线器数量越多,整个网络的性能就越差。 一般以太网的拓扑既用到集线器也用到交换机,集线器连接到交换机端口上,计算机连接到集线器上。在这种配置里,连接在同一集线器的计算机能看到彼此传输的数据,并且一次只能有一个传输;但在

计算机网络原理(实验指导书)

计算机网络原理实验指导书 中原工学院 计算机学院网络工程系 2014年12月10日

实验一Windows系统网络命令的使用 一、实验目的 1. 了解Windows操作系统提供的各种网络命令的功能。 2. 熟悉Windows操作系统提供的各种网络命令的使用方法和输出格式。 3、掌握常用的网络命令,能用ping 、ipconfig等命令工具来进行网络测试、使用tracert路由跟踪命令、使用route、netstat、arp等命令查看网络状态。 二、实验内容 1、常用网络测试命令PING的使用 2、网络配置查看命令IPCONFIG的使用 3、网络连接统计命令NETSTAT的使用 4、网络路由表操作命令ROUTE的使用 5、地址解析命令ARP的使用 6、路由跟踪tracert命令的使用 三、实验步骤 (一)常用的网络测试工具-PING.EXE 1、工作原理 Ping的主要作用是验证与远程计算机的连接。该命令只有在安装了TCP/IP 协议后才可以使用。向远程计算机通过ICMP协议发送特定的数据包,然后等待回应并接收返回的数据包,对每个接收的数据包均根据传输的消息进行验证。默认情况下,传输四个包含32 字节数据(由字母组成的一个循环大写字母序列)的回显数据包。 过程如下: (1)通过将ICMP 回显数据包发送到计算机,并侦听回显回复数据包来验证与一台或多台远程计算机的连接。 (2)每个发送的数据包最多等待一秒。 (3)打印已传输和接收的数据包数。 2、用法 ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list 参数一览表:

计算机网络实验报告完整版

华中科技大学文华学院 计算机网络 实 验 报 告 姓名: 学号: 学部(系):信息科学与技术学部 专业年级: 指导教师:朱琳琳 2014年4月

实验1 常用网络命令 1.实验目的 ●掌握常用网络命令的使用方法; ●熟悉和掌握网络管理、网络维护的基本内容和方法 2. 实验前的准备 ●阅读本实验的内容及操作步骤; 3. 实验内容 (1)、arp命令 Arp –a 查看本地局域网内所有用户ip和mac地址绑定关系。 Arp –s 用于在计算机ARP表中添加一个静态的ARP记录。

(2)、ipconfig命令 Ipconfig /all 显示所有适配器的完整TCP/IP配置

Ipconfig /displaydns 显示DNS客户解析器缓存的内容 Ipconfig /flushdns 清理并重设DNS客户解析器缓存的内容。

(3)、Nbtstat命令 Nbtstat -n nbtstat –s ip 通过IP显示另一台计算机的物理地址和名字列表。如nbtstat –s192.168.0.113 (4)、netstat命令 Netstat –a 显示所有有效连接(包括TCP和UDP两种)的信息,如图。

Netstat –n 显示所有活动的TCP 连接以及计算机侦听的TCP 和UDP 端口。 Netstat –r 显示 IP 路由表的内容。该参数与 route print 命令等价。 (5)、ping 命令 Ping后加上ip地址或域名,命令用来检测TCP/IP的安装或运行存在的某些最基本的问题。 可直接键入PING寻求帮助

计算机网络实验三协议分析精编

计算机网络实验三协议 分析精编 Document number:WTT-LKK-GBB-08921-EIGG-22986

天津理工大学实验报告学院(系)名称:计算机与通信工程学院

6.列举出你所抓到数据包的种类(协议名称)。列表写出客户端、网关、web服务器的IP地址和MAC地址。HTTP客户端和服务器段的端口号。 答:数据包的种类TCP、UDP、DNS、DHCP、ARP、OSPF、LLDP、SSL、TLS、NBNS、BROWSER=等。 客户端网关Web服务器 IP地址 MAC地址58:6a:b1:5d:be:3344:37:e6:04:08:9f44:37:e6:04:09:c5 HTTP客户端的端口号:80,服务器端口号:2518。 7.将TCP、IP、ARP、DNS、HTTP和Ethernet的首部字段的名字和值按照协议的格式(参见附录2)分别记录下来。(任意打开一个消息) 答:IP:

版本:4首部长度:20bytes区分服务:0x00总长度:40 标识:0x41c6标志:0x02片偏移:0 生存时间:51协议:TCP(6)首部校验和:0x4bfb 源地址: 目的地址: 可选字段:填充 TCP: 源端口:80目的端口:2518 序号:1 确认号:716 数据偏 移 保留URG ACK 1 PSH RS I SYN FIN 窗口:16128检验和0xf2e5紧急指针: 无效

选项:空填充:空ARP: 以太网目的地址:HonHaiPr_04:08:9f (44:37:e6:04:08:9f)以太网源地址: HonHaiPr_04:09:c5 (44:37:e6:04:09:c5) 帧类型:ARP (0x0806) DNS:

东南大学计算机网络第二次实验报告

东南大学自动化学院 实验报告 课程名称:信息通信网络概论 第2次实验 实验名称:FTP客户端通信程序设计 院(系):自动化专业:自动化 姓名:学号: 实验室:金智楼5楼实验组别: 同组人员:实验时间:2016 年12 月13 日评定成绩:审阅教师:

目录 一.实验目的和要求 (3) 二.实验原理 (3) 三. 实验方案与实验步骤 (3) 四.实验设备与器材配置 (4) 五.实验记录 (4) 六.实验总计 (8) 七.思考题或讨论题 (9) 附录:部分代码

一.实验目的和要求 1.了解Windows下的TCP/IP通信方式与网络操作; 2.熟悉FTP的编程的过程; 3.学会用可视化编程语言编写调试简单的通信程序。 二.实验原理 在使用MFC编程时,要连接到FTP服务器是一件非常简单的事情,只需要两个简单的步骤,首先必须建立一个CinternetSession对象,用类CinternetSession创建并初始化一个或几个同时存在的Internet会话(Session),并描述与代理服务器的连接(如果有必要的话),如果在程序运行期间需要保持与Internet的廉洁,可以创建一个CinternetSession对象作为类CwinApp的成员。MFC中的类CftpConnection管理我们与Internet服务器的连接,并直接操作服务器上的目录和文件,FTP时MFC的WinInet支持的三个Internet功能之一,我们需要先创建一个CinternetSession实例和一个CftpConnection对象就可以实现和一个FTP服务器通信,我们不需要直接创建CftpConnection对象,而是通过调用CinternetSession::GetFtpConnection来完成这项工作。他创建CFtpConnection对象并返回一个指向该对象的指针。 三.实验方案与实验步骤(请绘制流程图) 1、实验方案

计算机网络原理实验报告

重庆交通大学 实验报告 班级:电子信息专业级班学号: 姓名: 实验项目名称:计算机网络原理实验实验项目性质:设计性(验证性)实验所属课程:计算机网络 实验室(中心):软件实验室 指导教师: 实验完成时间: 2016 年 6 月 29

实验1 控制台网络操作的基本命令 实验目的: 掌握和使用控制台网络操作的基本命令:ipconfig,ping,tracert,arp,dhcp,nslookup,netstat。 实验环境: Windows7,使用命令提示符 实验步骤: ipconfig 使用ipconfig/all查看自己计算机的网络配置,尽可能明白每行的意思。 分析:你和旁边的计算机是否处于同一子网,为什么? Ping 练习ping命令,掌握反馈的意思。 通过ping/?了解ping命令的各种选项并实际使用。 Tracert/pathping 使用tracert或pathping进行路由追踪。 思考为何能进行路由追踪?请实际验证。 Arp 以arp –a命令,查看当前arp缓存,并通过网络获得查看缓存的变化。 以arp –s命令将网关设置为静态arp。 Dhcp 使用ipconfig/release释放自动获取的网络配置,并用ipconfig/renew重新获取,了解DHCP。 如果你不能释放,请思考如何处理。 常用端口号 打开C:\WINDOWS\system32\drivers\etc\services文件,了解常用的端口号分配。 Netstat 练习netstat命令,查看当前的网络连接状况。 Nslookup 练习nslookup命令,进行命令行的DNS解析。 Hosts文件 打开C:\WINDOWS\system32\drivers\etc\hosts文件,思考如何屏蔽浏览网页和观看视频时的广告? 实验内容: ipconfig

计算机网络实验报告xx

实验一网络命令与使用 实验要求: 1、在窗口中显示网络适配器的物理地址、主机的IP地址、子网掩码以及默认网关 2、向一台电脑无限制的发送数据包,此数据包大小为60000byte 3、查看本地计算机或另一台计算机的ARP高速缓存中的当前内容 4、从一台ftp服务器上下载一份文件 实验过程: 1、在窗口中显示网络适配器的物理地址、主机的IP地址、子网掩码以及默认网关 在命令行输入:ipconfig 命令 2、向一台电脑无限制的发送数据包,此数据包大小为60000byte 在命令行格式:ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-lis

其中-t表示ping指定计算机直到中断,-l定义发送数据包的长度。 3、查看本地计算机或另一台计算机的ARP高速缓存中的当前内容 命令行格式:ARP -a [inet_addr] [-N if_addr] 4、从一台ftp服务器上下载一份文件 命令行格式:ftp [-v] [-n] [-i] [-d] [-g] [-s:filename] [-a] [-w:windowsize]

[computer] 《计算机网络》实验指导书(24学时).doc 实验三网络协议分析 一,使用Ethereal分析软件捕获一段Ping命令的数据流,并分析其工作过程:如图所示: 第一行suorce为172.16.38.5为我的主机名,Destination 为172.16.38.3 为我发送的目的地主机名。后面的request表明我请求发送 第二行suorce为172.16.38.3为目的地的主机名,Destination 为172.16.38.5 为我的主机名。后面的replay表明目的地主机名向我发送信息表明收到了我发的数据包。 下面是命令行的截图:

计算机网络原理实验三 云南大学

实验三、套接字编程 序号:姓名:学号:成绩 1.实验目的: 两人一组,编写一个客户端、服务器程序,掌握Socket编程原理。 2.实验环境: 连入局域网络的主机一台。 3.实验指导: Socket API是实现进程间通信的一种编程设施,也是一种为进程间提供底层抽象的机制。理解socket编程模型及其原理。 4.实验分析,回答下列问题。 客户端IP:172.25.20.4 服务器IP:172.25.20.194 客户端源代码: #include "stdafx.h" #include #include #include #include #include #include #include #include #pragma comment(lib,"ws2_32.lib") #define PORT 3490 /* 客户机连接远程主机的端口*/ #define MAXDATASIZE 100 /* 每次可以接收的最大字节*/ int _tmain(int argc, _TCHAR* argv[]) { WORD wVersionRequested; WSADATA wsaData; int err = 0 ,rval = 0 ; SOCKET fd; struct sockaddr_in servaddr; struct hostent* hp; char buf[1024] = ""; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) return -1; if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { printf("Can not create socket!"); exit(2); }

相关文档
最新文档