利用Ethereal分析TCP数据包

利用Ethereal分析TCP数据包
利用Ethereal分析TCP数据包

利用Ethereal分析TCP数据包一.分析过程:

1.图1 TCP协议图

图2 TCP协议的内容

图3 TCP协议的数据包

2.数据分析

1)

分析:546代表的是Frame的序号,54 bytes代表的是54字节的数据包的长度

2)

分析:其中代表的是MAC地址

字节: 6 6 2

以太网的MAC帧格式

目的地址:00 e0 5c 15 f1 cd(十六进制)

源地址:00 1f d0 b8 da 78(十六进制)

类型:一般类型字段的值是0x0800是,就是宝石上层使用的是IP数据报。如果类型字段分值是0x8137则宝石该帧是由Novell IPX发过来的。

3)分析:

版本:使用的是IP协议版本号为4(即IPv4)

首部长度:20个字节的长度

服务类型(新版本称区分服务):00,这个字段只有在使用区分服务时,才起作用。在一般的情况下都不使用这个字段的。

总长度:40字节,总长度指的是首部和数据之和的长度

标识:d0 34(十六进制)IP软件在存储器中维持一个计时器,每产生一个数据报,计时器就加1,并将此值赋给标志字段。

标志:001(二进制),目前标志只有两位有意义:

标志最低位记为MF(More Fragment)。MF=1表示后面“还有分片”的数据报,

MF=0表示这已是若干数据报片中的最后一个。

标志中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0

是才允许分片。

片偏移:0,0000,0000,0000(二进制)

生存时间:80(十进制128s)生存时间表明的是数据报在网络中的寿命,一般以秒作为其单元。

协议:协议字段指出次此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分交给那个处理过程。

首部检验和:5167(二进制:0101,0001,0110,0111)这个字段值检验数据报的首部,但不包括数据部分。

源IP地址:192.168.1.3

目的IP地址:219.133.60.3

4)

源端口号:1157

目的端口号:80(HTTP)

序列号:73 71 72 cb

确认号:24 ce 1c a0

首部长度:20字节

保留:00,0000

UGR:0, URG 紧急指针,告诉接收TCP模块紧要指针域指着紧要数据

ACK:1, ACK 置1时表示确认号(为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。

PSH:0, PSH 置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。

RST:0, RST 置1时重建连接。如果接收到RST位时候,通常发生了某些错误。

SYN:0, SYN 置1时用来发起一个连接。

FIN:0, FIN 置1时表示发端完成发送任务。用来释放连接,表明发送方已经没有数据数据。

检验和:aa b2

紧急指针:00 00

二.总结

通过使用Ethereal这个数据抓包软件,让我再次复习了有关计算机网络的知识,虽然还不知道去具体的使用价值。

TCP数据包格式

TCP数据包格式(zz) 修改浏览权限| 删除TCP提供一种面向连接的、全双工的、可靠的字节流服务。 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。 TCP的接收端必须丢弃重复的数据。 TCP对字节流的内容不作任何解释。对字节流的解释由TCP连接双方的应用层解释。TCP通过下列方式来提供可靠性: 应用数据被分割成TCP认为最适合发送的数据块,称为报文段或段。 TCP协议中采用自适应的超时及重传策略。 TCP可以对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。 TCP的接收端必须丢弃重复的数据。 TCP还能提供流量控制。 TCP报文段格式

源端口和目的端口字段——各占2字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现。 序号字段——占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。 确认号字段——占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。 数据偏移——占4bit,它指出TCP报文段的数据起始处距离CP报文段的起始处有多远。“数据偏移”的单位不是字节而是32bit字(4字节为计算单位)。 保留字段——占6bit,保留为今后使用,但目前应置为0。

紧急比特URG——当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。 确认比特ACK——只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。 复位比特RST(Reset) ——当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。 同步比特SYN——同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。 终止比特FIN(FINal)——用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。 窗口字段——占2字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。 检验和——占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP 报文段的前面加上12字节的伪首部。 紧急指针字段——占16bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。 选项字段——长度可变。TCP首部可以有多达40字节的可选信息,用于把附加信息传递给终点,或用来对齐其它选项。 填充字段——这是为了使整个首部长度是4字节的整数倍。 TCP首部的主要选项: 最大报文段长度MSS(Maximum Segment Size)是TCP报文段中的数据字段的最大长度。MSS告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。”窗口扩大因子,用于长肥管道。 时间戳,可用于测量往返时延RTT。 TCP的数据编号与确认 TCP协议是面向字节的。TCP将所要传送的报文看成是字节组成的数据流,并使每一个字节对应于一个序号。 在连接建立时,双方要商定初始序号。TCP每次发送的报文段的首部中的序号字段数值表示该报文段中的数据部分的第一个字节的序号。 TCP的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数据的最高序号加1。因此确认号表示接收端期望下次收到的数据中的第一个数据字节的序号。为提高效率,TCP可以累积确认,即在接收多个报文段后,一次确认。 一、TCP的流量控制 TCP采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。 TCP报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。 发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小)。

TCPIP详解学习笔记,非常全

TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。 但是简单的连到一起是远远不够的,就好像语言不同的两个人互相见了面,完全不能交流信息。因而他们需要定义一些共通的东西来进行交流,TCP/IP 就是为此而生。TCP/IP不是一个协议,而是一个协议族的统称。里面包括了IP协议,IMCP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等等。电脑有了这些,就好像学会了外语一样,就可以和其他的计算机终端做自由的交流了。TCP/IP协议分层 提到协议分层,我们很容易联想到ISO-OSI的七层协议经典架构,但是TCP/IP协议族的结构则稍有不同。如图所示 TCP/IP协议族按照层次由上到下,层层包装。最上面的就是应用层了,这里面有http,ftp,等等我们熟悉的协议。而第二层则是传输层,著名的TCP和UDP协议就在这个层次(不要告诉我你没用过udp玩星际)。第三层是网络层,IP协议就在这里,它负责对数据加上IP地址和其他的数据(后面会讲到)以确定传输的目标。第四层是叫数据链路层,这个层次为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备。再往下则是硬件层次了,负责网络的传输,这个层次的定义包括网线的制式,网卡的定义等等(这些我们就不用关心了,我们也不做网卡),所以有些书并不把这个层次放在tcp/ip协议族里面,因为它几乎和tcp/ip 协议的编写者没有任何的关系。发送协议的主机从上自下将数据按照协议封装,而接收数据的主机则按照协议从得到的数据包解开,最后拿到需要的数据。这种结构非常有栈的味道,所以某些文章也把tcp/ip协议族称为tcp/ip协议栈。 一些基本的常识 在学习协议之前,我们应该具备一些基本知识。 互联网地址(ip地址) 网络上每一个节点都必须有一个独立的Internet地址(也叫做IP地址)。现在,通常使用的IP地址是一个32bit的数字,也就是我们常说的IPv4 标准,这32bit的数字分成四组,也就是常见的255.255.255.255的样式。IPv4标准上,地址被分为五类,我们常用的是B 类地址。具体的分类请参考其他文档。需要注意的是IP地址是网络号+主机号的组合,这非常重要。 域名系统 域名系统是一个分布的数据库,它提供将主机名(就是网址啦)转换成IP地址的服务。 RFC RFC是什么?RFC就是tcp/ip协议的标准文档,在这里我们可以看到RFC那长长的定义列表,现在它一共有4000多个协议的定义,当然,我们所要学习的,也就是那么十几个协议而已。 端口号(port) 注意,这个号码是用在TCP,UDP上的一个逻辑号码,并不是一个硬件端口,我们平时说把某某端口封掉了,也只是在IP层次把带有这个号码的IP包给过滤掉了而已。 应用编程接口 现在常用的编程接口有socket和TLI。而前面的有时候也叫做“Berkeley socket”,可见Berkeley对于网络的发展有多大的贡献。TCP/IP详解学习笔记(2)-数据链路层 数据链路层有三个目的: ?为IP模块发送和接收IP数据报。 ?为ARP模块发送ARP请求和接收ARP应答。 ?为RARP发送RARP请求和接收RARP应答 ip大家都听说过。至于ARP和RARP,ARP叫做地址解析协议,是用IP地址换MAC地址的一种协议,而RARP则叫做逆地址

TCP数据包的发送和接收设计报告

湖北工业大学 课程设计报告 设计题目:TCP数据包的发送和接收专业:计算机科学与技术 班级:10计科2班 学号:11 姓名:吕红杰 指导老师:涂军

一.设计题目 发送和接收TCP数据包 二.设计要求 1.正确理解题意; 2.具有良好的编程规范和适当的注释; 3.有详细的文档,文档中应包括设计题目涉及的基础知识、设计思路、程序流程图、程序清单、开发中遇到的问题及解决方法、设计中待解决的问题及改进方向。 三.需求分析 TCP是一种面向连接的、可靠的传输层协议。TCP协议工作在网络层IP协议的基础上。本课程设计的目的是设计一个发送和接收TCP数据包的程序,其功能是填充一个TCP数据包,发送给目的主机,并在目的主机接收此TCP数据包,将数据字段显示显示在标准输出上。 四.具体设计 1.创建一个原始套接字,并设置IP头选项 SOCKET sock; sock = socket(AF_INET,SOCK_RAW,IPPROTO_IP); 或者: sock=WSASoccket(AF_INET,SOCK_RAW,IPPROTO_IP,NULL,0,WSA_FLAG_OVERLAPPE D); 这里,设置了SOCK_RAW标志,表示我们声明的是一个原始套接字类型。 为使用发送接收超时设置,必须将标志位置位置为WSA_FLAG_OVERLAPPED。在本课程设计中,发送TCP包时隐藏了自己的IP地址,因此我们要自己填充IP头,

