Các kỹ thuật trong điều khiển tắc nghẽn trong đơn đường 2.1.1 Tổng quan về TCP/IP TCP/IP là một bộ giao thức hỗ trợ việc truyền thông giữa các máy tính hoặc các thiết bị tương tự trên m
Trang 1LỜI CAM ĐOAN
Tôi xin 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 kỳ công trình nào khác
Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn này
đã được cảm ơn và các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc
Học viên thực hiện Luận văn
(Ký và ghi rõ họ tên)
Nguyễn Bá Lộc
Trang 2LỜI CÁM ƠN
Trong suốt quá trình học tập và quá trình thực hiện đề tài, tôi đã được chỉ dẫn và học hỏi được rất nhiều kiến thức quý báu cũng như những kinh nghiệm về nghiên cứu khoa học từ các thầy cô, anh chị, bạn bè đồng nghiệp
Trước hết, tôi xin gửi lời cảm ơn sâu sắc đến thầy TS Lê Tuấn Anh, giảng
viên trường đại học Công Nghệ TP HCM-HUTECH, thầy đã tận tình hướng dẫn, giúp
đỡ tôi trong suốt quá trình thực hiện luận văn
Tôi cũng xin cảm ơn quý thầy cô của trường đại học Công Nghệ TP.HCM đã tận tình giảng dạy, trang bị cho tôi những kiến thức đáng giá trong những năm học vừa qua
Sau cùng, tôi xin chân thành cảm ơn gia đình, các anh chị, bạn bè và đồng nghiệp đã ủng hộ, giúp đỡ và động viên tôi trong suốt quá trình học tập và thực hiện luận văn này
TPHCM, ngày 11 tháng 01 năm 2016
Nguyễn Bá Lộc
Trang 3TÓM TẮT
Trong đề tài này tôi sẽ trình bày cách thức đánh giá video streaming trên multipath TCP trong môi trường mạng không dây Đưa ra những thống số trên đường truyền khi
sử dụng giao thức Multipath TCP, Single path TCP rồi so sánh tốc độ chúng với nhau
Và đưa ra cách thức đánh giá tốc độ truyền video streaming, số lượng gói tin bị mất khi truyền video streaming sử dụng giao thức Multipath TCP và giao thức Single path TCP trong môi trường mạng không dây
Trang 4ABSTRACT
In this dissertation I will show how to assess multipath TCP video streaming over wireless environments Given the information on the transmission system using Multipath TCP protocol, single path TCP protocol and compare speed of them together And show how to assess streaming video transmission rate, the number of lost packets when transmitting video streaming using Multipath TCP protocol and Single path TCP protocol in the wireless network environment
Trang 5MỤC LỤC
Chương 1: TỔNG QUAN 1
1.1 Tổng quan vấn đề cần nghiên cứu 1
1.2 Lý do chọn đề tài 1
1.3 Một số đề tài liên quan: 3
Chương 2: CƠ SỞ LÝ THUYẾT 5
2.1 Các kỹ thuật trong điều khiển tắc nghẽn trong đơn đường 5
2.1.1 Tổng quan về TCP/IP 5
2.1.2 Điều khiển tắc nghẽn trong giao thức TCP 15
2.2 Điều khiển tắc nghẽn trong đa đường 16
2.2.1 Tổng quan giao thức Multipath TCP 16
2.2.2 Thiết lập kết nối trong giao thức Multipath TCP 18
2.2.3 Điều khiển lưu lượng 19
2.2.4 Điều khiển luồng 19
2.2.5 Quản lý tín hiệu hồi đáp 19
2.2.6 Phục hồi gói tin bị mất 19
2.2.7 Kỹ thuật điều khiển tắc nghẽn trong Muiltipath TCP 20
2.2.8 Đóng kết nối 21
2.2.9 Kiến trúc hệ thống truyền video 21
2.3 Dịch vụ video streaming 22
2.3.1 Video streaming là gì? 22
2.3.2 Giao thức RTSP 25
2.3.3 Giao thức RTP 28
2.3.4 Giao thức HTTP live streaming 29
2.4 Một số công trình liên quan 30
Chương 3: VIDEO STREAMING TRÊN MULTIPATH TCP TRONG MÔI TRƯỜNG KHÔNG DÂY 31
3.1 Khái niệm mạng không dây 31
3.1.1 Wifi 31
3.1.2 3G 33
3.2 Ưu và nhược điểm của mạng không dây 35
Trang 63.3 Khả năng hỗ trợ Multipath TCP trên thiết bị di động 35
3.4 Khả năng hỗ trợ video streaming trên thiết bị di động 35
Chương 4: TRIỂN KHAI THỰC NGHIỆM VÀ ĐÁNH GIÁ 36
4.1 Cài đặt giao thức Mutipath TCP cho server linux và client linux 37
4.2 Thực nghiệm video streaming Multipath TCP trên máy tính laptop 38
4.3 Kịch bản thực nghiệm 39
4.3.1 Kich bản thực nghiệm 1 40
4.3.2 Kịch bản thực nghiệm 2 42
4.3.3 Kịch bản thực nghiệm 3 44
4.3.4 Kịch bản thực nghiệm 4 47
4.3.5 Kịch bản thực nghiệm 5 48
4.4 Đánh giá 49
KẾT LUẬN 52
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT
Codec thuật ngữ ám chỉ chung
cho các thuật toán mã hóa đường truyền trong quá trình streaming audio hay video
congestion avoidance Tránh ùng tắt Demand streaming (stream theo yêu cầu) là
quá trình streaming một file video có sẵn ( đã được lưu trên ổ cứng ) tới người nhận
DMP scheme Một dạng giao thức điều
khiển tắc nghẽn
duplicate ACKs Sự báo nhận trùng
fast recovery Hồi phục nhanh
fast retransmit Truyền lại nhanh
live streaming (stream từ một nguồn tạo
video) là quá trình streaming trực tiếp từ các frame video được tạo ra
từ các thiết bị thu nhận
Trang 8video (như camera ) tới người nhận
media player Chương trình chơi file
video và audio
multimedia Đa phương tiện MultiTCP Một dạng giao thức điều
khiển tắc nghẽn
package size Kích cỡ gói
retransmission Truyền lại
Round Trip Time Thời gian đi một vòng
Streaming video (luồng video) thực chất là
quá trình truyền các frame của file video tới người nhận
video web browser Trình duyệt web
Trang 9technology
Công nghệ truyền thông thế hệ thứ tư
configuration Protocol
một giao thức mà máy sử dụng để lấy dược tất cả thông tin cấu hình cần thiết
FTP File Transfer Protocol Giao thức truyền tập tin
kế mạng, các nhà khai thác, các nhà cung cấp thiết bị và các nhà nghiên
Trang 10cứu quan tâm tới sự phát triển của kiến trúc Internet và hoạt động ổn
Protocol
là giao thức mạng điều khiển quá trình streaming video hay streaming
audio
window
Cửa sổ nhận quảng cáo
Trang 11TCP-ROME TCP real-time online
multimedia environment
Một dạng giao thức điều khiển tắc nghẽn
Telnet Terminal network Một dạng giao thức truyền
thông mạng
Control
Một dạng giao thức điều khiển tắc nghẽn
UDP User Datagram Protocol Một dạng giao thức mạng
Telecommunication System
Hệ thống viễn thông di động toàn cầu
Trang 12DANH MỤC CÁC BẢNG
Bảng 2-1: Các tùy chọn trong Multipath TCP 18
Trang 13DANH MỤC CÁC BIỂU ĐỒ, ĐỒ THỊ, SƠ ĐỒ, HÌNH ẢNH
Hình 2-1: mạng cục bộ điển hình 5
Hình 2-2: Vai trò của giao thức mạng 6
Hình 2-3: Mô tả khái quát bộ giao thức TCP/IP 14
Hình 2-4: MPTCP CLIENT TRUY CẬP MPTCP SERVER THÔNG QUA MẠNG 3G VÀ ADSL 17
Hình 2-5: Truyền video bằng đa đường 21
Hình 2-6: Mô hình video streaming 24
Hình 2-7: Tương tác giữa Client và Server sử dụng RTSP 26
Hình 4-1: Hệ thống mạng thực nghiệm 36
Hình 4-2: Thiết bị thực nghiệm 36
Hình 4-3: Đặt IP cho server linux 37
Hình 4-4: cài đặt giao thức Multipath TCP 38
Hình 4-5: cấu hình routing cho server 38
Hình 4-6: biểu đồ truyền tải video bằng giao thức Multipath TCP 39
Hình 4-7: Biểu đồ truyền tải video trên bằng giao thức Single path TCP 39
Hình 4-8: Kịch bản thực nghiệm 1 40
Hình 4-9: Tín hiệu sóng 1 40
Hình 4-10: So sánh tốc độ truyền Multipath TCP và Single path TCP 41
Hình 4-11: Kịch bản thực nghiệm 2 42
Hình 4-12: Tín hiệu sóng 2 43
Hình 4-13: Tín hiệu sóng 3 43
Hình 4-14: Tốc độ truyền Multipath TCP 2 43
Hình 4-15: Tốc độ truyền single path TCP 2 44
Hình 4-16: Kịch bản thực nghiệm 3 44
Hình 4-17: Hình tín hiệu sóng 4 45
Hình 4-18: Hình tín hiệu sóng 5 45
Hình 4-19: tốc độ truyền Multipath TCP 3 46
Hình 4-20: Tốc độ truyền Single path TCP 3 46
Hình 4-21: Kịch bản thực nghiệm 4 47
Hình 4-22: Thời gian truyền tín hiệu Multipath TCP và Single path TCP 48
Trang 14Hình 4-23: Kịch bản thực nghiệm 5 48
Hình 4-24: Băng thông của Client 1 và Client 2 kết nối server cùng lúc 49
Hình 4-25: So sánh tốc độ 1 50
Hình 4-26: So sánh tốc độ 2 50
Hình 4-27: So sánh tốc độ 3 51
Trang 15Chương 1: TỔNG QUAN
1.1 Tổng quan vấn đề cần nghiên cứu
Những tiến bộ trong công nghệ di động đã làm tăng nhu cầu truy cập Internet một cách đáng kể và trong dó có sử dụng dịch vụ video streaming Công nghệ di động không chỉ cho phép di chuyển, mà còn cho phép kết nối dự phòng bằng cách sử dụng nhiều đường không dây để cải thiện độ tin cậy, và hiệu suất Nhiều đường kết nối cho phép khả năng chuyển các lưu thông từ đường bị hỏng hoặc bị tắc nghẽn tới một đường có chất lượng cao hơn như là đặc điểm giao thông tự động thay đổi, đặc biệt
là quá trình di chuyển Tuy nhiên, rất ít công việc đã được thực hiện cho đến nay về việc nghiên cứu các mạng di động hoặc sự phù hợp của nó
Đề tài này tôi thực hiện đo lường và đánh giá tốc độ vận chuyển video streaming
sử dụng đơn đường TCP và cả đo lường và đánh giá tốc độ vận chuyển video streaming sử dụng đa đường TCP trong môi trường mạng không dây
dữ liệu trừu tượng hơn, chúng dựa vào các giao thức tầng cấp dưới để biến đổi dữ liệu thành các dạng mà cuối cùng có thể được truyền đi một cách vật lý
- Hiện nay có nhiều kỹ thuật phục vụ streaming trên internet như Real-time Transport Protocol, Real Time Streaming Protocol, HTTP streaming, Adobe Flash,
… trong đó nổi bật hơn cả là HTTP streaming vì nó hỗ trợ HTML 5 và nền tảng di động, tuy nhiên điểm yếu là nó vẫn dựa trên mạng TCP/IP vốn sử dụng kiến trúc từ
Trang 16host đến host truyền thống, đây là mô hình chiếm nhiều băng thông mạng khi triển khai trên internet
- Với việc triển khai phổ biến và phát triển nhanh chóng của các mạng dữ liệu
di động, nhu cầu truy cập Internet cho người sử dụng thiết bị di động đã tăng lên đáng
kể Không lâu sau khi thế hệ thứ ba tiêu chuẩn đã được phát hành, các dịch vụ 3G đã thu hút một số lượng lớn người dùng do sự tiện lợi của thiết bị di động Mặc dù Wi-
Fi truyền thống có tốc độ truyền cao hơn nhiều so với 3G, sử dụng Wi-Fi trong các phương tiện di chuyển là thách thức đối với các điểm truy cập thường có phạm vi tín hiệu ngắn Hơn nữa, quá trình xử lý kết nối tới 10-15 giây và chất lượng kết nối và thời gian đều bị ảnh hưởng bởi tốc độ chuyển động [7] Là một phương pháp ghép, bằng cách sử dụng Wi-Fi để tăng thêm năng lực dịch vụ 3G [8] là một giải pháp tạm thời thông minh Tuy nhiên, điều này đòi hỏi phải liên tục chuyển đổi giữa Wi-Fi và công nghệ 3G và thường phá vỡ các kết nối hiện tại thành một số kết nối ngắn khác,
có thể trì hoãn phiên Vì mỗi thiết lập kết nối TCP yêu cầu thêm thời gian, do ba cách bắt tay, chậm khởi đầu, và tắc nghẽn cửa sổ khởi tạo, chia tách các kết nối hiện tại thành một số các kết nối TCP[4]
- Như hầu hết các nhà mạng di động lớn gần đây đã tung ra dịch vụ 4G của họ trong thị trường thương mại, hiện trạng của việc tích hợp các công nghệ 3G và Wi-
Fi cho hiệu suất tốt hơn đã thay đổi Ở đây, chúng ta tìm kiếm một giải pháp tốt hơn cho truy cập Internet theo các kịch bản thiết bị di động bằng cách tận dụng con đường
đa dạng được cung cấp bởi các mạng di động, nơi mà một người sử dụng thiết bị di động có thể thiết lập kết nối TCP sử dụng nhiều con đường cùng một lúc Khi một trong những con đường trở nên tắc nghẽn hoặc mất kết nối, kế hoạch này có thể dễ dàng giảm tải giao thông từ một con đường khác mà không cần phá vỡ các kết nối TCP hiện tại
- Bằng cách tận dụng sự đa dạng đường dẫn (4G, 3G và Wi-Fi), Multipath TCP
có thể hỗ trợ tính di động mà không vi phạm các kết nối hiện tại Giải pháp này có thể tự động giảm tải lưu thông từ đường tắc nghẽn, và cung cấp việc truyền TCP đáng tin cậy hơn và hiệu quả hơn với hiệu suất tốt hơn so với đơn đường TCP[4]
Trang 17- Multipath TCP lần đầu tiên được đề xuất bởi Christian Huitema vào năm 1995 [6] Một kết nối Multipath TCP là một tập hợp của nhiều subflow mà mỗi subflow điều khiển một đường, sử dụng cửa sổ điều khiển tắc nghẽn để điều chỉnh tốc độ trên mỗi đường [3].Gần đây, thuật toán điều khiển tắc nghẽn Multipath TCP đã được IETF phê duyệt hoạt động trên kiến trúc Multipath TCP [1] MultipathTCP thực hiện điều khiển tốc độ gửi dữ liệu phối hợp giữa các đường đảm bảo ba tiêu chí: nâng cao thông lượng truyền, đảm bảo tính công bằng đối với các luồng TCP hiện có và có khả năng cân bằng tắc nghẽn: chuyển dữ liệu từ đường có tắc nghẽn nhiều sang đường có tắc nghẽn ít hơn [2]
- Video Streaming trên Multipath TCP sẽ cung cấp thông lượng lớn hơn, đảm bảo được video sẽ được truyền liên tục khi có một đường kết nối bị tắc nghẽn hoặc mất kết nối, tuy nhiên trong môi trường không dây có nhiều lỗi đường truyền không dây xảy ra ngẫu nhiên nên ảnh hưởng đến chất lượng video
1.3 Một số đề tài liên quan:
Ngoài nước:
Yung-Chih Chen, Erich M Nahum, Richard J Gibbens, “Characterizing 4G and 3G Networks: Supporting Mobility with Multi-Path TCP” UMass Amherst Technical Report: UM-CS-2012-022
Yung-Chih Chen, Yeon-sup Lim, Richard J Gibbens, Erich M Nahum, Ramin Khalili, Don Towsley, “A Measurement-based Study of MultiPath TCP Performance over Wireless Networks”, ISBN: 978-1-4503-1953-9
- Các đề tài trên đánh giá hiệu suất Multipath TCP trên 3G,4G và Wifi theo tiêu chuẩn ở US
- Việt Nam chưa tìm thấy đề tài tương tự như đề tài trên
Trong nước:
Lê Phong Dũ, Lê Tuấn Anh, “ĐIỀU KHIỂN TẮC NGHẼN TRONG GIAO
THỨC TRUYỀN ĐA ĐƯỜNG CHO CÁC ỨNG DỤNG MULTIMEDIA”, tạp chí khoa học Trường Đại Học Cần Thơ, số chuyên đề: Công nghệ thông tin (2013): 180-189
Trang 18 Trần Thị Bảo Yến, Lê Tuấn Anh, “MULTIPATH FAST TCP CHO MẠNG
- Các đề tài trên nghiên cứu về thuật toán của giao thức Multipath TCP
Trang 19Chương 2: CƠ SỞ LÝ THUYẾT 2.1 Các kỹ thuật trong điều khiển tắc nghẽn trong đơn đường
2.1.1 Tổng quan về TCP/IP
TCP/IP là một bộ giao thức hỗ trợ việc truyền thông giữa các máy tính hoặc các thiết bị tương tự trên mạng Trước hết để hiểu TCP/IP là gì, ta phải hiểu mạng máy tính là gì và tại sao phải có giao thức mạng
Mạng máy tính là gì ?
Một hệ thống mạng là tập hợp của nhiều máy tính hoặc các thiết bị tương
tự, chúng có thể trao thông tin với nhau thông qua một trung gian truyền tải
Hình 2-1: mạng cục bộ điển hình
Trong phạm vi một hệ thống mạng, các yêu cầu và dữ liệu từ một máy tính được chuyển qua bộ phận trung gian tới một máy tính khác Trong hình 2.1,
Trang 20máy tính 01 phải có khả năng gửi thông tin hoặc yêu cầu tới máy tính 03 Máy tính 03 phải hiểu được thông điệp của máy tính 01 và đáp lại bằng cách gửi hồi
âm cho máy tính 01
Giao thức là gì ?
Một máy tính tương tác với thế giới thông qua một hoặc nhiều ứng dụng Những ứng dụng này thực hiện các nhiệm vụ cụ thể và quản lý dữ liệu ra và vào Nếu máy tính đó là một phần của hệ thống mạng, thì một trong số các ứng dụng trên sẽ có thể giao tiếp với các ứng dụng trên các máy tính khác thuộc cùng hệ thống mạng Bộ giao thức mạng là một hệ thống các quy định chung giúp xác định quá trình truyền dữ liệu phức tạp Dữ liệu đi từ ứng dụng trên máy này, qua phần cứng mạng của máy, tới bộ phận trung gian và đến nơi nhận, thông qua phần cứng của máy tính đích rồi tới ứng dụng
Hình 2-2: Vai trò của giao thức mạng
Trang 21 Lịch sử ra đời TCP/IP :
Bộ giao thức liên mạng xuất phát từ công trình DARPA, từ những năm đầu thập niên kỷ 1970 Sau khi đã hoàn thành việc xây dựng ARPANET tiên phong, DARPA bắt đầu công việc trên một số những kỹ thuật truyền thông dữ liệu khác Vào năm 1972, Robert E Kahn đã được thuê vào làm việc tại Văn phòng kỹ thuật điều hành tin tức của DARPA, phòng có chức năng liên quan đến mạng lưới truyền thông dữ liệu thông qua vệ tinh và mạng lưới truyền thông bằng sóng radio trên mặt đất Trong quá trình làm việc tại đây Kahn đã phát hiện ra giá trị của việc liên thông giữa chúng Vào mùa xuân năm 1973, Vinton Cerf, kỹ sư thiết kế bản giao thức NCP (Network Control Program) hiện dùng được phân công cùng làm việc với Kahn trên các mô hình liên kết nối kiến trúc
mở với mục đích thiết kế giao thức sắp tới của ARPANET
Vào mùa hè năm 1973, Kahn và Cerf đã nhanh chóng tìm ra một phương pháp tái hội nhập căn bản, mà trong đó những khác biệt của các giao thức liên kết mạng được che lấp đi bằng một giao thức liên kết mạng chung, và thay vì mạng lưới truyền thông phải chịu trách nhiệm về tính đáng tin cậy, như trong ARPANET, thì các máy chủ phải chịu tránh nhiệm
Với nhiệm vụ là một mạng lưới truyền thông bị hạ cấp tới mức cơ bản tối thiểu, khiến việc hội nhập với các mạng lưới truyền thông khác trở nên hầu như bất khả thi, mặc dầu đặc tính của chúng là gì, và vì thế, giải đáp nan đề đầu tiên của Kahn Một câu nói cửa miệng vì thế mà TCP/IP, sản phẩm cuối cùng do những cống hiến của Cerf và Kahn, sẽ chạy trên "đường dây nối giữa hai ống
bơ rỉ", và quả nhiên nó đã được thực thi dùng các con chim bồ câu đưa thư Một máy vi tính được dùng là cổng nối được thiết bị một giao diện với từng mạng lưới truyền thông, truyền tải gói dữ liệu qua lại giữa chúng
Ý tưởng này được nhóm nghiên cứu mạng lưới truyền thông của Cerf, tại Stanford, diễn giải ra tỉ mỉ, cụ thể vào khoảng thời gian trong năm 1973-1974 Những công trình về mạng lưới truyền thông trước đó tại Xerox PARC, nơi sản sinh ra bộ giao thức PARC Universal Packet, phần lớn được dùng vào thời kỳ
Trang 22đó, cũng gây ảnh hưởng về kỹ thuật không ít; nhiều người nhảy qua nhảy lại giữa hai cái
Sau đó DARPA ký hợp đồng với BBN, Stanford, và Trường đại học chuyên nghiệp Luân Đôn kiến tạo một số phiên bản của giao thức làm việc được, trên các nền tảng phần cứng khác nhau Có bốn phiên bản đã được xây dựng TCP v1, TCP v2 Phiên bản 3 được tách ra thành hai phần TCP v3 và IP v3, vào mùa xuân năm 1978, và sau đó ổn định hóa với phiên bản TCP/IP v4 giao thức tiêu chuẩn hiện dùng của Internet ngày nay
Vào năm 1975, cuộc thử nghiệm thông nối hai mạng lưới TCP/IP, giữa Stanford và UCL (University College London) đã được tiến hành Vào tháng 11 năm 1977, một cuộc thử nghiệm thông nối ba mạng lưới TCP/IP, giữa Mỹ, Anh
và Na Uy đã được chỉ đạo Giữa năm 1978 và 1983, một số những bản mẫu của TCP/IP đã được thiết kế tại nhiều trung tâm nghiên cứu Ngày 1 tháng 1 năm
1983, ARPANET đã hoàn toàn được chuyển hóa sang dùng TCP/IP
Vào tháng Ba năm 1982, Bộ Quốc Phòng Mỹ chấp thuận TCP/IP thành một tiêu chuẩn cho toàn bộ mạng lưới vi tính truyền thông quốc phòng Vào năm 1985, Uỷ ban kiến trúc Internet đã dành 3 ngày hội thảo về TCP/IP cho công nghiệp điện toán, với sự tham dự của 250 đại biểu từ các công ty thương mại Cuộc hội thảo này đã làm tăng thêm uy tín và sự nổi tiếng của giao thức, khiến nó ngày càng phổ biến trên thế giới
Khái quát về bộ giao thức TCP/IP:
Bộ giao thức TCP/IP [9] là bộ giao thức mà Internet và các mạng máy tính đang sử dụng và chạy trên đó Nó gồm 2 giao thức chính là TCP và IP
Bộ giao thức TCP/IP được coi là một tập hợp các tầng Mỗi tầng giải quyết một tập các vấn đề liên quan đến việc truyền tải dữ liệu, và cung cấp cho các giao thức tầng cấp trên một dịch vụ được định nghĩa rõ ràng dựa trên việc sử dụng các dịch vụ của các tầng thấp hơn Hay nói cách khác, các tầng trên gần với người dùng hơn và làm việc với dữ liệu trừu tượng hơn, chúng dựa vào các
Trang 23tầng cấp dưới để biến đổi dữ liệu thành các dạng mà cuối cùng có thể truyền đi một cách vật lý
Thực tế của quá trình định dạng xử lý dữ liệu bằng TCP/IP được thực hiện bằng bộ lọc của các hãng sản xuất Ví dụ Microsoft TCP/IP là một phần mềm cho phép Window NT xử lý các dữ liệu được định dạng theo TCP/IP và vì thế
có thể hoà mạng TCP/IP Tuy nhiên có sự khac biệt giữa chuẩn TCP/IP như sau:
Một chuẩn TCP/IP là hệ thống quy định quản lý việc trao đổi trên các
mạng TCP/IP
Bộ lọc TCP/IP là phần mềm có chức năng cho phép một máy tính hoà
mạng TCP/IP
Mục đích của chuẩn TCP/IP là nhằm đảm bảo tính tương thích của tất cả
bộ lọc TCP/IP thuộc bất kỳ phiên bản nào hoặc bất kỳ hãng sản xuất nào
Một hệ thống giao thức TCP/IP phải đảm bảo khả năng thực hiện những
công việc sau:
Cắt thông tin thành những gói dữ liệu để có thể dễ dàng đi qua bộ phận
truyền tải thông tin
Tương tác vói phần cứng của card mạng
Xác định địa chỉ nguồn và đích: máy tính gửi thông tin đi phải xác
định được nơi gửi đến Máy tính phải nhận đâu là thông tin gửi cho mình
Định tuyến: hệ thống phải có khả năng hướng dữ liệu tới các mạng
con, cho dù mạng con nguồn và đích khac nhau về mặt vật lý
Kiểm tra lỗi và kiểm soát đường truyền và xác nhận: đối với một
phương tiện truyền thông tin cậy, máy tính gửi và nhận phải xác định
và có thể sửa chữa lỗi trong quá trình vận chuyển dữ liệu
Chấp nhận dữ liệu từ ứng dụng và truyền nó tới mạng đích Để có thể
thực hiện công việc trên, những người sáng tạo ra TCP/IP đã chia nó thành những phần riêng biệt, hoạt động độc lập với nhau Mỗi thành phần đảm nhiệm một chức năng khác nhau trong hệ thống mạng
Trang 24 Bộ giao thức IP dùng để đóng gói dữ liệu nhằm trừu tượng hoá các
giao thức và các dịch vụ Nói một cách chung, giao thức ở các tầng cao dùng giao thức ở các tầng thấp hơn để đạt được mục đích của mình
Giao thức TCP/IP có 4 tầng:
Application layer (Tầng ứng dụng):
Là nơi các chương trình mạng thường dùng nhất làm việc nhằm liên lạc giữa các nút trong một mạng Giao tiếp xảy ra trong tầng này là tùy theo các ứng dụng cụ thể và dữ liệu được truyền từ chương trình, trong định dạng được sử dụng nội bộ bởi ứng dụng này, và được đóng gói theo một giao thức tầng giao vận
Do chồng TCP/IP không có tầng nào nằm giữa ứng dụng và các tầng giao vận, tầng ứng dụng trong bộ TCP/IP phải bao gồm các giao thức hoạt động như các giao thức tại tầng trình diễn và tầng phiêncủa mô hình OSI Việc này thường được thực hiện qua các các thư viện lập trình
Dữ liệu thực để gửi qua mạng được truyền cho tầng ứng dụng, nơi nó được đóng gói theo giao thức tầng ứng dụng Từ đó, dữ liệu được truyền xuống giao thức tầng thấp tại tầng giao vận
Hai giao thức tầng thấp thông dụng nhất là TCP và UDP Mỗi ứng dụng
sử dụng dịch vụ của một trong hai giao thức trên đều cần có cổng Hầu hết các ứng dụng thông dụng có các cổng đặc biệt được cấp sẵn cho các chương
trình phục vụ server như: HTTP: Giao thức truyền siêu văn bản dùng cổng
80; FTP: Giao thức truyền tệp dùng cổng 21, v.v trong khi các chương trình khác sử dụng các cổng tạm thời
Các thiết bị định tuyến và thiết bị chuyển mạch không sử dụng tầng này nhưng các ứng dụng điều chỉnh thông lượng thì có dùng
Transport layer (Tầng giao vận):
Giúp kiểm soát luồng dữ liệu, kiểm tra lỗi và xác nhận các dịch vụ cho liên mạng Tầng này đóng vai trò giao diện cho các ứng dụng mạng Tầng
Trang 25này có hai giao thức chính: TCP (Transmission Control Protocol) và UDP (User Datagram Protocol)
Trách nhiệm của tầng giao vận là kết hợp các khả năng truyền thông
điệp trực tiếp (end-to-end) không phụ thuộc vào mạng bên dưới, kèm theo kiểm soát lỗi (error control), phân mảnh (fragmentation) và điều khiển lưu
lượng Việc truyền thông điệp trực tiếp hay kết nối các ứng dụng tại tầng giao vận có thể được phân loại như sau:
Định hướng kết nối (connection-oriented), ví dụ: TCP
Phi kết nối(connectionless), ví dụ: UDP
Tầng giao vận có thể được xem như một cơ chế vận chuyển thông thường, nghĩa là trách nhiệm của một phương tiện vận tải là đảm bảo rằng hàng hóa/hành khách của nó đến đích an toàn và đầy đủ
Tầng giao vận cung cấp dịch vụ kết nối các ứng dụng với nhau thông qua việc sử dụng các cổng TCP và UDP Do IP chỉ cung cấp dịch vụ phát
chuyển nỗ lực tối đa (best effort delivery), tầng giao vận là tầng đâu tiên giải
quyết vấn đề độ tin cậy
Ví dụ, TCP là một giao thức định hướng kết nối Nó giải quyết nhiều
vấn đề độ tin cậy để cung cấp một dòng byte đáng tin cậy (reliable byte stream):
- Dữ liệu đến đích đúng thứ tự
- Sửa lỗi dữ liệu ở mức độ tối thiểu
- Dữ liệu trùng lặp bị loại bỏ
- Các gói tin bị thất lại/loại bỏ được gửi lại
- Có kiểm soát tắc nghẽn giao thông dữ liệu
Tuy các giao thức định tuyến động (dynamic routing protocol) khớp về
kỹ thuật với tầng giao vận trong bộ giao thức TCP/IP do chúng chạy trên IP, nhưng chúng thường được xem là một phần của tầng mạng
Giao thức mới hơn, SCTP (Stream Control Transmission Protocol|),
cũng là một cơ chế giao vận định hướng kết nối "đáng tin cậy" Giao thức
Trang 26này định hướng dòng (stream-oriented), chứ không định hướng byte như TCP, và cung cấp nhiều dòng đa công (multiplexed) trên một kết nối Nó còn
hỗ trợ multi- homed, trong đó một đầu của kết nối có thể được đại diện bởi nhiều địa chỉ IP tức là đại diện cho nhiều giao diện vật lý, sao cho, nếu một giao diện vật lý thất bại thì kết nối vẫn không bị gián đoạn Giao thức này ban đầu được phát triển dành cho các ứng dụng điện thoại, nhưng nó cũng có thể được sử dụng cho các ứng dụng khác
UDP là một giao thức datagram phi kết nối Cũng như IP, nó là một giao thức nỗ lực tối đa hay "không đáng tin cậy" Vấn đề duy nhất về độ tin cậy mà nó giải quyết là sửa lỗi dữ liệu dù chỉ bằng một thuật toán tổng kiểm yếu UDP thường được dùng cho các ứng dụng như các phương tiện truyền
thông theo dòng (streaming media) chứa âm thanh và hình ảnh, v.v , trong
đó, vấn đề gửi đến đúng giờ có vai trò quan trọng hơn độ tin cậy, hoặc cho các ứng dụng truy vấn/đáp ứng đơn giản như tra cứu tên miền, trong đó, phụ phí của việc thiết lập một kết nối đáng tin cậy lớn một cách không cân xứng
Cả TCP và UDP được dùng cho một số ứng dụng bậc cao (high-level)
Các ứng dụng tại các địa chỉ mạng cho trước được phân biệt bởi cổng TCP hay UDP của nó Theo quy ước, các cổng "nổi tiếng" được liên kết với một
số ứng dụng cụ thể
RTP (Real-time Transport Protocol) là một giao thức datagram được thiết kế cho dữ liệu thời gian thực hiện (real-time), chẳng hạn hình và tiếng đựoc truyền theo dòng (streaming audio and video) RTP là một giao thức
tầng phiên sử dụng định dạng gói tin UDP làm căn bản Tuy nhiên, nó được đặt vào tầng giao vận của chồng giao thức TCP/IP
Internet layer (Tầng mạng):
Là giải quyết các vấn đề dẫn các gói tin qua một mạng đơn Một số ví
dụ về các giao thức như vậy là X.25, và giao thức Host/IMP của mạng ARPANET
Trang 27Với sự xuất hiện của khái niệm liên mạng, các chức năng mới đã được
bổ sung cho tầng này, đó là chức năng dẫn đường cho dữ liệu từ mạng nguồn đến mạng đích Nhiệm vụ này thường đòi hỏi việc định tuyến cho gói tin qua một mạng lưới của các mạng máy tính, đó là liên mạng
Trong bộ giao thức liên mạng, giao thức IP thực hiện nhiệm vụ cơ bản dẫn đường dữ liệu từ nguồn tới đích IP có thể chuyển dữ liệu theo yêu cầu của nhiều giao thức tầng trên khác nhau; mỗi giao thức trong đó được định
danh bởi một số hiệu giao thức duy nhất: giao thức ICMP (Internet Control Message Protocol) là giao thức 1 và giao thức IGMP (Internet Group Management Protocol) là giao thức 2
Một số giao thức truyền bởi IP, chẳng hạn ICMP dùng để gửi thông tin chẩn đoán về truyền dữ liệu bằng IP và IGMP dùng để quản lý dữ liệu đa
truyền (multicast), được đặt lên trên IP nhưng thực hiện các chức năng của
tầng liên mạng, điều này minh họa một sự bất tương thích giữa liên mạng và chồng TCP/IP và mô hình OSI Tất cả các giao thức định tuyến, chẳng hạn
giao thức BGP (Border Gateway Protocol), giao thức OSPF, và giao thức RIP (Routing information protocol|), đều thực sự là một phần của tầng mạng,
mặc dù chúng có thể có vẻ thuộc về phần trên của chồng giao thức
Network interface layer (Tầng truy cập mạng):
Phương pháp được sử dụng để chuyển các gói tin từ tầng mạng tới các máy chủ khác nhau - không hẳn là một phần của bộ giao thức TCP/IP, vì giao thức IP có thể chạy trên nhiều tầng liên kết khác nhau Các quá trình truyền các gói tin trên một liên kết cho trước và nhận các gói tin từ một liên kết cho
trước có thể được điều khiển cả trong phần mềm điều vận thiết bị (device driver) dành cho card mạng, cũng như trong phần firmware hay các chipset
chuyên dụng Những thứ đó sẽ thực hiện các chức năng liên kết dữ liệu chẳng
hạn như bổ sung một tín đầu (packet header) để chuẩn bị cho việc truyền gói
tin đó, rồi thực sự truyền frame dữ liệu qua một môi trường, vật lý
Trang 28Đối với truy nhập Internet qua modem quay số, các gói IP thường được truyền bằng cách sử dụng giao thức PPP Đối với truy cập internet băng rộng
(broadband) như ADSL hay moden cáp , giao thức PPPOE thường được sử
dụng Mạng dây cục bộ thường sử dụng Ethernet còn mạng không dây cục
bộ thường dùng chuẩn IEE.802.11 Đối với các mạn diện rộng (wide-area network), các giao thức thường được sử dụng là PPP đối với các đường T- carrier hoặc E-carrier, Frame relay, ATM (Asynchronous Transfer Mode),
hoặc giao thức packet over ONET/SDH (POS)
Tầng truy cập mạng còn có thể là tầng nơi các gói tin được chặn
(intercepted) để gửi qua một mạng riêng ảo (virtual private network) Khi
xong việc, dữ liệu tầng liên kết được coi là dữ liệu của ứng dụng và tiếp tục
đi xuống theo chồng giao thức TCP/IP để được thực sự truyền đi Tại đầu nhận, dữ liệu đi lên theo chồng TCP/IP hai lần một lần cho mạng riêng ảo và lần thứ hai cho việc định tuyến
Tầng truy cập mạng còn có thể được xem là bao gồm cả tầng vật lý tức là kết hợp của các thành phần mạng vật lý thực sự như hub, các bộ lặp
(repeater),cáp mạng, cáp quang, cáp đồng trục (coaxial cable), cạc mạng,
cạc HBA (Host Bus Adapter) và các thiết bị nối mạng có liên quan: RJ-45, BNC, và các đặc tả mức thấp về các tín hiệu mức hiệu điện thế, tần số, v.v
Hình 2-3: Mô tả khái quát bộ giao thức TCP/IP
Trang 292.1.2 Điều khiển tắc nghẽn trong giao thức TCP
Cơ chế điều khiển tắc nghẽn bao gồm 4 giai đoạn: slow start, congestion avoidance, fast retransmit, fast recovery Trên thực tế, slow start và congestion avoidance, fast retransmit và fast recovery được cài đặt chung với nhau theo từng cặp
Slow-start:
Thuật toán này sử dụng thêm một cửa sổ khác đối với đầu gửi: congestion window Khi một kết nối mới được thiết lập, cwnd được khởi tạo với 1 segment, mỗi ACK gửi tới từ phía đầu nhận, kích thước cửa sổ tăng thêm 1 segment Bên gửi có thể gửi tối đa số segment bằng kích thước nhỏ nhất giữa congestion window và advertised receiver window Congestion window là luồng điều khiển thuộc bên gửi, trong khi advertised receiver window là luồng điều khiển thuộc bên nhận Bên gửi truyền 1 segment và đợi ACK, khi nhận được phản hồi ACK, cwnd từ 1 tăng thành
2, và khi 2 segment được gửi, cwnd tăng lên 4; điều này tạo nên hàm tăng lũy thừa Khi số gói tin gửi đi vượt quá băng thông đường truyền, các router trung gian sẽ loại
bỏ gói tin, và điều này cho biết kích thước cửa sổ đã trở nên rất lớn
Congestion avoidance:
Nghẽn mạch xảy ra khi dữ liệu ở đầu vào lớn hơn nhiều dữ liệu đầu ra, và congestion avoidance là cách giải quyết vấn đề mất gói Có hai dấu hiệu cho thấy mất gói: hết thời gian timeout và nhận nhiều gói tin duplicate ACKs Mất gói là dấu hiệu tắc nghẽn xảy ra giữa đầu gửi và nhận Về lý thuyết, congestion avoidance và slow start là hai thuật toán độc lập với đối tượng khác hẳn nhau, nhưng trên thực tế, chúng làm việc cùng với nhau Cả hai thuật toán đều yêu cầu hai tham số cho kết nối: congestion window và slow start threshold size Sau khi khởi tạo giá trị ban đầu cho cwnd = 1 segment và ssthresh = 65535 bytes Việc truyền dữ liệu được bắt đầu, và TCP cũng theo đó tăng kích thước cửa sổ Khi tắc nghẽn xảy ra, giá trị của ssthresh cũng có sự thay đổi Sự thay đổi kích thước cửa sổ cũng tùy thuộc vào việc TCP đang
ở thuật toán slow start hay congestion avoidance Nếu cwnd <= ssthresh, TCP ở giai đoạn slow start, ngược lại là giai đoạn congestion avoidance Slow start khởi tạo cwnd
Trang 30= 1 segment, và tăng cwnd mỗi khi nhận được gói tin với ACK = 1; trong khi congestion avoidance tăng segsize*segsize/cwnd Congestion avoidance tăng mỗi segment cho 1 Round Trip Time bất kể bên nhận nhận được bao nhiêu tín hiệu ACK
Fast Retransmit:
Để tránh việc các gói tin đến nơi nhận không theo đúng thứ tự, TCP đưa ra khái niệm duplicate ACK Mục tiêu của duplicate ACK để thông báo khi nào gói tin không đúng thứ tự và yêu cầu số thứ tự của gói tin tiếp theo Để xác định xem duplicate ACK là dấu hiệu của mất gói hay chỉ là gói tin không đúng thứ tự, hoặc TCP sẽ căn
cứ vào số lượng duplicate ACK nhận được Nếu có từ 3 duplicate ACK trở lên được gửi về, TCP biết gói tin đã mất, nếu chỉ có 1 hoặc 2 duplicate ACK, TCP biết giả thiết còn lại xảy ra; TCP sau đó sẽ thực thi cơ chế retransmission
Fast Recovery:
Sau khi fast retransmit gửi lại gói tin bị mất, TCP chuyển đến giai đoạn fast recovery, mà không phải slow start là do việc nhận duplicate ACK không chỉ là dấu hiệu của việc mất gói mà còn có thể do gói tin đã rời khỏi đường truyền, có nghĩa ở trong bộ đệm của bên nhận Điều đó có thể vẫn còn dữ liệu cần chuyển giữa bên gửi
và bên nhận, khi chuyển sang giai đoạn slow start sẽ làm giảm tốc độ truyền tin Cũng giống như hai giai đoạn đầu, fast retransmit và fast recovery thực thi song hành cùng nhau Sau fast retransmit, ssthresh bằng ½ kích thước cwnd, cwnd = ssthresh + 3*package size Mỗi khi nhận được 1 duplicate ACK, cwnd tăng lên 1 packet Khi gói tin non-duplicate ACK đầu tiên được gửi đến,cwnd trả về giá trị ssthresh
2.2 Điều khiển tắc nghẽn trong đa đường
2.2.1 Tổng quan giao thức Multipath TCP
Là phiên bản mở rộng của giao thức TCP, cho phép truyền dữ liệu song song trên các đường con giữa nguồn và đích nhằm tăng khả năng phục hồi của các kết nối
và tăng hiệu quả của việc sử dụng tài nguyên hệ thống Hình 2-4 minh họa trường hợp sử dụng MPTCP trong môi trường Internet để khai thác hiệu quả tài nguyên sẵn
có
Trang 31Hình 2-4: MPTCP CLIENT TRUY CẬP MPTCP SERVER THÔNG QUA
MẠNG 3G VÀ ADSL
* Một số khái niệm trong Multipath TCP
- Subflow: Đối với Multipath TCP, dữ liệu cùng một kết nối có thể được truyền trên nhiều giao tiếp mạng khác nhau giữa bên gửi và bên nhận Những gói dữ liệu cùng một bên gửi dữ liệu với địa chỉ IP bên nhận và cổng kết nối thuộc về cùng một Subflow [1] Mỗi kết nối Multipath TCP có nhiều Subflow
- Path: là đường truyền các gói tin thông qua các Router trước khi các gói tin đến bên nhận Các gói tin truyền trên các Subflow khác nhau có thể truyền trên những đường khác nhau để đến được bên nhận, nó phụ thuộc vào việc chọn đường và topology của mạng Tuy nhiên các đường của kết nối có thể chia sẻ công bằng tại đường truyền nút cổ chai
Để Multipath TCP hoạt động hiệu quả trong quá trình tạo kết nối, quản lý kết nối, truyền dữ liệu cũng như đóng kết nối trên tất cả các Subflow Ngoài việc sử dụng các tùy chọn có sẵn trên TCP, Multipath TCP sử dụng một số tùy chọn [1],[5] như sau:
Trang 32Bảng 2-1: Các tùy chọn trong Multipath TCP
0x0 MP_CAPABLE Thiết lập kết nối MPTCP
0x2 DATA_SEQUENCE_SIGNAL Đóng kết nối thông thường
0x7 MP_FASTCLOSE Đóng kết nối nhanh
2.2.2 Thiết lập kết nối trong giao thức Multipath TCP
Multipath TCP cho phép một cặp thiết bị đầu cuối sử dụng nhiều đường để trao đổi thông tin từ một luồng kết nối Khởi tạo kết nối bắt đầu với các thông tin SYN, SYN/ACK, ACK được trao đổi trên một đường đơn tương tự như TCP Tuy nhiên, trong Multipath TCP sử dụng thêm một tùy chọn, trong đó tùy chọn MP_CAPABLE [1][5] được khai báo phía bên gửi dữ liệu để thực thi Multipath TCP và mong đợi được sử dụng giao thức này trong kết nối
MP_CAPABLE khai báo với khóa mà bên gửi dữ liệu được tạo cho kết nối Khóa này được sử dụng để chứng thực khi thêm những Subflow vào trong kết nối phải là duy nhất
Kết nối được nhận định tại mỗi Host bởi một khóa Do đó việc thực thi cần phải ánh xạ phù hợp mỗi khóa cho kết nối
Để hiểu rõ hơn về hoạt động, hãy xem một ví dụ cụ thể như sau: một Client có hai địa chỉ là A1 và A2 được thiết lập với một Server Đầu tiên Client sẽ gửi tín hiệu SYN từ địa chỉ A1 có chứa thêm tùy chọn MP_CAPABLE Có nghĩa là Client hỗ trợ MPTCP và chứa đựng một khóa để nhận định kết nối trong Multipath TCP Server hồi đáp với SYN/ACK chứa đựng cùng tùy chọn và một khóa của nó Client thiết lập quy tắc bắt tay ba bước như trong TCP Nó cũng có thể mở rộng kết nối TCP thứ hai
Trang 33gọi là Subflow mà vẫn liên kết với kết nối đầu tiên bằng cách gửi tín hiệu SYN với tùy chọn MP_JOIN chứa đựng khóa gửi bởi Server trong kết nối ban đầu Server hồi đáp được bằng cách gửi SYN/ACK cùng với tùy chọn MP_JOIN chứa đựng khóa của Client của kết nối ban đầu và Client kết thúc quy tắc bắt tay ba bước Như vậy hai Subflow cùng liên kết đến cùng một kết nối Multipath TCP và cả hai Subflow có thể gửi dữ liệu
2.2.3 Điều khiển lưu lượng
Multipath TCP đã điều chỉnh một số kỹ thuật trong TCP cho phù hợp với hoạt động của nó Việc điều khiển thông lượng được thực hiện tại các Subflow và mỗi đường có cửa sổ điều khiển riêng biệt nhằm làm nâng cao khả năng thực thi [5],[18] Tuy nhiên bên nhận dữ liệu chỉ có một cửa sổ được chia sẻ với tất cả các Subflow đã được thiết lập, với mục tiêu không làm giới hạn tốc độ của các Subflow trong kết nối
2.2.4 Điều khiển luồng
Điều khiển luồng trong Multipath TCP là điều chỉnh cơ bản luồng TCP [5] Bên nhận dữ liệu quản lý một cửa sổ độc lập chia sẻ cho tất cả các Subflow để không giới hạn tốc độ Bên gửi dữ liệu chia kích thước cửa sổ giữa các đường để phân phối
dữ liệu
2.2.5 Quản lý tín hiệu hồi đáp
Khi nhận được ACK trên một đường, các tham số trên đường đó được cập nhật như RTT, băng thông, tỉ lệ mất gói tin, kích thước cửa sổ [12] Nếu dữ liệu cần phải gửi lại, Multipath TCP có thể gửi trên cùng đường đã gửi dữ liệu trước đó hoặc trên một đường khác
2.2.6 Phục hồi gói tin bị mất
Trong TCP chuẩn, phục hồi gói tin bị mất được thực hiện sau khi hết thời gian truyền lại hoặc nhận dupACK Đối với Multipath TCP cũng sử dụng như trong TCP nhưng có một số điều chỉnh Đối với trường hợp nhận dupACK cần điều chỉnh lại ngưỡng threshold Đối với , mỗi đường có một thời gian riêng sao cho khi hết thời gian chờ chỉ ảnh hưởng trên đường đó [12]
Trang 342.2.7 Kỹ thuật điều khiển tắc nghẽn trong Muiltipath TCP
Một kết nối Multipath TCP là một tập hợp của nhiều đường con mà mỗi đường có một đường đi khác nhau trên Internet Một ứng dụng Multipath TCP sẽ gửi
dữ liệu thông qua các đường con của nó
Ba tiêu chí khi thiết kế thuật toán điều khiển tắc nghẽn của Multipath TCP [3],[18]:
Tiêu chí 1: tăng thông lượng nghĩa là tổng thông lượng của tất cả các
Subflow của một kết nối trong giao thức đa đường ít nhất bằng với đường tốt nhất trên giao thức đơn đường
Tiêu chí 2: chia sẻ công bằng với các luồng đơn đường nghĩa là một kết
nối trong giao thức đa đường chia sẻ công bằng với kết nối trong giao thức đơn đường khi nhiều Subflow của giao thức đa đường cạnh tranh công bằng với luồng đơn đường cùng một nút mạng
Tiêu chí 3: cân bằng tắc nghẽn nghĩa là một kết nối trong giao thức đa
đường thì dịch chuyển dữ liệu từ đường có tắc nghẽn nhiều sang đường có tắc nghẽn ít hơn trong khi vẫn đảm bảo hai tiêu chí 1 và 2
Trong giao thức Multipath TCP, nó sử dụng nhiều Subflow cho một kết nối, nhưng không sử dụng thuật toán điều khiển tắc nghẽn của TCP trên mỗi đường Multipath TCP sử dụng thuật toán Couple [3] để điều khiển tắc nghẽn
Mỗi ACK nhận được trên đường , tăng kích thước cửa sổ bằng , Mỗi khi mất gói tin trên đường , giảm kích thước cửa sổ bằng /2
Lấy giá trị , để đảm bảo rằng kích thước cửa sổ không tăng nhanh hơn trong TCP và giảm tương tự như trong TCP Tham số của thuật toán mô
tả tính tích cực của luồng Multipath Giá trị được chọn sao cho toàn bộ thông lượng của luồng Multipath gần tương đương với thông lượng của luồng TCP mà nó đạt được trên đường tốt nhất
Giá trị được tính bởi