哈工大计算机网络实验报告之五
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
哈工大计算机网络实验报告之五
利用Ethereal分析TCP、UDP和ICMP协议。实验要求:(学生对预习要求的回答)(10分)得分:
l TCP协议采用了哪些机制保证可靠数据传输。(3分)数据重传和数据确认应答机制l Traceroute的工作过程,用自己的话来描述,200字以内,超过酌情扣分。(4分)构造数据包,来检查到达一个主机时经过了哪些路由。主机发送给目的地址的数据包的TTL是从1逐个递增的,而数据包每到达一个路由器,它的TTL值就会减1,当TTL减到0时,该数据包被取消,传回一个数据包给主机,我们就能捕获这个路由器的IP地址了。如果收到"超时错",表示刚刚到达的是路由器,而如果收到的是"端口不可达" 错误,表示刚刚到达的就是目的主机,路由跟踪完成,程序结束。l 阐述一下为什么应用程序开发者会选择将应用程序运行在UDP而不是TCP之上?(3分)UDP没有拥塞控制机制,发送方可以以任何速率向下层注入数据。很多实时应用是可以容忍一定的数据丢失的,同时又对速率有很高要求(比如在线视频播放),这时开发者会倾向选择UDP协议,避免使用TCP协议的拥塞控制机制产生的分组开销。实验过程:使用Ethereal分析TCP 协议: (15分)得分:
抓取本机与://gaia、cs、umass、edu/ethereal-
labs/alice、txt通信过程中的网络数据包。根据操作思考以下问
题:l 客户服务器之间用于初始化TCP连接的TCP SYN报文段的序号(sequence number)是多少?在该报文段中,是用什么来标示该报文段是SYN报文段的?Seq=0Flags中的syn位为1,ack位为0,说明是syn报文段l 服务器向客户端发送的SYNACK报文段序号是多少?该报文段中,Acknowledgement字段的值是多少?Gaia、cs、umass、edu服务器是如何决定此值的?在该报文段中,是用什么来标示该报文段是SYNACK报文段的?Seq=0Ack=1,服务器根据客户端发送的SYN报文的Seq值加一后得到此值Flags 中的Ack和Syn位都为1,所以是SYNACK报文l 如果将包含POST命令的TCP报文段看作是TCP连接上的第一个报文段,那么该TCP连接上客户机向服务器发送的第六个报文段的序号是多少?是何时发送的?该报文段所对应的ACK是何时接收的?第六个报文段:对应的ack报文段:23号报文时第六个报文,
seq=6310,发送时间:Jun1,xx13:32:
56、587941000 对应的ack报文段接收时间Jun1,xx13:32:
56、993379000l 前六个TCP报文段的长度各是多少?在整个文件发送过程中,接受方公示的窗口大小是否变化?窗口大小代表什么含义?(可参考教科书“流量控制”一节)
首个报文段长度为555,其余都为1506,接收方窗口长度是变化的。它代表接收方端口上缓冲区空闲空间的大小,显示其接受能力 l TCP连接的throughput (bytes transferred per unit
time)是多少?请写出你的计算过程。(不必给出计算结果,表达出计算的思路即可)TCP连接发送报文的数据字节总数÷发送数据报总时间l 实验结论,以及实验中遇到的其他问题是如何解决的?结论:tcp协议在建立连接时要经历三次握手过程;当tcp连接需要发送比较大块的数据时,会将其分割成若干份数据报发送。Tcp协议利用窗口大小来实现端到端的流量控制问题:实验课后到四楼机房重做实验发现那里的网络不适合做这次实验(在那研究了一个小时),后来用自己电脑回到寝室做实验比较顺利。使用Ethereal分析UDP协议:(6分)得分:
分析QQ通讯中捕获到的UDP数据包。根据操作思考以下问题:l QQ消息是基于UDP的还是TCP的?UDPl 为什么你发送一个ICQ数据包后,服务器又返回给你的主机一个ICQ数据包?这与UDP的不可靠数据传输有什么联系?返回的ICQ数据包时作确认用的,因为UDP是不可靠的数据传输协议,所以需要这种确认机制。l 对比前面的TCP协议分析,你能看出UDP是无连接的吗?能看出来,相比TCP协议,UDP协议没有握手过程,直接发送数据。l 实验结论,以及实验中遇到的其他问题是如何解决的?结论:UDP协议是无连接的,不可靠的数据传输协议,发送数据后需要确认。问题:抓包过程中数据包太多且不断出现,很难锁定要找的数据包。需要在发送的同时盯紧抓包窗口,确定目的数据包编号的大概范围,再去仔细查找。(因为在找到目的数据包之前
不知道我机器上QQ服务器的ip地址)使用Ethereal分析ICMP
分析:(9分)得分:
(1)分析Ping产生ICMP消息,根据操作思考以下问题:ICMP有关知识参见教材第四章
4、4、3节l 为什么ICMP包没有源和目的端口号?ICMP报文的用途?因为ICMP是网络层协议,不涉及上层的端口号。ICMP报文主要用来检测网络中是否存在故障,不涉及进程间通信,无需
源和目的端口号。l 观察一个由你的主机发送的ICMP请求包,其ICMP类型和代码号是什么?该ICMP包还含有哪些字段?checksum, sequence number 和identifier字段各占多少字节?ICMP类型:
8(响应请求 ECHO-REQUEST)代码号为0ICMP报文包括IP头、ICMP头和ICMP体,还包含checksum、identifier、sequence number、data这些字段。c hecksum, sequence number 和identifier字段各占2字节l 观察一个ICMP应答包,其ICMP类
型和代码号是什么?该ICMP包还含有哪些字段?checksum, sequence number 和identifier字段各占多少字节?
类型:0(响应应答,ECHO-REPLY)代码号:0ICMP报文包括
IP头、ICMP头和ICMP体,还包含checksum、identifier、sequence number、data这些字段。c hecksum, sequence number 和identifier字段各占2字节(2)分析Traceroute产生ICMP消息,根据操作思考以下问题:l 观察捕获到的ICMP echo包,是
否和前面实验中的ICMP ping查询包不同?如果是的话,为什么