设置IP头操作选项。其中flag设置为ture,并设定 IP_HDRINCL 选项,表明自己来构造IP头。 setsockopt(sock, IPPROTO_IP, IP_HDRINCL, (char *)&Flag, sizeof(Flag)); int timeout=1000; setsockopt(sock, SOL_SOCKET,SO_SNDTIMEO,(char*)&timeout, sizeof(timeout)); 在这里我们使用基本套接字SOL_SOCKET,设置SO_SNDTIMEO表示使用发送超时设置,超时时间设置为1000ms。 2.构造IP头和TCP头 这里, IP头和TCP头以及TCP伪部的构造请参考下面它们的数据结构。typedef struct _iphdr 算校验和的子函数 在填充数据包的过程中,需要调用计算校验和的函数checksum两次,分别用于校验IP头和TCP头部(加上伪头部),其实现代码如下: USHORT checksum(USHORT *buffer, int size) { unsigned long cksum=0; while(size >1) { cksum+=*buffer++; size -=sizeof(USHORT); } if(size ) { cksum += *(UCHAR*)buffer; } cksum = (cksum >> 16) + (cksum & 0xffff); cksum += (cksum >>16);

Ethereal工具的使用方法

Ethereal工具的使用方法 1、抓包设置页面 选择以太网卡 设置为实时刷新报文 设置为是否滚动 设置一次抓包长度或抓包时间 设置抓包存储方式 显示过滤 显示过滤语法: mms 只显示MMS报文 iecgoose 只显示goose报文 tcp 只显示tcp报文 udp 只显示udp报文 ip.addr == 172.20.50.164 显示与地址为172.20.50.164的服务器交互的报文 ip.src == 172.20.50.164 显示源地址IP为172.20.50.164的服务器发出的报文 ip.dst == 172.20.50.164 显示与目的地址IP为172.20.50.164的服务器交互的报文 eth.addr == 5a:48:36:30:35:44 显示与MAC地址为5a:48:36:30:35:44的服务器交互的报文 eth.src == 5a:48:36:30:35:44 显示源MAC地址为5a:48:36:30:35:44的服务器发出的报文

eth.dst == 5a:48:36:30:35:44 显示与目的MAC 地址为5a:48:36:30:35:44的服务器交互的报文 抓捕过滤 抓捕过滤语法 Tcp 只抓捕Tcp 报文 Udp 只抓捕Tcp 报文 Host 172.20.50.164 只抓捕IP 地址为172.20.50.164的报文 Ether host 只抓捕MAC 地址为5a:48:36:30:35:44的报文 限制每个包的大小 2、 协议显示 MMS 报文 SNTP 建立以太网通讯时会发ARP 报文ping 报文 SV 、GOOSE 抓包时间 3、 显示信息

tcpip详解卷阅读笔记(4)TCP

https://www.360docs.net/doc/2413504601.html,/net/201201/116442.html 最后终于来到了大块头TCP协议,为了给应用层提供可靠的传输服务,tcp协议设计了各种机制以实现丢包、重发、乱序、链路传输错误等传输过程中可能出现的错误。 1. TCP协议概述 我们首先来看一下TCP协议的首部,它将给收发两端提供怎样的信息: 与UDP一样,TCP报头的前8个字节也是源和目的端的端口号。<源ip地址,源端口号,目的ip地址,目的端口号>(即一个socket pair)确定一条tcp连接。 序列号用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的第一个数据字节。反过来,确认序列号是表示TCP发端期望从TCP收端收到的下一个字节(好像说得不是很清楚,后面再说)。 首部长度给出首部中32bit字的数目,跟IP首部一样,TCP最多有60字节的首部。 接下来是6个标志比特,它们中的多个可以被同时设置为1: URG:紧急指针有效,与后面的紧急指针结合起来 ACK:确认序号有效 PSH:接收方尽快将这个报文段交给应用层 RST:重建连接 SYN:同步序号用来发起一个连接 FIN:发端完成发送任务,将要关闭连接

检验和的计算方法和UDP中的检验和一样,也要加上伪首部,也要填充奇数字节,与UDP不同的是,TCP强制要求计算检验和,而UDP的检验和是可选的。 窗口大小表明接收端当前的接收能力,以字节为单位,16位窗口限制了最大值为65535字节,在选项字段中,有一个窗口刻度选项,允许这个值按比例放大。 紧急指针是一个正的偏移量,和序号中的值相加表示紧急指针最后一个字节的序号。 选项字段可以包括最长报文大小(MSS),这是最常见的可选字段。每个连接方通常都在通信的第一个报文段中指明这个选项,表明本端所能接收的最大长度的报文段;还有上面我们提到的窗口扩大选项以及时间戳选项,我们将在后面看到时间戳选项的作用。 这里摘录一段话来描述TCP协议:“TCP可以表述为一个没有选择确认或否认的滑动窗口协议。我们说TCP缺少选择确认是因为TCP首部中的确认序列号表示发方已经成功收到字节,但还不包含确认序号所指的字节。当前还无法对数据流中选定的部分进行确认。例如,如果1~1024字节已经成功收到,下一个报文段中包含序号从2049~3072的字节,收端并不能确认这个新的报文段。它所能做的就是发回一个确认序号为1025的ACK。它也无法对一个报文进行否认。例如,如果收到包含1025~2048字节的报文段,但它的检验和错,TCP收端所能做的就是发回一个确认序号为1025的ACK。”这段话也好很地解释了前面提到的确认序列号的问题。 2. 连接的建立与终止 接下来就是著名的tcp建立连接的三次握手了。用时间序列图来表示最清楚不过了:

实验一 使用Ethereal工具分析网络协议

实验一使用Ethereal工具分析网络协议 一、实验目的 通过使用Ethereal软件掌握Sniffer(嗅探器)工具的使用方法,实现捕捉网络协议的数据包,以理解TCP/IP协议族中多种协议的数据结构以及多种协议的交互过程。 二、实验环境 安装Windows 2000/XP的PC机,在每一台上安装Ethereal软件。将PC机通过路由器/交换机相连,组成一个局域网。 三、实验内容和步骤 (1)Ethereal 使用说明 1、Ethereal 简介 Ethereal是一款免费的网络协议分析程序,支持Unix、Windows。借助这个程序,你既可以直接从网络上抓取数据进行分析,也可以对由其他嗅探器抓取后保存在硬盘上的数据进行分析。你能交互式地浏览抓取到的数据包,查看每一个数据包的摘要和详细信息。Ethereal有多种强大的特征,如支持几乎所有的协议、丰富的过滤语言、易于查看TCP会话经重构后的数据流等。 它的主要特点为: ?支持Unix系统和Windows系统 ?可以根据不同的标准进行包过滤 ?通过过滤来查找所需要的包 ?根据过滤规则,用不同的颜色来显示不同的包 ?提供了多种分析和统计工具,实现对信息包的分析 2、Ethereal 安装 安装软件可以从https://www.360docs.net/doc/2413504601.html,网站上下载。

3、Ethereal操作指导 3.1 Ethereal 操作界面 Ethereal软件界面如图上图所示,在这个窗口上,整个界面环境分为三个窗口,最上面的窗口是抓包列表窗口,经过Ethereal软件抓包后的数据包都会列在这个窗口中,同时你可以根据抓包序列号,抓包时间、源地址、目标地址、协议等进行包列表的排序,这样你可以很容易的找到你所需要的信息包。 中间的窗口中显示的是抓包列表上所选择的包对应的各层协议说明,其中,协议层次信息以树型的结构进行显示。 最下面的窗口是数据窗口,显示的是上层窗口选中的信息包的具体数据,同时,在中间树型窗口中所选择的某一协议数据域的内容,在数据窗口中会被突出地显示出来。 3.2 Ethereal 界面菜单 菜单中主要有以下几个部分: File:这个子菜单下的操作与Windows菜单下File下的操作类似,包括了文件的打开,保存、打印以及系统的退出等等。不过这里的文件仅仅指的是抓包文件。Edit:这个子菜单下所包含的操作有:查找某一个特定的帧、跳到某个帧、在一个或更多的帧上打上标记、设置首选项、设置过滤、协议剖析允许/不允许等。在这个菜单下,Windows界面中的一些常用的操作,例如剪切、复制、粘贴等将不再使用。 Capture:在这个菜单下进行开始抓包和停止抓包的操作。

利用Ethereal分析TCP数据包

利用Ethereal分析TCP数据包一.分析过程: 1.图1 TCP协议图 图2 TCP协议的内容 图3 TCP协议的数据包 2.数据分析 1) 分析:546代表的是Frame的序号,54 bytes代表的是54字节的数据包的长度

