文档库 最新最全的文档下载
当前位置:文档库 › ORACLE-TNS协议分析详解

ORACLE-TNS协议分析详解

ORACLETNS协议分析

1TNS介绍

TNS协议是ORACLE服务端和客户端通讯的协议。TNS协议传输可以使用TCP/IP 协议、使用SSL的TCP/IP协议、命名管道和IPC协议传输,其中TCP/IP协议传输是使用明文传送。这里我们只分析基于TCP/IP协议上的TNS数据。

ORACLE网络通讯协议TNS有许多版本,并且大部分向下兼容,我们主要oracle 9.2.0.1.0客户和服务间的传输协议,他的协议版本号为312,其兼容到300。

TNS协议有一个通用的头,通用头包含一个请求数据类型。不同的服务请求和数据传输使用不同的请求数据类型。对于通常意义的查询操作一般使用数据类型,当出现错误或其他情况时可能使用其他类型。在分析过程中发现以下类型数据:

●查询语句出错会用标记(marker)类型

●客户端向服务器请求失败(如不存在的服务ID),服务器会发送拒绝(refuse)

类型

●客户机登陆会发送连接类型,而服务器返回一个重定向类型数据

●当重定向端口连接完成后客户端重现发送连接类型数据,服务器返回接受类型

数据,然后能够正常通讯。

2TNS数据格式

TNS数据包含一个通用的包头,这个包头包含包校验,包长度和包类型等信息。

不同的类型的数据实现不同功能的数据传输。

Common Packet Header 8 通用包头

Data 可变数据

2.1 通用包头格式

每个TNS完整数据都包含一个通用包头,他说明接受数据的长度及其相关校验和解析的信息。

Length 2 包的长度,包括通用包头

Packet check sum 2 包的校验和

Type 1 TNS类型

Flag 1 状态

Header check sum 2 通用头的校验和

注:

Length:包长度(包括包头)

Type:数据包的类型

类型号类型说明

1 连接(CONNECT)

2 接受(ACCEPT)

3 确认(ACK)

4 拒绝(REFUTE)

5 重定向(REDIRECT)

6 数据(DATA)

7 NULL

8

9 中止(ABORT)

10

11 重新发送(RESEND)

12 标记(MARKER)

13 ATTENTION

14 控制(CONTROL)

2.2 连接包结构(0x01)

在客户端和ORACLE要建立连接时,客户端首先发送一个连接结构,然后服务器返回重定向包(参见2.5)。

typedef struct TNS_CONNECT_header{

UCHAR NS_ver[2];

UCHAR Compatible_ver[2];

UCHAR ser_opt1;

UCHAR ser_opt2;

UCHAR SDU_size[2];

UCHAR TDU_size[2];

UCHAR NT_protocol_ch1;

UCHAR NT_protocol_ch2;

UCHAR Max_packets[2];

UCHAR Hardware_1[2];

UCHAR data_length[2];

UCHAR Offset[2];

UCHAR Max_data[4];

UCHAR flag0;

UCHAR flag1;

/*java thin interface has no items and id,

if it is not jdbc thin, use offset to override these 有些版本TNS协议中没有下面几项*/

UCHAR item1[4];

UCHAR item2[4];

UCHAR ID[8];

UCHAR unknown[8];

/*followed by decode_des_conn_data */

//连接字符串

}TNS_CONNECT_HEADER;

连接字符串格式:

如:

数据库一般的连接,即ESTABLISH的连接字符串为:

(DESCRIPTION=

(ADDRESS=

(PROTOCOL=TCP)

(HOST=topsec-syangjp)

(PORT=1521)

)

(CONNECT_DATA=

(SID=test)

(SERVER=DEDICATED)

(CID=

(PROGRAM=D:\oracle\ora92\bin\sqlplusw.exe)

(HOST=TOPSEC-MYANGJP)

(USER=myangjp)

)

)

)

2.3 接受包结构(0x02)

用户重定向之后,需要用重定向端口向服务器发送连接,客户端发送连接包,服务器连接成功则返回接受包,否则返回refuse包

struct TNS_ACCEPT_header{

unsigned char NS_ver[2];

unsigned char ser_opt1;

unsigned char ser_opt2;

unsigned char SDU_size[2];

unsigned char TDU_size[2];

unsigned char Hardware_1[2];

unsigned char data_length[2];

unsigned char Offset[2];

unsigned char flag0;

unsigned char flag1;

//unsigned char unknown[8];

/*no following data*/

};

2.4 拒绝包结构(0x04)

typedef struct TNS_REFUSE_header{ UCHAR uUserRefuseReason;

UCHAR uSysRefuseReason;

unsigned short int data_length;

//拒绝字符串

}TNS_REFUSE_HEADER;

拒绝字符串:

2.5 重定向包结构(0x05)

typedef struct TNS_REDIRECT_header{ UCHAR data_length[2];

UCHAR data; //长度为data_length;

//重定向数据

}TNS_REDIRECT_HEADER;

重定向数据:

2.6 标记包结构(0x0c)

typedef struct TNS_MARKER_header{

UCHAR data_length[3];

}TNS_REDIRECT_HEADER;

注:

当请求命令出错时,服务器会返回三个标记包

2.7 控制包结构(0x0d)

暂时没有发现该结构

2.8 数据包结构(0x06)

数据包负责传输数据库客户端和服务端的各种操作。每个操作由一个或几个命令组成,可以是在同一个数据包中有几个命令结构组合起来,也可以分开传输一些命令。

Common Header 8 通用包头

Data flag 2 状态

Command packet 可变数据

Command packet 可变数据

………

Command packet 可变数据

具体各种操作命令的组成和转换现在还不能完全确定,但是对于一些基本的SQL查询我们是可以分析的,下面我们主要分析一些命令结构和相关ORACLE操作的命令组成序列。

有些有许多结构和它的具体字节不影响ORACLE基本命令的分析,所以只做了简单的分析,对于SQL的一般查询语句TNS协议主要通过数据包的0x0303和0x035e命令来传输数据,返回结果主要是通过0x06和0x08命令传输数据,0x06主要传输数据,0x08主要传输系统配置相关数据。

2.8.1数据包通用结构

数据包有一个2字节的状态包和多个命令包组成:

Data flag 2 状态

Command packet 可变命令包

………

Command packet 可变命令包

注:

Data_flag一般情况为零,分析发现退出时为0x0040

Send token 0x0001

Request Confirmation 0x0002

Confirmation 0x0004

Reserved 0x0008

UNKNOWN 0x0010

More Data to Come 0x0020

End of File 0x0040

Do Immediate Confirmation 0x0080

Request to send 0x0100

Request Nt Trailer 0x0200

命令包(Command packet)结构如下:

Command 1 命令

Sub command 1 子命令

Data 可变命令包数据

注:

命令(Command)说明(以下命令为主命令的基本功能,但是还不能完全确认):0x01 Set Protocol

0x02 Set Data Type Representation

