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

Truyền video dùng giao thức điều khiển tắc nghẽn đa đường

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 (1.62 MB, 63 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

VŨ DUY KHÁNH

TRUYỀN VIDEO DÙNG GIAO THỨC
ĐIỀU KHIỂN TẮC NGHẼN ĐA ĐƯỜNG

LUẬN VĂN THẠC SĨ KỸ THUẬT

TP.HỒ CHÍ MINH - 2016


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

VŨ DUY KHÁNH

TRUYỀN VIDEO DÙNG GIAO THỨC
ĐIỀU KHIỂN TẮC NGHẼN ĐA ĐƯỜNG
CHUYÊN NGÀNH : HỆ THỐNG THÔNG TIN
MÃ SỐ:

0

60.48.01.04

LUẬN VĂN THẠC SĨ KỸ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. VÕ THỊ LƯU PHƯƠNG


TP. HỒ CHÍ MINH - 2016


i

LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai
công bố trong bất cứ công trình nào.
TPHCM, Ngày 06 tháng 9 năm 2016
Học viên thực hiện luận văn

Vũ Duy Khánh


ii

LỜI CÁM ƠN
Lời đầu tiên em xin gửi lời cảm ơn đến toàn thể các thầy, cô giáo Học viện
Công nghệ Bưu chính Viễn thông đã tận tình chỉ bảo em trong suốt thời gian học tập
tại nhà trường.
Em xin gửi lời cảm ơn sâu sắc đến cô giáo TS.Võ Thị Lưu Phương, người đã
trực tiếp hướng dẫn, tạo mọi điều kiện thuận lợi và tận tình chỉ bảo cho em trong suốt
thời gian làm luận văn tốt nghiệp.
Bên cạnh đó, để hoàn thành luận văn tốt nghiệp, em cũng đã nhận được rất
nhiều sự giúp đỡ, những lời động viên quý báu của các bạn bè, gia đình và đồng
nghiệp. Em xin chân thành cảm ơn.
Tuy nhiên, do thời gian có hạn, mặc dù đã nỗ lực hết sức mình, nhưng chắc
rằng luận văn của em khó tránh khỏi thiếu sót. Em rất mong nhận được sự thông cảm
và chỉ bảo tận tình của quý thầy cô và các bạn.

Trân trọng cám ơn.
TPHCM, ngày 06 tháng 9 năm 2016
Học viên thực hiện luận văn

Vũ Duy Khánh


iii

MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... i
LỜI CÁM ƠN…………………………. ................................................................... ii
MỤC LỤC…………… ............................................................................................. iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT ................................................v
DANH SÁCH BẢNG .............................................................................................. vii
DANH SÁCH HÌNH VẼ ........................................................................................ viii
MỞ ĐẦU………………… .........................................................................................1
Chương 1 - TỔNG QUAN VỀ GIAO THỨC MPTCP………. .................................4
1.1

Tổng quan về giao thức MPTCP....................................................................4

1.2

Nền tảng kiến trúc MPTCP ............................................................................4

1.3

Nguyên lý điều khiển .....................................................................................8
Cân bằng tải trên giao thức MPTCP........................................................8

Cải thiện băng thông ................................................................................8
Công bằng và truyền đơn đường .............................................................8

1.4

Hoạt động của MPTCP ..................................................................................9
Thiết lập kết nối MPTCP.........................................................................9
Khởi tạo luồng con ................................................................................11
Ánh xạ số thứ tự dữ liệu ........................................................................14
Đóng một kết nối MPTCP .....................................................................16

1.5

Các vấn đề nghiên cứu liên quan đến MPTCP ............................................17

1.6

Kết luận chương 1 ........................................................................................18

Chương 2 - TỔNG QUAN VIDEO STREAMING DÙNG HTTP ..........................19
2.1 Giới thiệu video streaming ...........................................................................19
2.2

Tổng quan adaptive streaming dựa trên nền tảng HTTP .............................20
Tổng quan ..............................................................................................20
Mô tả hệ thống MPEG - DASH ............................................................22
Mô tả tập tin MPD .................................................................................23

2.3


Giới thiệu tổng quan phương pháp adaptation .............................................26
Phương pháp thông lượng .....................................................................26
Phương pháp bộ đệm .............................................................................27

2.4

Tổng quan adaptation của Dash.js ...............................................................29
Phương pháp thông lượng của Dash .....................................................31


iv

Phương pháp bộ đệm của Dash .............................................................32
2.5

Các vấn đề nghiên cứu liên quan đến giải pháp Dash .................................33

2.6

Kết luận chương 2 ........................................................................................33

Chương 3 - THỰC NGHIỆM VÀ ĐÁNH GIÁ ........................................................34
3.1 Mô tả video mẫu theo chuẩn Dash ...............................................................34
3.2

Triển khai thực nghiệm ................................................................................35

3.3

Tiêu chí đánh giá chất lượng video ..............................................................36

Thời gian video ở chất lượng tốt nhất ...................................................37
Tổng số lần switch ảnh hưởng đến chất lượng video ............................40
Dựa trên số lần switch ...........................................................................43
Dựa trên bitrate trung bình ....................................................................45

3.4

Kết luận chương 3 ........................................................................................47

KẾT LUẬN VÀ KIẾN NGHỊ...................................................................................48
DANH MỤC TÀI LIỆU THAM KHẢO ..................................................................50


v

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt
ABR

Tiếng anh
Adaptive bitrate

Tiếng việt
Kỹ thuật truyền dữ liệu đa phương
tiện thông qua mạng

ADSL

CDN


Asymmetric Digital Subscriber

Đường dây thuê báo số bất đối

Line

xứng

content delivery network or

Mạng phân phối nội dung

content distribution network
DASH

HDS

Dynamic adaptive streaming

Streaming thích ứng động thông

over HTTP

qua HTTP

HTTP Dynamic Streaming

Công nghệ thích ứng động của
Adobe


HLS

HTTP Live Streaming

Công nghệ thích ứng động của
Apple

HTTP

Hypertext transfer protocol

Giao thức truyền siêu văn bản

IANA

Internet Assigned Numbers

Tổ chức cấp phát số hiệu Internet

Authority
Internet Engineering Task

Tổ chức nghiên cứu, phát triển và

Force

quyết định các chuẩn Internet

IP


Internet Protocol

Giao thức Internet

LTE

Long Term Evolution

Công nghệ di động thế hệ thứ tư

MPD

Media Presentation Description Mô tả trình diễn phương tiện

IETF


vi

MPTCP

MultiPath Transmission

Giao thức truyền tải đa đường

Control Protocol
NAT

Network Address Translation


Chuyển đổi IP cục bộ sang IP công
cộng

RTMP

Real-Time Messaging Protocol

Giao thức được Adobe phát triển

RTSP

Real Time Streaming Protocol

Giao thức truyền tin thời gian thực

TCP

Transmission control protocol

Giao thức truyền tải đơn đường

TNG

Transport next-generation

Tầng vận chuyển thế hệ mới


vii


DANH SÁCH BẢNG
Số hiệu bảng

Tên bảng

Trang

1.1

Bảng thông tin của giao thức MPTCP

9

2.1

Bảng các tham số đo lường

26

2.2

So sánh sự khác biệt dựa trên bộ đệm của phương pháp

28

thích ứng
3.1

Mô tả tốc độ bitrate và tỉ lệ khung hình của phân đoạn


34

6s
3.2

Mô tả tỉ lệ băng thông giữa hai đường khác nhau

36


viii

DANH SÁCH HÌNH VẼ
Số hiệu hình vẽ

Tên hình vẽ

Trang

1.1

Mô hình phân chia chức năng của Tng

5

1.2

Các thiết bị trung gian trong mô hình mạng Internet

5


thế hệ mới
1.3

Mối quan hệ giữa Tng (bên trái) và MPTCP

6

(bên phải)
1.4

Ví dụ về một kịch bản sử dụng MPTCP

10

1.5

Bản tin Multipath Capable

10

1.6

Mô tả quá trình khởi tạo phiên kết nối đầu tiên của

11

giao thức MPTCP
1.7


Mô tả quá trình khởi tạo một luồng con mới của

12

giao thức MPTCP
1.8

Ví dụ về sử dụng Token

14

1.9

Bản tin Data Sequence Mapping

16

2.1

Biểu đồ lưu lượng internet từ 2013 đến 2018

19

2.2

Kiến trúc phân phối nội dung dựa trên HTTP

21

Streaming

2.3

Thành phần của tiêu chuẩn DASH [8]

23

2.4

Thành phần của tiêu chuẩn DASH [8]

24

2.5

Mô hình làm việc Adaptive Dynamic Streaming

25

2.6

Mô hình adaptation logic của Dash.js

30

2.7

Mô hình hoạt đông của Throughtput Rule

31


3.1

Mô hình kiểm thử video streaming trên giao thức

35

MPTCP
3.2(a)

Sự thay đổi chất lượng video dựa trên độ dài phân
đoạn của 3 mẫu trung bình

37


ix

3.2(b)

Sự thay đổi chất lượng video dựa trên tỉ lệ băng

38

thông giữa hai đường khác nhau của 3 mẫu trung
bình
3.3(a)

Sự thay đổi chất lượng video dựa trên độ dài phân

38


đoạn của 6 mẫu trung bình
3.3(b)

Sự thay đổi chất lượng video dựa trên tỉ lệ băng

39

thông giữa hai đường khác nhau của 6 mẫu trung
bình
3.4(a)

Tổng số lần switch ảnh hưởng đến chất lượng video

40

dựa trên độ dài phân đoạn của 3 mẫu trung bình
3.4(b)

Tổng số lần switch ảnh hưởng đến chất lượng video

41

dựa trên tỉ lệ băng thông giữa hai đường khác nhau
của 3 mẫu trung bình
3.5(a)

Tổng số lần switch ảnh hưởng đến chất lượng video

41


dựa trên độ dài phân đoạn của 6 mẫu trung bình
3.5(b)

Tổng số lần switch ảnh hưởng đến chất lượng video

42

dựa trên tỉ lệ băng thông giữa hai đường khác nhau
của 6 mẫu trung bình
3.6

Sự thay đổi số lần switch dựa trên độ dài phân đoạn

43

của 3 mẫu trung bình
3.7

Sự thay đổi số lần switch dựa trên độ dài phân đoạn

44

của 6 mẫu trung bình
3.8

Sự thay đổi bitrate trung bình dựa trên độ dài phân

45


đoạn của 3 mẫu trung bình
3.9

Sự thay đổi bitrate trung bình dựa trên độ dài phân
đoạn của 6 mẫu trung bình

46


1

MỞ ĐẦU
Hiện nay, nhu cầu sử dụng thiết bị di động đã trở nên rất phổ biến không chỉ
ở Việt Nam mà trên toàn thế giới. Trong những năm gần đây, những thiết bị di động
như điện thoại thông minh (smartphone), máy tính bảng (tablet), máy tính xách tay
(laptop) đều hỗ trợ kết nối băng thông rộng như : ADSL, WiFi, 3G/4G, LTE. Các
ứng dụng ngày nay cũng đòi hỏi nhiều dung lượng, cho nên nhu cầu băng thông cần
được tăng lên. Theo các nghiên cứu gần đây [1], lưu lượng dữ liệu di động sẽ tăng
trưởng một cách mạnh mẽ từ năm 2010 đến năm 2015, gần như tăng gấp đôi mỗi
năm. Trong đó, video chiếm 65% tổng số lưu lượng dữ liệu di động vào năm 2015.
Video trực tuyến trên mạng Internet đã trở nên phổ biến trong những năm qua.
Tuy nhiên, các giải pháp video trực tuyến luôn bị hạn chế bởi việc họ sử dụng một
đường mạng duy nhất. Dynamic Adaptive Streaming over HTTP (DASH) [23] là một
giao thức thích ứng dòng, nó cho phép dòng video chuyển đổi giữa các tốc độ bit dựa
trên hiệu suất mạng, để điều tiết việc thay đổi băng thông và sử dụng băng thông hiện
có hiệu quả hơn.
Đa số các thiết bị đầu cuối hiện nay được trang bị nhiều công cụ kết nối bằng
nhiều đường, nhưng thông tin liên lạc thường được giới hạn bởi một con đường duy
nhất cho mỗi lần kết nối. Sử dụng tài nguyên trong hệ thống sẽ hiệu quả hơn nếu được
sử dụng đa đường kết nối đồng thời. Giao thức Multipath TCP của tổ chức IETF [2],

nhằm phát triển và mở rộng thêm các đặc điểm từ giao thức TCP, cho phép một kết
nối TCP phân chia thành nhiều luồng con và phân bổ lưu lượng thông qua những
luồng con riêng biệt. Mục tiêu của giao thức này là sử dụng nhiều đường đồng thời
giữa hai thiết bị đầu cuối nhằm cải thiện đáng kể hiệu suất cho nhu cầu truyền tải hiện
nay.
Chính vì những yêu cầu cấp thiết trên, tôi xin chọn đề tài nghiên cứu : “ Truyền
video dùng giao thức điều khiển tắc nghẽn đa đường ”.
 Mục tiêu nghiên cứu của luận văn:
-

Xây dựng mô hình kiểm thử video streaming dùng giao thức MPTCP.


2

-

Viết hoặc chỉnh sửa chương trình MPEG-DASH player để có thể giám sát các
thông số về chất lượng khi truyền video.

-

Đo đạt và phân tích chất lượng khi truyền video trên MPTCP.

-

Đề xuất các phương án khắc phục những nhược điểm khi truyền video trên
MPTCP.
Với mục tiêu nghiên cứu trên, đối tượng nghiên cứu của luận văn là như sau:


tìm hiểu giao thức truyền tải đa đường MPTCP, tìm hiểu video streaming dùng HTTP,
MPEG-DASH, chỉnh sửa player để đánh giá và cải tiến chất lượng video khi truyền
trên giao thức MPTCP.
 Phạm vi nghiên cứu :
-

Nghiên cứu giao thức điều khiển tắc nghẽn đa đường MPTCP: nguyên lý điều
khiển và kiến trúc của MPTCP.

-

Tìm hiểu và nghiên cứu video streaming dùng HTTP, MPEG-DASH: bộ thích
ứng (adaptation set), trình diễn (representation), phân đoạn video (segment),
mô tả tập tin MPD (media presentation description)

-

Xây dựng hệ thống kiểm thử video streaming MPEG-DASH trên MPTCP.

-

Phân tích và đánh giá kết quả đo lường khi truyền video trên MPTCP.

-

Đề xuất phương pháp cải tiến player trên giao thức MPTCP.
Luận văn gồm 3 chương tập trung nghiên cứu những vấn đề sau:
Chương 1: Tổng quan về giao thức MPTCP
Chương này giới thiệu tổng quan về nền tảng kiến trúc của giao thức truyền


tải đa đường MPTCP, tìm hiểu các nguyên lý điều khiển và hoạt động của giao thức
MPTCP. Từ đó, đưa ra các ứng dụng truyền video trên giao thức truyền tải đa đường
MPTCP.
Chương 2 : Tổng quan video streaming dùng HTTP
Chương này tìm hiểu tổng quan về chuẩn MPEG-DASH như : mô tả hệ thống,
mô hình dữ liệu DASH và một số các mô tả phương tiện trình diễn. DASH là một
tiêu chuẩn dành cho việc điều phối linh hoạt các dòng video thông qua giao thức


3

HTTP, nó có khả năng thay thế các công nghệ hiện tại như : Smooth Streaming của
Microsoft, HTTP Dynamic Streaming (HDS) của Adobe, HTTP Live Streaming
(HLS) của Apple. Bên cạnh đó, cũng giới thiệu và mô tả kỹ thuật adaptation dựa trên
phương pháp thông lượng và phương pháp bộ đệm. Tiếp theo, chúng tôi tiến hành
chỉnh sửa player Dash.js client, theo quan sát thì client mặc định hoạt động chạy hỗn
hợp trên bốn rule : ThroughtputRule, BufferOccupancyRule, InsufficientBufferRule,
AbandonRequestRule trong quá trình trình chiếu. Chúng tôi sữa đổi Throughtput rule
để kiểm chứng chất lượng video trên môi trường truyền đa đường.
Chương 3 : Thực nghiệm và đánh giá
Chương này chúng tôi tiến hành xây dựng hệ thống video streaming hoạt động
trên cả MPTCP và TCP. Từ đó, chúng tôi kiểm thử và đưa ra các kết quả đo lường
chất lượng khi truyền video trên giao thức MPTCP, nhằm giải quyết bài toán cải thiện
thông lượng và tránh tắc nghẽn đa đường.


4

Chương 1 - TỔNG QUAN VỀ GIAO THỨC MPTCP
1.1 Tổng quan về giao thức MPTCP

Multipath TCP là sự cải thiện từ TCP cho phép tận dụng triệt để nguồn tài
nguyên nhằm đảm bảo máy tính kết nối mạng trên nhiều đường mà không cần phải
thay đổi giao diện. MPTCP cải thiện băng thông, điều khiển tắc nghẽn tốt hơn so với
TCP thông thường bằng cách cho phép nhiều luồng con gửi gói tin trên đường truyền.
Về khía cạnh ứng dụng, multipath TCP cải thiện chất lượng băng thông bằng việc sử
dụng nhiều đường, một kết nối multipath TCP có băng thông tốt hơn so với kết nối
TCP ở trạng thái tốt nhất. Ngoài ra, một cơ chế cho giao thức điều khiển tắc nghẽn
đa đường là khả năng phục hồi (độ sẵn sàng cao): khi một luồng con mất kết nối thì
nó sẽ chuyển dữ liệu sang luồng con khác. Thêm vào đó, multipath TCP có chức năng
hợp nhất tài nguyên nhằm giải quyết vấn đề tắc nghẽn bằng cách chuyển dữ liệu qua
các con đường ít tắc nghẽn hơn [2].
Thiết kế của MPTCP ảnh hưởng bởi nhiều yêu tố, trong số đó nổi bật nhất là
khả năng tương thích ứng dụng và tương thích mạng. Tương thích ứng dụng nghĩa là
ứng dụng trước đây chạy trên nền TCP giờ đây có thể chạy trên MPTCP mà không
cần phải thay đổi giao diện. Tiếp đó, MPTCP phải chạy được trên những phương tiện
mà TCP vẫn thường chạy. Internet hiện nay có những thiết bị trung gian như NAT,
tường lửa, và rất nhiều các proxy khác. Không giống như các IP router, các thiết bị
này biết rõ về kết nối TCP mà nó chuyển tiếp và tác động đến kết nối này theo cách
của chúng. Việc thiết kế TCP mở rộng sao cho nó có thể chạy qua các thiết bị trung
gian một cách dễ dàng, đó là một thách thức [2].

1.2 Nền tảng kiến trúc MPTCP
Phần này trình bày kiến trúc tầng vận chuyển, là một cơ sở để xây dựng một
MPTCP hiệu quả và các thành phần chức năng được sử dụng trong thiết kế MPTCP.
Kiến trúc được sử dụng là Tng (Transport next-generation, “ tầng vận chuyển
thế hệ mới ”). Tng không phải là kiến trúc duy nhất hỗ trợ MPTCP, nó là sự kết hợp


5


từ việc nghiên cứu và phát triển nhiều kiến trúc có hỗ trợ MPTCP [2]. Các chức năng
chính của Tng được thể hiện trong hình 1.1 bên dưới.

Hình 1.1: Mô hình phân chia chức năng của Tng

Tng chia tầng vận chuyển thành 2 phần: hướng ứng dụng và hướng mạng.
Hướng ứng dụng (lớp ngữ nghĩa): chức năng chính là hỗ trợ và bảo vệ các thông tin
liên lạc tại đầu cuối. Trong khi tầng hướng mạng thực hiện các chức năng như nhận
dạng thiết bị đầu cuối (trên cơ sở xác định số cổng) và điều khiển tắc nghẽn. Các chức
năng này cũng đã được chứng minh trong thực tế để có thể kết nối chặt chẽ với các
nhà khai thác mạng và các thiết bị trung gian như trong hình 1.2 bên dưới [2].

Hình 1.2: Các thiết bị trung gian trong mô hình mạng Internet thế hệ mới

Dựa trên nền tảng là mô hình Tng đã được chúng tôi phân tích ở phần trước,
chúng tôi chia MPTCP thành 2 tầng con để kết nối với nhau thông qua một giao diện


6

được xác định. Kiến trúc của MPTCP được thiết kế theo mô hình phân chia Tng như
hình 1.3 bên dưới.
Tầng con MPTCP có vai trò như một lớp ngữ nghĩa hướng ứng dụng, nó có
khả năng tương thích với lớp ứng dụng. Thành phần của luồng con TCP cung cấp khả
năng tương thích mạng và đóng vai trò như một luồ ng TCP thông thường trong mạng,
cũng như tầng Flow/Endpoint là thành phần hướng mạng [2].

Hình 1.3: Mối quan hệ giữa Tng (bên trái) và MPTCP (bên phải)

MPTCP hoạt động ở tầng vận chuyển và sự tồn tại của nó trở nên trong suốt

đối với các lớp cao hơn hoặc thấp hơn. MPTCP là giao thức được mở rộng từ TCP.
Nó nằm dưới lớp ứng dụng nhưng trong phần mở rộng thì MPTCP sẽ quản lý nhiều
luồng con TCP dưới nó. Để làm được điều này, nó phải thực hiện các chức năng sau:
 Quản lý đường dẫn: Chức năng này phát hiện và sử dụng trên nhiều
đường dẫn giữa hai host. Các tính năng của quản lý đường dẫn là cơ
chế để báo hiệu địa chỉ thay thế cho máy chủ, và cơ chế để thiết lập
luồng con mới gia nhập vào một kết nối MPTCP đang tồn tại [3].
 Lập lịch cho các phân đoạn: Chức năng này chia dòng bytes nhận được
từ tầng ứng dụng thành các phân đoạn để truyền đi trên nhiều luồng con
sẵn có. Thiết kế MPTCP sử dụng một ánh xạ đánh số thứ tự dữ liệu,
liên kết các phân đoạn được gửi trên các luồng con khác nhau bằng một
chuỗi số ở mức kết nối, do đó cho phép các phân đoạn gửi trên các
luồng con khác nhau được sắp xếp lại đúng thứ tự ở bên nhận. Lập lịch
gói tin là phụ thuộc vào thông tin về sự sẵn có của các đường dẫn từ
thành phần quản lý đường dẫn, và sau đó nó sử dụng các luồng con để
truyền các phân đoạn đã xếp thành hàng đợi. Chức năng này cũng chịu


7

trách nhiệm cho việc sắp xếp lại các phân đoạn ở cấp kết nối khi nhận
được gói tin từ các luồng con TCP, theo ánh xạ chuỗi dữ liệu.
 Giao diện luồng con: Một thành phần luồng con mất phân đoạn từ các
thành phần lập lịch biểu gói tin và chúng được truyền trên một con
đường cụ thể, đảm bảo việc chuyển giao gói tin tới các máy chủ có thể
nhận biết được. MPTCP sử dụng TCP bên dưới để đảm bảo khả năng
tương thích. Nhiệm vụ của TCP trong trường hợp này là thêm số thứ tự
riêng của mình để các phân đoạn nhận biết và truyền lại các gói tin bị
mất ở lớp luồng con. Về phía người nhận, các luồng con tái hợp dữ liệu
vào phần lập lịch biểu gói tin ở mức kết nối MPTCP, ánh xạ đánh số

thứ tự dữ liệu của thành phần lập lịch gói tin bên gửi cho phép sắp xếp
toàn bộ dòng byte theo đúng như thứ tự bên gửi.
 Điều khiển tắc nghẽn: Chức năng này điều khiển kiểm soát tắc nghẽn
trên các luồng con. Thuật toán điều khiển tắc nghẽn phải đảm bảo rằng
các kết nối MPTCP không chiếm quá nhiều băng thông so với lưu lượng
trên TCP đơn đường. Trong trường hợp cả hai đang nằm trong nút cổ
chai.
Các chức năng này hoạt động phù hợp và liên quan chặt chẽ với nhau. Thể
hiện như sau:
 Quản lý Đường dẫn sau khi thiết lập kết nối trên nhiều đường dẫn giữa
hai host. Tiếp theo, chức năng sắp xếp gói tin sau đó nhận được một
dòng dữ liệu từ các ứng dụng dành cho mạng, và thực hiện các hoạt
động cần thiết trên dữ liệu nhận được (ví dụ phân đoạn dữ liệu thành
các phân đoạn ở cấp kết nối MPTCP và đánh số thứ tự cấp kết nối) rồi
gửi nó xuống lớp luồng con. Luồng con sau đó thêm số thứ tự riêng ,
khung báo nhận ACKs, và chuyển chúng vào mạng. Lớp luồng con bên
nhận sắp xếp lại dữ liệu (nếu cần thiết) và chuyển dữ liệu sau khi xử lý
lên cho thành phần lập lịch gói tin, thành phần này sẽ sắp xếp dữ liệu
lại một lần nữa nhưng ở cấp kết nối MPTCP và gửi dòng dữ liệu lên


8

tầng ứng dụng để xử lý. Cuối cùng thành phần kiểm soát tắc nghẽn tồn
tại như một phần của thành phần lập lịch gói tin (tính toán, lập lịch các
phân đoạn nên gửi với tốc độ nào, ở luồng con nào...).

1.3 Nguyên lý điều khiển
Cân bằng tải trên giao thức MPTCP
Hiện tượng nghẽn mạng: xảy ra khi số lượng gói tin đến nút mạng vượt quá

khả năng xử lý của nó hoặc vượt quá khả năng truyền tải của các đường truyền ra,
điều đó dẫn đến việc thông lượng của mạng bị giảm đi khi lưu lượng đến mạng tăng
lên. Hiện tượng tắc nghẽn có thể xảy ra ở một hoặc một số nút mạng, hay trên toàn
mạng. Để đối phó với các hiện tượng tắc nghẽn thì tính năng cân bằng tải trên giao
thức MPTCP sẽ giải quyết được vấn đề cân bằng lưu lượng giữa các đường dẫn, nó
sẽ tìm ra các con đường không sử dụng đến trong khoảng thời gian này để giải phóng
và tìm ra các đường dẫn mới cung cấp cho người dùng sử dụng các đường dẫn này.

Cải thiện băng thông
Kết nối giữa các thiết bị đầu cuối trong giao thức điều khiển tắc nghẽn đa
đường được hình thành từ một hoặc nhiều luồng con. Các luồng con sẽ tạo ra các cặp
địa chỉ khác nhau, và truyền dữ liệu cùng lúc trên các luồng con nhằm tăng thông
lượng so với giao thức truyền tải đơn đường [3].

Công bằng và truyền đơn đường
Một luồng đa đường không nên chấp nhận tăng khả năng (trọng số) từ bất cứ
những tài nguyên chia sẽ nào bởi những đường đi khác của nó hơn là một luồng đơn
chỉ sử dụng cho một trong những đường đi này. Điều này bảo đảm việc nó sẽ không
ảnh hưởng quá mức tới các luồng khác [3].


9

1.4 Hoạt động của MPTCP
Tất cả các hoạt động MPTCP được báo hiệu khi sử dụng các tùy chọn của
trường header TCP. Một số tùy chọn TCP đã được công nhận bởi IANA cho MPTCP
được thể hiện trong bảng 1.1 dưới đây.
Bảng 1.1: Bảng thông tin của giao thức MPTCP

Tên bản tin


Ký hiệu bản tin

Giá trị

Giải thích ý nghĩa

MP_CAPABLE

Multipath Capable

0x0

Tuyên bố có hỗ trợ MPTCP khi
thiết lập kết nối.

MP_JOIN

Join Connection

0x1

Yêu cầu gia nhập kết nối MPTCP
hiện tại, có thể yêu cầu thao tác
bắt tay hợp lệ để chứng thực.

DSS

Data Sequence


0x2

Ánh xạ thứ tự dữ liệu khi truyền
đa đuờng MPTCP, kiểm tra

Signal

checksum, báo nhận ACK.
ADD_ADDR

Add Address

0x3

Thông báo các host khác về địa
chỉ mới có sẵn.

REMOVE_ADDR

Remove Address

Yêu cầu điều khiển và xóa bớt
một luồng con cụ thể.

Thiết lập kết nối MPTCP
Một kết nối MPTCP bắt đầu hoạt động ở lớp vận chuyển, đầu tiên ứng dụng
thực hiện một kết nối trên giao thức TCP bình thường. Giao thức MPTCP bắt đầu kết
nối như một phiên TCP bình thường. Kịch bản chung của MPTCP được mô tả trong
hình 1.4 dưới đây:



10

Hình 1.4: Ví dụ về một kịch bản sử dụng MPTCP

Thiết lập kết nối bắt đầu với một SYN, SYN / ACK, và trao đổi ACK trên một
con đường duy nhất. Mỗi gói tin chứa các tùy chọn khả năng đa đường của TCP. Tùy
chọn này giúp người gửi có khả năng thực hiện kết nối đa đường TCP và sẵn sàng
làm như vậy trên kết nối đặc biệt này [4]. Các chi tiết của việc lựa chọn kết nối đa
đường được thể hiện trong hình 1.5 bên dưới.

Hình 1.5: Bản tin Multipath Capable

Một kết nối MPTCP được thiết lập bằng cách sử dụng quy tắc bắt tay ba bước
như TCP để thiết lập kết nối. Như trong hình 1.6 bên dưới ban đầu Host A tại máy
client sẽ gởi một bản tin SYN chứa các tùy chọn MP_CAPABLE kèm theo một khóa


11

ngẫu nhiên đến Host B tại máy chủ để xác nhận máy client hỗ trợ MPTCP. Nếu máy
chủ hỗ trợ MPTCP thì nó sẽ phản hồi bằng một bảng tin SYN+ACK chứa các tùy
chọn MP_CAPABLE kèm theo một khóa ngẫu nhiên được lựa chọn từ máy chủ. Máy
client gửi lại bản tin ACK chứa các tùy chọn MP_CAPABLE kèm theo một khóa
ngẫu nhiên đến máy chủ nhằm xác nhận việc thiết lập kết nối MPTCP [5].
Bắt tay ba bước thể hiện trong hình 1.6 bên dưới tạo ra TCP đầu tiên trên một
giao diện.

Hình 1.6: Mô tả quá trình khởi tạo phiên kết nối đầu tiên của giao thức
MPTCP


Nếu thông điệp SYN / ACK không chứa các tùy chọn MP_CAPABLE, thì bên
gửi sẽ giả thiết bên nhận không hỗ trợ MPTCP và sẽ bắt đầu một phiên kết nối như
giao thức TCP bình thường. Trong trường hợp các thông điệp SYN đầu tiên được gửi
đi nhưng bên nhận không trả lời thì bên gửi thiết lập TCP như bình thường. Có một
khả năng khác là các thiết bị trung gian có thể loại bỏ tất cả các gói tin mà nó không
biết. Để tránh tình trạng đó, bên gửi sẽ cố gắng gửi nhiều lần tùy chọn
MP_CAPABLE tùy thuộc vào chính sách cục bộ.

Khởi tạo luồng con
Cả hai máy chủ đầu cuối cần phải biết tất cả các địa chỉ của nó và có thể nhận
biết được các địa chỉ của các đầu cuối khác nhau thông qua việc trao đổi báo hiệu.
Nhờ sự hiểu biết này mà một đầu cuối sẽ khởi tạo một luồng con mới trên các cặp địa


12

chỉ mà hiện tại chưa được sử dụng. Để sử dụng một giao diện khác, MPTCP sử dụng
cách bắt tay ba bước để thiết lập các luồng con trên giao diện mới.
Một luồng con mới được bắt đầu như một sự trao đổi TCP SYN / ACK thông
thường. Giao thức MPTCP tham gia kết nối (MP_JOIN) nhằm xác định luồng con
này thuộc về kết nối nào. Token trong bản tin “ MP_JOIN ” này là token của kết nối
mà luồng con này muốn kết nối vào.
Ban đầu bản tin MP_JOIN của host A là phiên kết nối của client sẽ gởi một
bản tin SYN kèm theo số ngẫu nhiên, và ID địa chỉ như trong hình 1.7 dưới đây [5].

Hình 1.7: Mô tả quá trình khởi tạo một luồng con mới của giao thức MPTCP

Token này là duy nhất cho mỗi kết nối và được xác định trong bản tin
“MP_CAPABLE” nhận được khi trao đổi SYN/ACK ban đầu. Các token được trình

bày trong tùy chọn này được tạo ra bởi các thuật toán SHA-1, bỏ bớt phần 32 bit quan
trọng nhất. Các token trong bản tin MP_JOIN là token ghi nhận gói tin sử dụng tại
máy thu và xác định kết nối của nó thông qua tình huống khi một Host A gửi yêu cầu
kèm theo khóa B đến phía máy thu là Host B, sau khi Host B kiểm tra và phản hồi lại
cho Host A kèm theo một khóa B. Các MP_JOIN SYN không chỉ gửi những con số
cho trước mà nó có thể gửi ngẫu nhiên để ngăn chặn các cuộc tấn công khi trả lời
bằng phương pháp xác thực. Một bản tin MP_JOIN bao gồm một trường ID Địa chỉ.
Nó được sử dụng để xác định địa chỉ nguồn của gói tin, trường này có hai chức năng.
Đầu tiên, nếu một địa chỉ không tồn tại tại bên gửi thì nó sẽ phản hồi cho bên nhận
một thông báo xóa địa chỉ ID mà không cần biết địa chỉ nơi nhận là gì thông qua việc
cho phép sử dụng NAT. Thứ hai, nó cho phép thử một kết nối mới và thông báo địa


13

chỉ mới đó để ngăn chặn việc trùng lắp khi khởi tạo luồng con trên cùng một con
đường.
Nếu trong bản tin “MP_JOIN” có token phù hợp với kết nối MPTCP đang tồn
tại thì bên nhận sẽ gửi lại một gói tin SYN/ACK cũng bao gồm bản tin “MP_JOIN”
với token ban đầu. Điều này nhằm hai mục đích: Đầu tiên, để đảm bảo cả hai đầu
cuối đều đồng ý gia nhập với kết nối đã đưa ra. Thứ hai, đảm bảo các thiết bị trung
gian trên đường dẫn không loại bỏ các bản tin MPTCP theo đường dẫn ngược lại.
Nếu một token không phù hợp, bên nhận sẽ gửi lại một TCP RST giống như
trường hợp một cổng không xác định trong TCP.
Tiếp theo cả hai máy đều gửi MAC, trong khi Host A gửi gói tin ACK thì Host
B gửi gói tin SYN/ACK. Điều này, cho phép cả hai host trao đổi dữ liệu ngẫu nhiên
được sử dụng như một thông báo trước khi tạo ra các MAC. Nhằm xác thực thông tin
của Host A được gửi trong gói tin ACK đầu tiên của nó. Ý nghĩa của gói tin này là
đặt các luồng con trong trạng thái không thiết lập và để nó di chuyển đến trạng thái
thiết lập kết nối khi nhận một gói tin ACK từ Host B gửi về.

Tất cả các tùy chọn MPTCP liệt kê ở trên phù hợp với nhau để chứng thực
thiết lập kết nối trên một luồng con mới. Thuật toán MAC dựa trên các khóa, trong
trường hợp các thông báo được truyền bởi Host A, khóa A theo sau bởi Khóa B, và
ngược lại trong trường hợp các thông báo được truyền bởi Host B, Khóa B theo sau
bởi Khóa A. Đây là những khóa đã được trao đổi trong quá trình bắt tay ba bước
MP_CAPABLE ban đầu. Các thông báo trong mỗi trường hợp là sự kết nối của các
số ngẫu nhiên cho mỗi Host (ký hiệu là R): cho Host A, R-A theo sau là R-B; và cho
Host B, R-B theo sau là R-A được thể hiện như trong hình 1.8 bên dưới.
Tất cả các tùy chọn TCP dựa trên những yêu cầu như sau :
 Nếu token phù hợp với Host B, nhưng không xác định hoặc chính sách
cục bộ không chấp nhận một luồng con mới, Host B sẽ phản hồi cho
luồng con với một TCP RST.


14

 Nếu token phù hợp với Host B, nhưng địa chỉ MAC gửi lại Host A
không phù hợp như dự kiến, Host A phải đóng thiết lập kết nối của
luồng con với một TCP RST.
 Nếu Host B không nhận được MAC như dự kiến, hoặc tùy chọn
MP_JOIN bị mất ACK, nó phải đóng luồng con với một RST TCP.
 Nếu MAC được xác nhận là chính xác, sau đó cả hai Host đều chứng
thực như nhau và cùng nhau bắt đầu một thiết lập kết nối, và nó chấp
nhận các kết nối trên các luồng con.
 Nếu SYN / ACK đã nhận tại Host A không chứa bản tin MP_JOIN,
Host A phải đóng luồng con với một RST [5].

Hình 1.8: Ví dụ về sử dụng Token

Ánh xạ số thứ tự dữ liệu

Phần này thảo luận hoạt động của MPTCP khi truyền dữ liệu. Đầu cuối triển
khai giao thức MPTCP sẽ nhận dòng dữ liệu từ một ứng dụng, phân chia nó vào một
hay nhiều luồng con. Tất cả dòng dữ liệu này có thể được sắp xếp lại tại bên nhận
bằng cách sử dụng bản tin “Data Sequence Mapping”, để ánh xạ số thứ tự cấp dữ liệu
với số thứ tự cấp luồng con. Nhờ bản tin này mà tầng ứng dụng ở bên nhận có thể
nhận được dữ liệu theo đúng thứ tự. Trong khi đó, trường “Subflow Sequence
Number” xác định dữ liệu thuộc về luồng con nào.


×