2) 分析:其中代表的是MAC地址 字节: 6 6 2 以太网的MAC帧格式 目的地址:00 e0 5c 15 f1 cd(十六进制) 源地址:00 1f d0 b8 da 78(十六进制) 类型:一般类型字段的值是0x0800是,就是宝石上层使用的是IP数据报。如果类型字段分值是0x8137则宝石该帧是由Novell IPX发过来的。

3)分析: 版本:使用的是IP协议版本号为4(即IPv4) 首部长度:20个字节的长度 服务类型(新版本称区分服务):00,这个字段只有在使用区分服务时,才起作用。在一般的情况下都不使用这个字段的。 总长度:40字节,总长度指的是首部和数据之和的长度 标识:d0 34(十六进制)IP软件在存储器中维持一个计时器,每产生一个数据报,计时器就加1,并将此值赋给标志字段。 标志:001(二进制),目前标志只有两位有意义: 标志最低位记为MF(More Fragment)。MF=1表示后面“还有分片”的数据报, MF=0表示这已是若干数据报片中的最后一个。 标志中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0 是才允许分片。 片偏移:0,0000,0000,0000(二进制) 生存时间:80(十进制128s)生存时间表明的是数据报在网络中的寿命,一般以秒作为其单元。 协议:协议字段指出次此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分交给那个处理过程。 首部检验和:5167(二进制:0101,0001,0110,0111)这个字段值检验数据报的首部,但不包括数据部分。 源IP地址:192.168.1.3 目的IP地址:219.133.60.3 4)

实验一 Ethereal协议分析软件的使用