0x03 User to Oracle Request

0x04 Return Status

0x05 Access User Address Space

0x06 Raw Transfer Header

0x07 Raw Transfer Data

0x08 Return OPI(Oracle Program Interface) Parameter

0x09 Oracle Function Complete

0x0a N Error Return Definition

0x0b Sending I/o Vector only for fast UPI(User Program Interface)

0x0c Sending Long for Fast UPI

0x0d Invoke User Callback

0x0e Network Service

0x0f Data Intergrity

0x10 Supervisor

0x11

0x12

通过分析具体的包和一些其他相关软件,得到以下相关命令和子命令,许多命令还需要进一步确认

命令子命令类型说明使用

0x01 0x05 请求CLIENT TYPE

0x01 0x06 Set Protocol

0x01 0x2c IDENT

0x02 0x00 RESET

0x02 0x01 CHAR_MAP

0x02 0x54

0x03 0x01

0x03 0x02 SQL_OPEN

0x03 0x03 QUERY

0x03 0x04 QUERY SECOND

0x03 0x05 FETCH MORE

0x03 0x08

0x03 0x09 DISCONNECT

0x03 0x0E

0x03 0x27 SET_LANG

0x03 0x2B DESC_COLS

0x03 0x3B DB VERSION

0x03 0x47 FETCH

0x03 0x51 Set password

0x03 0x52 Set user

0x03 0x54 HANDSHAKE4

0x03 0x5E SQL

0x03 0x73 AUTH2

0x03 0x76 AUTH1

0x03 0x77 查询表结构信息DESC

0x04 0x01 ACK

0x04 0x02 ACK

0x04 0x05 ACK

0x06 0x00 More Row Result Info

0x06 0x01 First Row Result Info

0x08 0x01

0x08 0x05

0x08 0x08

0x08 0x9c Db version

0x10 0x19 Field Info SELEC返回

0x11 0x69

0x11 0x6b

0x11 0x78

2.8.2Data Format(length+data)

对于ORACLE的TNS协议结构中数据传输,其主要采用以下方式,即用一个标志和长度字符来传输数据。具体格式如下

●如果开始的大数据标志为0xfe,则结构如下

Big Data Identify 1

Data Length 1 返回列数

Data Data Length

………

Data Length 1 如果

Data Data Length

Data Length 1 0

●如果开始的大数据标志不为0xfe,则结构如下:

Data Length 1 返回列数

Data Data Length

2.8.2.1 字符串格式

(1)Char(n),nchar

Data 可变实际数据

Data1 可变空格

注:数据和数据1总长度为n

(2)Varchar(n)

Data 可变(<=n)实际数据

2.8.2.2 数字格式

(1)正数

Id 1 C0+整数部分长度整数部分Intlength=Id-c0

小数部分DecLength=length-intlength-1

注:

●数据的第一位标志整数部分长度

●整数部分长度+小数部分长度=数据总长度-1

●整数部分从后向前每两位(代表0到100)用一个字节(十六进制)表示,

且为十六进制值-1

●小数部分从后向前每两位(代表0到100)用一个字节(十六进制)表示,

且为十六进制值-1

●如果没有小数部分,Intlength+1〉length(为数字长度),则后面有

(Intlength+1-length)位(只传输位)值为0的数据没有传输

(2)负数

Id 1 3f-整数部分长度整数部分Intlength=3f-id

小数部分DecLength=length-intlength-1

Magic 1 0x66

●数据的第一位标志整数部分长度

●整数部分长度+小数部分长度=数据总长度-2

●整数部分从后向前每两位(代表0到100)用一个字节(十六进制)表示,

且为101-十六进制值

●小数部分从后向前每两位(代表0到100)用一个字节(十六进制)表示,

且为101-十六进制值

●如果没有小数部分,Intlength+2〉length(为数字长度),则后面有

(Intlength+2-length)位(只传输位)值为0的数据没有传输

2.8.2.3 日期格式

Year1 1 Year1-100

Year2 1 Year2-100

Month 1 Month

Day 1 Day

Hour 1 Hour-1

Minute 1 Minute-1

Second 1 Second-1

注:

●Year1为年前两位,值为year1-100

●Year2为年后两位,值为year2-100

●Month为月,值为month

●Day为月,值为Day

●Hour为月,值为Hour-1

●Minute为月,值为Minute-1

●Second为月,值为Second-1

2.8.30x03 0x02 SQL_OPEN

发现当进行0x0303命令查询时

Request id 1

Magic 8

2.8.40x03 0x03 QUERY

该命令也传输一些SQL查询请求,不能确定什么时候使用0x0303命令进行查询,在分析过程中,发现在登陆之后进行一些系统请求用到了该命令。

Request id 1

Magic 12

Data Format 可变查询语句

2.8.50x03 0x04 QUERY SECOND

很少出现这个包,也没具体分析

Request id 1

2.8.60x03 0x05 FETCH MORE

用户查询是通过0x035e命令来请求数据的返回的结果不能一次传输完成,客户端会不断发送该命令向服务器请求数据,直到服务器告诉客户端数据传送完成。

Request id 1

Magic 8

2.8.70x03 0x08 HANDSHAKE7

Request id 1

Magic 4

2.8.80x03 0x09 DISCONNECT

当客户端断开连接时,客户端发送请求到服务器(用0x0309),服务器发送0x0901确认。

Request id 1

2.8.90x03 0x3B DB VERSION

请求ORACLE数据库版本信息,通过0x089c返回结果。

Request id 1

Magic 16

2.8.100x03 0x47 FETCH

Request id 1

2.8.110x03 0x51 Set password

当用户使用GRANT更改密码时,客户先通过0x0352发送用户信息,然后通过0x0351发送密码信息。

Request id 1

Magic1 4

User name length 1 用户名长度

Magic2 99

Username User

name

length

Session key 32

Host info 可变

2.8.120x03 0x52 Set user

当用户使用GRANT更改密码时,客户先通过0x0352发送用户信息,然后通过0x0351发送密码信息。

Request id 1

Magic1 4

User name length 1 用户名长度

Magic2 99

Username User

name

length

Host info 可变

2.8.130x03 0x5E SQL

一般的SQL查询语句是封装在0x035e命令结构中,用该命令请求数据时,服务器

返回数据和确认命令数据。

●如果查询命令错误,则返回错误代码和错误消息。

●如果查询正常,服务器返回执行结果数据和确认命令。

它的结构如下:

Request id 1

Magic1 80 返回列数

Data Format 可变SQL查询语句

Magic3 48 总是为0x07

2.8.140x03 0x73 AUTH2

用户登录过程发送用户密码和用户信息,包括用户名,终端名称,客户端程序,机器,客户端进程号。

2.8.150x03 0x76 AUTH1

用户登录过程发送用户相关信息,包括用户名,会话密钥,终端名称,客户端程序,机器,客户端进程号和对服务器一些设置(语言,时区等)。

2.8.160x03 0x77 desc table

