计算机通信与网络实验讲义.docx
- 文档编号:23251493
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:68
- 大小:823.64KB
计算机通信与网络实验讲义.docx
《计算机通信与网络实验讲义.docx》由会员分享,可在线阅读,更多相关《计算机通信与网络实验讲义.docx(68页珍藏版)》请在冰豆网上搜索。
计算机通信与网络实验讲义
计算机通信与网络
实验讲义
吴红卫杨诚友
徐清源黄旭肖圣兵
电子信息学院
通信工程系
2009年12月
TellmeandIforget
ShowmeandIremember
InvolvemeandIunderstand
实践出真知
目录
前言1
第一部分网络协议分析2
引言3
Wireshark入门4
实验一HTTP协议分析6
实验二DNS协议分析10
实验三UDP协议分析16
实验四TCP协议分析17
实验五IP协议分析20
实验六ICMP协议分析23
实验七DHCP协议分析27
实验八Ethernet和ARP协议分析29
实验九802.11协议分析33
实验十SSL协议分析36
附录常用的网络操作命令38
第二部分虚拟网络实现52
引言52
实验一52
实验二52
实验三52
第三部分网络编程53
实验一RS-232-C异步串行口通信54
实验二WinSock通信57
前言
本实验讲义由三部分组成。
第一部分是关于网络协议的分析,第二部分是关于虚拟组网,第三部分是关于网络编程。
由于时间的原因,目前只提供第一部分和第三部分。
第一部分的资料来源是J.F.Kurose和K.W.Ross为教材“ComputerNetworking:
aTop-downApproach”编写的实验电子书“WiresharkLab”。
第三部分沿用从前的实验讲义。
第一部分网络协议分析
第一部分用网络抓包工具Wireshark对Internet的各层协议进行分析,分析的协议有:
HTTP(HypertextTextTransferprotocol)-超文本传输协议
DNS(DomainNameSystem)-域名解析协议(域名系统)、
UDP(UserDatagramProtocol)-用户数据报协议
TCP(TransferControlProtocol)-传输控制协议
IP(InternetProtocol)-Internet协议
ICMP(InternetControlMessageProtocol)-Internet控制报文协议
DHCP(DynamicHostControlProtocol)-动态主机控制协议
ARP(AddressResolutionProtocol)-地址解析协议
IEEE802.11-无线局域网协议
SSL(SecureSocketProtocol)-安全套接字协议
实验中使用到的网络操作命令参见附录部分。
引言
为了深入理解计算机通信的过程和网络通信协议,我们必须深入网络的心脏,去了解信息在发送端和接收端是如何封装和拆封的,在中间节点是如何选择路径的,两个通信实体是如何交换信息的,协议是如何操作的,以及操作的过程和结果。
常采用两种方法来加深对协议的理解,一种是基于实际的网络环境,另一种是基于虚拟的网络实验环境。
在实际网络环境下,这里就是Internet,利用packetsniffer(封包嗅探器)进行抓包并分析;在虚拟网络下,比较灵活,可以搭建任何架构的网络……这就构成了该实验讲义的两部分。
Packetsniffer的工作就是将计算机发送和接收的信息拷贝出来,对其进行分析,它不会对网络造成任何影响,因为它不会向网络发送任何信息。
Packetsniffer的结构如图1所示。
图1PacketSniffer(封包嗅探器)的结构
packetsniffer是由packetcapture(封包捕获器)和packetanalyzer(封包分析器)两部分组成,packetcapture的作用是抓取数据链路层的数据即帧(frame),packetanalyzer对其进行分析。
我们知道,帧中封装了用户的数据和上层的各层协议。
packetanalyzer能够认识所有的协议格式并理解各字段的含义。
常用的抓包工具有很多,如wireshark,tcpdump,Sniffer,WinsockExpert,HttpAnalyzer2等等,其中wireshark是最流行的工具之一,因为它的代码开源,使用免费和强大的分析功能。
其最新版本和用户手册见http:
//www.wireshark.org。
更多高级的话题参见http:
//wiki.wireshark.org。
使用方面有任何的疑问可首先去FAQ网页寻求答案。
实验的第一部分就使用Wireshark对网络各层协议进行捕获并分析。
Wireshark入门
用户界面介绍:
Wireshark的用户界面如图1.1所示,由命令菜单,显示过滤器、封包列表窗口、封包的细节窗口,及16进制和ASCII码内容窗口组成。
命令菜单
显示过滤器
的定义窗口
捕获的封包
选中封包的
头细节
以16进制和
ASCII码显示
的封包内容
图1.1Wireshark的用户界面
1.命令菜单
“File”打开、保存捕获文件等;
“Capture”设置捕获选项、接口、捕获过滤器、开始和停止捕获等;
“Analyze”显示过滤器等的设置;
“Statistics”关于一定条件的统计信息。
2.封包列表窗口
按时间顺序列出了各封包到达的时间,源和目的的IP地址,协议类型以及对协议的解释。
3.封包头窗口
显示各层协议的格式和其中各字段的内容。
4.封包内容窗口
以16进制和ASCII码显示选中的封包的内容。
5.显示过滤器窗口
对需要显示的封包定义符合条件的逻辑表达式。
实验内容
●启动Wireshark;
●开始捕获(capture-start);
●打开一个网页;
●等显示了一定数量的封包后,停止捕获。
回答问题:
1.列出所有不同的协议
2.HTTPGET和HTTPresponse之间花费了多长时间?
3.你所访问的网页名称是什么?
它的IP地址是什么?
你的机器的IP地址是什么?
实验一
HTTP协议分析
学习HTTP协议,包括:
基本的GET/response交互作用,消息的格式,访问较大的HTML网页,访问带有嵌入对象的HTML网页,及HTTP的认证和安全。
1.基本的GET/response交互作用
通过访问一个非常简单的网页来学习HTTP协议。
●启动Wireshark并开始捕捉(capture-start);
●在URL中输入:
http:
//gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html;
●页面显示后,停止捕捉(capturestop);
●在显示过滤器中输入字符:
http,点击Apply。
应该看到类似下面的页面:
图1.1浏览器访问http:
//gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html后Wireshark的显示页面。
从封包头的显示窗口中可以看到协议的层次,由上至下的顺序为:
Frame,EthernetII,IP,TCP,HTTP。
本次实验只关注HTTP协议,回答以下问题:
1.你的浏览器的HTTP的版本号是多少?
服务器的HTTP版本号又是多少?
2.浏览器能接收什么语言?
3.本机的IP地址是多少?
访问的网页服务器的IP地址是多少?
4.服务器返回本机的状态码是多少?
5.指出你所检索的文件在其服务器上的最后修改时间。
6.浏览器接收了多少字节的内容?
7.观察封包内容的二进制数据,是否看到有封包列表窗口没有显示的数据?
如果有,指出来它代表什么?
2.有条件的GET/response的相互作用
首先清空缓存(IE中,工具-选项-删除文件),接着:
●打开浏览器;
●启动Wireshark,开始捕捉;
●在URL中输入:
http:
//gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html;
●页面显示后,迅速刷新一次;
●页面刷新后停止捕捉;
●在显示过滤器中输入:
http。
回答问题:
8.检查第一个HTTPGET请求的内容,能看到“IF-MODIFIED-SINCE”这一行吗?
9.查看服务器响应的内容,服务器是否显式返回了文件的内容?
你是如何知道的?
10.查看第二个HTTPGET请求的内容,能看到“IF-MODIFIED-SINCE”这一行吗?
如果看到了,那其后是什么信息?
11.与第二个HTTPGET请求相对应的状态码是多少?
服务器是否显式返回了文件的内容?
并解释这一现象。
3.检索长文件
当下载一个长的HTML文件时,看看有什么不一样。
●打开浏览器,确保缓存清空;
●用Wireshark进行捕捉;
●在URL中输入:
http:
//gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html
(这是一个较长的文件);
●停止捕捉;
●在显示过滤器中输入:
tcp。
在封包列表窗口中,可以看到HTTPGET消息后有一个多封包的响应。
HTTP响应消息包含:
状态行,头行,空白行,实体部分。
实体部分是整个的HTML文件。
但是由于文件太长,一个TCP的净荷放不下,所以由多个TCP分段来传送,也就是说一个HTTP的响应被分成了多个TCP封包来实现。
回答问题:
12.浏览器发送了多少个HTTPGET的消息?
13.一个HTTP响应用了多少个TCP分段?
14.与HTTP响应有关的状态码和phrase是什么?
15.在TCP“连续”传输的数据中是否有HTTP的状态行?
4.带有嵌入对象的HTML文档
注意一下:
HTML文档的嵌入对象是存储在另外的服务器上(不同于页面的服务器)。
●打开浏览器,清空缓存;
●用Wireshark捕捉;
●在URL栏输入:
http:
//gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html;
(网页上有两幅图);
●停止捕捉,显示HTTP消息。
回答问题:
16.你的浏览器发送了多少个HTTPGET请求消息?
发送到哪些Internet地址?
17.你的浏览器是串行还是并行下载两幅图像的?
为什么?
5.HTTP认证
关于HTTP认证可参阅:
。
访问一个有密码保护的网页,看看HTTP的消息序列。
URL:
http:
//gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html
(username:
wireshark-students,password:
network)
●清空缓存,打开浏览器;
●开始捕捉;
●在URL栏输入上述地址,输入用户名和密码;
●停止捕捉,显示HTTP消息。
回答问题:
18.服务器对第一个HTTPGET消息的响应的状态码和phrase是什么?
19.当你的浏览器第二次发送HTTPGET消息时,该消息中含有什么新的字段?
实验二
DNS协议分析
DNS的作用就是根据域名得到相应的IP地址。
在这个实验中我们主要了解DNS客户端,比起DNS服务器来,它要简单得多,客户向一个域名服务器发出一个请求,然后收到来自该域名服务器的响应。
DNS服务器端常采用两种查询方式:
递归查询和迭代查询。
通过该实验了解DNS缓存,DNS资源记录和消息及记录的类型,掌握DNS的工作过程。
Nslookup
熟悉域名查询命令nslookup。
命令格式如下:
nslookup–option1–option2host-to-finddns-server
图2.1中第一个命令行的含义是在本地的域名服务器()查找的IP地址;第二个命令的含义是显示所有名字服务器的名字和IP地址;第三个命令的含义是通过查找cs.berkeley.edu的IP地址。
图2.1nslookup命令使用截图
任务:
1.查询一个欧洲大学的IP地址
TechnischeUniversitätMünchen
C:
\DocumentsandSettings\Administrator>nslookupwww.tum.de
Server:
Address:
202.195.128.10
Non-authoritativeanswer:
Name:
portal.mytum.de
Address:
129.187.39.3
Aliases:
www.tum.de,tum.www.ze.tu-muenchen.de,tum.www.ze.tum.de
2.查询一个美国公司的web服务器的地址
C:
\DocumentsandSettings\Administrator>nslookup-type=ns
Server:
Address:
202.195.128.10
Non-authoritativeanswer:
canonicalname=
primarynameserver=
responsiblemailaddr=
serial=1261312806
refresh=90000(1day1hour)
retry=90000(1day1hour)
expire=90000(1day1hour)
defaultTTL=180(3mins)
3.用一美国大学的服务器查询一个亚洲公司的地址
C:
\DocumentsandSettings\Administrator>nslookup-type=NSwww.harvard.edu
Server:
Address:
202.195.128.10
Non-authoritativeanswer:
www.harvard.educanonicalname=hno-webprod.harvard.edu
harvard.edu
primarynameserver=ns.harvard.edu
responsiblemailaddr=manager.noc.harvard.edu
serial=2009121902
refresh=3600(1hour)
retry=1800(30mins)
expire=3600000(41days16hours)
defaultTTL=10800(3hours)
C:
\DocumentsandSettings\Administrator>nslookupns.harvard.edu
Server:
ns.harvard.edu
Address:
128.103.201.100
Non-authoritativeanswer:
Name:
Address:
220.181.6.175
Aliases:
4.如图截屏保存或拷贝。
ipconfig
常用ipconfig来诊断网络问题,它可以提供TCP/IP的信息,DNS服务器的地址,适配器的类型等。
ipconfig的命令格式如下:
ipconfig[/?
|/all|/renew[adapter]|/release[adapter]|/flushdns|
/displaydns|/registerdns|/showclassidadapter|
/setclassidadapter[classid]]
图2.2使用命令ipconfig/all的截图
任务:
5.使用ipconfig/all、ipconfig/displaydns、ipconfig/flushdns、
ipconfig/displaydns命令,并理解各命令扩展的含义。
用Wireshark捕获DNS封包
清空DNS缓存后访问网页时进行捕获,
●用命令ipconfig/flushdns清空DNS缓存;
●打开浏览器,清空缓存;
●启动Wireshark,开始捕捉;
●在URL栏输入:
http:
//www.ietf.org;
●停止捕获;
●在显示过滤器中输入ip.addr==你的主机的IP地址;
回答问题:
6.定位于DNS的查询和响应封包,由此可以看出DNS是TCP还是UDP连接?
7.DNS查询报文的目的端口是多少?
DNS响应报文的源端口是多少?
8.DNS查询报文发送到什么IP地址?
是本地DNS服务器的IP地址吗?
9.DNS查询报文的类型是什么?
查询报文包含有什么answer项吗?
10.查看DNS的响应报文,它提供了多少个“answer”?
每一个answer包含什么?
11.查看接下来本机发出的TCPSYN封包,目的IP地址与DNS响应报文的什么IP地址一致吗?
12.该网页包含图像。
在取回每一幅图像前,本机是否发出了新的DNS查询?
为什么?
使用nslookup命令时进行捕获
I.捕获命令:
nslookup(域名任选)
●开始捕获;
●在命令行中输入:
nslookup;
●停止捕获;
用query/response回答下述问题:
13.DNS查询报文的目的端口号是多少?
DNS响应报文的源端口号是什么?
14.DNS查询报文发送给哪个IP地址?
是本地DNS服务器的地址吗?
15.DNS查询报文的“Type”是什么?
它包含什么“answers”吗?
16.DNS响应报文提供了多少“answers”?
每一个answer包含什么?
17.同时提供DOS界面的截屏。
II.捕获命令:
nslookup–type=NS(域名任选)
回答以下问题:
18.DNS查询报文发送给哪个IP地址?
是本地DNS服务器的地址吗?
19.DNS查询报文的“Type”是什么?
它包含什么“answers”吗?
20.DNS响应报文提供了sjtu的什么名字服务器?
它包含相应的IP地址吗?
21.同时提供DOS界面的截屏。
III.捕获命令:
nslookupcs.berkely.edu(域名任选)
回答以下问题:
22.DNS查询报文发送到哪个IP地址?
是本地DNS服务器的地址吗?
如果不是,则是哪里的IP地址?
23.DNS查询报文的“Type”是什么?
它包含什么“answers”吗?
24.DNS响应报文提供了多少个“answers”?
每一个answer包含什么?
25.同时提供DOS界面的截屏。
实验三
UDP协议分析
UDP协议不提供可靠的传输层服务,流量控制、差错控制等由应用层协议去实现,UDP协议只是在IP协议基础上定义了某端口,供进程使用。
基于UDP协议的应用层协议有哪些?
(DNS,NFS,SNMP,TFTP,OICQ等)
开启某种应用使得你的机器发送和接收UDP数据包,同时用Wireshark进行捕捉。
在显示过滤器中输入:
udp,这样只显示UDP的数据包。
(udp&&(ip.addr==192.168.179.67))
选择一个UDP数据包,显示它的详细信息,基于它回答问题:
1.UDP头中有哪些字段?
列出它们的名称。
2.确定UDP包头中各字段的字节长度。
3.长度字段指的是什么长度?
用抓取的UDP包验证。
4.UDP净荷最大允许有多少字节?
5.源端口号的最大值是多少?
6.UDP的协议号是多少?
7.UDP的校验和是如何计算的?
编程验证某一个UDP的校验和值。
(最好有界面)
8.找一组UDP包(发送和接收),描述它们之间端口号的关系。
实验四
TCP协议分析
主要内容:
通过分析将150KB文件上传到远程服务器的TCP报文来学习TCP协议。
学习TCP是如何通过序号和确认来保证可靠传输的;学习慢启动拥塞控制算法;熟悉TCP接收端的流量控制机制;掌握TCP连接的建立及它的性能分析。
捕获一个大文件上传到远程服务器的封包
在网页http:
//gaia.cs.umass.edu/wireshark-labs/TCP-wireshark-file1.html上将本机的文件alice.txt上传到远程的服务器。
●打开上述网页,如图4.1;
图4.1供上传文件的页面
●输入上传的文件名(包括路径,或者直接用浏览按钮选择);
●启动Wireshark,开始捕捉;
●回到浏览器,点击按钮“uploadalice.txtfile”,将会看到如下的页面提示:
Congratulations!
You'venowtransferredacopyofalice.txtfromyourcomputertogaia.cs.umass.edu.YoushouldnowstopEtherealpacketcapture.It'stimetostartanalyzingthecapturedEtherealpackets!
●窗体底端
●这表示上传结束,则停止捕捉。
过虑显示TCP
在显示过滤器窗口中输入:
(tcp)&&(ip.addr==本机的IP),然后点击“apply”,则看到protocol下显示了tcp及上层的http。
在info域可以看到tcp连接建立的三次握手过程;在一个http后有几个连续的tcp分段以及来自远程服务器的确认信息;
回答问题:
20.客户机所使用的IP地址和端口号是什么?
21.服务器的IP地址是什么?
它用哪个端口来发送和接收TCP分段信息的?
TCP协议的细节
在analyze-enableprotocols窗口中取消HTTP选项前面的勾,则Wireshark不再显示HTTP协议,只显示tcp。
回答问题:
1.TCP连接建立时TCPSYN分段的序号是什么?
在这个分段中哪个字段用于标识这是一个SYN分段?
2.对TCPSYN分段的响应SYNACK分段
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机通信与网络 实验讲义 计算机 通信 网络 实验 讲义