实验一:使用包嗅探及协议分析软件Ethereal 分析 Ethernet帧及应用层FTP协 议的分析 【实验目的】 1、掌握包嗅探及协议分析软件Ethereal的使用。 2、掌握Ethernet帧的构成 3、掌握 FTP协议包的构成 【实验环境】 安装好Windows 2000 Server操作系统+Ethereal的计算机 【实验时间】2节课 【实验重点及难点】 重点学习掌握如何利用Ethereal来分析Ethernet帧。 【实验内容】 1、捕捉任何主机发出的Ethernet 802.3格式的帧和DIX Ethernet V2(即Ethernet II)格式的帧并进行分析。 2、捕捉并分析局域网上的所有ethernet broadcast帧进行分析。 3、捕捉局域网上的所有ethernet multicast帧进行分析。 【实验步骤】 一、Ethereal的安装 Ethereal是一个图形用户接口(GUI)的网络嗅探器,由于Ethereal需要WinPcap库, 所以先安装WinPcap_2_3.exe, 再安装Ethereal.exe。(已装好)二、仔细阅读附件中的Ethereal使用方法和TcpDump的表达式详解,学习 Ethereal的使用。 三、捕捉任何主机发出的Ethernet 802.3格式的帧和DIX Ethernet V2(即Ethernet II)格式的帧并进行分析。 捕捉任何主机发出的Ethernet 802.3格式的帧(帧的长度字段<=1500),Ethereal的capture filter 的filter string设置为:ether[12:2] <= 1500。捕捉任何主机发出的DIX Ethernet V2(即Ethernet II)格式的帧(帧的长度字段>1500, 帧的长度字段实际上是类型字段),Ethereal的capture filter 的filter string设置为:ether[12:2] > 1500。 ①观察并分析帧结构,802.3格式的帧的上一层主要是哪些PDU?是IP、LLC 还是其它哪种?(学校里可能没有,如果没有,注明没有就可以了) ②观察并分析帧结构,Ethernet II的帧的上一层主要是哪些PDU?是IP、LLC 还是其它哪种? 四、捕捉并分析局域网上的所有ethernet broadcast帧,Ethereal的capture filter 的

ethereal使用以及IP协议解析

1.主界面介绍 随着3G的普及,手机数据业务量(如浏览器,彩信等)的日益增长,对手机侧网络包的分析显得越来越重要。 一般来说,手机数据业务的抓包工具为QXDM,在抓LOG指导里面已经有了详细参数的配置介绍(详情见《IP数据包抓取方法.doc》)。但需要注意的是,在将LOG转化为.pcap文件时,必须保证当前电脑里安装有Ethereal软件,否者PCAPGenerator这个工具不会出现。(针对使用Tools->PCAPGenerator转化.isf文件出错的情况,可以做如下尝试:先使用Tools->ISF File Converter将刚刚保存的.isf文件其转化为.dlf文件,然后使用Tools->PCAPGenerator将.dlf 文件转换成.pcap文件)。 这里主要针对抓到IP包后,怎么样使用Ethereal软件对IP包进行分析,以及一些简单的TCP/IP协议介绍。 直接点击打开.pcap文件,可以看到如下图1所示界面。 图1 中间彩色的区域就是IP数据包。从左到右,字段分别是No.,Time,Source,Destination,Protocol以及Info。IP包是按照流经手机网卡的时间顺序排列的,NO.是标示抓到的IP包是该抓包文件中的第几个,Time则是计算的所有包与第一个包之间的间隔时间,单位毫秒ms。Source和Destination字段分别表示IP包的源地址和目的地址。Protocol显示当前IP包的上层协议,如TCP,UDP,如果应用层协议头也在该IP包中,优先显示应用层协议,如RTSP,HTTP等。 注意中间的彩色显示,不同的颜色代表该IP包中包含了不同内容,这是方便我们对IP 包查看。如上面的大红色,表示的是该数据包损坏,可能是只有一半的内容,也可能是指在该包与其他包的序号不连续(指在协议层不连续),中间可能出现丢包的现象。很多时候,Ethereal是用不同颜色来区分上层协议的不同(注意IP包中必须包含上层协议的包头,才能以该应用的颜色进行标示。因为很多数据包比较大,是通过几个IP包进行传输的,那么就只有第一个包是以上层应用的颜色进行标示,后面的显示为协议层颜色)。如下图2中,可以看到DNS是以淡蓝色标示,ICMP是以黑色标示,TCP的同步(SYN&FIN建立TCP连接的三次握手)以深灰色进行标示,而其它的TCP包则以浅灰色标示,HTTP协议使用绿色进

发送TCP数据包

四川理工学院 课程设计书 学院计算机学院 专业计算机科学与技术 班级09级04班 题目发送TCP数据包 教师王非,何绍荣,陈超 学生赵清勇,谭凯,唐红琴

实验分工: 程序设计、编写代码由全小组成员共同完成 谭凯:在vc下调试运行程序、文档编写 赵清勇:在dos下运行检查、初步完成课程设计报告唐红琴:查找资料、整理课程设计报告

目录 一课程设计准备 (4) 1.1课程设计目的 (4) 1.2课程设计的要求 (4) 1.3相关知识 (5) 1.4工作环境 (7) 二课程设计分析 (7) 2.1使用原始套接字 (7) 2.2定义IP头部、TCP头部和伪头部的数据结构 (8) 2.3计算校验和的子函数 (10) 2.4程序流程图 (11) 三源代码 (12) 四运行结果与运行情况 (18) 五自我评析和总结 (19) 六参考文献 (20)

