Cấu trúc INIT Chunk

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu cải thiện giao thức SCTP trong mạng MANET luận văn ths công nghệ thông tin 60 08 15 (Trang 29 - 31)

chunk INIT chứa các thông tin phục vụ việc thiết lập kết nối giữa hai đầu cuối nhƣ độ lớn của bộ đệm sẽ đƣợc sử dụng (tính bằng byte), số luồng bên gửi có thể phát (là giá trị trƣờng Number of Outbound Streams) và số luồng bên nhận sẵn sàng nhận (là giá trị trƣờng Number of Inbound Streams), giá trị bắt đầu của TSN. Hai trƣờng Number of Outbound Streams và Number of Inbound Streams là hai trƣờng phục vụ cho việc vận chuyển dữ liệu đa luồng, là một tính năng nổi bật của giao thức SCTP mà TCP không có. Trƣờng Initiate Tag trong chunk INIT có vai trò tƣơng tự nhƣ trƣờng Sequence Number trong gói tin TCP. Ngay khi bắt đầu thiết lập kết nối, nó đƣợc gán một giá trị ngẫu nhiên trong khoản 0 – (231-1). Giá trị này sẽ đƣợc lƣu trữ trong tất cả các gói tin đƣợc truyền tải trong kết nối cũng nhƣ đƣợc dùng để xác thực tính hợp lệ của một gói tin bằng cách lƣu giá trị này vào trƣờng Verification Tag của phần tiêu đề mỗi gói tin. Điều này khác với TCP vì TCP chỉ dùng giá trị khởi tạo này làm khoá để trao đổi đúng một lần và không có cơ chế lƣu trữ lại. Bằng cách dùng giá trị này, SCTP do vậy có thể chống đƣợc các tấn công dạng ―mù‖ (blind attacks- là cách tấn công mà khi hai đầu cuối thiết lập kết nối và truyền tin, kẻ tấn công sẽ gửi các gói tin giả danh đến hai đầu cuối này) do kẻ tấn công khó có thể thử hết đƣợc 2 gói tin để tìm đúng đƣợc giá trị này.

Initiation Acknowledgement (INIT ACK): là chunk dùng để biên nhận các gói tin điều khiển sử dụng trong quá trình khởi động việc thiết lập kết nối. INIT ACK có vai trò tƣơng tự SYN ACK của TCP và có cấu trúc tƣơng tự nhƣ chunk INIT.

Selective Acknowledgement (SACK): là chunk biên nhận các gói dữ liệu đã nhận thành công hay thông báo các gói bị lỗi. Trong chunk biên nhận này tất nhiên vẫn phải có biên nhận tích luỹ TSN và kích thức cửa sổ nhận cho phép nhƣ trong giao thức TCP. Trong giao thức TCP, ACK là một trƣờng của gói tin. Vì vậy ACK có trong tất cả các gói tin TCP trừ SYN là gói tin thiết lập kết nối. Đây là một hạn chế của TCP và nhƣ vậy ACK không thể mở rộng, do đó TCP chỉ có thể phát hiện gói tin bị mất hay lặp sau khi nhận đƣợc các báo nhận lặp và truyền lại tất cả các gói tin bắt đầu từ gói tin bị mất, dù các gói tin sau đó có thể đã đƣợc nhận đầy đủ, dẫn đến lãng phí thời gian và băng thông đƣờng truyền. Đối với các ứng dụng thời gian thực thì điều đó khó chấp nhận đƣợc.

Đó chính là lý do SCTP dùng SACK báo nhận thay ACK. SACK trong SCTP là một chunk hoàn toàn độc lập, do vậy có khả năng mở rộng tuy ý, miễn là chƣa vƣợt quá giới hạn độ lớn của chunk cho phép. Cấu trúc của SACK nhƣ sau:

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = 3 |Chunk Flags | Chunk Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Cumulative TSN Ack | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertised Receiver Window Credit (a_rwnd) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Number of Gap Ack Blocks = N | Number of Duplicate TSNs = X | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Gap Ack Block #1 Start | Gap Ack Block #1 End | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / / \ ... \ / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Gap Ack Block #N Start | Gap Ack Block #N End | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Duplicate TSN 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / / \ ... \ / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Duplicate TSN X | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu cải thiện giao thức SCTP trong mạng MANET luận văn ths công nghệ thông tin 60 08 15 (Trang 29 - 31)

Tải bản đầy đủ (PDF)

(65 trang)