当用户通过DESC TABLE tablename命令查询用户表属性信息时,客户端发送0x0377命令到ORACLE服务器。

Request id 1

Magic1 4 返回列数

Table name length 1 表名长度

Magic2 16

Data Format 可变SQL查询语句

2.8.170x04 0x01 ACK

各种数据库操作会通过0x04命令来返回结果,如是否正常运行,影响行数,影响的表格,操作类型等,如果错误还要返回错误消息,以下0x0402,0x0405均为数据库查询

返回,但是还不知道什么情况适用这三种应答。

数据应答报结构如下:

Magic1 4

Record num 4 记录数,该操作影响记录数

Error num 2 返回错误代码

Magic2 8

Type 1 操作类型(如select,insert,create等)

Magic3 2

Obj Id 2 操作对象ID,如表的对象ID

Magic4 19

Ack id 1 确认号(为该请求号+1)

Magic5 46

Msg length 1 消息长度

Msg Msg

消息

length

2.8.180x04 0x02 ACK

同0x0401

2.8.190x04 0x05 ACK

同0x0401

2.8.200x06 0x00 行结果信息

如果0x06 01命令传送数据未完成则后续数据用0x06 00命令传输,且每行只传输和前一行不同的列。

行结果数据结构信息

Magic1 2

Column Num 2 返回列数

Magic2 23

Column distributing 可变等于[Column Num/8]

Magic3 1 总是为0x07

Row Data 可变

Row Split 可变

Row Data 可变

Row Split 可变

………

Row Data 可变

行数据(Row Data)结构信息

Data Format 可变列数据

Data Format 可变列数据

………

Data Format 可变列数据

注:

●对于第一行列数为Column Num

●非第一行,每行列数和列分布信息根据行分隔结构获取

行分隔结构信息

Id 1 总是0x15

Column Num 2 返回列数

Column distributing 可变等于[Column Num/8]

Magic3 1 总是为0x07

注:

●Column distributing 为该行列分布信息,如果第i列不为空,则Column

distributing的第I bit为1

2.8.210x06 0x01开始行结果信息

SQL查询语句返回结果主要包括字段信息和数据,其中字段数据用0x1019传输,数据有0x0601和0x0600传输。

对于0x0601命令只返回开始几行数据(一般为一行),第一行显示所有的列,以后每行传输和前一行不同的列,即如果和前一行数据相同,则不传送数据,如果多行的某一列都相同,则只传送最开始一行的该列数据。

Magic1 2

Column Num 2 返回列数

Magic2 23

Column distributing 1 总是为0x00

Magic3 1 总是为0x07

2.8.220x08 0x01

经分析发现验证密钥、查询表的结构、0x033b、0x0302命令返回结果用命令0x0801,不过其格式非常不规则,很难分析。

2.8.230x08 0x05

当用户查询请求时,有时返回结果之后会出现这个命令,具体怎么使用还不是很清楚。

Magic1 23

Value Num 2 返回列数

Data Format 数据

Data Format 数据

………

Data Format 数据

2.8.240x08 0x08

当用户发送密钥成功后服务器返回响应的一些消息,如会话密钥,主机名,程序等。

Magic 1

Data length 4

Data Format 可变数据

Data length 4

Data Format 可变数据

………

Data length 4

Data Format 可变数据

注:

如果data length 为0 则后面数据为

2.8.250x08 0x20 Session Key

当当前用户使用grant命令更改当前用户密码之后,系统需要重新发送用户名(0x0352)和密码(0x0351),并更新会话密钥。

Magic 1

Session key 32 会话密钥

2.8.260x08 0x9c Db version

当用户请求数据库版本信息(0x033b)时通过本命令返回版本信息。

Magic 1

Data Format 可变数据库版本信息

Data Format 可变数据库版本信息

Data Format 可变数据库版本信息

2.8.270x09 0x01

当ORACLE服务器收到用户关闭连接的消息时通过本命令确认关闭操作,然后断开TCP/IP连接。

Magic1 1 总是0

Magic2 2

2.8.280x10 0x19 Field Info

SQL查询语句如果有数据返回(如SELECT语句),则先返回各字段信息,然后在返回数据信息。

字段信息结构:

Magic1 29

Field num 2 字段个数

Magic2 3

Field Info 可变字段信息

Field Info 可变字段信息

………

Field Info 可变字段信息

Magic3 12 07 00 00 00 07 78 6a

05 1a 0f 0b 0c

注:字段信息个数为field num

单个字段信息结构:

Magic1 1

Type 1 字段类型

Magic2 1

Precision 1

Scale 1

Magic3 20

Charsetid 2

Charsetform 2

Spare3 2

Magic4 2

Is null 1

length 1

length 4

Data Format 可变

2.8.290x11 0x69

当用户查询数据时,即使用0x035e命令时通常会先发送0x1178和0x1169命令。

Request id 1

Magic 12

2.8.300x11 0x6b

Request id 1

Magic 12

2.8.31 0x11 0x78

当用户查询数据时,即使用0x035e 命令时通常会先发送0x1178和0x1169命令。

Request id 1 Magic

12

3 典型的使用序列

3.1 数据库登陆

3.2 数据结构内部命令序列

请求

操作 响应 序列 请求包

响应包

说明

Select

无记录 1 0x1169+0x035e 0x1019+0x06010 +x0401

errcode=1403

Select

1条记录

1

0x1169+0x035e

0x1019+0x0601 +0805+0x0401 errcode=0 2

0x3e

0x0600+0x0401 (errcode=1403) Select

多条记录

1

0x1169+0x035e 0x1019+0x0601 +0805+0x0402 errcode=0 2 0x3e 0x0600+0x0401 (errcode=1403) 3

0x0305 0x0600+0x0401 Insert 正确 1 0x1169+0x035e 0x0805+0x0402

Insert

错误

1

0x1169+0x035e Mark

请求操作

响应 序列 请求包 响应包 说明 正常连接 无记录 1 连接包 重定向包 正常连接

2 连接包 接受包

不正常连接 无记录

1

连接包

拒绝包

不正常连接

SIP协议呼叫流程及协议分析

一、SIP协议介绍: 会话发起协议SIP(Session Initiation Protocol)是一个应用层控制信令协议,用于建立、更改和终止多媒体会话或呼叫。SIP作为一个基础,可以在其上提供很多不同的服务。目前已经定义的媒体类型有音频、视频、应用、数据、控制。 二、SIP呼叫流程: 注册流程: (1)用户首次试呼时,终端代理A 向代理服务器发送REGISTER 注册请求; (2)代理服务器通过后端认证/计费中心获知用户信息不在数据库中,便向终端代理回送401Unauthorized 质询信息,其中包含安全认证所需的令牌; (3)终端代理提示用户输入其标识和密码后,根据安全认证令牌将其加密后,再次用REGISTER 消息报告给代理服务器; (4)代理服务器将REGISTER 消息中的用户信息解密,通过认证/计费中心验证其合法后,将该用户信息登记到数据库中,并向终端代理A 返回成功响应消息200 OK。 呼叫流程:

(1)用户摘机发起一路呼叫,终端代理A 向该区域的代理服务器发起Invite 请求;(2)代理服务器通过认证/计费中心确认用户认证已通过后,检查请求消息中的Via 头域中是否已包含其地址。若已包含,说明发生环回,返回指示错误的应答;如果没有问题,代理服务器在请求消息的Via 头域插入自身地址,并向Invite 消息的To 域所指示的被叫终端代理B 转送Invite 请求; (3)代理服务器向终端代理A 送呼叫处理中的应答消息,100 Trying; (4)终端代理B 向代理服务器送呼叫处理中的应答消息,100 Trying; (5)终端代理B 指示被叫用户振铃,用户振铃后,向代理服务器发送180 Ringing 振铃信息; (6)代理服务器向终端代理A 转发被叫用户振铃信息; (7)被叫用户摘机,终端代理B 向代理服务器返回表示连接成功的应答(200 OK);(8)代理服务器向终端代理A 转发该成功指示(200 OK); (9)终端代理A 收到消息后,向代理服务器发ACK 消息进行确认; (10)代理服务器将ACK 确认消息转发给终端代理B; (11)主被叫用户之间建立通信连接,开始通话; 结束流程:

利用wireshark分析HTTP协议实验报告

利用wireshark分析HTTP协议实验报告 姓名:杨宝芹 学号:2012117270 班级:电子信息科学与技术 时间:2014.12.26

利用wireshark分析HTTP协议实验报告 一、实验目的 分析HTTP协议。 二、实验环境 连接Internet的计算机,操作系统为windows8.1; Wireshark,版本为1.10.7; Google Chrome,版本为39.0.2171.65.m; 三、实验步骤 1.清空缓存 在进行跟踪之前,我们首先清空Web 浏览器的高速缓存来确保Web网页是从网络中获取的,而不是从高速缓冲中取得的。之后,还要在客户端清空DNS 高速缓存,来确保Web服务器域名到IP地址的映射是从网络中请求。 2.启动wireshare 3.开始俘获 1)在菜单中选择capture-options,选择网络,打开start。如下图:

2)在浏览器地址栏中输入https://www.wendangku.net/doc/fd8205049.html,,然后结束俘获,得到如下结果: 3)在过滤器中选择HTTP,点击apply,得到如下结果:

在菜单中选择file-save,保存结果,以便分析。(结果另附) 四、分析数据 在协议框中选择“GET/HTTP/1.1”所在的分组会看到这个基本请求行后跟随 着一系列额外的请求首部。在首部后的“\r\n”表示一个回车和换行,以此将该 首部与下一个首部隔开。“Host”首部在HTTP1.1版本中是必须的,它描述了URL 中机器的域名,本实验中式https://www.wendangku.net/doc/fd8205049.html,。这就允许了一个Web服务器在同一 时间支持许多不同的域名。有了这个数不,Web服务器就可以区别客户试图连接 哪一个Web服务器,并对每个客户响应不同的内容,这就是HTTP1.0到1.1版本 的主要变化。User-Agent首部描述了提出请求的Web浏览器及客户机器。接下 来是一系列的Accpet首部,包括Accept(接受)、Accept-Language(接受语言)、 Accept-Encoding(接受编码)、Accept-Charset(接受字符集)。它们告诉Web

sip协议原理分析及总结

SIP协议学习总结 1、SIP协议定义 SIP(Session Initiation Protocol,即初始会话协议)是IETF提出的基于文本编码的IP电话/多媒体会议协议。用于建立、修改并终止多媒体会话。SIP 协议可用于发起会话,也可以用于邀请成员加入已经用其它方式建立的会话。多媒体会话可以是点到点的话音通信或视频通信,也可以是多点参与的话音或视频会议等。SIP协议透明地支持名字映射和重定向服务,便于实现ISDN,智能网以及个人移动业务。SIP协议可以用多点控制单元(MCU)或全互连的方式代替组播发起多方呼叫。与PSTN相连的IP电话网关也可以用SIP协议来建立普通电话用户之间的呼叫。 SIP协议在IETF多媒体数据及控制体系协议栈结构的位置 H.323SIP RTSP RSVP RTCP H.263 etc. RTP TCP UDP IP PPP Sonet AAL3/4AAL5 ATM Ethernet PPP V.34 SIP协议支持多媒体通信的五个方面: ◆用户定位:确定用于通信的终端系统; ◆用户能力:确定通信媒体和媒体的使用参数; ◆用户有效性:确定被叫加入通信的意愿; ◆会话建立:建立主叫和被叫的呼叫参数; ◆会话管理:包括呼叫转移和呼叫终止; SIP协议的结构 SIP是一个分层的协议,也就是说SIP协议由一组相当无关的处理层次组成,这些层次之间只有松散的关系。 SIP最底层的是它的语法和编码层。编码方式是采用扩展的Backus-Naur Form grammar (BNF范式)。 第二层是传输层。它定义了一个客户端发送请求和接收应答的方式,以及一 个服务器接收请求和发送应答的方式。所有的SIP要素都包含一个通讯层。 第三层是事务层。事务是SIP的基本组成部分。一个事务是UAC向UAS发送的一个请求以及UAS向UAC发送的一系列应答。事务层处理应用服务层的重发,匹配请求的应答,以及应用服务层的超时。任何一个用户代理客户端完成的事情都是

计算机网络实验-HTTP、FTP协议分析

实验二HTTP、FTP协议分析 1. 本次实验包括HTTP、FTP两个协议的分析(详见一、二)。 2. 参考文档所述步骤,完成数据包的捕获并进行分析; 3. 认真撰写实验报告,叙述实验过程要层次分明,对关键的过程或结果截图说明、分析,回答实验文档所提的思考题、问题。 一、超文本传输协议(HTTP)分析 【实验目的】 掌握HTTP协议的原理和报文格式; 了解HTTP协议的工作过程; 了解应用层协议与传输层协议的关系。 【实验内容】 用浏览器打开网页,捕获HTTP报文并进行分析 编辑一个HTTP数据报文并进行发送,并捕获该报文进行分析。 【实验步骤】 步骤一:使用浏览器打开网页,捕获HTTP数据包并分析: (1) 在主机上打开协议分析仪,点击工具栏上的“过滤器”,“类型过滤器”的下拉列表中 选择“HTTP协议”,确定后开始进行数据捕获:

(2) 使用实验室主机上的浏览器,例如IE,打开一个网页,如URL是 HTTP//https://www.wendangku.net/doc/fd8205049.html, (3) 在协议分析器中找到捕获的数据包,观察HTTP请求报文和响应报文,以及其中所使用的命令:

【思考问题】 结合实验过程中的实验结果,问答下列问题: 1. 当实验主机上同时打开多个浏览器窗口并访问同一WEB站点的不同页面时,系统是根据什么把返回的页面正确地显示到相应窗口的?一个主页是否只有一个连接? 2. 请求主页后,返回的浏览器内容的字节长度是多少? 3. 如果请求一个不存在的网页,服务器将会应答什么? 答: 1. 当实验主机上同时打开多个浏览器窗口并访问同一WEB站点的不同页面时,系统是根据地址信息把返回的页面正确地显示到相应窗口的,一个主页是只有一个连接。 2. 请求主页后,返回的浏览器内容的字节长度是 3. 如果请求一个不存在的网页,服务器将会应答404错误。 二、FTP协议分析 【实验目的】 1、掌握FTP协议的工作原理; 2、了解FTP协议的常用命令,并领会其链路管理、理解FTP的主动模式和被动模式 3、了解应用层协议与传输层协议的关系; 【实验内容】 1. 登录FTP服务器,并捕获FTP报文进行分析;

SIP协议相关文件

Osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一,它具有短小简洁的特点,专注于sip底层解析使得它的效率比较高。 eXosip是Osip2的一个扩展协议集,它部分封装了Osip2协议栈,使得它更容易被使用。 一、介绍 Osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一,它具有短小简洁的特点,专注于sip底层解析使得它的效率比较高。但缺点也专门明显,首先确实是可用性差,没有专门好的api封装,使得上层应用在调用协议栈时专门破裂;其次,只做到了transaction层次的协议过程解析,

缺少call、session、dialog等过程的解析,这也增加了使用的难度;再次,缺少线程并发处理的机制,使得它的处理能力有限。 eXosip是Osip2的一个扩展协议集,它部分封装了Osip2协议栈,使得它更容易被使用。eXosip增加了call、dialog、registration、subscription等过程的解析,使得有用性更强。然而eXosip局限于UA的实现,使得它用于registrar、sip server等应用时极其不容易。另外,它并没有增加线程并发处理的机制。而且只实现了音频支持,缺少对视频和其它数据格式的支持。 综合来讲,Osip2加上eXosip协议栈仍然是个实现Sip协议不错的选择。因此需要依照不同的需求来增加更多的内容。 二、Osip2协议栈的组成 Osip2协议栈大致能够分为三部分:sip协议的语法分析、sip 协议的过程分析和协议栈框架。 1、Sip协议的语法分析:

要紧是osipparser2部分,目前支持RFC3261和RFC3265定义的sip协议消息,包括INVITE、ACK、OPTIONS、CANCEL、BYE、SUBSCRIBE、NOTIFY、MESSAGE、REFER和INFO。不支持RFC3262定义的PRACK。 遵循RFC3264关于SDP的offer/answer模式。带有SDP的语法分析。 支持MD5加解密算法。支持Authorization、www_authenticate 和proxy_authenticate。 2、Sip协议的过程分析: 要紧是osip2部分,基于RFC3261、RFC3264和RFC3265的sip 协议描述过程,围绕transaction这一层来实现sip的解析。 Transaction是指一个发送方和接收方的交互过程,由请求和应答组成。请求分为Invite类型和Non-Invite类型。应答分为响应型的应答和确认型的应答。响应型的应答是指那个应答仅代表

网络协议分析软件的使用实验报告

实验报告 项目名称:网络协议分析工具的使用课程名称:计算机网络B 班级: 姓名: 学号: 教师: 信息工程学院测控系

一、实验目的 基于网络协议分析工具Wireshark(原为Ethereal),通过多种网络应用的实际操作,学习和掌握不同网络协议数据包的分析方法,提高TCP/IP协议的分析能力和应用技能。 二、实验前的准备 ● 二人一组,分组实验; ● 熟悉Ping、Tracert等命令,学习FTP、HTTP、SMTP和POP3协议; ● 安装软件工具Wireshark,并了解其功能、工作原理和使用方法; ● 安装任一种端口扫描工具; ● 阅读本实验的阅读文献; 三、实验内容、要求和步骤 3.1 学习Wireshark工具的基本操作 学习捕获选项的设置和使用,如考虑源主机和目的主机,正确设置Capture Filter;捕获后设置Display Filter。 3.2 PING命令的网络包捕获分析 PING命令是基于ICMP协议而工作的,发送4个包,正常返回4个包。以主机210.31.40.41为例,主要实验步骤为: (1)设置“捕获过滤”:在Capture Filter中填写host 210.31.38.94; (2)开始抓包; (3)在DOS下执行PING命令; (4)停止抓包。 (5)设置“显示过滤”: IP.Addr=210.31.38.94 (6)选择某数据包,重点分析其协议部分,特别是协议首部内容,点开所有带+号的内容。(7)针对重要内容截屏,并解析协议字段中的内容,一并写入WORD文档中。

分析:从这个数据包的分析结果来看我们可以得知: 数据包的到达时间为2013年11月28日14:43:15 帧的序号为20411 帧的长度为74bytes(592bits),同时抓取的长度也是74bytes,说明没有丢失数据 目的MAC地址为00:25:11::4b:7a:6e 源MAC地址为00:25:11:4b:7d:6e 使用的协议为Ipv4 网络层的首部长度为20bytes 目的Ip地址为222.31.38.94 源Ip地址为222.31.38.93 数据没有分片说明数据大小没有超过最大传输单元MUT,其中用到了ICMP协议,数据包的生存周期为128 头部校验和为0x01正确 ICMP的校验和为0x01序列号为2304 数据有32bytes 3.3 TRACERT命令数据捕获 观察路由跳步过程。分别自行选择校内外2个目标主机。比如, (1)校内:tracert 210.31.32.8 (2)校外:tracert https://www.wendangku.net/doc/fd8205049.html,

实验三利用Ethereal分析HTTP协议

计算机网络实验报告年级:姓名:学号: 实验日期: 实验名称:实验三利用Ethereal分析HTTP协议 一、实验目的 1、利用抓包工具wireshark来分析http协议; 2、通过分析HTTP协议,探讨有关HTTP协议的以下几个方面: (1)、基本的GET /响应交互, (2)、HTTP的消息格式, (3)、获取较大的HTML文件, (4)、检索与嵌入HTML文件对象, (5)、和HTTP身份验证和安全性。 二、实验器材 1、接入Internet的计算机主机; 2、抓包工具wireshark和截图工具snagit。 三、实验内容 (一). The Basic HTTP GET/response interaction 1. Is your browser running HTTP version 1.0 or 1.1? What version of HTTP is theserver running? 答:我的浏览器上运行HTTP version 1.1如下图 2. What languages (if any) does your browser indicate that it can accept to theserver? 答:浏览器所能接受的语言为:简体中文accept language : zh -cn\r\n 截图如下:

3. What is the IP address of your computer? Of the https://www.wendangku.net/doc/fd8205049.html, server? 答:本机IP地址:10.0.163.199,服务器IP地址:128.119.245.12 截图如下: 4. What is the status code returned from the server to your browser? 答:状态码及状态码200ok截图如下: 5. When was the HTML file that you are retrieving last modified at the server? 6. How many bytes of content are being returned to your browser? 7. By inspecting the raw data in the packet content window, do you see any headerswithin the data that are not displayed in the packet-listing window? If so, nameone. 答:没有。 (二). The HTTP CONDITIONAL GET/response interaction1 8. Inspect the contents of the first HTTP GET request from your browser to the server. Do you see an “IF-MODIFIED-SINCE” line in the HTTP GET? 答:没有看到。 9. Inspect the contents of the server response. Did the server explicitly return the contents of the file? How can you tell? 答:反回了,如下图所示 10. Now inspect the contents of the second HTTP GET request from your browser

sip协议简单解释

引言 节省费用以及想把语音和数据融合在一起的需求,促使了IP电话的蓬勃发展。 为了使IP电话为大众所接受,成为主流,甚至最终取代传统的POTS(Plain Old Telephone Service旧式电话服务),有两个条件必须满足: 第一,话音通信的质量至少要达到POTS同样的水准; 第二,必须有信令的支持,就像PSTN(Pubic Switched Telephone Networks)公用交换电话网)中有No.7信令一样。 目前,IP电话系统有H.323和SIP两个完整和独立的信令标准,它们都对IP电话系统信令提出了完整的解决方案。它们对呼叫的连接都具有建立、管理和撤销的能力,具有网络管理功能,使端点用户具有进行建立和交互QoS(Quality of Service)的能力,且容易扩充新功能,支持不同类型的互操作性。当然,这两个协议都包含关于语音编码的解压缩方面的要求,只是这部分对两个协议而言是一样的。我们主要是从信令的角度对它们进行比较分析。 2 H.323简介 H.323是ITU-T第16工作组的建议,H.323由一组协议构成,其中有负责音频与视频信号的编码、解码和包装,有负责呼叫信令收发和控制的信令,还有负责能力交换的信令。1999年7月前,多数已实现的系统是基于H.323第二版的,而在此之后,H.323第三版开始应用。 2.1通信系统 H.323定义了4个主要部件构筑基于网络的通信系统:终端Terminals 、网关Gateways 、网守Gatekeepers 、多点控制单元(MCU)。 1终端 在基于IP的网络上是一个客户端点。它需要支持下面3项功能:支持信令和控制,即支持

TCPIP协议分析

TCP/IP协议分析及应用 在计算机网络的发展过程中,TCP/IP网络是迄今为止对人类社会影响最重要的一种网络。TCP和IP是两种网络通信协议,以这两种协议为核心协议的网络总称为TCP/IP网络。人们常说的国际互联网或因特网就是一种TCP/IP网络,大多数企业的内部网也是TCP/IP网络。 作为一名学习计算机的学生,我们一定要对TCP/IP协议进行深刻的解析。通过对协议的分析进一步了解网络上数据的传送方式和网络上出现的问题的解决方法。本实验就是对文件传输协议进行分析来确定FTP协议工作方式。 目的:通过访问FTP:202.207.112.32,向FTP服务器上传和下载文件。用抓包工作来捕捉数据在网络上的传送过程。为的方便数据包的分析,通过上传一个内容为全A的TXT文件,来更直观的分析文件传输的过程。 过程: 1.在本机上安装科莱抓包软件 2.对科莱进行进滤器的设置(arp、ftp、ftp ctrl、ftp data) 3.通过运行CMD窗口进行FTP的访问 4.用PUT和GET进行文件的上传与下载 5.对抓到的包进行详细的分析 CMD中的工作过程: C:\Documents and Settings\Administrator>ftp 202.207.112.32 Connected to 202.207.112.32. 220 Serv-U FTP Server v5.1 for WinSock ready... User (202.207.112.32:(none)): anonymous //通过匿名方式访问 331 User name okay, please send complete E-mail address as password. Password: 230 User logged in, proceed. ftp> cd 学生作业上传区/暂存文件夹 250 Directory changed to /学生作业上传区/暂存文件夹 ftp> put d:\aaa123.txt //上传aaa123.txt文件 200 PORT Command successful. 150 Opening ASCII mode data connection for aaa123.txt.

协议分析报告

《计算机网络技术及应用》课程论文 题目“腾讯新闻”应用协议分析报告 专业 学生姓名 学号 成绩

目录 1 概述 (1) 1.1 “腾讯新闻”应用软件介绍 (1) 1.2 分析环境 (2) 1.2.1 测试手机配置 (2) 1.2.2 应用软件版本 (2) 1.2.3 分析工具介绍 (3) 1.2.4 网络拓扑 (3) 2 应用软件结构分析 (4) 3 应用协议分析 (5) 3.1 启动(连接)过程分析 (5) 3.1.1 获取新闻各版块 (5) 3.1.2 获取首页新闻列表 (8) 3.2登录(注册)分析 (9) 3.2.1 登陆过程分析 (9) 3.2.2 获取用户评论信息 (10) 3.3 切换版块功能分析 (11) 3.4 读取单条新闻功能分析 (14) 3.5 评论功能分析 (17) 3.5.1 查看评论 (17) 3.5.1发表评论 (22) 4 分析总结 (27)

1 概述 1.1 “腾讯新闻”应用软件介绍 腾讯新闻客户端是基于IOS、Android平台的腾讯新闻服务,快速、客观、公正地提供新闻资讯的中文免费应用程序。凭借优异的用户体验引发用户大量下载,以王者之姿“秒”杀用户,带领移动资讯进入“秒”时代。是腾讯团队用心打造的一款丰富、及时的新闻应用,本着精炼、轻便的目标,为用户提供高效、优质的阅读体验。全球视野,聚焦中国,一朝在手,博览天下。 腾讯新闻功能如下: 1.每日新闻及时报道,洞察真相,领先一步 2.媒体订阅,全面接入优质媒体/微信自媒体,一处订阅,多处可看 3.云收藏,便捷收藏、随时访问、永久保存 4.视频、图片、直播,多媒体资讯,舒适体验,值得拥有 5.专题新闻,聚合报道重要新闻事件,了解事件全貌 6.离线下载智能启动,30秒下载1000条新闻,没有网络也有得看 7.横划手势切换2级栏目,单手操作更方便 8.三种阅读模式,2G/3G/4G/wifi环境顺畅浏览 9.腾讯微博、QQ空间、微信朋友圈、新浪微博、微信好友、手机QQ好友、邮件,随时与好友分享态度 腾讯新闻客户端自上线以来,以快速的推送速度、界面友好、内容专业原创、视频图片优势得到了用户普遍认可,用户数量、活跃度和口碑都在同类软件中名列前茅,一直保持着在App Store新闻软件排名前三位。在欧洲杯赛事和伦敦奥运期间,腾讯新闻客户端开创性的推出视频新闻和奥运专版举动,提高新闻客户端的竞争门槛,更是引发了行业强烈关注。。 腾讯新闻客户端的特色在于把新闻、视频、微博有机地结合了起来,为手机用户提供多形式、多产品精华内容聚合的快速阅读体验。同时拥有优秀的开发和运营团队、腾讯海量的品牌用户、良好的用户口碑以及强大的推广资源等优势腾讯还拥有数量庞大的无线互联网产品,可以互相推荐下载,并会第一时间接入王牌无线产品:微信,让用户能够在微信中分享腾讯新闻,这是其他应用所不具备的。 此外,腾讯新闻客户端具有强大的实时推送功能,7x24小时不间断更新。重大新闻瞬间推送到手机,随时随地掌握天下事。用户通过腾讯新闻客户端,3秒即可连接到世界新闻,重大事件发生时,腾讯新闻客户端版能够实现30秒实时推送新闻。300秒即可尽览每日资讯。通过速度可以让用户真切的感受到了新闻触达指尖的便捷性。