发送TCP数据包 一课程设计准备 1.1课程设计目的 TCP(传输控制协议)是一种面向连接的、可靠的传输层协议。TCP协议在网络层IP协议的基础上,向应用层用户进程提供可靠的、全双工的数据传输流。本课程设计的目的就是设计一个发送TCP数据包的程序,并根据本设计说明TCP数据包的结构以及TCP协议与IP协议的关系,使学生对TCP协议的工作原理有更深入的认识。 1.2课程设计的要求 本程序的功能是填充一个TCP数据包,并发送给目的主机。1)以命令行形式运行:SendTCP sourse_ip sourse_port dest_ip dest_port 其中,SendTCP为程序名;sourse_ip为源端IP地址;sourse_port 为源埠;dest_ip为目的IP地址;dest_port为目的埠。 2)其它的TCP头部参数请自行设定。 3)数据字段为“This is my homework of network,I am happy!”。4)发送成功后在屏幕上输出”send OK”。

ethereal抓包工具的使用

《高级网络技术》 实验一 ethereal抓包工具的使用 课程实验报告 课程名称:高级网络技术 专业班级: 姓名: 学号: 指导教师: 完成时间:2012 年10 月24 日

实验一 ethereal抓包工具的使用 一、实验目的 1.熟悉Ethereal网络抓包工具软件的作用和使用方法; 2.通过Ethereal工具软件的帮助,对抓到包进行分析。 二、实验内容 学习Ethereal网络抓包工具以及对ARP packet format进行分析。 三、实验设备及工具 硬件:安装了网卡的PC机。 软件:PC 机操作系统WinXP,安装了网卡驱动程序,以及ethereal抓包软件 四、实验步骤 1)安装winpcap和ethereal; 2)ARP协议分析 由ethereal抓取的包格式和下图一样,首先,对下图所示帧格式进行了解。如图所示,前14字节是数据链路层所附加的帧头,后28字节是来自网络层的ARP数据包内容。 然后,我们根据所抓取的实际例子来分析协议各个部分,如下图所示。 在这个例子中,编号256的包:物理地址是00:21:86:a2:c6:d3,IP地址是

192.168.60.42的主机或路由器,向网络中发送广播,内容是一个ARP协议的request, 希望获得IP地址为192.168.60.140的主机的物理地址。编号为257的包:IP地址为192.168.60.42的主机,收到广播的request后,向广播发送端发送单播reply,告诉 对方自己的物理地址为00:1d:ba:18:cb:dc。 256和257号包的详细内容如下所示。 256号包 257号包 由图可见,前14字节为帧头。其中,前6字节为目的物理地址,当向网络中发送广播时,目的物理地址为全f;7-12字节为源物理地址;最后两个字节表示帧类型,ox0806表示这是一个ARP数据帧;由于是在以太网中传输,当帧长度不足46字节是,可能在

TCP数据包格式

TCP数据包格式 TCP协议也是建立在IP协议之上的,不过TCP协议是可靠的.按照顺序发送的.TCP的数据结构比前面的结构都要复杂. 每行32位=4字节。 Source Port (16) | Destination Port (16) Sequence Number (32) Acknowledgment Number (32) Data Offset(4) | Reserved (6)|UGR|ACK|PSH|RST|SYN|FIN|Window(16) Checksum (16) | Urgent Pointer (16) Options (0 or more 32 bit words + padding) DATA TCP各字段的含义 Source Port & Destination Port 如果我们将IP比喻成地址那麽Port可以说是门口了试想一下一座大楼有前门後门侧门送货的门出货的门倒垃圾的门扔死尸的门等等乱七八糟的门...... 那麽一个IP地址也有着好多个各种功能的port而每一个port都被不同的服务倾听着就好比看门人一样。 下面是一些常用port和其对应的服务有兴趣的朋友可以在Linux的/etc/services这个档案找到它们 ftp-data 20/tcp ftp 21/tcp telnet 23/tcp smtp 25/tcp mail www 80/tcp http # WorldWideWeb HTTP www 80/udp # HyperText Transfer Protocol pop-3 110/tcp # POP version 3 pop-3 110/udp

使用Ethereal工具分析网络协议

实验五使用Ethereal工具分析网络 协议 一、实验目的 通过使用Ethereal软件掌握Sniffer(嗅探器)工具的使用方法,实现捕捉网络协议的数据包,以理解TCP/IP协议族中多种协议的数据结构以及多种协议的交互过程。 二、实验内容 1.静态路由的配置。 2.路由协议RIP、RIP V2,OSPF。 三、实验环境 安装Windows 2000/XP的PC机,在每一台上安装Ethereal软件。将PC机通过路由器/交换机相连,组成一个局域网。 四、实验指导 1、Ethereal 简介 Ethereal是一款免费的网络协议分析程序,支持Unix、Windows。借助这个程序,你既可以直接从网络上抓取数据进行分析,也可以对由其他嗅探器抓取后保存在硬盘上的数据进行分析。你能交互式地浏览抓取到的数据包,查看每一个数据包的摘要和详细信息。Ethereal 有多种强大的特征,如支持几乎所有的协议、丰富的过滤语言、易于查看TCP会话经重构后的数据流等。 它的主要特点为: ?支持Unix系统和Windows系统 ?可以根据不同的标准进行包过滤 ?通过过滤来查找所需要的包 ?根据过滤规则,用不同的颜色来显示不同的包 ?提供了多种分析和统计工具,实现对信息包的分析 2、Ethereal 安装 安装软件可以从https://www.360docs.net/doc/2413504601.html,网站上下载。 3、Ethereal操作指导 3.1 Ethereal 操作界面

