分析TCP及UDP报文格式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机网络原理实验报告
实验名称实验七分析TCP及UDP报文格式
队别姓名学号实验日期 2012.11.8 实验报告要求: 1.实验目的 2.实验要求 3.实验环境 4.实验作业 5.问题及解决
6.思考问题
7.实验体会
【实验目的】
一、掌握TCP协议的作用和格式;
分析数据报各字段的含义及作用;
理解三次握手的过程;
学会计算TCP校验和的方法;
了解TCP的标志字段的作用。
二、观察UDP报文
观察DNS,QQ应用时UDP的格式
【实验要求】
在进行实验的主机上运行Win7操作系统,并将它接入到校园网。
按要求用Wireshark进行以太网数据包的截获,并分析其帧格式。
【实验环境】
在装有Win7的笔记本,接入校园网,使用WireShark 1.8.2版本进行抓包。
【实验作业】
一、练习一分析TCP报文
1.打开“命令提示符”窗口,输入:netstat –n 回车。
2.观察TCP状态,记录Local Address 、Foreign Address 和State。
可以通过上图观察到,现在的TCP状态为空。
3.在浏览器输入:,在“命令提示符”窗口输入:netstat –n 回车。
4.观察TCP状态,记录Local Address 、Foreign Address 和State。
通过上图可以观察到,在TCP协议下,本地地址套接字、外部地址套接字、状态,依次列于图中。
5.比较两次记录的不同之处。
第一次由于未建立任何连接,因此没有任何TCP信息,而第二次则成功建立了TCP连接,因此有相应的TCP连接信息得到。
6.打开Wireshark,选择菜单命令“Capture” “Interfaces…”子菜单项。弹出“Wireshark: Capture Interfaces”
对话框。单击“Options”按钮,弹出“Wireshark: Capture Options”对话框。单击“Start”按钮开始网络数据包捕获。
7.单击“Stop”按钮,中断网络协议分析软件的捕获进程,主界面显示捕获到的TCP数据包。下面对94帧的TCP数据包进行分析:
由上图可以知道,TCP协议包括
源端口(2字节):http80(0050)
目的端口(2字节)49811(c293)
序号(4字节):1(相对序号)
期望得到的下一分组序号:518
确认号(4字节):
首部长度:20字节
标志(2字节):0x18(推送,确认)
数据偏移(4位)
保留(4位)
紧急URG:0
确认ACK:1
推送PSH:1
复位RST:0
同步SYN:0
终止FIN:0
窗口(2字节):7168
检验和:0x66cb
序号确认分析:正在网络中传输的序号517
TCP数据报数据分组517字节
经过上述分析可知,捕获到的TCP数据包是符合TCP协议格式的,TCP协议格式如下:TCP协议是面向连接的、端到端的可靠传输协议,它支持多种网络应用程序。TCP必须解决可靠性,流量控制的问题,能够为上层应用程序提供多个接口,同时为多个应用程序提供数据,TCP也必须能够解决通信安全性的问题。
1.TCP的封装
2.TCP首部格式
源端口(16比特)目的端口(16比特)
序号(32比特)
确认号(32比特)
HLEN (4比特)
保留
(6比特)
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
窗口大小(16比特)
校验和(16位)紧急指针(16比特)
选项与填充(≤40字节)
数据(必须填充成16比特的整数倍)
首部
TCP段格式
0 16 31
源端口和目的端口字段——各占2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。
序号字段——占4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
确认号字段——占4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。
HLEN字段——占4 bit,它指出首部长度,单位为:32 bit 字(4 字节)。正常的TCP首部长度是20字节。
6个标志字段——占6 bit。紧急比特URG:当URG = 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。确认比特ACK:只有当
ACK = 1 时确认号字段才有效。当ACK = 0 时,确认号无效。推送比特PSH (PuSH):接收
TCP 收到推送比特置1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填
满了后再向上交付。复位比特RST (ReSeT):当RST = 1 时,表明TCP 连接中出现严重差错
(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。同步比特SYN :同步比特SYN 置为1,就表示这是一个连接请求或连接接受报文。终止比特FIN (FINal):
用来释放一个连接。当FIN = 1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运
输连接。
窗口字段——占2 字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口
的上限。
检验和——占2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP 报文段的前面加上12 字节的伪首部。
紧急指针字段——占16 bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。
8.观察协议树区中TCP数据包结构,是否符合TCP报文格式。从“会话分析”中找出此连接的三次握
手的数据包,对此数据包进行分析。记录标志字段的值。
从以上观察可知,TCP数据包结构符合TCP报文格式。为了实现数据的可靠传输,TCP要在应用进程间建立传输连接。TCP使用三次握手建立连接。