分析TCP及UDP报文格式

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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使用三次握手建立连接。

相关文档
最新文档