Ethereal软件界面如图上图所示,在这个窗口上,整个界面环境分为三个窗口,最上面的窗口是抓包列表窗口,经过Ethereal软件抓包后的数据包都会列在这个窗口中,同时你可以根据抓包序列号,抓包时间、源地址、目标地址、协议等进行包列表的排序,这样你可以很容易的找到你所需要的信息包。 中间的窗口中显示的是抓包列表上所选择的包对应的各层协议说明,其中,协议层次信息以树型的结构进行显示。 最下面的窗口是数据窗口,显示的是上层窗口选中的信息包的具体数据,同时,在中间树型窗口中所选择的某一协议数据域的内容,在数据窗口中会被突出地显示出来。 3.2 Ethereal 界面菜单 菜单中主要有以下几个部分: File:这个子菜单下的操作与Windows菜单下File下的操作类似,包括了文件的打开,保存、打印以及系统的退出等等。不过这里的文件仅仅指的是抓包文件。 Edit:这个子菜单下所包含的操作有:查找某一个特定的帧、跳到某个帧、在一个或更多的帧上打上标记、设置首选项、设置过滤、协议剖析允许/不允许等。在这个菜单下,Windows 界面中的一些常用的操作,例如剪切、复制、粘贴等将不再使用。 Capture:在这个菜单下进行开始抓包和停止抓包的操作。 3.3 相关操作 3.3.1 抓包

TCP数据包的封装与发送

TCP数据包的封装与发送 一、实验目的 1.掌握TCP的工作特点; 2.熟悉TCP数据包的结构; 3.深刻理解网络体系结构中传输层与上下层之间的关系; 二、实验环境 1.PC机一台 2.Windows 操作系统 三、实验准备 1.复习TCP协议的相关内容; 2.熟练掌握TCP数据包中各自段的作用; 四、实验内容(二选一) 1.编写程序构造TCP包结构,并填写各字段,将封装后的TCP包的内容在屏幕上输出并写入指定的文件中; 2.TCP包的数据字段内容额长度自定; 五、实验报告要求 1.报告内容要有主程序的流程图和程序代码; 2.报告内容要有运行结果的截图; 3.对实验过程进行分析,对存在的问题分析。 实验相关代码 #include #include #include #include #include #pragma comment(lib,"ws2_32.lib") //数据结构及宏定义: #define IPVER 4 //IP协议预定 #define MAX_BUFF_LEN 65500 //发送缓冲区最大值 #define DEST_PORT 5050 //目的端口号

#define SOUR_PORT 8080 //源端口号 typedef struct ip_hdr //定义IP首部 { UCHAR h_verlen; //4位首部长度,4位IP版本号UCHAR tos; //8位服务类型TOS USHORT total_len; //16位总长度(字节) USHORT ident; //16位标识 USHORT frag_and_flags; //3位标志位 UCHAR ttl; //8位生存时间TTL UCHAR proto; //8位协议(TCP, UDP 或其他) USHORT checksum; //16位IP首部校验和 ULONG sourceIP; //32位源IP地址 ULONG destIP; //32位目的IP地址 }IP_HEADER; typedef struct tsd_hdr //定义TCP伪首部 { ULONG saddr; //源地址 ULONG daddr; //目的地址 UCHAR mbz; //没用 UCHAR ptcl; //协议类型 USHORT tcpl; //TCP长度 }PSD_HEADER; typedef struct tcp_hdr //定义TCP首部 { USHORT th_sport; //16位源端口 USHORT th_dport; //16位目的端口 ULONG th_seq; //32位序列号 ULONG th_ack; //32位确认号 UCHAR th_lenres; //4位首部长度/6位保留字 UCHAR th_flag; //6位标志位 USHORT th_win; //16位窗口大小 USHORT th_sum; //16位校验和 USHORT th_urp; //16位紧急数据偏移量 }TCP_HEADER; using namespace std; //主要函数: //CheckSum:计算校验和的子函数 USHORT checksum(USHORT *buffer, int size) { unsigned long cksum=0; while(size >1) { cksum+=*buffer++; size -=sizeof(USHORT);

tcp,ip详解卷1,协议,下载

竭诚为您提供优质文档/双击可除tcp,ip详解卷1,协议,下载 篇一:tcp_ip协议详解 tcp/ip协议详解 这部分简要介绍一下tcp/ip的内部结构,为讨论与互联网有关的安全问题打下基础。tcp/ip协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如t1和x.25、以太网以及Rs-232串行接口)之上。确切地说,tcp/ip协议是一组包括tcp协议和ip协议,udp (userdatagramprotocol)协议、icmp (internetcontrolmessageprotocol)协议和其他一些协议的协议组。 tcp/ip整体构架概述 tcp/ip协议并不完全符合osi的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而tcp/ip通讯协议采用了4层的层级结构,每一层都呼叫它的

下一层所提供的网络来完成自己的需求。这4层分别为:应用层:应用程序间沟通的层,如简单电子邮件传输(smtp)、文件传输协议(Ftp)、网络远程访问协议(telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(tcp)、用户数据报协议(udp)等,tcp和udp给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(ip)。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如ethernet、serialline等)来传送数据。 tcp/ip中的协议 以下简单介绍tcp/ip中的协议都具备什么样的功能,都是如何工作的: 1.ip 网际协议ip是tcp/ip的心脏,也是网络层中最重要的协议。 ip层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---tcp或udp层;相反,ip层也把从tcp或udp层接收来的数据包传

