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

đồ án cải tiến tính năng điều khiển tắc nghiễn của giao thức sctp

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 (884.88 KB, 43 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Lê Nguyễn Minh Quân

CẢI TIẾN TÍNH NĂNG ĐIỀU KHIỂN TẮC NGHẼN
CỦA GIAO THỨC SCTP TRONG MẠNG AD-HOC

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin

HÀ NỘI - 2016


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Lê Nguyễn Minh Quân

CẢI TIẾN TÍNH NĂNG ĐIỀU KHIỂN TẮC NGHẼN
CỦA GIAO THỨC SCTP TRONG MẠNG AD-HOC

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin

Cán bộ hướng dẫn: TS. Dương Lê Minh

Cán bộ đồng hướng dẫn: ThS. Đào Minh Thư

HÀ NỘI - 2016



VIETNAM NATIONAL UNIVERSITY, HANOI
UNIVERSITY OF ENGINEERING AND TECHNOLOGY

Le Nguyen Minh Quan

IMPROVEMENT OF SCTP CONGESTION
CONTROL IN THE AD-HOC NETWORK

Major: Information Technology

Supervisor: Dr. Duong Le Minh

Co-Supervisor: MSc. Dao Minh Thu

HA NOI - 2016


LỜI CẢM ƠN
Để hoàn thành khóa luận này, em xin gửi lời cảm ơn đến các thầy cô giáo của
Trường Đại học Công nghệ - Đại học Quốc Gia Hà Nội đã tận tình dạy dỗ, chỉ bảo em
trong suốt thời gian học tại trường.
Em xin gửi lời cảm ơn đặc biệt tới giảng viên hướng dẫn TS. Dương Lê Minh,
người đã tận tình hướng dẫn, giúp đỡ em để em có thể hoàn thành được khóa luận này.
Cuối cùng em xin gửi lời cảm ơn đến bạn bè và người thân đã luôn khuyến khích
hỗ trợ em trong suốt quá trình học tập cũng như hoàn thiện khóa luận.
Dù đã rất cố gắng trong quá trình nghiên cứu để hoàn thiện khóa luận, nhưng do
hạn chế về mặt thời gian cũng như kiến thức và kinh nghiệm, nên khóa luận không thể
tránh khỏi những thiếu sót, rất mong nhận được những đóng góp của các thầy cô để
khóa luận được hoàn chỉnh.

Em xin chân thành cảm ơn!

4


LỜI CAM ĐOAN
Em xin cam đoan khóa luận tốt nghiệp “Cải tiến tính năng điều khiển tắc nghẽn
của giao thức SCTP trong mạng ad hoc” là công trình nghiên cứu của cá nhân em dưới
sự hướng dẫn của thầy giáo TS. Dương Lê Minh. Các kết quả, số liệu thu được trong
đề tài là do chính em tự thiết lập, cài đặt và mô phỏng. Các tài liệu tham khảo đều
được chú thích minh bạch, rõ ràng. Nếu có sự gian lận hay vi phạm bản quyền nào, em
xin chịu hoàn toàn trách nhiệm về nội dung khóa luận của mình.
Hà Nội, Ngày 28 Tháng 4 năm 2016
Tác giả

Lê Nguyễn Minh Quân

5


MỤC LỤC
LỜI CẢM ƠN ..................................................................................................................4
LỜI CAM ĐOAN ............................................................................................................5
MỤC LỤC .......................................................................................................................6
TÓM TẮT........................................................................................................................8
ABSTRACT ....................................................................................................................9
BẢNG CÁC THUẬT NGỮ VIẾT TẮT .......................................................................10
DANH MỤC CÁC HÌNH ẢNH....................................................................................11
DANH MỤC CÁC BẢNG ............................................................................................12
MỞ ĐẦU .......................................................................................................................13

CHƯƠNG 1: TỔNG QUAN VỀ MẠNG MANET ......................................................15
1.1.

Giới thiệu về mạng MANET .................................................................15

1.2.

Đặc điểm của mạng MANET ................................................................15

1.3.

Ứng dụng của mạng MANET................................................................16

CHƯƠNG 2: GIAO THỨC SCTP ................................................................................18
2.1.

Giới thiệu về giao thức SCTP ................................................................18

2.2.

Kiến trúc tổng quan của SCTP ..............................................................18

2.3.

Các chức năng chính của SCTP .............................................................19

2.3.1 Tạo và kết thúc kết nối ......................................................................19
2.3.2 Truyền dữ liệu theo luồng .................................................................20
2.3.3 Phân mảnh dữ liệu người dùng .........................................................20
2.3.4 Biên nhận và tránh tắc nghẽn ............................................................21

2.3.5 Đóng gói chunk .................................................................................21
2.3.6 Xác nhận gói tin ................................................................................21
2.3.7 Quản lý tuyến đường .........................................................................21
2.4.

Gói tin SCTP ..........................................................................................22

6


2.4.1 Trường tiêu đề chung (common header) ...........................................23
2.4.2 Trường chunk ....................................................................................24
2.4.3 Các kiểu chunk chính ........................................................................26
2.5.

Điều khiển tắc nghẽn trong SCTP .........................................................30

2.5.1 Pha bắt đầu chậm (Slow-start) ..........................................................31
2.5.2 Pha tránh tắc nghẽn (Congestion Avoidance) ...................................31
2.5.3 Kiểm soát tắc nghẽn ..........................................................................32
CHƯƠNG 3: CẢI TIẾN CƠ CHẾ ĐIỀU KHIỂN TẮC NGHẼN CHO SCTP ............33
3.1

Phương pháp tiếp cận xuyên tầng (Cross-layer) ....................................33

3.2

Phương pháp tính độ trễ truy cập tại tầng MAC....................................35

3.3


Phương pháp cải tiến tính năng điều khiển tắc nghẽn của SCTP ..........36

CHƯƠNG 4. MÔ PHỎNG VÀ ĐÁNH GIÁ KẾT QUẢ..............................................38
4.1

Giới thiệu bộ mô phỏng NS-2................................................................38

4.2

Cài đặt mô phỏng và kết quả .................................................................38

4.2.1. Cấu hình ...........................................................................................38
4.2.2. Kết quả thí nghiệm ...........................................................................39
4.2.3. Đánh giá ...........................................................................................40
KẾT LUẬN ...................................................................................................................41
TÀI LIỆU THAM KHẢO .............................................................................................42

7


TÓM TẮT
Tóm tắt: Ngày nay, thiết bị không dây đang ngày càng trở nên phổ biến và do đó, mạng
không dây cũng trở thành một xu hướng phát triển mạnh mẽ trong các công nghệ truyền
thông. Trong các mô hình triển khai mạng không dây, mạng MANET là một mô hình linh
hoạt, không phụ thuộc vào cơ sở hạ tầng, có nhiều ứng dụng trong nhiều lĩnh vực. SCTP là
một trong số những giao thức tầng giao vận cho thấy khả năng trở thành một giao thức hoạt
động ổn định trên mạng MANET. Vì vậy, khóa luận sẽ tập trung vào giới thiệu một số điểm
cơ bản của mạng MANET và giao thức SCTP, cùng với đó là đề xuất phương án cải tiến sử
dụng phương pháp tiếp cận xuyên tầng để cải tiến khả năng điều khiển tắc nghẽn của SCTP

để khiến SCTP hoạt động hiệu quả hơn trên mạng MANET.
Từ khóa: SCTP, MANET, Xuyên tầng, Điều khiển tắc nghẽn.

8


ABSTRACT
Abstract: Nowadays, mobile devices are becoming more and more popular and thus wireless
network becomes a strong-developing trend of communication technology. Among the
variants of wireless network, MANET is a flexible design which does not rely on
infrastructure and has many applications in various fields. SCTP is a transport layer protocol
that shows the potential to become a stable protocol on MANET. The thesis will focus on
introducing some basic concepts of MANET and SCTP, as well as suggesting the
improvement solution using the cross-layer approach to improve SCTP congestion control in
order to make SCTP a better performance protocol on MANET.
Keyword: SCTP, MANET, Congestion control, Cross-layer.

9


BẢNG CÁC THUẬT NGỮ VIẾT TẮT
ACK

Acknowledgement

SACK

Selective Acknowledgement

SCTP


Stream Control Tranmission Protocol

UDP

User Datagram Protocol

TCP

Transmission Control Protocol

DCF

Distributed Coordination Function

RTS/CTS

Ready to send/Clear to send

TSN

Tranmission Sequence Number

IEEE

Institute of Electrical and Electronics Engineers

IP

Internet Protocol


SSN

Stream Sequence Numer

MAC

Medium Access Control

MANET

Mobile Ad hoc Network

MAD

Medium Access Delay

PSTN

Public switched telephoned network

RTO

Retranmission Timeout

RTT

Round Trip Time

NS


Network Simulator

OTCL

Object Oriented Tool Command Language

MTU

Maximum Tranmission Unit

TCL

Tcl Tool Command Language

Tx

Tranmission

FTP

File Transfer Protocol

10


DANH MỤC CÁC HÌNH ẢNH
Hình 2. 1 Kết nối SCTP ......................................................................................19
Hình 2. 2 Quá trình khởi tạo kết nối SCTP ......................................................20
Hình 2. 3 Các chức năng chính của SCTP........................................................22

Hình 2. 4 Cấu trúc gói tin SCTP .......................................................................23
Hình 2. 5 Cấu trúc tiêu đề chung của SCTP ....................................................23
Hình 2. 6 Cấu trúc trường chunk ......................................................................25
Hình 2. 7 Cấu trúc chunk DATA ......................................................................26
Hình 2. 8 Cấu trúc chunk SACK .......................................................................28
Hình 2. 9 Cấu trúc chunk HEARTBEAT .........................................................29
Hình 2. 10 Cấu trúc chunk HEARTBEAT ACK .............................................29
Hình 2. 11 Điều khiển tắc nghẽn trong SCTP ..................................................30
Hình 3. 1 Phương thức truy cập RTS/CTS ..................................................... 35
Hình 4. 1 Biểu đồ so sánh thông lượng trung bình ..........................................40

11


DANH MỤC CÁC BẢNG
Bảng 2- 1 Các giá trị chunk type .......................................................................25
Bảng 4- 1 Cấu hình mô phỏng ...........................................................................39
Bảng 4- 2 Kết quả thí nghiệm ............................................................................39

12


MỞ ĐẦU
Ngày nay, mạng không dây đã và đang phát triển mạnh mẽ và trở thành một xu
thế chung cho sự phát triển của công nghệ truyền thông bởi tính tiện dụng mà nó mang
lại cũng như để đáp ứng nhu cầu lớn của người dùng. Mạng không dây thường được
triển khai theo hai mô hình chính: mạng hạ tầng và mạng không hạ tầng. Trong mạng
hạ tầng, các thiết bị đầu cuối kết nối thông qua các điểm truy cập (Access point) cố
định, thông qua đó kết nối với hạ tầng mạng cố định. Trái ngược với mạng hạ tầng,
mạng không hạ tầng, hay còn được gọi là mạng ad hoc hoặc MANET (Mobile ad hoc

network – mạng tùy biến di động) không yêu cầu một kết nối đến access point cũng
như không hoạt động trên một hạ tầng cố định nào. Mạng MANET bao gồm một tập
hợp các nút mạng không dây được kết nối ngang hàng với nhau và có thể di chuyển tự
do. Đặc tính này giúp cho mạng MANET có thể được thiết lập một cách dễ dàng tại
bất kỳ thời điểm và tại bất cứ nơi nào. Do đó, mạng MANET rất hữu ích trong những
tình huống yêu cầu thiết lập kết nối khẩn cấp như trong hoàn cảnh chiến tranh, động
đất, lũ lụt…
Với những ưu điểm nêu trên, mạng MANET hứa hẹn sẽ trở thành một công nghệ
phổ biến trong cuộc sống trong tương lai. Tuy nhiên, việc nghiên cứu và ứng dụng
mạng MANET cũng gặp rất nhiều thách thức do những hạn chế mà mạng MANET
mang lại, trong đó nổi bật nhất là vấn đề về định tuyến, vấn đề ổn định hiệu năng cũng
như tiết kiệm năng lượng.
Các giao thức truyền thống được sử dụng cho mạng có dây như TCP hay UDP tỏ
ra hoạt động không còn thực sự hiệu quả trong mạng MANET[3][12]. Ra đời sau các
giao thức truyền thống trên, giao thức SCTP (Stream control tranmission protocol –
giao thức điều khiển luồng truyền tải) cung cấp một số tính năng như multi-homing,
multi-streaming, giúp cải thiện hiệu năng và tăng độ ổn định so với các giao thức
truyền thống, hứa hẹn sẽ là một giao thức hoạt động ổn định trên nền tảng mạng
MANET.
Tuy nhiên, bản thân giao thức SCTP cũng chưa hoạt động hiệu quả và cho hiệu
năng như mong muốn ở trong mạng MANET. Việc cải thiện hiệu năng của SCTP
trong mạng MANET cũng là một đề tài nghiên cứu khá mới và chưa có nhiều giải
pháp được đưa ra.

13


Phương pháp tiếp cận xuyên tầng (cross-layer), là một phương pháp được áp
dụng trong mô phỏng cho các lớp không liên tục nhau trong mô hình OSI có thể giao
tiếp trực tiếp với nhau, tỏ ra là một phương pháp khả thi để áp dụng đối với mạng

MANET. Tuy nhiên, chưa có nhiều công trình nghiên cứu sử dụng cách tiếp cận này
đối với SCTP trong mạng MANET. Vì vậy, khóa luận sẽ tập trung nghiên cứu và áp
dụng cách tiếp cận xuyên tầng với SCTP trong mạng MANET để cải tiến khả năng
điều khiển tắc nghẽn (Congestion control) của SCTP từ đó nâng cao hiệu năng của
SCTP trong mạng MANET.
Khóa luận được trình bày trong 4 chương như sau:
Chương 1: Khóa luận trình bày tổng quan về mạng MANET, các đặc điểm chính,
cũng như các ứng dụng của mạng MANET.
Chương 2: Giới thiệu về giao thức SCTP, các tính năng chính, đặc tả gói tin
SCTP và làm rõ tính năng điều khiển tắc nghẽn để làm cơ sở nghiên cứu, cải tiến.
Chương 3: Giới thiệu phương pháp tiếp cận xuyên tầng cùng với tham số MAD ở
tầng MAC sẽ được sử dụng để cải tiến tính năng điều khiển tắc nghẽn của SCTP trong
mạng MANET.
Chương 4: Giới thiệu bộ mô phỏng NS-2, tiến hành thực nghiệm và kết quả.

14


CHƯƠNG 1: TỔNG QUAN VỀ MẠNG MANET
1.1.

Giới thiệu về mạng MANET

Ngày nay, thiết bị di động đang phát triển mạnh mẽ với nhiều sản phẩm như
smartphone, máy tính bảng, máy tính xách tay … . Cùng với sự phát triển của các thiết
bị di động, nhu cầu kết nối của các thiết bị này cũng ngày càng gia tăng, do đó, mạng
không dây đang trở thành một xu hướng mạnh mẽ trong sự phát triển của các công
nghệ truyền thông.
Trong mạng không dây, các thiết bị thường được triển khai theo mô hình chính:
mô hình mạng hạ tầng và mô hình mạng không hạ tầng. Mạng không hạ tầng, hay còn

gọi là mạng MANET (mobile ad-hoc network)[15] là mô hình mạng mà trong đó các
thiết bị không kết nối dựa trên một hạ tầng mạng có sẵn. Thay vào đó, mỗi nút mạng
đều tham gia vào quá trình định tuyến cũng như chuyển tiếp dữ liệu cho các nút khác,
do đó việc xác định nút nào đang chuyển tiếp dữ liệu sẽ phụ thuộc vào tình trạng kết
nối của mạng. Trong mạng MANET, mỗi thiết bị tham gia vừa đóng vai trò là một
thiết bị đầu cuối, vừa đóng vai trò là một thiết bị định tuyến.
Đối với mạng MANET, topo của mạng không tĩnh như với mạng dây mà thường
xuyên có sự thay đổi do có sự di chuyển của các nút mạng cũng như sự xuất hiện của
các nút mạng mới, hay có nút mạng rời khỏi mạng. Vì vậy, trong mạng MANET cần
có các giao thức định tuyến hiệu quả để có thể thích ứng với việc thay đổi liên tục của
topo qua đó giúp các nút mạng giao tiếp tốt với nhau. Bên cạnh đó, các thiết bị trong
mạng cũng cần có khả năng phát hiện sự có mặt của các nút mạng mới để giao tiếp và
chia sẻ thông tin. Các giao thức và dịch vụ chạy trên mạng MANET còn phải chú ý tới
vấn đề về tiết kiệm năng lượng cho thiết bị trong mạng.
1.2.

Đặc điểm của mạng MANET
Mạng MANET có nhiều đặc điểm nổi bật như sau [15]:


Topo động (Dynamic topologies): Các nút mạng được tự do di chuyển
tùy ý, do đó, topo mạng – thường có nhiều nút – sẽ thay đổi một cách ngẫu nhiên và
liên tục với số lần không thể dự đoán trước, và có thể có cả những liên kết một chiều
hoặc hai chiều.

15



Các liên kết có băng thông hạn chế (Bandwidth-constrained links): Các

liên kết không dây sẽ có băng thông hạn chế hơn đáng kể so với các liên kết có dây
trên các thiết bị. Bên cạnh đó, thông lượng thực sự của các giao tiếp không dây – sau
khi tính toán đến ảnh hưởng của môi trường, nhiễu, các điều kiện gây ảnh hưởng khác
– thường thấp hơn rất nhiều so với khả năng truyền của một thiết bị. Một ảnh hưởng
của việc giới hạn của các liên kết thấp đó là việc tắc nghẽn xảy ra và trở nên phổ biến
chứ không còn là một sự kiện ít gặp, ví dụ như khi một ứng dụng yêu cầu vượt quá
khả năng đáp ứng của mạng. Vì mạng di động thường là một phần mở rộng cho cho
các mạng có hạ tầng cố định, nên người sử dụng mạng MANET cũng sẽ yêu cầu có
các dịch vụ tương tự với mạng hạ tầng. Những yêu cầu này sẽ càng tăng theo sự phát
triển của các ứng dụng cho thiết bị di động.

Hạn chế năng lượng hoạt động (Energy-constrained operation): một số
hoặc tất cả nút trong mạng MANET đều sử dụng pin hoặc các nguồn năng lượng giới
hạn khác. Với những nút này, tiêu chí thiết kế hệ thống là tối ưu hóa để tiết kiệm năng
lượng.

Khả năng bảo mật vật lý giới hạn (Limited physical security): Mạng di
động không dây thường dễ bị đe dọa về mặt bảo mật ở mức vật lý hơn so với mạng
dây cáp cố định. Khả năng bị nghe trộm, giả mạo, hay tấn công từ chối dịch vụ ngày
càng gia tăng là một vấn đề cần được xem xét một cách cẩn thận. Hiện nay, các kỹ
thuật để bảo mật cho các liên kết thường được áp dụng cho các mạng để giảm các mối
đe dọa về mặt bảo mật. Đối với mạng MANET, việc các nút được tổ chức ngang hàng
sẽ cung cấp khả năng tránh được trường hợp điểm chịu lỗi duy nhất (single point of
failure) như đối với các mạng hạ tầng có cách tổ chức tập trung tại một điểm truy cập
duy nhất.
1.3.

Ứng dụng của mạng MANET



Một trong những ứng dụng lớn nhất của mạng MANET là trong môi
trường doanh nghiệp, khi mà nhu cầu kết nối trở nên rất quan trọng kể cả khi ở bên
ngoài các văn phòng. Ví dụ việc sử dụng mạng MANET giúp cho những người sử
dụng của doanh nghiệp có thể nhanh chóng thiết lập một cuộc họp trực tuyến bên
ngoài văn phòng mà không cần phải phụ thuộc vào một hạ tầng mạng nào.

Trong lĩnh vực quân sự, mạng MANET giúp tạo ra mạng lưới thông tin
liên lạc nhanh chóng đặc biệt là trong bối cảnh trên chiến trường, nơi mà một hạ tầng
mạng ổn định là điều rất khó được đảm bảo.

16



Mạng MANET còn giúp thiết lập được mạng lưới để phục vụ các dịch
vụ y tế và cứu hộ trong hoàn cảnh thiên tai như động đất, sóng thần… khi mà các hạ
tầng mạng đều đã bị phá hủy.


Trong lĩnh vực giáo dục, việc sử dụng mạng MANET có thể giúp tạo ra

các lớp học trực tuyến kết nối các thiết bị ở mọi nơi trong trường học giúp cho việc
giảng dạy và chia sẻ tài liệu dễ dàng hơn.


Ngoài ra, mạng MANET còn có nhiều ứng dụng khác như trong các hộ

gia đình, mạng MANET có thể giúp thiết lập kết nối tại mọi vị trí trong nhà. Hay đối
với lĩnh vực giải trí, mạng MANET có thể giúp mọi người kết nối với nhau để cùng
tham gia vào một trò chơi trực tuyến…


17


CHƯƠNG 2: GIAO THỨC SCTP
2.1.

Giới thiệu về giao thức SCTP

SCTP (Stream control tranmission protocol – giao thức điều khiển luồng truyền
tải)[14] là một giao thức truyền tải hoạt động ở tầng giao vận. SCTP cung cấp một số
tính năng giống với cả hai giao thức phổ biến là UDP và TCP. Bên cạnh đó, SCTP
cũng cung cấp thêm một số tính năng khác như multi-homing giúp tạo ra các đường dự
phòng để tăng tính tin cậy cũng như khả năng tự phục hồi trong quá tình truyển tải.
Ban đầu, SCTP được thiết kế để phục vụ việc truyền tín hiệu mạng điện thoại
(PSTN – Public switched telephoned network) trên nền mạng IP. Cùng với sự phát
triển của công nghiệp phần mềm, ngày càng nhiều ứng dụng có nhu cầu cao cho thấy
những hạn chế của các giao thức truyền thống như TCP và UDP. Do đó, cùng với sự
phát triển của ứng dụng, SCTP ngày càng trở nên phổ biến bên cạnh các giao thức
truyền thống.
SCTP được tổ chức chuẩn hóa IETF định nghĩa vào năm 2000 trong tài liệu RFC
4960.
2.2.

Kiến trúc tổng quan của SCTP

SCTP hoạt động ở tầng ứng dụng, là lớp nằm giữa các ứng dụng của người dùng
và lớp mạng. SCTP hoạt động dựa trên một giao thức vận chuyển không kết nối là IP.
SCTP chủ yếu cung cấp dịch vụ truyền tải thông điệp đáng tin cậy giữa các đầu cuối
của người sử dụng.

SCTP là giao thức hướng kết nối, nhưng liên kết trong SCTP là một khái niệm
rộng hơn. SCTP cho mỗi thiết bị đầu cuối khả năng để có thể cung cấp cho các thiết bị
đầu cuối khác (trong quá trình khởi động kết nối) một danh sách các địa chỉ để truyền
tải (nhiều địa chỉ IP kết hợp trên một cổng SCTP) mà qua đó thiết bị đầu cuối có thể
kết nối tới và từ đó bắt nguồn các gói tin SCTP. Việc truyền tin có thể trải dài trên tất
cả các cặp nguồn/đích có thể được tạo ra từ danh sách địa chỉ của mỗi thiết bị đầu
cuối.

18


_____________
|

SCTP User

_____________
|

|

SCTP User |

| Application |

|Application |

|-------------|

|----------- |


|

|

|

SCTP

|

Transport

|

|

|

Service

|

|

|-------------|

|

Transport |

Service

|

|------------|

|

|One or more

| IP Network

|IP address

\/

|

|appearances

/\

Service

SCTP

|_____________|

----


One or more|

|

IP address| IP Network |
appearances|

----

Service

|

|____________|

SCTP Node A |<-------- Network transport ------->| SCTP Node B

Hình 2. 1 Kết nối SCTP[14]

2.3.

Các chức năng chính của SCTP

2.3.1

Tạo và kết thúc kết nối

Một kết nối được bắt đầu bằng một yêu cầu từ người sử dụng SCTP. SCTP sử
dụng một cơ chế bắt tay 4 bước, khác với bắt tay 3 bước trong TCP. Để bắt đầu tạo
kết nối, một client sẽ mở đầu bằng việc gửi gói tin INIT đến server sau đó đi vào trạng

thái COOKIE-WAIT để chờ hồi đáp từ server. Server khi nhận được gói INIT sẽ ngay
lập tức gửi gói tin INIT ACK lại cho client trong đó có thông tin về trạng thái của
server và thông số để xác thực. Khi nhận được gói INIT ACK, client sẽ gửi lại gói
COOKIE-ECHOED bao gồm thông tin kết nối của server cùng với thông tin của
client. Server sau khi xác nhận thông tin cookie hợp lệ sẽ gửi lại gói COOKIE-ACK để
thiết lập kết nối. Việc sử dụng cơ chế COOKIE giúp SCTP tăng khả năng chống lại
các hình thức tấn công từ chối dịch vụ.

19


Hình 2. 2 Quá trình khởi tạo kết nối SCTP

Khác với TCP, SCTP không hỗ trợ trạng thái half-open – khi một đầu kết nối vẫn
tiếp tục gửi dữ liệu trong khi đầu còn lại đã đóng. Trong SCTP, khi một trong hai đầu
đóng kết nối thì cả hai bên sẽ dừng gửi và nhận dữ liệu.
2.3.2

Truyền dữ liệu theo luồng

Thuật ngữ luồng (stream) trong SCTP dùng để chỉ một chuỗi các bản tin người
dùng được truyền đi theo thứ tự. SCTP có thể truyền dữ liệu đi theo nhiều luồng khác
nhau. Khác với TCP, khi mà dữ liệu chỉ được truyền đi theo một luồng byte cố định.
Trong quá trình khởi tạo kết nối, các ứng dụng sử dụng SCTP sẽ xác định số
luồng được sử dụng trong liên kết. Số lượng luồng này sẽ được thỏa thuận giữa hai
đầu liên kết trong quá trình tạo lập. Trong quá trình truyền, SCTP sẽ gán thêm vào các
bản tin của người dùng số hiệu luồng và số thứ tự của bản tin trong luồng (SSN –
Stream sequence number). Bên nhận sẽ đảm bảo các bản tin trong cùng một luồng sẽ
được nhận theo đúng thứ tự. Tuy nhiên, trong khi một luồng đang bị chặn để chờ nhận
bản tin đúng thứ tự thì việc truyền tải ở các luồng khác vẫn có thể diễn ra bình thường.

SCTP cũng cung cấp một cơ chế để bỏ qua việc kiểm tra thứ tự của các bản tin
trong một luồng. Bản tin gửi bằng cơ chế này sẽ được chuyển cho các ứng dụng SCTP
ngay khi chúng được nhận[14].
2.3.3

Phân mảnh dữ liệu người dùng

Khi cần thiết, SCTP sẽ phân mảnh bản tin của người dùng để đảm bảo rằng gói
tin SCTP được chuyển xuống lớp dưới sẽ thỏa mãn giá trị MTU (Maximum
Tranmission Unit – Kích thước tối đa của gói tin được mạng cho phép) của liên kết.

20


Trong quá trình nhận, các mảnh sẽ được lắp ráp lại thành một bản tin hoàn chỉnh trước
khi chuyển lên cho các ứng dụng SCTP.
2.3.4

Biên nhận và tránh tắc nghẽn

SCTP sẽ sử dụng giá trị TSN (Tranmission Sequence Number – Số thứ tự truyền
tải) để gán cho mỗi bản tin hoặc mảnh bản tin của người dùng. Giá trị TSN này là độc
lập với giá trị SSN được gán ở các luồng. Bên nhận sẽ biên nhận tất cả các giá trị TSN
nhận được, kể cả khi các giá trị nhận được là không liên tục. Bằng cách này, việc
truyền tin đáng tin cậy vẫn được thực hiện độc lập với việc truyền dữ liệu theo luồng.
Chức năng của việc biên nhận và tránh tắc nghẽn là đảm bảo việc gửi lại gói tin
khi mà gói biên nhận không được gửi đến đúng lúc. Việc gửi lại gói tin sẽ được kiểm
soát bởi thủ tục tránh tắc nghẽn tương tự như trong TCP.
2.3.5


Đóng gói chunk

Trong SCTP, bản tin được phân thành các phân đoạn (chunk) trong quá trình gửi
đi. Các gói tin SCTP được truyền xuống tầng dưới bao gồm một phần đề mục (header)
chung cùng với một hoặc nhiều chunk tiếp theo. Mỗi chunk sẽ có thể chứa dữ liệu của
người dùng hoặc thông tin điều khiển của SCTP. Người dùng SCTP có thể yêu cầu
đóng gói nhiều hơn một bản tin vào trong cùng một gói tin của SCTP. Chức năng đóng
gói chunk giúp cho việc ghép thành một gói tin SCTP hoàn chỉnh và việc tháo gỡ gói
tin ở bên nhận.
2.3.6

Xác nhận gói tin

Một trường Verification tag bắt buộc dài 32-bit được đưa vào trong header chung
của SCTP. Giá trị của trường này được chọn bởi mỗi đầu cuối trong quá trình tạo lập
kết nối. Những gói tin được nhận với giá trị trường này không hợp lệ sẽ bị loại bỏ,
nhằm chống lại các gói tin SCTP từ liên kết cũ và để bảo đảm vấn đề bảo mật cho liên
kết.
Thuật toán CRC32c checksum được sử dụng để cung cấp thêm khả năng bảo vệ
dữ liệu trên mạng[14]. Bên nhận nếu nhận được một gói tin SCTP có CRC32c
checksum không hợp lệ sẽ âm thầm loại bỏ nó.
2.3.7

Quản lý tuyến đường

Người sử dụng SCTP có thể dùng một tập các địa chỉ để làm đích đến cho các
gói tin SCTP. Chức năng quản lý tuyến đường của SCTP sẽ chọn địa chỉ đích cho các

21



gói tin dựa trên yêu cầu của ứng dụng và trạng thái, khả năng kết nối (reachability)
hiện thời của các đích đến. Tính năng quản lý tuyến đường của SCTP quản lý trạng
thái kết nối qua các bản tin hearbeat gửi đến các địa chỉ đích một cách định kì và cập
nhật thông tin khi có sự thay đổi ở các đích đến. Tính năng quản lý tuyến đường còn
có nhiệm vụ thông báo cho bên nhận biết các địa chỉ nguồn hợp lệ trong quá trình khởi
tạo kết nối, và thông báo cho ứng dụng SCTP về các địa chỉ từ bên nhận.
Trong quá trình khởi tạo, một tuyến đường chính sẽ được định nghĩa cho mỗi
điểm đầu cuối, tuyến đường này sẽ được sử dụng để gửi các gói tin SCTP bình thường.
Bên phía nhận, tính năng quản lý tuyến đường có nhiệm vụ xác thực sự tồn tại
của liên kết SCTP mà gói tin thuộc về trước khi xử lý nó.
Chú ý: Các tính năng quản lý tuyến đường và xác nhận gói tin được thực hiện
cùng lúc, vì vậy dù được miêu tả độc lập ở trên, trên thực tế hai tính năng này không
thể được thực hiện như hai tính năng độc lập.

Hình 2. 3 Các chức năng chính của SCTP

2.4.

Gói tin SCTP
Một gói tin SCTP bao gồm phần tiêu đề chung và các chunk. Một chunk sẽ chứa

thông tin điều khiển hoặc dữ liệu của người dùng.
Định dạng chung của một gói tin SCTP như sau[14]:

22


Hình 2. 4 Cấu trúc gói tin SCTP


Nhiều chunk có thể được đóng gói vào trong cùng một gói tin SCTP cho đến khi
chúng đạt đến giá trị MTU, trừ các chunk INIT, INIT ACK, và SHUTDOWN
COMPLETE. Những chunk này sẽ không được đóng gói cùng với các chunk khác
trong cùng một gói tin.
Nếu một bản tin của người dùng vượt quá kích thước của một gói tin SCTP nó sẽ
được phân mảnh thành nhiều chunk để truyền đi.
2.4.1

Trường tiêu đề chung (common header)

Trường tiêu đề chung bao gồm số cổng nguồn, số cổng đích, thẻ xác thực và
trường xác thực gói tin.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|

Source Port Number

|

Destination Port Number


|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|

Verification Tag

|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|

Checksum

|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Hình 2. 5 Cấu trúc tiêu đề chung của SCTP

23


Trường số cổng nguồn (Source port number): có độ dài 16 bits. Đây là số
cổng của ứng dụng gửi SCTP. Nó có thể được sử dụng bởi bên nhận để kết hợp với địa
chỉ IP nguồn, số cổng SCTP đích, và có thể là cả địa chỉ IP đích để xác định liên kết
của gói tin được gửi đến. Số cổng không được phép bẳng 0.
Trường số cổng đích (Destination port number): có độ dài 16 bits. Trường
này lưu số cổng đích của gói tin SCTP. Bên nhận gói tin sẽ dựa vào giá trị của trường
này để chuyển gói SCTP đến đúng với ứng dụng. Trường này cũng không được phép

bằng 0.
Thẻ xác thực (Verification tag): có độ dài 32 bits. Bên nhận gói tin sử dụng
trường này để xác minh nguồn gửi của gói tin SCTP. Trong quá trình truyền, giá trị
của thẻ xác thực phải được đặt theo giá trị của thẻ bắt đầu (Initiate tag) được nhận từ
đầu kết nối còn lại trong quá trình thiết lập kết nối, trừ các trường hợp ngoại lệ sau:
 Một gói tin chứa chunk INIT phải có trường thẻ xác thực có giá trị bằng 0.
 Một gói tin chứa chunk SHUTDOWN COMPLETE với bit T khác 0 phải
có giá trị của thẻ xác thực được sao chép từ gói tin chứa chunk
SHUTDOWN ACK.
 Một gói tin chứa chunk ABORT phải có giá trị thẻ xác thực được sao chép
từ gói tin lỗi khiến cho gói tin chứa chunk ABORT được gửi.
 Gói tin SCTP chứa chunk INIT sẽ không thể chứa thêm loại chunk nào
khác.
Trường kiểm tra lỗi (checksum): có độ dài 32 bits. Trường này chứa giá trị
checksum của gói tin. SCTP sử dụng thuật toán CRC32c để tính toán giá trị checksum.
2.4.2

Trường chunk

Chunk là đơn vị thông tin nhỏ nhất trong thiết kế của SCTP. Mỗi chunk sẽ có các
thông tin bao gồm các trường: kiểu chunk (chunk type), cờ (flag), độ dài (length) và
giá trị (Value)
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Chunk Type | Chunk Flags |

Chunk Length
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\
\
/
Chunk Value
/
\
\
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

24


Hình 2. 6 Cấu trúc trường chunk

Trường kiểu chunk (chunk type): có độ dài 8 bits. Trường này xác định kiểu
thông tin chứa trong trường giá trị chunk. Trường này có giá trị từ 0 đến 254. Giá trị
255 được dành để cho việc mở rộng trong tương lai.
Giá trị của các kiểu chunk được định nghĩa trong bảng sau:
Bảng 2- 1 Các giá trị chunk type
Value

Abbreviation

Description

0


DATA

Payload data

1

INIT

Initiation

2

INIT ACK

Initiation acknowledgement

3

SACK

Selective acknowledgement

4

HEARTBEAT

Heartbeat request

5


HEARTBEAT ACK

Heartbeat acknowledgement

6

ABORT

Abort

7

SHUTDOWN

Shutdown

8

SHUTDOWN ACK

Shutdown acknowledgement

9

ERROR

Operation error

10


COOKIE ECHO

State cookie

11

COOKIE ACK

Cookie acknowledgement

12

ECNE

Explicit congestion notification echo (reserved)

13

CWR

Congestion window reduced (reserved)

14

SHUTDOWN COMPLETE Shutdown complete

15-62

Reserved by IETF


63

IETF-defined chunk extensions

64-126

Reserved by IETF

127

N/A

IETF-defined chunk extensions

128-190

Reserved by IETF

191

IETF-defined chunk extensions

192-254

Reserved by IETF

255

IETF-defined chunk extensions


25


×