华北科技学院计算机学院综合性实验
实验报告
课程名称计算机网络
实验学期 2014 至 2015 学年第二学期学生所在系部计算机学院
年级 B2012级专业班级计科 B12-1 学生姓名江明月学号 2
任课教师高晓燕
实验成绩
计算机学院制
实验报告须知
1、学生上交实验报告时,必须为打印稿(A4纸)。
页面空间不够,可以顺延。
2、学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、
内容、结果及分析等。
3、教师应该填写的内容包括:实验成绩、教师评价等。
4、教师根据本课程的《实验指导》中实验内容的要求,评定学生的综合性实验成
绩;要求在该课程期末考试前将实验报告交给任课教师。
综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。
任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。
5、未尽事宜,请参考该课程的实验大纲和教学大纲。
《数据通信与计算机网络》课程综合性实验报告
一、实验目的
1.通过实验,学习和掌握TCP/IP协议分析的方法及其相关工具的使用。
2.熟练掌握 TCP/IP体系结构;
3.学会使用网络分析工具。
4.网络层、传输层和应用层有关协议分析;
二、设备与环境
●Windows 2000 server 操作系统
●TCP/IP 协议
●Wireshark工具软件
三、实验内容
1.安装VMware虚拟机和配置VMware虚拟机(选做)。
2.要求同学掌握网络抓包软件Wireshark内容包括捕获网络流量进行详细分析:
利用专家分析系统诊断问题;
实时监控网络活动;
收集网络利用率和错误等;
3.协议分析(一):IP协议,内容包括:
IP头的结构;
IP数据报的数据结构分析;
4.协议分析(二):TCP/UDP协议,内容包括:
TCP协议的工作原理;
TCP/UDP数据结构分析;
5.协议分析(三):应用层协议分析,内容包括:完整的FTP会话分析。
四、实验步骤
1.安装并运行wireshark并打开捕获界面。
2.捕获选项
图一
3.开始抓包
点击上图中的“Start”开始抓包几分钟就捕获到许多的数据报,主界面入托所示:
图二
如上图所示,可看到很多捕获的数据。
选中第8个数据帧,然后从整体上看看wirrshark的窗口,主要被分成三部分。
上面部分是所有数据帧的列表:中间部分是数据帧的描述信息:下面部分是帧里面的数据。
图三
二.分析UDP、TCP协议
1、TCP协议
在因特网协议族中,TCP层位于IP层之上,应用层之下的中间层。
不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。
TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,它是全双工的;在
保证可靠性上,采用超时重传和捎带确认机制。
以访问说明一次完整的TCP建立的三次握手过程。
第一次握手
要建立TCP连接,首先需要客户机向服务器发起建立连接的请求,及第一次握手的报文。
在此报文中,SYN字段置为1。
由于之前连接不存在,所以没有对之前接受的确认,故ACK字段被置为0。
同时由于连接还没有建立,不能发送数据,从而序列号也应该为0。
采用wireshark的过滤功能,用tcp.flags.syn==1 显示TCP中SYN字段为1的数据包,由SYN字段的定义知道这是建立TCP连接的报文。
从中找到ack=0的包即表示第一次TCP握手(此处以49号数据包为TCP建立的第一次握手为例)。
图四
由上图可以看出源IP地址为:192.168.1.100,目的IP地址为222.89.166.13。
TCP报文分析:
Transmission Control Protocal, Src Port : 54132 (54132), Dst Prot: http (80), Seq: 0, Len: 0
Souce port: 54132 (54132) //源端口号
通过报文分析,知道第一次握手成功。
第二次握手
第二次握手的报文由服务器发送,需要对第一次握手的报文进行恢复确认,因而ACK 字段应该置为1。
同时由于这仍然是TCP连接建立的过程,所以SYN字段置为1;没有数据传输,故而序列号为0。
接下来寻找第一次握手的报文后面ACK=1且源端口号、目的端口号与第一次握手分析的报文目的端口号、源端口号相同的报文,即表示此次TCP连接建立的第二次握手。
图五
TCP报文分析:
Transmission Control Protocol, Src Port: http (80), Dst Port: 54132 (54132), Seq: 0, Ack: 1, Len: 0 //状态行
Source port: http (80) //源端口号
Destination port: 54132 (54132) //目的端口号(与第一次握手的报文对比发现源与目的的端口号互换了)
[Stream index: 3] //根据源和目的IP及端口号生成的一个索引号
客户机接收到第二次握手的报文后,对服务器发送第三次握手的报文。
在该报文中,需要对第二次握手的报文进行确认,即ACK字段置为1。
此时连接已经建立,SYN字段被置为0,同时可以发送数据,故序列号不再为0。
采用wireshark的过滤功能,用tcp.flags.syn==0 显示TCP中SYN字段为0的包。
找到第二次握手报文后ACK=1且源端口号、目的端口号与第一次握手分析的报文源端口号、目的端口号相同的报文,即为此次连接的第三次握手。
图六
通过报文分析,知道第三次握手成功。
至此,成功建立了一条源IP地址为:192.168.1.100,目的IP地址为222.89.166.13,源端口号为:54132 (54132),目的端口号为http (80)的TCP连接。
图七
TCP连接的删除
同样以访问说明一次完整的TCP连接删除的四次再见过程。
第二次、第三次再见
由关闭TCP连接的机制,知道第二次再见的报文应接在第一次再见报文的后面。
分析端口号匹配后,找到第二次再见的报文。
分析关闭TCP连接的机制知道,第二次与第三次再见由同一个报文包含。
图九
第四次再见
仿照上面,找到第四次再见的报文。
图十
2、UDP协议
UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。
在OSI模型中,在第四层——传输层,处于IP协议的上一层。
UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。
UDP用来支持那些需要在计算机之间传输数据的网络应用。
包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。
UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。
原始框显示了分组中包含的数据的每个字节,从中可以观察最原始的阐述数据。
方框左边是十六进制的数据,右边是ASCII码。
报文的二进制,即发送的最原始内容。
现在选择其中第八个包进行分析:
图十一
第一行,现在此帧基本信息。
名称,283字节。
第二行,显示到达时间 2015.05.30
第4-6行,帧距离前一个帧的捕获时间差:0.449835000s
第8、9行,现在帧长度和捕获长度,分别为283字节和283字节
第12、13、14行,现在此帧类型,为UDP类型。
五、协议验证及结果分析
TCP是一种面向连接的、可靠的、基于字节流的运输层通信协议。
在简化的计算机网络OSI 模型中,它完成传输层所指定的功能
通过分别分析UDP与TCP的通信过程,明显感觉到TCP的传输要复杂的多。
也就明白了,尽管TCP提供了可靠的数据传输服务,为什么很多应用的开发人员情愿在UDP而不是TCP上构建应用。
作为电脑之间必须要遵守的功能,就好比两个人沟通就必须要使用同一种语言一样。
一个只懂英语和一个只懂中文的人没有办法沟通,因为没有共同的语法(规则)而无法沟通。
两台电脑之间进行通讯所共同遵守的规则,就是网络协议。
TCP/IP是一个协议族,也按照层次进行划分。
我们并不需要了解所有层次的协议,主要关注应用层和传输层的协议就可以了。