SIP协议格式详解

1.SIP 1.1.1.SIP格式 每条SIP消息由以下三部分组成: (1)起始行(Start Line):每个SIP消息由起始行开始。起始行传达消息类型(在请求中是方法类型,在响应中是响应代码)与协议版本。起始行可以是一请求行(请求)或状态行(响应)。 (2)SIP头:用来传递消息属性和修改消息意义。它们在语法和语义上与HTTP头域相同(实际上有些头就是借自HTTP),并且总是保持格式:<名字>:<值>。 (3)消息体:用于描述被初始的会话(例如,在多媒体会话中包括音频和视频编码类型,采样率等)。消息体能够显示在请求与响应中。SIP清晰区别了在SIP起始行和头中传递的信令信息与在SIP 范围之外的会话描述信息。可能的体类型就包括本文将要描述的SDP会话描述协议。

1.1. 2.消息头 Header field where proxy ACK BYE CAN INV OPT REG Accept R - o - o m* o Accept 2xx - - - o m* o Accept 415 - c - c c c Accept-Encoding R - o - o o o Accept-Encoding 2xx - - - o m* o Accept-Encoding 415 - c - c c c Accept-Language R - o - o o o

Accept-Language 2xx - - - o m* o Accept-Language 415 - c - c c c Alert-Info R ar - - - o - - Alter-Info 180 ar - - - o - - Allow R - o - o o o Allow 2xx - o - m* m* o Allow r - o - o o o Allow 405 - m - m m m Authentication-Info 2xx - o - o o o Authorization R o o o o o o Call-ID c r m m m m m m Call-Info ar - - - o o o Contact R o - - m o o Contact 1xx - - - o - - Contact 2xx - - - m o o Contact 3xx d - o - o o o Contact 485 - o - o o o Content-Disposition o o - o o o Content-Encoding o o - o o o Content-Language o o - o o o Content-Length ar t t t t t t Content-Type * * - * * * Cseq c r m m m m m m Date a o o o o o o Error-Info 300-699 a - o o o o o Expires - - - o - o From c r m m m m m m In-Reply-To R - - - o - - Max-Forwards R amr m m m m m m Min-Expires 423 - - - - - m MIME-Version o o - o o o Organization ar - - - o o o Priority R ar - - - o - - Proxy-Authenticate 407 ar - m - m m m Proxy-Authenticate 401 ar - o o o o o Proxy-Authorization R dr o o - o o o Proxy-Require R ar - o - o o o Record-Route R ar o o o o o o Record-Route 2xx,18x mr - o o o o - Reply-To - - - o - - Require ar - c - c c c - o o o o o Retry-After 404, 413,

使用wireshark进行协议分析实验报告

1 深圳大学实验报告 实验课程名称:计算机网络 实验项目名称:使用wireshark进行协议分析 学院:计算机与软件学院专业:计算机科学与技术 报告人:邓清津学号:2011150146 班级:2班同组人:无 指导教师:杜文峰 实验时间:2013/6/10 实验报告提交时间:2013/6/10 教务处制

一、实验目的与要求 学习使用网络数据抓包软件.学习使用网络数据抓包软件wireshark,并对一些协议进行分析。 二、实验仪器与材料 Wireshark抓包软件 三、实验内容 使用wireshark分析各层网络协议 1.HTTP协议 2.ARP协议,ICMP协议 3.IP协议 4.EthernetII层数据帧 为了分析这些协议,可以使用一些常见的网络命令。例如,ping等。 四、实验步骤 1、安装Wireshark,简单描述安装步骤: 2、打开wireshark,选择接口选项列表。或单击“Capture”,配置“option” 选项。

3.点击start后,进行分组捕获,所有由选定网卡发送和接收的分组都将被捕获。 4. 开始分组捕获后,会出现如图所示的分组捕获统计窗口。该窗口统计显示各类已捕获分组的数量。在该窗口中有一个“stop”按钮,可以停止分组的捕获。

一、分析HTTP协议 1.在浏览器地址栏中输入某网页的URL,如:https://www.wendangku.net/doc/fd8205049.html,。为显示该网页,浏览器需要连接https://www.wendangku.net/doc/fd8205049.html,的服务器,并与之交换HTTP消息,以下载该网页。包含这些HTTP消息的以太网帧(Frame)将被WireShark捕获。 2. 在显示筛选编辑框中输入“http”,单击“apply”,分组列表窗口将只显示HTTP消息。 3.点击其中一个http协议包

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层接收来的数据包传

tcp-ip协议详细讲解

TCP/IP协议详解 这部分简要介绍一下TCP/IP的部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。 TCP/IP整体构架概述 TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。 TCP/IP中的协议 以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的: 1. IP 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。 IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。 高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一

实验六利用Wireshark分析协议HTTP

实验六利用W i r e s h a r k分析协议H T T P 一、实验目的 分析HTTP协议 二、实验环境 与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。 三、实验步骤 1、利用Wireshark俘获HTTP分组 (1)在进行跟踪之前,我们首先清空Web 浏览器的高速缓存来确保Web网页是从网络中获取的,而不是从高速缓冲中取得的。之后,还要在客户端清空DNS高速缓存,来确保Web服务器域名到IP地址的映射是从网络中请求。在WindowsXP机器上,可在命令提示行输入ipconfig/flushdns(清除DNS解析程序缓存)完成操作。 (2)启动Wireshark 分组俘获器。 (3)在Web 浏览器中输入:https://www.wendangku.net/doc/fd8205049.html, (4)停止分组俘获。 图1.1 利用Wireshark俘获的HTTP分组 在URL https://www.wendangku.net/doc/fd8205049.html,中,https://www.wendangku.net/doc/fd8205049.html,是一个具体的web 服务器的域名。最前面有两个DNS分组。第一个分组是将域名https://www.wendangku.net/doc/fd8205049.html,

