Tải bản đầy đủ (.pdf) (14 trang)

Tài liệu OBEX LÀ GÌ? pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (582.8 KB, 14 trang )

OBEX LÀ GÌ?

OBEX (OBject EXchange) là giao thức trao đổi dữ liệu giữa các thiết bị dùng cổng hồng
ngoại được hiệp hội IrDA (Infrared Data Association) đưa ra lần đầu tiên năm 1997. Ban
đầu, giao thức này chỉ giới hạn cho các thiết bị sử dụng môi trường ánh sáng hồng ngoại,
nhưng rất nhanh sau đó nó được tổ chức Bluetooth SIG (Bluetooth Special Interest
Group) đưa vào hầu hết các thiết bị Bluetooth của mình.

1. Vị trí OBEX trong mô hình OSI

Cũng giống như các giao thức khác, giao thức OBEX được xây dựng trên nền mô hình
OSI (Open Systems Interconnection) bao gồm hai thành phần chính:


OBEX session protocol (giao thức phiên OBEX): mô tả cấu trúc gói tin trong phiên
làm việc giữa hai thiết bị.


OBEX application framework: tập các dịch vụ OBEX cung cấp cho các ứng dụng đầu
cuối như truyền file, in ảnh...
OBEX Application
Ù
T ầng ứng dụng
ication
OBEX Framework
OBEX Session Tầng phiên
Tầng trình diễn
Tiny TP RFCOMM Tầng giao vận
IrLMP L2CAP Tầng mạng
IrLAP
Link


Manager
Tầng liên kết dữ liệu
IrPHY Baseband Tầng vật lý
IrDA Bluetooth OSI
H n mô hình OSI ình 1: Giao thức OBEX tro g
2. Cấu trúc gói tin trong giao thức phiên OBEX

Giao thức OBEX n kiểu "đẩy" (Push) hoặc "kéo"
(Pull), cho phép m y" dữ liệu l r) hoặc "kéo" dữ liệu
từ server xuống. Đ hiện i t nt server phải tuân
thủ chặt chẽ cấu trúc đề ra. Dưới đây là một vài cấu rong quá trình
truyền file giữa cl erve X1.3 trên website
).

2.1 Gói tin yêu cầu

Mọi gói tin yêu cầu cấu trúc như sau:
đ
á
ược sử dụ
y khách (client) "
g chủ yếu trong các
đẩ