Ethereal抓包工具使用大全

Ethereal抓包工具使用大全 新太科技股份有限公司 2009年6月

目录 1.ETHEREAL 简介 (3) 2.ETHEREAL基本操作 (3) 3. ETHEREAL几个使用场景 (5) 3.1根据协议过滤 (5) 3.2指定IP和端口进行过滤 (6) 3.3指定某个呼叫的过滤 (10) 3.4把抓到的RTP流存成语音文件 (11) 附录一:常用的DISPLAY FILTER (14) 附录二:ETHEREAL安装说明及重要链接 (15) 附录三:TCPDUMP使用方法 (16) 1.T CPDUMP简介 (16) 2.T CPDUMP安装 (16) 3.T CPDUMP使用示例 (16) 4.T CPDUMP使用方法链接 (16)

1.E thereal简介 E thereal是一个开放源码的网络分析系统,也是是目前最好的开放源码的网络协议分析器,支持Linux和windows平台。事实上,Ethereal本身并不能抓包,它只能用来解析数据包,要抓取数据包,它需要借助于PCap。Pcap在windows下面的实现称作winpcap,这也就是为什么我们在安装前要先安装好winpcap工具。 2.Ethereal基本操作 首先运行Ethereal,出现Ethereal的主界面,如下图所示: 图1 Ethereal主界面 要捕获网络上的数据包,首先进行相关设置,点击Capture->Options出现以下窗口,如图所示:

指定网卡 图2 指定网卡 设置完毕后,点击Start,Etheteal便会开始动态的统计目前所截获的数据包,点击Capture->Stop,即可停止。下图为Ethereal截获数据包后的界面:

网络课程设计-tcp数据包的发送和接收

目录 一、软件概要简介 (6) 二、概要设计 (6) 1 6 2类图 (6) 3.数据结构的定义 (6) 4.程序截图 (7) 三、详细设计 (8) 1关键性代码 (8) 1.1内存映射文件读 (9) 1.2内存映射文件写 (9) 1.3文件的发送 (9) 1.4文件的接收 (9) 1.4.1客户端接收套接字 (9) 1.4.2 客户端把接收到的文件写人自己的文件..10 四、调试分析及测试结果 (15)

一、软件概要简介 我们做的是基于tcp数据包发送和接收的文件传输,采用的是客户/服务器模式,首先客户端连接到服务器,然后服务器端就可以选择需要传输的文件,开始传输。 二、概要设计1 1.1内存映射文件 我们首先是用内存映射文件的方法把文件一块一块的从磁盘映射到内存,每映射一块,就传输一块,直到把整个文件都传输完毕为止。内存映射文件内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,只是内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而非系统的页文件,而且在对该文件进行操作之前必须首先对文件进行映射,就如同将整个文件从磁盘加载到内存。由此可以看出,使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,这意味着在对文件进行处理时将不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从内存到文件的回写以及释放内存块等步骤,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。另外,实际工程中的系统往往需要在多个进程之间共享数据,如果数据量小,处理方法是灵活多变的,如果共享数据容量巨大,那么就需要借助于内存映射文件来进行。实际上,内存映射文件正是解决本地多个进程间数据共享的最有效方法。内存映射文件并不是简单的文件I/O操作,实际用到了Windows的核心编程技术--内存管理。所以,如果想对内存映射文件有更深刻的认识,必须对Windows操作系统的内存管理机制有清楚的认识,内存管理的相关知识非常复杂,超出了本文的讨论范畴,在此就不再赘述,感兴趣的读者可以参阅其他相关书籍。下面给出使用内存映射文件的一般方法: 首先要通过CreateFile()函数来创建或打开一个文件内核对象,这个对象标识了磁盘上将要用作内存映射文件的文件。在用CreateFile()将文件映像在物理存储器的位置通告给操作系统后,只指定了映像文件的路径,映像的长度还没有指定。为了指定文件映射对象需要多大的物理存储空间还需要通过CreateFileMapping()函数来创建一个文件映射内核对象以告诉系统文件的尺寸以及访问文件的方式。在创建了文件映射对象后,还必须为文件数据保留一个地址空间区域,并把文件数据作为映射到该区域的物理存储器进行提交。由MapViewOfFile()函数负责通过系统的管理而将文件映射对象的全部或部分映射到进程地址空间。此时,对内存映射文件的使用和处理同通常加载到内存中的文件数据的处理方式基本一样,在完成了对内存映射文件的使用时,还要通过一系列的操作完成对其的清除和使用过资源的释放。这部分相对比较简单,可以通过UnmapViewOfFile()完成从进程的地址空间撤消文件数据的映像、通过CloseHandle()关闭前面创建的文件映射对象和文件对象。 1.2基于socket的tcp数据包的接收和发送 Tcp的Socket编程的步骤基本就是这样:首先客户端请求连接服务器,服务器接受连接,服务器记住客户端的ip地址之后就可以进行通信了。

相关文档
最新文档