转换成为对应的IP 地址的请求,第二个分组包含了转换的结果。这个转换是必要的,因为网络层协议——IP协议,是通过点分十进制来表示因特网主机的,而不是通过https://www.wendangku.net/doc/fd8205049.html,这样的域名。当输入URL http://https://www.wendangku.net/doc/fd8205049.html, 时,将要求Web服务器从主机https://www.wendangku.net/doc/fd8205049.html,上请求数据,但首先Web浏览器必须确定这个主机的IP地址。 随着转换的完成,Web浏览器与Web服务器建立一个TCP连接。最后,Web 浏览器使用已建立好的TCP连接来发送请求“GET/HTTP/1.1”。这个分组描述了要求的行为(“GET”)及文件(只写“/”是因为我们没有指定额外的文件名),还有所用到的协议的版本(“HTTP/1.1”)。 2、HTTP GET/response交互 (1)在协议框中,选择“GET/HTTP/1.1” 所在的分组会看到这个基本请求行后跟随着一系列额外的请求首部。在首部后的“\r\n”表示一个回车和换行,以此将该首部与下一个首部隔开。 “Host”首部在HTTP1.1版本中是必须的,它描述了URL中机器的域名,本例中是https://www.wendangku.net/doc/fd8205049.html,。这就允许了一个Web服务器在同一时间支持许多不同的域名。有了这个数不,Web服务器就可以区别客户试图连接哪一个Web服务器,并对每个客户响应不同的内容,这就是HTTP1.0到1.1版本的主要变化。 User-Agent首部描述了提出请求的Web浏览器及客户机器。 接下来是一系列的Accpet首部,包括Accept(接受)、Accept-Language (接受语言)、Accept-Encoding(接受编码)、Accept-Charset(接受字符集)。它们告诉Web服务器客户Web浏览器准备处理的数据类型。Web服务器可以将数据转变为不同的语言和格式。这些首部表明了客户的能力和偏好。 Keep-Alive及Connection首部描述了有关TCP连接的信息,通过此连接发送HTTP请求和响应。它表明在发送请求之后连接是否保持活动状态及保持多久。大多数HTTP1.1连接是持久的(persistent),意思是在每次请求后不关闭TCP 连接,而是保持该连接以接受从同一台服务器发来的多个请求。 (2)我们已经察看了由Web浏览器发送的请求,现在我们来观察Web服务器的回答。响应首先发送“HTTP/1.1 200 ok”,指明它开始使用HTTP1.1版本来发送网页。同样,在响应分组中,它后面也跟随着一些首部。最后,被请求的实际数据被发送。

SIP协议主要消息讲解

第一章SIP协议主要消息 1.1 SIP消息分类 SIP协议是以层协议的形式组成的,就是说它的行为是以一套相对独立的处理阶段来描述的,每个阶段之间的关系不是很密切。 SIP协议将Server和User Agent之间的通讯的消息分为两类:请求消息和响应消息。 请求消息:客户端为了激活特定操作而发给服务器的SIP消息,包括INVITE、ACK、BYE、CANCEL、OPTION和UPDATE消息。 SIP请求的6种方法: 1、邀请(INVITE)——邀请用户加入呼叫 2、确认(ACK)——确认客户机已经接收到对INVITE的最终响应 3、可选项(OPTIONS)——请求关于服务器能力的信息 4、再见(BYE)——终止呼叫上的两个用户之间的呼叫 5、取消(CANCEL) 6、注册(REGISTER)——提供地址解析的映射,让服务器知道其它用户的位置 响应消息:服务器向客户反馈对应请求的处理结果的SIP消息,包括1xx、2xx、3xx、4xx、5xx、6xx响应 1.2 SIP消息结构 请求消息和响应消息都包括SIP消息头字段和SIP消息体字段; SIP消息头主要用来指明本消息是有由谁发起和由谁接受,经过多少跳转等基本信息; SIP消息体主要用来描述本次会话具体实现方式; 1.3 消息格式 1.3.1 请求消息格式 SIP请求消息的格式,由SIP消息头和一组参数行组成,如图1-1所示。通过换行符区分命令行和每一条参数行。

图1-1 SIP 请求消息结构 注意:参数行的顺序不是固定的。对应的参数解释见错误!未找到引用源。。 消息体定义: Call-ID :头字段是用来将消息分组的唯一性标识 From :头字段是指示请求发起方的逻辑标识,它可能是用户的注册地址。From 头字段包含一个URI 和一个可选的显示名称 CSeq :头字段用于标识事务并对事务进行排序。它由一个请求方法和一个序列号组成,请求方法必须与对应的请求消息类型一致 Max-Fowords :头字段限定一个请求消息在到达目的地之前允许经过的最大跳数。它包含一个整数值,每经过一跳,这个值就被减一。如果在请求消息到达目的地之前该值变为零,那么请求将被拒绝并返回一个483(跳数过多)错误响应消息。 Via :头字段定义SIP 事务的下层(传输层)传输协议,并标识响应消息将要被发送的位置。只有当到达下一跳所用的传输协议被选定后,才能在请求消息中加入Via 头字段值。 expires :参数指出了该值中包含的URI 地址的有效期。这个参数的值是以秒为单位计算的。如果没有提供该参数,那么URI 地址的有效期由Expires 头字段值来确定。 消息头

协议分析综合实验报告

协议分析综合实验报告 专业:电子信息科学与技术(1)班 组员: 学号: 时间:2014-12-01 一、实验目的:利用wireshark 抓包工具,结合课本,分析分层的网络结构协议体系: 二、基本步骤: 一、利用任意一台能够访问互联网的主机,安装wireshark抓包工具。 二、关闭所有应用层程序。如qq,ie浏览器,pptv等。 三、打开抓包工具,开始抓包。 四、打开IE浏览器,输入新浪WEB服务器的域名:https://www.wendangku.net/doc/fd8205049.html,,回车。 五、访问新浪主页成功后,立即停止抓包。 六、分析所抓的数据包,找出主机跟新浪WEB服务器之间通信的数据包,按应用层、运输 层、网络层、数据链路层这四个层次,分析其具体工作过程,分别各层用到了哪些协议。 (新浪WEB服务器的IP地址是58.67.149.250) 三、实验分析过程 下图是用Wireshark软件进行抓包数据分析的截图,下面将选取1906号帧来进行相应的层次与过程分析:

1.数据链路层分析 PPPoE会话阶段以太网帧的协议填充为Ox8864.代码填充Ox00,整个会话的过程就是PPP的会话过程,但在PPPOE数据内的PPP数据帧是冲协议域开始的。此过程所用到的协议是IP协议。 2.网络层分析 该层所涉及的协议是IP协议,源地址是121.14.1.190,目的地址是119.124.31.253,区分服务字段为Ox00(DSCP:Ox00:Default;ECN:Ox00),默认的DSCP的值是0,相当于尽力传送。IP包的总长度为64,标志字段为Ox91d5,标记字段为Ox00,没有分片,其偏移量为0,生存时间为57,当减少为0时,该数据包将被丢弃以保证数据包不会无限制的循环,因为 wireshark不自动做TCP校验和的检验,所以显示为validation disabled

相关文档
相关文档 最新文档