ê
ng dụng
n máy chủ (serve
rao đổi giữa clie
ể thực điều này, các gó in t và
trúc được sử dụng t

khảo tài liệu IrOB
ient và s r (chi tiết có thể tham E

đều có
Byte 0 Byte 1, 2 Byte 3 đến n
opcode packet length Headers
Opcode: Mã lệnh ừ ầu (Bản ). Bit ca ọi là F al bit.

Packet length: Độ

Header: Thông tin đầu có cấu trúc như sau:
ứng với t ng yêu c g 1 o nhất g in
dài của gói tin

Byte 0 Byte 1, 2 Byte 3 đến n


header
identifier

length (tuỳ
chọn)
value

Bảng 1: Mã lệnh yêu cầu

Mã lệnh Kiểu Mô tả

0x80 CONNECT
Thiết lập phiên

giao dịch

0x81 DISCONNECT
Ngừ ng phiên giao
dịch


0x02
(0x82)
PUT
Gửi dữ liệu lên
server


0x03
(0x83)
GET
Lấy dữ liệu từ
server

0xFF ABORT
Hủy bỏ phiên
giao dịch


Bảng 2: Thông tin đầu

Định
danh
Tên Mô tả


0x01 NAME Tên file (mã Unicode)
0xC3 LENGTH
Kích thước file theo
byte

0x48 BODY Đoạn dữ liệu của file
0x49
END OF
BODY

Đoạn dữ liệu cuối
cùng của file

2.2 Gói tin trả lời

Giống như gói tin yêu cầu, gói tin tr
ả lời có cấu trúc như sau:

Byte 0 Byte 1, 2 Byte 3 to n


response
opcode

response
length
response data
Một số mã trả lời (response opcode) thường gặp:
Bản trả lời g 3: Mã


Mã trả lời Mô tả

0x10 (0x90) Tiếp tục yêu cầ ời u hoặc trả l
0x20 (0xA0)
Xác nhận kết thúc yêu cầu
hoặc trả lời

0x40 (0xC0) Lỗi yêu cầu
0x41 (0xC1) Lỗi do không có quyền
0x43 (0xC3) Phiên giao dịch bị huỷ bỏ
0x44 (0xC4) Không tìm thấy file
3

Quá trình trao đổi file giữa client và server được chia làm 3 giai đoạn:


. Cùng giải quyết

Ngừng phiên: DISCONNECT

3.1 Thiết lập phiên (CONNECT

Gói tin CONNEC có cấu trúc nh
Thiết lập phiên: CONNECT


Nhận/gửi file: GET/PUT

)

T ư sau:

Byte
0 0

Byte 1,
2
Byte 3
Byte
4
Byte 5, 6
Byte 7
to n

0x80
packet
length

OBEX
version
number
flags
maximum
OBEX
packet
length

optional
head s er


OBEX version num o thức OBEX gồm major number lưu tại 4 bit cao,
minor number lưu t hấp. Phiên bản hiện tại là 1.0, do đó giá trị này là 0x10.

Flags: Giá trị này luôn là 0x00 trong phiên b

Maximum OBEX ket len tr g giao ức OBEX mà
thiết bị có thể nhận hoặc gử này hau. Do đó khi
thiết lập phiên, client cần g để kiểm tra xem kích thước gói tin lớn
nhất mà server có thể nhận hoặc gửi là b

Optional headers: Thông tin đầu được tù ch của mỗi phiên giao
dịch. Trong ví dụ dưới đây, giá trị này có thể bỏ qua.
ber: Phiên bản gia
ại 4 bit t
ản hiện tại.
pac gth: Giá ị lớn nhất của gói tin tron th
i. Giá tr
ửi

iá trị này lên server
ở client và server có thể khác n
g
ao nhiêu?
y chọn ứng với mục đí

Yêu cầu từ
client
byte Ý nghĩa

0x80 CONNECT


0x000
7
Độ dài gói tin = 7 bytes
0x10 Phiên bản OBEX 1.0

Mã yêu cầu
0x00 Flags đối với phiên bản
hiện tại

0x200
0

Kích thước lớn nhất của
gói tin là 8K



Trả lời từ server


Mã trả
lời
0xA0 SUCCESS
0x0007 Độ dài gói tin = 7 bytes
0x10 Phiên bản OBEX 1.0
0x00
Flags đối với phiên bản hiện
tại


0x0200
Kích thước lớn nhất của gói
tin mà server có thể nhận
hoặc gửi là 512 bytes

3.2 Gửi file (PUT)

Không giống như gói tin CONNECT, gói tin PU in đầu sau:

NAME: Thông tin về tên file

LENGTH: Thông tin về kích

BODY: Đoạn dữ liệu file

END OF BODY Đoạn dữ liệu cu ủa l

Dưới đây là ví gửi 1 file hello.gif có kích th PC lên server
(ĐTDĐ). Do kích thước của file n hơn kích th rver có thể
nhận (với Sony ricsson T61 ytes) i gói tin để
gửi. Gói tin 1 có mã yêu cầu PUT là 0x02 (khôn tin 2 có mã yêu
cầu PUT là 0x82 (thiết lập Fi
T có thêm một số thông t
thước file
: ối cùng c fi e
dụ ước 721 bytes từ client ( )
lớ ước gói tin lớn nhất mà se
client sẽ chia file thành h
g thiết lập Final bit).
E 0 là 512 b nên a

Gói
nal bit).

Yêu cầu từ
client
byte Ý nghĩa

0x02
PUT, Final bit không
thiết lập để chỉ cho
server biết client còn gửi
yêu cầu tiếp theo

0x01E2
Độ dài gói tin = 482
bytes


Mã yêu cầu
0x01
Định danh thông tin đầu
NAME (tên file)

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×