网络原理上机实验报告Word格式文档下载.docx
- 文档编号:20738839
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:18
- 大小:840.97KB
网络原理上机实验报告Word格式文档下载.docx
《网络原理上机实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《网络原理上机实验报告Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
所以RIP只适用于网络规模较小的环境。
4.实验步骤:
4.1网络拓扑图:
4.2配置路由实现网络的联通
设置路由1的以太网端口地址为192.168.1.2,和路由2的连接端口地址为192.176.2.1;
路由2同路由1相连端口4地址设为192.176.2.2,另一端口同路由3连接地址为202.117.14.2;
路由3同路由2相连端口地址为202.117.14.3,同PC2相连以太网端口地址为202.117.15.1;
PC1的IP地址:
192.168.1.223;
PC2的IP地址为:
202.117.15.14。
使用动态Rip协议构建路由表,实现IP分组的转发。
4.2.1Router1:
其中:
表示配置r1路由端口地址
4.2.2Router2
表示配置r2路由端口地址
4.2.3Router3:
表示配置r3路由端口地址
4.2.4PC1的地址:
PC2的地址:
4.3Ping的过程:
先使用PC2逐层ping路由端口,建立路由表,再直接pingPC1;
然后PC1pingPC2得出结果。
成功ping通,实现了PC1和PC2通过3个路由器(使用rip协议)的通讯。
实验成功。
5.实验总结:
在实验中由于对软件的不了解,使得输入命令时总是打错了命令导致出错,后来打顺了才好些。
实验中,总是要考虑接口问题,这需要在配置之前,好好考虑一番。
通过这次实验使我加深对路由器在实际工作中的配置的了解,能够在模拟状态下利用所学知识在相关软件配置一个网络,实现主机之间的通讯,学会了学以致用,,接触到了路由表的建立,对数据在网络中的传输有了清醒的认识,为以后在网络方面运用相关知识提供了锻炼机会。
实验二利用分组嗅探器(ethereal)分析协议HTTP
实验目的:
利用ethereal软件分析HTTP及其下层协议(TCP协议、IP协议等),了解网络中数据封装的概念,并掌握HTTP及TCP协议的工作过程。
从ethereal截获的报文中提取并分析HTTP请求报文和HTTP应答报文;
综合分析截获的报文,概括HTTP协议的工作过程;
从截获报文中选择TCP建立连接和释放连接的报文,分析各个字段的值并概括TCP协议的工作过程;
从截获报文中分析IP协议的工作过程和IP分组的格式。
(1)掌握计算机网络中数据封装的概念;
(2)掌握HTTP协议的基本原理及数据包格式;
(3)掌握TCP协议的连接建立、数据传输、连接释放的过程;
(4)掌握IP协议的基本原理和IP分组的格式。
Ethereal是一款免费的网络协议分析程序,支持Unix、Windows。
借助这个程序,你既可以直接从网络上抓取数据进行分析,也可以对由其他嗅探器抓取后保存在硬盘上的数据进行分析。
你能交互式地浏览抓取到的数据包,查看每一个数据包的摘要和详细信息。
Ethereal有多种强大的特征,如支持几乎所有的协议、丰富的过滤语言、易于查看TCP会话经重构后的数据流等。
要深入理解网络协议,需要仔细观察协议实体之间交换的报文序列。
为探究协议操作细节,可使协议实体执行某些动作,观察这些动作及其影响。
这些任务可以在仿真环境下或在如因特网这样的真实网络环境中完成。
观察在正在运行协议实体间交换报文的基本工具被称为分组嗅探器(packetsniffer)。
顾名思义,一个分组嗅探器捕获(嗅探)计算机发送和接收的报文。
一般情况下,分组嗅探器将存储和显示出被捕获报文的各协议头部字段内容。
图1为一个分组嗅探器的结构。
图1右边是计算机上正常运行的协议(在这里是因特网协议)和应用程序(如:
web浏览器和ftp客户端)。
分组嗅探器(虚线框中的部分)是附加计算机普通软件上的,主要有两部分组成。
分组捕获库接收计算机发送和接收的每一个链路层帧的拷贝。
高层协议(如:
HTTP、FTP、TCP、UDP、DNS、IP等)交换的报文都被封装在链路层帧(Frame)中,并沿着物理介质(如以太网的电缆)传输。
图1假设所使用的物理媒体是以太网,上层协议的报文最终封装在以太网帧中。
分组嗅探器的第二个组成部分是分析器。
分析器用来显示协议报文所有字段的内容。
为此,分析器必须能够理解协议所交换的所有报文的结构。
例如:
我们要显示图1中HTTP协议所交换的报文的各个字段。
分组分析器理解以太网帧格式,能够识别包含在帧中的IP数据报。
分组分析器也要理解IP数据报的格式,并能从IP数据报中提取出TCP报文段。
然后,它需要理解TCP报文段,并能够从中提取出HTTP消息。
最后,它需要理解HTTP消息。
4.1启动Ethereal分组俘获器。
选择正确的NIC,进行报文的捕获
4.2开始进行抓包
4.3点击stop停止抓包
4.4切换到报文浏览的主界面进行分析操作
4.5截图:
5.实验分析:
(第一行,第二行):
IP为119.188.15.241的客户端向IP为115.154.87.104的服务端发送请求建立TCP连接,服务端响应并发出响应信号。
(第三行,第四行,第五行):
客户端未收到响应信号而出错,使得TCP连接不成功。
(第六行,第七行):
重新建立TCP连接。
(第11行,第17行):
IP为123.125.65.210的客户端向IP为115.154.87.104的服务端发送请求下载数据的连接,服务器响应,同时客户端下载数据。
(第21,行,第22行,第23行):
数据传输成功后,TCP协议通过三次握手来断开TCP连接。
6.实验总结:
通过这次实验,学会了分析HTTP协议的连接并判断是否成功并掌握了它的基本原理;
加深了对TCP协议的连接建立、数据传输、连接释放的过程的了解;
掌握IP协议的基本原理和IP分组的格式。
实验三基于Socket的网络编程实验
了解FTP协议的工作原理,掌握基于socket的网络编程的基本原理。
基于Socket网络编程技术实现FTP客户端,能完成对FTP服务器的访问,并可执行上传和下载操作。
(1)掌握基于socket网络编程的基本知识;
(2)掌握FTP客户端和服务器端数据交换的方式和数据包格式。
通过模仿FTP协议,利用基于TCP或者基于UDP的Socket,实现客户端与服务端的请求响应和数据传输。
服务端接收客户端发出的请求命令后做出响应,完成上传下载及其他文件操作功能。
流程如下:
(1)服务端启动,等待用户连接
(2)客户端启动,请求与服务端连接
(3)服务端应答,与用户建立连接
(4)用户输入目录操作、文件上传下载等指令,服务端接收到指令后进行解析,作出
相应的响应
(5)重复(4)的过程,直至用户输入quit指令要求离开,服务结束
5.实验结果:
通过这次实验,对socket的网络编程有了更清楚的认识,懂得了它怎么联网并对ftp上的文件的上传,下载等操作,知道了怎么把书上的知识在实际中的运用。
7.实验代码:
#pragmacomment(lib,"
ws2_32"
)
#include<
WinSock.h>
fstream>
iostream>
errno.h>
time.h>
string>
#include"
ftpClient.h"
usingnamespacestd;
#defineMENU"
WelcomeToTheFTPServer,PleaseInputTheCommandAndEnter!
Suchas:
LIST,CWD,RETR,STOR,DELE,RMD,MKD"
//定义了在ftp服务器上能进行的操作
intmain()
{
charDir[256];
memset(Dir,NULL,256);
intreturnNum;
charip[16];
intport;
chartest;
charuserName[50];
memset(userName,NULL,50);
strncpy(userName,"
anonymous"
strlen("
));
charPWD[50];
chartemp[512];
charCommand[4];
//charParameter[256];
cout<
<
"
PleaseinputtheipoftheFTPserver:
:
;
cin>
>
ip;
Doyouwanttochangetheport,Nowtheportis21:
[Y/N]"
//使用命令端口21来连接到ftp服务器,在ftp协议下不用更改
test;
if(test=='
Y'
||test=='
y'
)//连接到ftp服务器
{
cout<
Pleaseinputthenumoftheport:
cin>
temp;
port=(temp[0]-'
0'
)*100+(temp[1]-'
)*10+(temp[2]-'
);
//将字符型转化为数值型
memset(temp,NULL,2);
}
elseif(test=='
N'
n'
port=21;
else
Error"
endl;
/************************************
用户登录模块
************************************/
ftpClient*client=newftpClient(ip,port);
DoyouwanttochangeUSERNAME,Nowisanonymous:
//不更改时默认的是匿名登录
UserName:
userName;
//输入登录名
ErrorCheckinput!
client->
setCommand("
USER"
userName);
//验证登录名
userName<
sendCommand();
//向ftp服务器发送用户名
returnNum=client->
receiveCommand();
//从ftp服务器接收到的响应码,正确时应为331
if(returnNum==331)
PassWord:
PWD;
//输入密码
client->
PASS"
PWD);
returnNum=client->
//从ftp服务器接收响应码,正确时应返回230
if(returnNum==230)//用户已经正确登录到了ftp服务器
{
while
(1)
{
cout<
MENU<
FTP:
cin>
Command;
if(strcmp(Command,"
list"
)==0||strcmp(Command,"
LIST"
)==0)
{
/************************************
连接控制,传输控制,命令传输(需使用
socketData连接的命令,如:
LIST)
************************************/
client->
PASV"
getPort();
TYPE"
"
I"
interlizeDataSocket();
"
."
cout<
Dir<
receiveList();
}
elseif(strcmp(Command,"
CWD"
cwd"
memset(Dir,NULL,512);
Plaseinputthedirofyourwill(compeletedir):
cin>
Dir;
CWD"
Dir);
retr"
RETR"
char*filename=newchar[512];
memset(filename,NULL,512);
下载模块
Pleaseinputthenameyouwanttodownload:
filename;
RETR"
filename);
receiveData(filename);
deletefilename;
stor"
STOR"
上传模块
PleaseinputthenameyouwanttoUPload:
STOR"
sendData(filename);
dele"
DELE"
//进入删除文件的程序代码段
memset(filename,NULL,strlen(filename));
PleaseinputthefilenameyouwanttoDelete:
DELE"
rmd"
RMD"
//进入删除目录的程序代码段
memset(Dir,NULL,strlen(Dir));
PleaseinputtheDirectyouwanttoDelete:
RMD"
mkd"
MKD"
//进入修改文件的程序代码段
PleaseinputtheDirectyouwanttoMake:
MKD"
QUIT"
quit"
//进入退出文件的程序代码段
break;
else
NosuchCOMMAND!
!
}
}
else
ErrorYoucannotloginin."
Cleaningsystemresource"
//delete[]userName;
//delete[]Direct;
//deleteclient;
ExitingGoodbye"
system("
pause"
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 原理 上机 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)