2 Cấu trúc của luận văn
3.3 Mô hình kiến trúc và giao thức của Bluetooth
3.3.8 Mạng ad-hoc Bluetooth
Trước khi bắt đầu truyền đi dữ liệu, một thiết bị Bluetooth cần phải khám phá xem có thiết bị Bluetooth nào khác đang trong không gian hoạt động của nó hay không. Để thực hiện điều này, thiết bị Bluetooth đó phải chuyển sang trạng thái “điều tra”
(inquiry state). Trong trạng thái này, nó liên tục gửi đi các thông điệp điều tra (inquiry message) – thực chất là gói tin ID (ID packet)8 chứa mã truy cập điều tra (inquiry access code – IAC). Mã truy cập điều tra có thể là mã truy cập điều tra tổng quát
8 Thực chất, gói tin ID chỉ chứa mã truy cập của thiết bị (device access code – DAC) hoặc mã truy cập yêu cầu (inquiry access code – IAC). Gói tin có độ dài cố định là 68 bit.
(General Inquiry Access Code – GIAC) cho phép bất cứ thiết bị Bluetooth nào cũng trả lời thông điệp điều tra này, hoặc một mã truy cập điều tra dành riêng (dedicated inquiry access code – DIAC) cho phép chỉ thiết bị Bluetooth thuộc về các lớp nhất định trả lời thông điệp điều tra. Trong suốt quá trình truyền đi thông điệp điều tra, thiết bị này sử dụng chuỗi nhảy tần (frequency hopping sequence) gồm 32 tần số được xác định bởi GIAC. 32 tần số này được chia thành hai nhóm, mỗi nhóm chứa 16 tần số liên tiếp nhau. Một nhóm phải được lặp lại ít nhất Ninquiry = 256 lần trước khi một nhóm mới được sử dụng. Sự chuyển đổi giữa các nhóm phải được thực hiện vài lần (tối đa là 3) để lấy được đủ số lượng các thông điệp trả lời cần thiết. Do đó trạng thái điều tra kéo dài khoảng 10.24s trừ phi thiết bị thực hiện điều tra đã có đủ số lượng thông điệp trả lời cần thiết trong khoảng thời gian ngắn hơn và ra khỏi trạng thái này. Giữa hai lần thực hiện điều tra, bộ phận nhận của thiết bị điều tra sẽ quét xem có thông điệp trả lời điều tra nào không. Trạng thái điều tra sẽ được tiếp tục hoặc dừng lại do quyết định của Baseband Resource Manager (khi đã nhận được đủ số thông điệp trả lời cần thiết), hoặc khi hết thời gian điều tra đã định (timeout) hoặc bị hủy bỏ do lệnh từ máy (host).
Một thiết bị chỉ có thể trả lời lại một thông điệp điều tra nếu nó đang lắng nghe kênh truyền để tìm một thông điệp điều tra và bộ phận nhận của nó được bật ở cùng tần số với thiết bị đang thực hiện điều tra. Để làm tăng khả năng của sự kiện này, một thiết bị sẽ quét mã truy cập điều tra (theo một tần số xác định) trong một khoảng thời gian đủ dài sao cho quét hết 16 tần số điều tra. Hiển nhiên, thiết bị nhận được thông điệp điều tra không bị bắt buộc gửi thông điệp trả lời. Nếu trả lời, nó gửi đi một gói tin điều khiển đặc biệt – gói tin FHS chứa địa chỉ thiết bị Bluetooth và đồng hồ của nó Sau khi thực hiện điều tra, thiết bị Bluetooth sẽ phát hiện ra địa chỉ của các thiết bị Bluetooth xung quanh và đồng hồ của các thiết bị đó. Nếu nó muốn kích hoạt một kết nối mới, nó phải phân phát địa chỉ thiết bị Bluetooth và đồng hồ của chính nó nhằm mục đích “tìm gọi” (paging). Thiết bị bắt đầu quá trình tìm gọi được tự động bầu làm master, thiết bị bị tìm gọi là slave. Thiết bị thực hiện tìm gọi gửi đi các thông điệp tìm gọi (page message), thực chất là gói tin chỉ chứa mã truy cập thiết bị (device access code – DAC), theo các kênh truyền có chặng (hop) khác nhau. DAC được lấy trực tiếp từ địa chỉ thiết bị Bluetooth của thiết bị bị tìm gọi, do đó chỉ có duy nhất thiết bị này mới có thể nhận ra thông điệp tìm gọi. Sau thủ tục tìm gọi, slave có được thông tin chính xác về đồng hồ của master và mã truy cập kênh truyền, do đó nó và master có thể bước vào trạng thái kết nối. Tuy nhiên, việc truyền tin thực sự sẽ chỉ thực sự được bắt đầu sau khi slave nhận được thông điệp chỉ định (polling message) do master gửi cho.
Khi một kết nối được thiết lập, các slave ở trạng thái hoạt động phải duy trì đồng bộ hóa với master. Để thực hiện được điều này, slave lắng nghe kênh truyền tại mỗi khe thời gian master truyền tin đến slave bởi vì nó cần thông tin về CAC (mã truy cập kênh truyền). Hiển nhiên, nếu một slave đang ở trạng thái hoạt động không được chỉ định, sau khi đọc thông tin về kiểu gói tin, nó có thể quay trở lại trạng thái ngủ (sleep state) trong khoảng thời gian bằng với số khe thời gian mà master cần để thực hiện việc truyền tin.
Nhìn chung, các thiết bị sử dụng công nghệ Bluetooth đều là các thiết bị di động và mang theo người, do đó việc tối thiểu hóa năng lượng sử dụng là một vấn đề quan trọng. Để giảm tiêu thụ năng lượng, đặc tả Bluetooth cũng định nghĩa một số trạng thái tiết kiệm năng lượng đối với các slave đang được kết nối: Sniff, Hold, Park. Xem thêm trong [9] về các trạng thái này.
3.4 Tổng kết
Chương này đã trình bày về các công nghệ không dây có thể dùng để triển khai mạng ad-hoc, tập trung vào hai công nghệ chính: IEEE 802.11b và Bluetooth. Các vấn đề chính được trình bày bao gồm: tính chất vật lý, các chế độ hoạt động, cách thành lập mạng, các chức năng hợp tác, an ninh.
Ngoài ra trong IEEE 802.11b, vấn đề trạm ẩn cũng được đề cập một cách ngắn gọn. Trong phần trình bày về Bluetooth, cách thành lập một piconet được xem xét. Về scatternet, hiện tại đặc tả Bluetooth mới chỉ định nghĩa khái niệm, chưa cung cấp kỹ thuật để xây dựng scatternet. Do đó các thuật toán để thành lập scatternet và các thuật toán lập lịch để truyền tin giữa nhiều piconet đang là vấn đề rất được quan tâm trong nghiên cứu [24].