Trong những năm qua, nhóm nghiên cứu giao thức Multipath TCPMP TCPcủa tổ chức IETF đã và đang phát triển các phần mở rộng đa đường dẫn ở giao thứcTCP, cho phép các đầu cuối sử dụng nhiều
Trang 1CÁC TỪ VIẾT TẮT 3
o Internet Assigned Numbers Authority 3
CHƯƠNG 1 TỔNG QUAN VỀ GIAO THỨC TCP 3
1.1 Giao thức TCP 3
1.2 Cấu trúc gói tin TCP 4
o 1.2.1Cấu trúc trong phần mào đầu gói tin TCP 4
o 1.2.2Cấu trúc phần dữ liệu trong gói tin TCP 6
1.3 Hoạt động của giao thức TCP 6
o 1.3.1Thiết lập kết nối 7
o 1.3.2Truyền dữ liệu 8
o 1.3.3Kết thúc kết nối 9
1.4 Điều khiển lưu lượng trong TCP 14
o 1.4.1Điều khiển tắc nghẽn 14
o a.Pha khởi động chậm (slow – start) 14
o b.Pha truyền lại nhanh (fast retransmit) 15
o c.Pha phục hồi nhanh (fast recovery) 16
o 1.4.2Pha tránh tắc nghẽn (congestion avoidance) 17
CHƯƠNG 4: ĐIỀU KHIỂN TẮC NGHẼN 54
TRONG GIAO THỨC MP TCP 54
4.1 Đặt vấn đề 54
4.2 Vấn đề tắc nghẽn trong mạng 54
o 4.2.1Các nguyên nhân gây ra tắc nghẽn 54
o 4.2.2Khái niệm điều khiển tắc nghẽn 55
o 4.2.3Các tiêu chí đánh giá thuật toán điều khiển tắc nghẽn 55
4.3 Thuật toán điều khiển tắc nghẽn trong TCP 56
4.4 Thuật toán điều khiển tắc nghẽn trong MP TCP 56
o 4.4.1Các yêu cầu đối với thuật toán 56
o 4.4.2Các thuật toán điều khiển tắc nghẽn trong MP TCP 58
o 4.4.3Thuật toán điều khiển tắc nghẽn kết hợp 65
2.A Ford, C Raiciu, M Handley (2012), “TCP Extensions for Multipath Operation with Multiple Addresses” 85
4.Alan Ford, Costin Raiciu, Sebastien Barre, Janardhan Iyengar, Bryan Ford(2010), “Architectural Guidelines for Multipath TCP Development” 85
Trang 212 Nick McKeown (2008), “Introduction to Computer Networks” 85
Trang 3CÁC TỪ VIẾT TẮT
IANA Internet Assigned Numbers Authority
Trang 4PHẦN MỞ ĐẦU
Internet đang thay đổi Khi chồng giao thức TCP/IP được thiết kế, các đầucuối chỉ có một giao diện kết nối(single interface) và chỉ những thiết bị địnhtuyến(routers) được trang bị một số giao diện vật lý Ngày nay, hầu hết các đầu cuối
có nhiều hơn một giao diện và sự phổ biến của những chiếc điện thoại thông minhđược trang bị với cả 3G và Wi-Fi sẽ mang lại một số lượng ngày càng tăng của cácmáy chủ multihomed(máy chủ có nhiều giao diện) trên Internet.Người dùng thườngmong đợi rằng việc sử dụng những host multihomed sẽ tăng khả năng dự phòngcũng như hiệu năng thực hiện Thật không may, trong thực tế không phải luôn luônnhư vậy, hơn 95% tổng lưu lượng truy cập Internet vẫn còn được điều khiển bởigiao thức TCP và TCP liên kết mỗi kết nối với một giao diện duy nhất Điều này cónghĩa rằng bản thân giao thức TCP không hiệu quả và trong suốt trong việc sử dụngcác giao diện có sẵn trên một đầu cuối multihomed
Các vấn đề multihoming đã nhận được rất nhiều sự chú ý trong cộng đồngnghiên cứu và cộng đồng IETF trong những năm qua Các giải pháp ở tầngNetwork như shim6 hay là Host Identity Protocol (HIP) đã được đề xuất và thựchiện Tuy nhiên, chúng vẫn còn ở giai đoạn thử nghiệm và không chắc rằng các giảipháp trên sẽ được triển khai rộng rãi Các giải pháp ở tầng Transport cũng đã đượcphát triển, đầu tiên là mở rộng TCP Tuy nhiên, phần mở rộng này chưa bao giờđược triển khai Giao thức SCTP (Stream Control Transmission Protocol) đượcthiết kế với mục đích multihoming Một số mở rộng của giao thức SCTP cho phépcác đầu cuối truyền thông tin trên nhiều đường dẫn cùng một lúc Mặc dù được thựcthi trong một số hệ điều hành, giao thức SCTP vẫn không được sử dụng rộng rãibên cạnh các ứng dụng cụ thể Các hạn chế chính của giao thức SCTP trên mạngInternet toàn cầu, đầu tiên chính là việc các ứng dụng phải thay đổi để có thể sửdụng SCTP Thứ hai, một số khâu trong mạng truyền thông chẳng hạn như NAThoặc Firewall không hiểu giao thức SCTP và ngăn chặn tất cả các gói tin SCTP
Trang 5Trong những năm qua, nhóm nghiên cứu giao thức Multipath TCP(MP TCP)của tổ chức IETF đã và đang phát triển các phần mở rộng đa đường dẫn ở giao thứcTCP, cho phép các đầu cuối sử dụng nhiều đường dẫn thông qua nhiều giao diện, đểthực hiện truyền các gói tin trên một kết nối duy nhất Đây có lẽ là phần mở rộngđầy tham vọng nhất với TCP được tiêu chuẩn hóa trong IETF.
Đối với tất cả các giao thức trên Internet, sự thành công của nó sẽ không chỉphụ thuộc vào các đặc điểm kỹ thuật giao thức mà còn phụ thuộc vào sự khả thitrong việc sử dụng bởi những ứng dụng thực tế
Hiện tại, công việc của em là quản trị và phát triển hệ thống mail, hệ thốngtổng đài PBX Đây là những hệ thống ứng dụng của chồng giao thức TCP/IP Vớimục đích nghiên cứu những giải pháp, cơ chế cung cấp chất lượng dịch vụ để phục
vụ công việc chuyên môn, đề tài ban đầu em chọn là “ Cung cấp chất lượng dịch vụcho mạng TCP/IP” Tuy nhiên để có một công trình mới mẻ và tối ưu theo sựhướng dẫn của TS Ngô Quỳnh Thu, em quyết định định hướng nghiên cứu theo đề
tài “Tìm hiểu giao thức Multipath TCP” Luận văn này không thể hoàn thành nếu
không có những định hướng và chỉ bảo tận tình của TS Ngô Quỳnh Thu Em xinchân thành cảm ơn cô giáo TS Ngô Quỳnh Thu!
Hà Nội, tháng 3-2012
Hà Văn Đạt
Trang 6CHƯƠNG 1 TỔNG QUAN VỀ GIAO THỨC TCP
Các đặc điểm của giao thức TCP:
- TCP là một giao thức có kết nối (connection-oriented): Có nghĩa là TCP thiếtlập kênh kết nối trước khi truyền dữ liệu TCP thiết lập kết nối bằng 3 bước bắt tay(3-way handshake) Cơ chế của 3 bước bắt tay sẽ được trình bày ở phần sau củaluận văn
- TCP truyền dữ liệu theo dòng byte(stream-of-bytes): Giao thức TCP truyền
dữ liệu thành dòng byte liên tục bằng cách nhóm các byte vào thành các phân đoạnTCP, sau đó các phân đoạn này được gắn thêm nhãn ở tầng 3 để truyền đến đíchtrong mạng
- TCP là một giao thức truyền dữ liệu tin cậy, điều đó thể hiện qua các yếu tố sau:
- TCP sử dụng khung báo nhận ACK để xác nhận từ bên nhận Bên nhận phảiphải gửi xác nhận lại cho bên gửi để thông báo rằng nó đã nhận được dữ liệu
- TCP sử dụng một trường gọi là checksum để phát hiện dữ liệu bị lỗi
• Dữ liệu lỗi sẽ được truyền lại TCP chỉ truyền lại dữ liệu bị lỗi hay bị mất
mà không loại bỏ toàn bộ dòng dữ liệu
Trang 7• Dữ liệu được TCP đánh số thự tự Các gói tin TCP có thể đến đích khôngđúng thứ tự nhưng chúng sẽ được ráp lại theo đúng thứ tự trước khi đưa lên tầngứng dụng.
• TCP điều khiển luồng(flow-control), bên gửi và bên nhận TCP phải traođổi, đàm phán với nhau về các thông tin liên kết nhằm ngăn chặn sự tràn bộ đệm vàmất dữ liệu khi truyền
TCP sử dụng các thuật toán điều khiển tắc nghẽn để chia sẻ dung lượng mạnggiữa các người dùng
1.2 Cấu trúc gói tin TCP
Đơn vị dữ liệu sử dụng trong TCP được gọi là Segment (phân đoạn) Khuôndạng và nội dung của gói tin TCP gồm 2 phần :
- Phần mào đầu (Header)
- Phần dữ liệu (Data Payload)
1.2.1 Cấu trúc trong phần mào đầu gói tin TCP
Hình sau đây minh họa cấu trúc các trường trong phần mào đầu của gói tin TCP
Hình 1-1: Cấu trúc các trường trong phần mào đầu gói tin TCP.
Trong gói tin TCP gồm nhiều trường, ý nghĩa của các trường như sau :
- Trường cổng nguồn (Source Port): Số hiệu cổng của máy gửi (trường nàydài 16 bit)
- Trường cổng đích (Destination Port): Số hiệu cổng của máy đích ( trường
Trang 8- Trường số thứ tự (Sequence Number): Số hiệu byte đầu tiên của phân đoạn
từ khi bit SYN được thiết lập Nếu bit SYN được thiết lập thì giá trị ban đầu củatrường “Sequence Number” là số hiệu tuần tự khởi đầu (ISN) và byte dữ liệu đầutiên là ISN + 1 (trường này dài 32 bit)
- Trường số báo nhận (Acknowledgment Number): Nếu cờ ACK bật thì giá trịcủa trường này chính là số thứ tự của byte tiếp theo mà bên nhận cần (trường nàydài 16 bit)
- Trường dịch dữ liệu (Data offset): Trường có độ dài 4 bit qui định độ dàicủa phần mào đầu (tính theo đơn vị từ 32 bit) Phần mào đầu có độ dài tối thiểu là 5
từ (160 bit), và tối đa là 15 từ (480 bit)
- Trường dự trữ (Reserved): Các bit trong trường này dùng cho tương lai và
có giá trị là 0 (trường này dài 4 bit)
- Trường cờ (flag): Gồm các bit điều khiển (dài 1 bit)
♦URG: Cờ cho trường Urgent Pointer
♦ACK: Cờ cho trường Acknowledgement
♦PSH: Hàm Push
♦RST: Thiết lập lại đường truyền
♦SYN: Đồng bộ lại số thứ tự
♦FIN: Kết thúc truyền dữ liệu
- Trường kích thước cửa sổ (Window Size): Số byte có thể nhận bắt đầu từtrường báo nhận (ACK) (trường này dài 16 bit)
- Trường kiểm tra tổng (Checksum): Gồm 16 bit kiểm tra cho cả phần màođầu và dữ liệu
- Trường con trỏ khẩn (Urgent Pointer): Nếu cờ URG bật thì giá trị trường nàychính là số từ 16 bit mà số thứ tự trong trường “Sequence Number” cần dịch trái
- Trường tùy chọn (Options): Đây là trường tùy chọn, nếu có thì độ dài củatrường này là bội số của 32
Trang 91.2.2 Cấu trúc phần dữ liệu trong gói tin TCP
Hình 1-2: Cấu trúc phần dữ liệu trong gói tin TCP
Trường cuối cùng không thuộc về phần mào đầu Giá trị của trường này làthông tin dành cho các tầng trên Thông tin về giao thức tầng trên không được chỉ rõtrong phần mào đầu mà phụ thuộc vào cổng được chọn
1.3 Hoạt động của giao thức TCP
Biểu đồ hoạt động của giao thức TCP
Trang 10Hình 1-3: Biểu đồ hoạt động của giao thức TCP.
Giao thức TCP đòi hỏi phải thiết lập kết nối trước khi bắt đầu gửi dữ liệu vàkết thúc kết nối khi gửi dữ liệu hoàn tất Từ khi một kết nối TCP được khởi tạo đếnkhi kết thúc có 3 pha :
- Thiết lập kết nối
- Truyền dữ liệu
- Kết thúc kết nối
1.3.1 Thiết lập kết nối
Hình 1-4: Các bước trong quá trình thiết lập kết nối.
Để thiết lập một kết nối, TCP sử dụng một quy trình bắt tay 3 bước Trước khimáy A thử kết nối với máy B, máy B phải đăng ký một cổng và mở cổng đó cho cáckết nối: đây được gọi là mở bị động Một khi mở bị động đã được thiết lập thì máy
A có thể bắt đầu mở chủ động Để thiết lập một kết nối, quy trình bắt tay 3 bướcxảy ra như sau :
- Bước 1: Máy A yêu cầu mở cổng dịch vụ bằng cách gửi gói tin SYN (góitin TCP) tới máy B, trong gói tin này, giá trị số thứ tự trong trường “SequenceNumber” được gán cho một giá trị ngẫu nhiên
- Bước 2: Máy B hồi đáp bằng cách gửi lại phía máy A bản tin SYN/ACK,trong gói tin này, tham số trong trường “Ackowledgement Number” được gán giátrị bằng X + 1, tham số trong trường “Sequence Number” được gán ngẫu nhiên một
Trang 11giá trị Y.
- Bước 3: Để hoàn tất quá trình bắt tay ba bước, máy A tiếp tục gửi tới máy Bbản tin ACK, trong bản tin này, tham số số thứ tự trong trường “Sequence Number”được gán cho giá trị bằng X + 1 còn tham số trong trường “AckowledgmentNumber” được gán giá trị bằng Y + 1
Tại thời điểm này cả máy A và máy B đều được xác nhận rằng, một kết nối đãđược thiết lập
1.3.2 Truyền dữ liệu
Một số đặc điểm cơ bản của TCP để phân biệt với UDP :
- Truyền dữ liệu không lỗi ( do có cơ chế sửa lỗi/ truyền lại )
- Truyền các gói dữ liệu theo đúng thứ tự
- Truyền lại các gói dữ liệu mất trên đường truyền
- Loại bỏ các gói dữ liệu trùng lặp
- Cơ chế hạn chế tắc nghẽn đường truyền
Ở hai bước đầu tiên trong quá trình bắt tay ba bước, hai máy tính trao đổi một
số thứ tự gói ban đầu (Initial Sequence Number – ISN) Số này có thể chọn mộtcách ngẫu nhiên Số thự tự này được dùng để đánh dấu các khối dữ liệu gửi từ mỗimáy tính Sau mỗi byte được truyền đi, số này lại được tăng lên Nhờ vậy ta có thểsắp xếp lại chúng khi tới máy tính kia bất kể các gói tin tới nới theo thứ tự thế nào.Trên lý thuyết, mỗi byte gửi đi đều có một số thứ tự và khi nhận được thì máytính nhận gửi lại báo nhận ACK Trong thực tế thì chỉ có byte dữ liệu đầu tiên đượcgán số thứ tự trong trường số thứ tự của gói tin và bên nhận sẽ gửi tin báo nhậnbằng cách gửi số thứ tự của byte đang chờ
Ví dụ: máy tính A gửi 4 byte với số thứ tự ban đầu là 100 (theo lý thuyết thì 4byte sẽ có thứ tự là 100, 101, 102, 103) thì bên nhận sẽ gửi tin báo nhận có nội dung
là 104 vì đó là thứ tự của byte tiếp theo nó cần Bằng cách gửi tin báo nhận là 104,bên nhận đã ngầm thông báo rằng nó đã nhận được các byte 100, 101, 102 và 103.Trong trường hợp 2 byte cuối bị lỗi thì bên nhận sẽ gửi tin báo nhận với nội dung là
102 vì 2 byte 100, 101 đã được nhận thành công
Trang 12Giả sử ta có 10.000 byte gửi đi trong 10 gói tin 1000 byte và có một gói tin bịmất trên đường truyền Nếu gói bị mất là gói đầu tiên thì bên gửi sẽ phải gửi lại toàn
bộ 10 gói vì không có cách nào để bên nhận thông báo nó đã nhận được 9 gói kia.Vấn đề này được giải quyết trong giao thức SCTP (Stream Control TransmissionProtocol) với việc bổ sung báo nhận chọn lọc
Số thứ tự và tin báo nhận giải quyết được các vấn đề lặp gói tin, truyền lạinhững gói tin bị hỏng/mất và các gói tin đến sai thứ tự Để phục vụ mục đích kiểmtra, trong các gói tin có thêm trường kiểm tra tổng (checksum)
1.3.3 Kết thúc kết nối
Hình 1-5: Các bước trong quá trình thiết lập kết nối của giao thức TCP.
Để kết thúc kết nối hai bên sử dụng quá trình bắt tay 4 bước và chiều của kếtnối kết thúc độc lập với nhau Khi một bên kết thúc, nó gửi đi một gói tin FIN vàbên kia gửi lại báo nhận ACK Vì vậy, một quá trình kết thúc tiêu biểu sẽ có 2 cặpgói tin trao đổi
Quy trình kết thúc 4 bước như sau :
Bước 1: Máy A gửi bản tin FIN cho máy B
Bước 2: Máy B nhận được FIN, trả lời ACK đồng thời đóng liên kết và gửiFIN cho máy A
Bước 3: Máy A nhận được bản tin FIN của máy B, trả lời bằng bản tin ACK
Trang 13và ở trạng thái chờ.
Bước 4: Máy B nhận được ACK và đóng liên kết
Một kết nối có thể tồn tại ở dạng, một bên đã kết thúc gửi dữ liệu và chỉ nhậnthông tin, bên kia vẫn tiếp tục gửi
1.3.4 Cửa sổ trượt trong TCP(sliding window)
Để thực hiện việc điều khiển luồng, TCP sử dụng kỹ thuật cửa sổ trượt Cửa
sổ trượt có kích thước cố định hoặc có thể thay đổi được cho phép xác định số gói
dữ liệu tối đa được truyền trước khi nhận được một ACK từ đích xác nhận về Kỹthuật này giải quyết vấn đề quan trọng là tăng hiệu quả truyền dẫn và điều khiển tốc
độ dòng dữ liệu Sliding window cho phép tăng hoặc giảm khả năng truyền của bêngởi (thông tin này được bên nhận gởi qua thông qua trường window size, trườngnày được tính dựa vào bộ đệm còn trống bên phía nhận)
Các cơ chế cửa sổ trượt:
a Cơ chế phát lại theo nhóm(Go-Back-N):
Với cơ chế phát lại Go-back-N, phía phát sẽ được phát nhiều hơn một khungthông tin trước khi nhận được báo nhận từ phía thu Số khung thông tin cực đại mà
phía phát có thể phát (ký hiệu là W) được gọi là kích thước cửa sổ Với cơ chế hoạt
động này, Go-back-N (và cả phương pháp selective repeat trình bày ở phần sau)được gọi là cơ chế cửa sổ trượt (sliding window)
Mỗi khi phát xong một khung thông tin, phía phát giảm kích thước cửa sổ đi
1, khi kích thước cửa sổ bằng 0, phía phát sẽ không được phát thêm khung thông tinnào nữa (điều này đảm bảo số khung thông tin đồng thời đến phía thu không vượt
quá W, và do đó, không vượt quá khả năng xử lý của phía thu).
Mỗi khi phía thu nhận được một khung thông tin đúng và xử lý xong, phía thusẽ gửi lại một báo nhận ACK cho phía phát Khi nhận được báo nhận này, phía phát
sẽ tăng kích thước cửa sổ W lên 1 Điều này đồng nghĩa với việc phía phát sẽ được phát thêm một khung nữa, ngoài W khung đã phát trước đó, vì phía thu đã xử lý
xong một khung, và như vậy, tổng số khung mà phía thu phải xử lý tại một thời
Trang 14điểm vẫn không vượt quá W.
Để có thể phân biệt các khung trên đường truyền, các khung cần được đánh số
thứ tự Nếu dùng k bit để đánh số thì tổng số khung được đánh số sẽ là 2k (từ 0 đến 2k – 1) và do đó, kích thước cửa sổ tối đa Wmax = 2k (về mặt lý thuyết).
Ví dụ sử dụng 3 bit để đánh số thứ tự cho các khung thông tin Lúc này kíchthước cửa sổ cực đại sẽ là 7 (yêu cầu sinh viên giải thích lý do) Tại thời điểm banđâu, cả phía phát và thu đều có kích thước cửa sổ là 7 thể hiện rằng phía phát được
phép phát tối đa là 7 khung (bắt đầu từ khung F0) Sau khi phía phát đã phát được
ba khung (F0, F1, F2) và chưa nhận được ACK, phía phát giảm kích thước cửa sổ xuống còn 4 Lúc này cửa sổ phía phát bao gồm các khung từ F3 đến F6 thể hiện rằng phía phát còn được phép truyền tối đa là 4 khung nữa, bắt đầu từ khung F3.
Ở phía thu, sau khi đã nhận đúng và xử lý xong ba khung F0, F1 và F2 thì sẽ gửi lại ACK3 cho phía phát ACK3 nhằm ám chỉ rằng: “Phía thu đã nhận và xử lý xong các khung cho đến F2 và phía thu đang sẵn sàng nhận khung 3.” Thực tế, phía thu sẵn sàng nhận 7 khung bắt đầu từ khung F3 Phia thu đồng thời tăng kích thước cửa sổ bên thu lên 7, bao các khung từ F3 cho đến F1.
Phía phát sau khi nhận được ACK3 sẽ tăng kích thước cửa sổ thêm 3 đơn vị Lúc này cửa sổ phía phát W = 7 và bao các khung từ F3 đến F1 Giả sử lúc này phía phát thực hiện phát các khung từ F3 đến F6 (4 khung) Sau khi phát, phía phát sẽ giảm kích thước cửa sổ đi 4 (W = 3), lúc này cửa sổ chỉ còn bao các khung F7, F0
và F1.
Phía thu gửi lại ACK4, báo rằng nó đã nhận và xử lý xong khung F3, ACK4
ám chỉ rằng phía phát được phép phát tối đa là 7 khung bắt đầu từ F4 Tuy nhiên khi ACK4 về đến phía phát thì phía phát đã thực hiện phát các khung F4, F5 và F6 rồi, như vậy, phía phát sẽ chỉ còn phát được tối đa là 4 khung bắt đầu từ F7.
Hình dưới đây minh họa nguyên tắc hoạt động của cơ chế cửa sổ trượt
Trang 15Hình 1-6: Nguyên tắc hoạt động của cơ chế cửa sổ trượt
Trong trường hợp lý tưởng (không có lỗi xảy ra) thì cơ chế cửa sổ trượt đảmbảo số khung thông tin từ phía phát đến phía thu không vượt quá kích thước cửa sổ.Trong trường hợp này, không có sự phân biệt giữa Go-back-N và selective repeat(và chúng được gọi chung là sliding window)
Bên cạnh nguyên tắc hoạt động và minh họa đã trình bày trên đây, cần chú ýmột số điểm sau khi tìm hiểu hoạt động của Go-back-N:
- Trong trường hợp phía thu có khả năng xử lý W khung thông tin thì không
cần bộ đệm Phía thu chỉ nhận và xử lý thông tin theo đúng thứ tự (dựa trên số thứ
tự đánh trên các khung)
- Phía thu chuyển các gói thông tin lên lớp cao hơn theo thứ tự
- Phía thu sẽ không nhận khung i+1 nếu chưa nhận được khung i Điều này là
nguyên nhân khiến phía thu không cần phải có bộ đệm
- Phía phát phải lưu tối đa là W khung thông tin trong bộ đệm để chờ ACK
Trang 16b Cơ chế phát lại có lựa chọn(Selective repeat)
Tương tự như cơ chế phát lại Go-back-N, cơ chế phát lại có lựa chọn(selective repeat ARQ) cũng dựa trên phương pháp cửa sổ trượt Phía phát đượcphép phát tối đa W khung thông tin (kích thước cửa sổ) trước khi nhận được báonhận
Điểm khác biệt giữa selective repeat và Go-back-N nằm ở cách hai phươngthức này xử lý khung thông tin bị lỗi Với trường hợp selective repeat, phía phát sẽchỉ thực hiện phát lại khung thông tin bị lỗi mà không cần phát lại tất cả các khungkhác sau khung lỗi nếu như các khung đó không bị sai Cơ chế này giúp tăng hiệuquả sử dụng đường truyền so với cơ chế Go-back-N
Hình 1-7: Nguyên tắc hoạt động của selective repeat
Một số chú ý của selective repeat ARQ
Do phía phát chỉ thực hiện phát lại các khung bị lỗi, do đó các khung đến phíathu có thể không theo thứ tự như khi được phát đi ở phía phát
- Phía thu phải có khả năng xử lý các khung thông tin không theo thứ tự
- Do các khung thông tin phải được đưa lên lớp trên theo đúng thứ tự nên phíathu phải có bộ đệm để lưu tạm các khung thông tin trong khi chờ các khung bị mấthoặc lỗi được phát lại
Phía phát phải thực hiện báo nhận cho tất cả các khung thông tin mà nó nhậnđúng Các khung thông tin không được báo nhận trong khoảng thời gian time-outtương ứng sẽ được coi là bị mất hoặc lỗi
Trong trường hợp phía thu nhận được một khung thông tin sai, phía thu có thể
Trang 17gửi NAK để báo lỗi và yêu cầu truyền lại khung đó (selective reject)
Khi có lỗi xảy ra, việc truyền lại các khung lỗi của cơ chế cửa sổ trượt đượcthực hiện theo hai cách khác nhau:
- Go-back-N: phía phát sẽ thực hiện phát lại khung thông tin bị sai và tất cảcác khung thông tin khác đã được truyền, tính từ khung bị sai
- Selective repeat: phía phát sẽ chỉ phát lại các khung thông tin bị sai
1.4 Điều khiển lưu lượng trong TCP.
Trong TCP, điều khiển lưu lượng(traffic control) được thể hiện trong 3 khíacạnh:
Điều khiển luồng (flow control):
Bên nhận TCP, khi gửi một ACK để xác nhận đã nhận được phân đoạn chobên gửi, trong gói tin ACK này nó cũng cho bên gửi biết số byte dữ liệu mà nó cóthể nhận được từ lần nhận phân đoạn TCP cuối cùng, mà không làm tràn bộ đệmcủa nó Số byte này trong ACK là số thứ thứ tự cao nhất mà nó có thể nhận màkhông xảy ra mất gói
Điều khiển tắc nghẽn (congestion control):
Điều khiển luồng dữ liệu khi tắc nghẽn đã xảy ra để khắc phục tình trạng tắcnghẽn
Tránh tắc nghẽn (congestion avoidance):
Điều khiển luồng dữ liệu khi tắc nghẽn đã xảy ra để phòng ngừa tình trạng tắcnghẽn trên mạng
1.4.1 Điều khiển tắc nghẽn
TCP thực hiện 3 thuật toán “Pha khởi động chậm”, “Pha truyền lại nhanh”,
“Pha phục hồi nhanh” để điều khiển tắc nghẽn
a.Pha khởi động chậm (slow – start)
Pha này hoạt động nhờ việc theo dõi tốc độ các gói tin mới được đưa vàomạng và tốc độ các bản tin ACK được gửi lại Pha khởi động chậm đưa vào mộtcửa sổ mới chỉ có ở bên gửi gọi là cửa sổ tắc nghẽn cwnd Khi một kết nối mớiđược thiết lập giữa một máy với một máy trên một mạng khác, cửa sổ tắc nghẽn
Trang 18được khởi tạo cho mỗi phân đoạn (ví dụ, kích thước phân đoạn thông báo bởi đầubên kia, hoặc mặc định là 536 hoặc 512 byte) Sau mỗi khoảng thời gian nhận đượcACK, cửa sổ tắc nghẽn tăng một phân đoạn Bên gửi có thể truyền tối thiểu số bytegiữa cửa sổ tắc nghẽn cwnd và cửa sổ quảng bá “advertised windown” rwnd Cửa
sổ tắc nghẽn để điều khiển luồng bởi bên gửi, trong khi cửa sổ quảng bá để điềukhiển luồng bởi bên nhận Cửa sổ tắc nghẽn dựa vào những đánh giá về tắc nghẽn
mà bên gửi có được còn cửa sổ quảng bá là lượng bộ nhớ đệm có thể sử dụng ở bênnhận cho kết nối này
Bên gửi bắt đầu truyền một phân đoạn và chờ ACK báo nhận cho phân đoạnnày Khi nhận được ACK, cửa sổ tắc nghẽn tăng lên từ một thành 2, và 2 phân đoạnđược gửi Khi mỗi trong 2 phân đoạn này được xác nhận (bên gửi nhận được ACK),cửa sổ tắc nghẽn sẽ được tăng thành 4 Việc tăng lên này tuân theo hàm mũ, mặc dù
nó có thể không chính xác theo hàm mũ vì bên nhận có thể gửi ACK trễ hơn, thôngthường bên nhận gửi một ACK cho mỗi hai phân đoạn mà nó nhận được
Tại một vài thời điểm nào đó, băng thông của mạng bị đầy, và các router trunggian sẽ bắt đầu loại bỏ các gói tin Điều này báo cho bên gửi rằng cửa sổ tắc nghẽn
đã quá lớn Do đó cần một cơ chế mới để điều này không xảy ra
b.Pha truyền lại nhanh (fast retransmit)
TCP có thể tạo ra một xác nhận tức thời (một bản sao ACK) gửi lại ngay chobên gửi Chức năng của bản sao ACK này là thông báo cho đầu bên kia biết rằngmột phân đoạn mà nó nhận được không theo thứ tự và thông báo “SequenceNumber” mà nó mong đợi
Khi đó bên gửi không biết bản sao ACK nhận được là do mất gói hay chỉ làsắp xếp lại các phân đoạn, nó chờ một số lượng nhỏ bản sao ACK để xác nhận lạiviệc này Giả sử rằng, nếu chỉ để sắp xếp lại các phân đoạn, thì chỉ có một hoặc haibản sao ACK trước khi phân đoạn được sắp xếp lại được xử lý, sau đó sẽ là ACKmới Nếu có 3 hay nhiều hơn 3 bản sao ACK nhận được liên tục, thì có nghĩa là mộtphân đoạn đã bị mất TCP sau đó sẽ thực hiện truyền lại ngay phân đoạn bị mất, màkhông cần chờ hết khoảng thời gian phát lại (retransmission timeout)
Trang 19Hình 1-8: Ví dụ về pha truyền lại nhanh trong TCP.
c Pha phục hồi nhanh (fast recovery)
Sau khi pha “truyền lại nhanh” gửi phân đoạn bị mất, thì bên gửi sẽ thực hiệnluôn pha “tránh tắc nghẽn” mà không thực hiện pha “khởi động chậm” Đây là thuậttoán “phục hồi nhanh” Pha “phục hồi nhanh” là một cải tiến cho phép nâng caothông lượng
Nguyên nhân không thực hiện pha “khởi động chậm” trong trường hợp này là
do bên gửi nhận được các bản sao ACK nên nó biết rằng có nhiều hơn một phânđoạn bị mất Bên nhận chỉ có thể tạo ra các bản sao ACK khi một phân đoạn khác
đã được nhận, phân đoạn đó đã rời khỏi mạng và ở trong bộ đệm nhận Như vậy vẫncòn dữ liệu tiếp sau đó giữa hai đầu cuối, và TCP không muốn giảm luồng truyềnmột cách đột ngột do pha “khởi động chậm”
Thuật toán “truyền lại nhanh” và “phục hồi nhanh” được sử dụng kết hợp vớinhau như sau :
- Khi bên gửi nhận được bản sao ACK thứ ba liên tiếp được, đặt ngưỡngssthresh về một nửa giá trị cửa sổ tắc nghẽn hiện tại, nhưng không nhỏ hơn hai phânđoạn Tryền lại phân đoạn bị mất Đặt cwnd bằng ssthresh cộng với ba lần kích
Trang 20thước phân đoạn Do đó sẽ làm tăng cửa sổ tắc nghẽn bằng số phân đoạn đã rờimạng mà đầu cuối kia giữ.
- Sau thời gian mỗi bản sao ACK được nhận, tăng cwnd thêm một kích thướcphân đoạn Do đó tăng cửa sổ tắc nghẽn thêm một phân đoạn đã mất Truyền mộtgói tin, nếu được cho phép giá trị mới của cwnd
- Khi ACK tiếp theo được nhận xác nhận bên nhận muốn dữ liệu mới, đặtcwnd bằng ssthresh (giá trị được đặt trong bước 1) ACK này có thể được xác nhận
từ bước 1, sau khi truyền lại một khoảng thời gian RTT Ngoài ra, ACK này có thểxác nhận tất cả phân đoạn trung gian được gửi đi giữa phân đoạn bị mất và nhậnđược bản sao ACK đầu tiên Bước này để tránh tắc nghẽn, khi TCP giảm tốc độxuống còn một nửa khi gói tin bị mất
1.4.2 Pha tránh tắc nghẽn (congestion avoidance)
Tắc nghẽn xảy ra khi dữ liệu đến một liên kết có băng thông lớn (fast LAN) vàgửi ra một liên kết có băng thông nhỏ hơn (slower LAN) Tắc nghẽn cũng có thểxảy ra khi nhiều luồng đầu vào đến một rourer mà có dung lượng đầu ra nhở hơntổng dung lượng đầu vào Tránh tắc nghẽn là cách để tránh việc mất gói tin
Giả thiết cho thuật toán là xác suất mất gói là rất nhỏ (nhỏ hơn 1%), do vậyviệc mất gói tin báo hiệu việc tắc nghẽn tại một nơi nào đó giữa nguồn và đích Có
2 dấu hiệu cho biết việc mất gói xảy ra: sau khoảng thời gian timeout và bản saoACK
Tránh tắc nghẽn và khởi động chậm là hai thuật toán độc lập với các mục đíchkhác nhau Nhưng khi tắc nghẽn xảy ra, TCP phải giảm tốc độ truyền các gói tincủa nó trên mạng, và sau đó thực hiện lại pha khởi động chậm lại lần nữa Trongthực tế chúng được kết hợp với nhau
Tránh tắc nghẽn và khởi động chậm cần hai biến trên mỗi kết nối: cửa sổ tắcnghẽn, cwnd và kích thước ngưỡng khởi động chậm, ssthresh Thuật toán kết hợphoạt động như sau :
- Khởi tạo cho một kết nối cho trước: đặt cwnd là một phân đoạn và ssthresh
là 65535 byte
- Bên gửi TCP sẽ gửi dữ liệu lớn nhất là min (cwnd, rwnd)
Trang 21- Khi tắc nghẽn xảy ra (sau khoảng thời gian timeout hay bên gửi nhận đượcbản sao ACK), ssthresh sẽ là một nửa kích thước cửa sổ hiện tại (min(cwnd, rwnd)nhưng tối thiều là 2 phân đoạn) Ngoài ra, nếu tắc nghẽn xảy ra do timeout, cwnd sẽđược đặt là 1 segment.
- Khi dữ liệu mới được xác nhận bởi đầu cuối bên kia, tăng cwnd, nhưng cáchtăng phụ thuộc vào TCP đang ở pha khởi động chậm hay tránh tắc nghẽn
Nếu cwnd nhỏ hơn hoặc bằng ssthresh, TCP ở trong pha khởi động chậm, cònngược lại thì đang ở trong pha tránh tắc nghẽn Pha khởi động chậm được duy trìcho đến khi TCP ở điểm mà tại đó xảy ra tắc nghẽn (nó ghi nhớ một nửa kích thướccửa sổ ở bước 2), và sau đó chuyển sang pha tránh tắc nghẽn
Cwnd trong pha khởi động chậm bắt đầu từ 1 phân đoạn, và được tăng lên 1phân đoạn sau mỗi lần nhận được ACK Như đã được nói đến ở trước đó, việc tăngnày theo cấp số mũ, gửi 1 phân đoạn, sau đó là 2, 4 và gấp đôi… Trong pha tránhtắc nghẽn thì cwnd được tăng segsize*segsize/cwnd sau mỗi lần nhận được ACK, ở
đó segsize là kích thước phân đoạn và cwnd được tính theo byte cwnd tăng theohàm tuyến tính, so với hàm mũ trong pha khởi động chậm Việc tăng cwnd nhiềunhất là 1 phân đoạn sau mỗi RTT, trong khi trong pha khởi động chậm tăng cwndtheo số ACK nhận được sau mỗi RTT
Hình 1-9: Ví dụ về pha khởi động chậm và tránh tắc nghẽn.
CHƯƠNG 2: TỔNG QUAN VỀ GIAO THỨC MULTIPATH
Trang 22TCP(MP TCP)
2.1 Tại sao cần phải có giao thức MP TCP
TCP thông thường(single path) cung cấp hai chức năng chính đó là truyền sốliệu tin cậy và điều khiển tắc nghẽn TCP sử dụng đường dẫn dựa vào bảng địnhtuyến của thiết bị tầng mạng là router để truyền số liệu Như vậy nó chỉ truyền trênmột đường dẫn cho cả một kết nối TCP Điều này dẫn đến những hạn chế trong khảnăng điều khiển tắc nghẽn hay cũng có thể gọi là khả năng cân bằng tải(loadbalancing) Giao thức MultiPath TCP ra đời nhằm cải thiện thông lượng và tăng khảnăng điều khiển tắc nghẽn so với TCP thông thường bằng cơ chế cho phép một cặpđầu cuối sử dụng nhiều đường dẫn để truyền các gói tin trên một kết nối duy nhất
Ta sẽ có dịp thấy rõ những cải tiến của giao thức MP TCP so với TCP thông thường
ở những phần sau của luận văn này
2.2 Các khái niệm mở đầu
Trước khi tìm hiểu và nghiên cứu giao thức MP TCP, những khái niệm sau phải được làm rõ:
- Multihomed:
Là những máy chủ có nhiều giao diện vật lý(ví dụ 3G, wifi, ), qua đó nó được
gắn nhiều địa chỉ IP Khác với máy chủ single-homed là máy chủ chỉ có một giao diện vật lý duy nhất
- Đầu cuối ( endpoint ):
Một đầu cuối triển khai giao thức MP TCP, có thể khởi tạo hay xóa bỏ một kếtnối MP TCP
- Đường dẫn ( path ):
Là tập hợp gồm nhiều liên kết giữa bên gửi và bên nhận, được xác định bởimột cặp địa chỉ nguồn và đích
- Luồng con ( subflow ):
Một dòng gói tin TCP gửi trên một đường dẫn Một luồng con là một phầncủa kết nối giữa hai đầu cuối
- Kết nối ( connection ):
Trang 23Một kết nối gồm một hay nhiều luồng con, mà một ứng dụng có thể giao tiếpgiữa hai đầu cuối Đó là ánh xạ 1-1 giữa một kết nối và socket.
- Token:
Một nhận dạng duy nhất có tính chất cục bộ cho một kết nối Multipath ở mộtđầu cuối Có thể được gọi là “connection ID”
- Cấp dữ liệu ( data – level ):
Dữ liệu trên danh nghĩa được truyền đi trên một kết nối, trong MP TCP nótruyền qua các luồng con Do vậy khái niệm “cấp dữ liệu” đồng nghĩa với khái niệm
“cấp kết nối” ( connection – level ), trái ngược với “cấp luồng con” ( subflow –level ) là đặc tính của mỗi luồng con
- Middlebox:
Các thiết bị trung gian trong mạng như Firewall, Router, NAT
2.3 Các cơ chế đa đường
Đối với MP TCP mục đích chính là truyền dữ liệu trên nhiều đường dẫn khácnhau trong cùng một thời gian Điều này này dẫn đến khi triển khai, kiến trúc MPTCP phải có khả năng tìm và sử dụng nhiều đường dẫn kết nối giữa hai máy đầucuối, nếu chúng tồn tại Tuy nhiên, có thể hình dung ra các cơ chế khác nhau choviệc tìm và sử dụng các đường dẫn này Sau đây là các cơ chế đó:
a.Sử dụng nhiều địa chỉ IP:
Hiện tại thì đây là phương pháp được đưa ra trong thiết kế giao thức MP TCP.Nếu các máy có nhiều địa chỉ IP, các cặp địa chỉ khác nhau từ những địa chỉ này sẽtạo nên các đường dẫn khác nhau
b.Sử dụng giá trị lựa chọn đường dẫn (a path selector value):
Một đầu cuối có thể có khả năng gắn vào các gói tin truyền đi một nhãn chứagiá trị lựa chọn đường dẫn Nếu các nút trong mạng có thể đọc các được nhãn này
và sử dụng nó để chọn đường dẫn, thì một host có thể xác định đường dẫn ra chogói tin
c Lựa chọn next – hop:
Trang 24Trong cấu hình mạng ở những nơi mà nhiều next – hop có thể truyền các góitin, một host có thể quyết định gửi các gói tin của nó qua một next – hop này hoặcqua các nex – hop khác.
2.4 Những lợi ích, mục tiêu của MP TCP
2.4.1 Lợi ích
Khi Internet phát triển, nhu cầu về tài nguyên Internet ngày càng tăng, nhưngthường các nguồn tài nguyên này(băng thông) không được tận dụng tối đa do cáchạn chế về giao thức trên cả hệ thống đầu cuối cũng như trên hệ thống mạng Nếucác nguồn tài nguyên này có thể được sử dụng đồng thời, trải nghiệm người dùng
có thể được cải thiện rất nhiều Những cải tiến như vậy cũng sẽ làm giảm chi phíđầu tư cơ sở hạ tầng mạng Bằng cách ứng dụng chia sẻ tài nguyên(resourcepooling), những tài nguyên sẵn có có thể được gộp lại như một nguồn tài nguyênduy nhất dành cho người sử dụng
Truyền thông Multipath nhằm mục đích đạt được một số những mục tiêu củanguồn tài nguyên tổng hợp bằng cách sử dụng đồng thời nhiều đường dẫn trênmạng Hai lợi ích chủ yếu của truyền thông Multipath là:
- Để tăng khả năng phục hồi của kết nối bằng cách cung cấp nhiều đường dẫnkhác nhau
- Để tăng hiệu quả của việc sử dụng tài nguyên, và do đó tăng năng lực mạnglưới có sẵn cho các đầu cuối
2.4.2 Mục tiêu của giao thức MP TCP
Phần này phác thảo các mục tiêu chính mà giao thức Multipath TCP cần phảihướng tới Các mục tiêu này bao gồm mục tiêu về chức năng(các dịch vụ và tínhnăng mà Multipath TCP cung cấp), và các mục tiêu về khả năng tương thích (ảnhhưởng của giao thức MP TCP đến các giao thức hay hệ thống đang tồn tại khác)
a.Mục tiêu về chức năng:
Trong việc hỗ trợ sử dụng truyền thông nhiều đường dẫn, Multipath TCP cóhai mục tiêu chức năng sau:
- Cải thiện thông lượng truyền dẫn: Multipath TCP phải hỗ trợ việc sử dụng
Trang 25đồng thời nhiều đường dẫn Một kết nối Multipath TCP trên nhiều đường dẫn cóthông lượng đạt được phải không thấp hơn thông lượng của một kết nối TCP đơnlẻ(subflow) trên đường dẫn tốt nhất.
- Cải thiện khả năng phục hồi: MP TCP phải hỗ trợ việc sử dụng nhiềuđường dẫn thay thế cho nhau cho các mục đích khả năng phục hồi, bằng cách chophép các gói dữ liệu được gửi và gửi lại trên bất kỳ đường dẫn có sẵn Vì vậy,trong trường hợp xấu nhất, khả năng phục hồi của một kết nối MP TCP phải khôngnhỏ hơn khả năng phục hồi của một kết nối TCP đơn lẻ bất kỳ
Mục tiêu thứ hai chính là khái niệm “cân bằng tải” (“resource pooling”), mà
MP TCP có thể cân bằng lưu lượng giữa các đường dẫn, và đối phó với hiện tượngtắc nghẽn trong mạng Mạng sẽ tối ưu hơn do tải được dịch ra khỏi các liên kết thắt
cổ chai xảy ra tắc nghẽn và tận dụng các đường dẫn dư thừa bất cứ đâu mà nó thấy
Để đạt được mục tiêu về “cân bằng tải” ở trên, một máy sử dụng MP TCP phải cókhả năng dò ra các đường dẫn mới và sử dụng các đường dẫn này
b Mục tiêu về sự tương thích:
Ngoài ra các mục tiêu chức năng được liệt kê ở trên, một giao thức TCPMultipath phải đáp ứng một số mục tiêu tương thích để hỗ trợ triển khai trên mạngInternet ngày nay Những mục tiêu này được phân loại như sau:
- Tương thích với ứng dụng: Khả năng tương thích ứng dụng đề cập đến sựxuất hiện của MP TCP tới các ứng dụng trong các điều khoản của API có thể được
sử dụng và cả trong mô hình dịch vụ dự kiến được cung cấp MP TCP phải theocùng một mô hình dịch vụ như TCP : gửi thứ tự, tin cậy, theo byte Hơn nữa, mộtkết nối MP TCP cung cấp cho các ứng dụng có thông lượng phải không thấp hơnmột kết nối TCP đơn lẻ trên bất kỳ một trong đường dẫn nào có sẵn của nó TCPmultipath-capable nên giữ lại khả năng tương thích ngược với các TCP API hiệntại, để các ứng dụng hiện tại có thể sử dụng đơn thuần tầng Transport mới bằngcách nâng cấp các hệ điều hành của các đầu cuối Điều này không ngăn cản việc sửdụng một API tiên tiến cho phép các ứng dụng nhận biết đa đường để xác định sự
ưu tiên, và cũng không cho người dùng cấu hình hệ thống của họ khác với ngầm
Trang 26định, ví dụ như bật hoặc tắt việc sử dụng tự động MP TCP.
- Tương thích với tầng mạng: Kiến trúc Internet truyền thống cắm thiết bịmạng trong lớp mạng và các lớp dưới của mô hình ngăn xếp 7 lớp OSI, nơi các lớptrên lớp mạng - lớp vận tải và các lớp trên chỉ được khởi tạo tại các đầu cuối Trongkhi kiến trúc này, thể hiện trong hình 2-2, không còn phản ánh "ground truth" trênmạng Internet với sự gia tăng của các middleboxes Các middleboxes đều đặn xenvào trên lớp Transport, thậm chí đôi khi chấm dứt một kết nối ở lớp transport, do đó
để lại lớp ứng dụng, lớp end-to-end thực sự đầu tiên, như thể hiện trong hình 2-3
Hình 2-2: Kiến trúc Internet truyền thống
end-to-end end-to-end
End Host
end-to-end
End Host
Router Firewall,
NAT, Proxy
End Host Transport
Trang 27động ở tầng mạng nghĩa là Multipath TCP phải tương thích với mạng Internet ngàynay bao gồm khả năng truyền qua các middlebox sẵn có như: firewall, NAT, và cácproxy nâng cao hiệu suất Điều này gây ảnh hưởng đến việc thiết kế giao thức, theokhái niệm đảm bảo MP TCP vẫn giống TCP trên mạng có dây, và MP TCP khi nàothích hợp Điều này yêu cầu phải xây dựng giao thức với các chức năng có thể dò
và truyền qua các middlebox
- Tương thích với những người dùng các giao thức mạng khác: Là hệ quả của
sự tương thích về mạng và tương thích về ứng dụng, kiến trúc MP TCP phải chophép việc tồn tại song song giữa các luồng MP TCP mới và các luồng TCP thôngthường Việc sử dụng nhiều đường dẫn không có nghĩa là làm tổn hại đến nhữngluồng TCP thông thường tại những liên kết thắt cổ chai Các luồng Multipath TCPtrên cùng một nút cổ chai phải chia sẻ băng thông với mỗi luồng khác tương tự nhưviệc chia sẻ xảy ra tại một nút thắt cổ chai của TCP thông thường Ngoài ra, MPTCP phải có đặc điểm tự động thỏa thuận Một máy chủ hỗ trợ khả năng Multipathphải có khả năng dò tìm một cách tin cậy nơi mà một thiết bị thông tin mới hỗ trợgiao thức thế hệ sau, và sử dụng nó nếu được, hay nói cách khác là tự động liên kếtvới giao thức đang tồn tại
c Mục tiêu bảo mật, an ninh mạng:
Mở rộng của giao thức TCP với khả năng truyền Multipath sẽ mang lại một sốmối đe dọa mới trong vấn đề an ninh mạng Mục tiêu an ninh cho Multipath TCP làcung cấp một dịch vụ không kém an toàn hơn so với TCP thông thường single-path Điều này sẽ đạt được thông qua sự kết hợp cơ chế bảo mật của TCP hiện tại(có thể sửa đổi để phù hợp với mở rộng Multipath TCP) và cơ chế bảo mật củatruyền dẫn đa đường Giao thức MP TCP phải duy trì được đặc điểm tin cậy từ đầucuối đến đầu cuối, và cho phép nhận thực giữa đầu cuối với đầu cuối, hay phù hợpvới các chính sách bảo mật trong mô hình mạng tương thích
2.5 Ảnh hưởng của MP TCP đối với hiệu suất TCP
Để cung cấp chức năng truyền tải đa đường, Multipath TCP gửi dữ liệu trênnhiều đường dẫn Triển khai ban đầu là chạy thuật toán điều khiển tắc nghẽn không
Trang 28thay đổi trong giao thức TCP chuẩn trên mỗi luồng con Tuy nhiên, mục đích của
MP TCP còn là không gây ảnh hưởng đến các luồng TCP khác, và do vậy cách triểnkhai này sẽ dẫn đến các phiên Multipath lấy đi lượng băng thông không cân đối tạicác liên kết thắt cổ chai
Do vậy, để chắc chắn gửi dữ liệu trên nhiều đường dẫn, MP TCP phải thựchiện điều này bằng cách không làm ảnh hưởng đến hiệu suất của giao thức TCP củanhững người sử dụng không dùng giao thức Multipath Điều này dẫn đến cần mộtthuật toán điều khiển tắc nghẽn hiệu quả trong MP TCP Trong chương 4 của luậnvăn này ta sẽ trình bày về các thuật toán trong giao thức MP TCP Còn trong phầnnày ta sẽ không đưa ra yêu cầu sử dụng các thuật toán điều khiển tắc nghẽn riêngbiệt, mà ta chỉ đưa ra cách thiết kế giao thức để nó có thể thực hiện được bất kỳthuật toán điều khiển tắc nghẽn nào, độc lập với việc triển khai MP TCP Do vậykiến trúc MP TCP này sẽ tách riêng các chính sách và cơ chế Chính sách là cácquyết định mà xác định đường dẫn nào được sử dụng để truyền gói tin Nó chủ yếudựa vào các thuật toán điều khiển tắc nghẽn khi triển khai giao thức Cơ chế là côngnghệ được sử dụng để đảm bảo rằng mỗi gói tin sẽ được gửi trên các đường dẫnmong muốn Sự phân chia này mục đích cho các nghiên cứu tiếp theo bằng cáchcho phép các thành phần này hoạt động ở các tốc độ khác nhau Từ những phân tíchchức năng truyền tải ở trên, ta sẽ đặt chức năng điều khiển tắc nghẽn trong lớp
“Flow/endpoint”, ứng với mỗi luồng con riêng biệt trong thiết kế MP TCP Để thựchiện được mục đích “không làm tổn hại” thì cần phải có một giao diện để triển khaiđiều khiển tắc nghẽn để cho phép những kết hợp thích hợp của cửa sổ tắc nghẽn ởlớp MP TCP
2.6 Nền tảng kiến trúc MP TCP
Phần này trình bày một kiến trúc giao vận mà dựa vào nền tảng đấy chúng tasẽ xây dựng một kiến trúc tổng quan có hiệu quả đối với việc đạt được các mục tiêucủa giao thức Multipath TCP Kiến trúc giao vận được mô tả ở đây chính là Tng(Transport next-generation, ”Tầng giao vận thế hệ mới") Tng không phải là kiếntrúc duy nhất hỗ trợ giao thức Multipath, Tng là sự kết hợp từ việc nghiên cứu, thực
Trang 29hành và phát triển những kiến trúc giao vận hỗ trợ cơ chế Multipath trước đó.
Existing Layers(trái) Tng Decomposition(phải)
Hình 2-4: Mô hình phân chia chức năng của Tng
Tng chia tách lớp truyền tải thành hai thành phần: hướng ứng dụngapplication-oriented" và hướng mạng “network-oriented”, như thể hiện trong hình2-4
- Các thành phần hướng ứng dụng(tầng Semantic):
Thực hiện chức năng chính là hỗ trợ và bảo vệ truyền thông đầu cuối của ứngdụng, bao gồm cung cấp các đặc điểm về việc sắp xếp theo thứ tự, gửi gói tin tincậy giống như luồng byte TCP hay multi-streams SCTP
- Các thành phần hướng mạng "Flow+Endpoint":
Thực hiện các chức năng chính bao gồm điều khiển tắc nghẽn và định dạngđầu cuối(dựa vào số hiệu cổng dịch vụ port number) Các chức năng hướng mạng,thông thường là nằm ngoài tầng giao vận “end-to-end” Các chức năng này đã đượcchứng minh trong thực tế là có liên quan chặt chẽ với các thiết bị network operatorcũng như các middlebox(các thiết bị tại nút trung gian)
Hình 2-5 thể hiện sự tương tác với các lớp khác nhau của các Middlebox trong
mô hình phân chia tầng giao vận(như ở hình 2-4) : thành phần hướng ứng dụngapplication-oriented điều hành end-to-end trong khi đó thành phần hướng mạngđiều hành "segment-by-segment" và có thể được đặt xen kẽ các middlebox
ApplicationTransportNetwork
ApplicationSemanticFunctions
Flow / EndpointFuncitonNetwork
( Chức năng hướng tầng ứng dụng )
( Chức năng hướng tầng mạng )
Trang 30Hình 2-5: Các middleboxes trong mô hình mạng Internet mới
2.7 Mô hình phân chia chức năng MP TCP
Dựa vào nền tảng là mô hình Tng đã phân tích ở phần trước , chúng ta chia
MP TCP thành 2 tầng con kết nối với nhau thông qua một giao diện xác định
Kiến trúc của MP TCP thiết kế theo mô hình phân chia Tng như hình 2-6
Hình 2-6: Mối quan hệ giữa Tng(bên trái) và MP TCP(bên phải)
end-to-end
End Host
Firewall
or NAT Perfomance Enhancing
Proxy
End Host
Flow+End point
Flow+E ndpoint
end-to-end
ApplicationSemanticFlow/Endpt Flow/Endpt
Network Network
ApplicationMPTCPSubflow Subflow
IP IP
Trang 31- Thành phần subflow TCP:
Cung cấp khả năng tương thích mạng có vai trò như một luồng TCP thôngthường trong mạng, cũng như tầng Flow/Endpoint là thành phần hướng mạng(network oriented)
Là phần mở rộng giao thức của TCP, MP TCP do đó thừa nhận một cách rõràng các middlebox trong khâu thiết kế của nó, và xác định một giao thức hoạt động
ở hai quy mô: các thành phần MPTCP điều hành end-to-end, trong khi nó cho phépthành phần TCP điều hành segment-by-segment Từ những phân tích ở trên, giaothức vận chuyển đa đường phải có chức năng quản lý Flow/Endpoint đối với mỗiđường dẫn ở kết nối “đầu cuối – đầu cuối”(end-to-end), trong khi vẫn phải có giaodiện trong suốt đối với tầng ứng dụng Giữ nguyên kiến trúc này, MP TCP phânchia tầng vận chuyển thành các phần: phần MPTCP, đáp ứng các chức năng
“semantic function” truyền dữ liệu thứ tự và tin cậy, và phần “legacyTCP”(subflow), bao gồm các chức năng Flow/Endpoint
MPTCP sử dụng các phiên của TCP thông thường , hay còn gọi là các
"subflow", để cung cấp cách thức giao vận cơ sở trên mỗi đường dẫn, và như vậynhững điều này giữ lại khả năng tương thích trên mạng Thông tin MPTCP cụ thểđược truyền trong một cách thức tương thích với TCP , mặc dù cơ chế này là táchbiệt với các thông tin thực tế được chuyển giao để có thể phát triển trong các phiênbản trong tương lai Ở phần này ta đưa ra một kiến trúc tổng quan cho TCP đađường Kiến trúc này cho phép giao thức trực tiếp thực hiện được các mục tiêu đãnêu ra ở trên MPTCP hoạt động ở tầng vận chuyển, và sự tồn tại của nó mục đích
là trong suốt với cả những lớp cao và thấp hơn Nó được mở rộng từ giao thức TCPchuẩn, và như vậy MPTCP được thiết kế để có thể sử dụng được các ứng dụng kếthừa từ TCP mà không cần thay đổi các ứng dụng này Những ứng dụng có khảnăng sử dụng truyền tải đa đường có thể sử dụng thêm nhiều socket API Hình 2-7minh họa kiến trúc phân lớp của TCP thông thường và MP TCP
Trang 32Hình 2-7: So sánh mô hình TCP và mô hình của MP TCP
Nằm bên dưới tầng ứng dụng, mở rộng MPTCP lần lượt quản lý các TCPsubflows(luồng con) dưới nó Để làm điều này, nó phải thực hiện các chức năngsau:
a.Quản lý đường dẫn(Path Management): Đây là chức năng phát hiện và
sử dụng nhiều đường dẫn giữa hai host MPTCP sử dụng sự hiện diện của nhiều địachỉ IP ở một hoặc cả hai host như là một điều để phát hiện khả năng sử dụng nhiềuđường dẫn Do đầu cuối không thể phân biệt các đường dẫn khác nhau, nên dễdàng xảy ra trường hợp các đường dẫn này có thể đi qua cùng một liên kết thắt cổchai Tính năng quản lý đường dẫn của giao thức MP TCP là các cơ chế để báo hiệunhững địa chỉ khác nhau cho các host biết, và cơ chế để thiết lập các subflows mớigia nhập vào một kết nối MP TCP đang tồn tại
b.Lập lịch cho các phân đoạn(Scheduler) : 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(segments) để truyền đi trên mộttrong những subflows sẵn có Thiết kế MP TCP sử dụng một ánh xạ đánh thứ tự dữliệu(data sequence mapping), liên kết các phân đoạn được gửi trên các subflow khácnhau 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ácsubflow 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ý đườngdẫn, và sau đó nó sử dụng các subflow để 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 trách nhiệm cho việc sắp xếp lại các phân đoạn ở cấpkết nối khi nhận được gói tin từ các luồng con TCP, theo bản đồ chuỗi dữ liệu
c Giao diện Subflow (TCP một đường dẫn): Thành phần subflow có các
phân đoạn từ các thành phần lập lịch gói tin và truyền chúng trên một đường dẫn
ApplicationTCP
Application
IP
MPTCP Subflow ( TCP ) Subflow ( TCP )
IP
Trang 33xác định Chú ý rằng phần lập lịch gói tin không được gắn đủ thông tin trong góitin để cho phép thực hiện điều này: các phân đoạn với cùng một Sequence Numbercấp kết nối có thể được truyền đi trên nhiều đường dẫn, ví dụ, khi truyền lại hayđiều chỉnh tăng khả năng dư thừa (redundancy) MP TCP sử dụng TCP bêndưới(Subflow) cho khả năng tương thích mạng; TCP đảm bảo gửi tin cậy, theo thứ
tự TCP đánh số thứ tự riêng vào các phân đoạn, sử dụng cho việc phát hiện cũngnhư truyền lại các gói bị mất ở lớp Subflow Bên nhận, Subflow chuyển tập hợp cácphân đoạn cho thành phần lập lịch gói tin ở mức kết nối(MP TCP); Data sequencemapping 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 bytetheo đúng như thứ tự bên gửi
d.Kiểm soát tắc nghẽn: Chức năng này phối hợp kiểm soát tắc nghẽn trên
mỗi subflow(TCP thông thường) Thuật toán điều khiển tắc nghẽn phải đảm bảorằng một kết nối MP TCP không được chiếm nhiều băng thông một cách khôngcông bằng hơn một luồng con TCP chiếm tại một nút cổ chai chia sẻ
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:
Path Management sau khi phát hiện (hoặc khởi tạo) nhiều đường dẫn giữahai host Packet Scheduler sau đó nhận được một dòng dữ liệu từ các ứng dụngdà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 này (ví
dụ phân mảnh dữ liệu thành các phân mảnh ở cấp kết nối(MP TCP) và đánh số thứ
tự cấp kết nối ) rồi gửi nó xuống lớp subflow Subflow sau đó thêm số thứ tựriêng(cấp luồng con), khung báo nhận ACKs, và chuyển chúng vào mạng Lớpsubflow 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ầnnữa nhưng ở cấp kết nối(MP TCP) và gửi dòng dữ liệu lên 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ậplịch gói tin(tính toán, lập lịch các phân mảnh nên gửi với tốc độ nào, ở subflownào )
2.8 Các module chi tiết của tầng con MPTCP
Từ những phân tích ở các phần trên, phần này là phần phác thảo chi tiết những
Trang 34module của tầng con MPTCP
MPTCP nằm hoàn toàn trong tầng vận chuyển, nó có thể chia thành 2 modulechính Một, quản lý việc lập lịch các gói tin cũng như điều khiển tắc nghẽn Mộtquản lý điều khiển đường dẫn Giao diện giữa hai module này được ngăn cách bởiPath Index Như ở hình dưới, Path Manager (Path Manager) thông báo choMultipath Scheduler đường dẫn nào có thể được sử dụng thông qua các Path Index,
và duy trì tham chiếu giữa giá trị và các action cụ thể trên đường dẫn đó Trongtrường hợp built – in Path Manager, action thay thế một cặp địa chỉ/cổng bằng mộtcặp khác
Hình 2-8: Chi tiết 2 module của tầng con MPTCP.
Multipath Scheduler nhận biết đường dẫn dưới dạng các số Nó chỉ nhìn mộtcặp địa chỉ trong suốt quá trình truyền dữ liệu, ta gọi là nhận dạng kết nối Tuynhiên, Multipath Scheduler phải có thể điều khiển tắc nghẽn ở mỗi luồng con, và có
MPS gắn đường dẫn
có idx: 3A1, B1, pA1,pB1
path1 path2 path3
Trang 35thể phân biệt giữa các luồng con này Do đó cần thiết nhận dạng được mỗi luồngcon, nhận dạng này được mở rộng từ path_index bao gồm <addr_src, psrc, addr_dst,pdst, path_index> Multipath Scheduler quản lý các loại bản tin sau :
MULTIPATH CAPABLE (MPC): bản tin này cho biết một đầu cuối hỗ trợ
MP TCP hay không Trong bản tin MPC chứa một token, token này chỉ cần thiếtnếu sử dụng built – in Path Manager
DATA SEQUENCE NUMBER (DSN): xác định vị trí các gói tin trong luồng
dữ liệu
DATA FIN (DFIN): kết thúc một luồng Multipath
Việc triển khai phải sử dụng các bản tin này ngay cả khi triển khai PathManager khác với Path Manager mặc định Path Manager áp dụng kỹ thuật riêngbiệt để Multipath Scheduler có khả năng sử dụng nhiều đường dẫn Path Managertrong MP TCP sử dụng các địa chỉ IPv4, điều đó có nghĩa là nó hoàn toàn truyềnđược các gói tin trong mạng Internet ngày nay Khi một Multipath Scheduler bắtđầu một kết nối mới, MP chọn một token sẽ được sử dụng để nhận dạng kết nốinày Điều này là cần thiết để Path Manager áp dụng đúng path index để truyền góitin Ví dụ về bảng tham chiếu :
Trang 36Bảng 2-1 đưa ra ví dụ đơn giản, trong đó có 2 kết nối đang được sử dụng Mộtđược xác định bởi token_1, một được xác định bởi token_2 Khi Path Manager viếtlại các địa chỉ , điểm gắn kết với đúng kết nối nào được thực hiện nhờ token, và sửdụng để thiết lập kết nối và luồng con Sau đó nó sẽ được lưu lại Cột đầu tiên lànhững thông tin được đưa ra cho ứng dụng, trong khi cột cuối là những thông tinthực được thêm vào gói tin truyền đi trong mạng Cần chú ý rằng, khi thêm nhữngđịa chỉ, port có thể được viết lại, góp phần để hỗ trợ NAT Bảng trên cũng chỉ ra vaitrò của token, token gắn với các kết hợp khác nhau của địa chỉ và port trong một kếtnối đơn Token được xác định trong Path Manager, và có thể được bỏ qua nếu PathManager khác sử dụng Khi triển khai trong Path Manager phải thêm vào các bảntin sau:
Add Address (ADDR): thông báo một địa chỉ IP mới mà đầu cuối có
Remove Address (REMADDR): bỏ đi một địa chỉ đã được thông báo trước đó.Join Connection (JOIN): thêm một luồng con vào kết nối hiện tại
Những bản tin này mặc định có trong Path Manager MP TCP, dựa trên sựtuyên bố nhiều địa chỉ IP, và các thông tin điều khiển mang trong gói tin TCP Khitriển khai MP TCP có thể sử dụng bất kỳ Path Manager nào, nhưng nó phải có khảnăng quay trở lại Path Manager mặc định trong trường hợp các đầu cuối khác không
hỗ trợ Path Manager khác loại
Multipath Scheduler (Multipath Scheduler) biết được số đường dẫn khả dụngthông qua các thông báo nhận được từ Path Manager (Path Manager) Khi đứng ởMultipath Scheduler, một đường dẫn chỉ là một số gọi là Path Index Các thông báo
từ Path Manager tới Multipath Scheduler có thể bao gồm các thông tin hỗ trợ vềđường dẫn, nếu liên quan, do đó Multipath Scheduler có thể thực hiện nhiều quyếtđịnh thông minh khi định tuyến lưu lượng Khi Multipath Scheduler khởi tạo mộtquá trình truyền tin đến một host mới, nó có thể chỉ gửi gói tin trên một đường dẫnmặc định Nhưng khi Path manager được phân lớp ở dưới Multipath Scheduler, nó
có thể dò được rằng một giao tiếp mới đang diễn ra, và báo cho Multipath Scheduler
Trang 37về các đường dẫn khác mà nó biết Do đó, có khả năng Multipath Scheduler gắnmột Path Index vào cấu trúc điều khiển trong gói tin của nó (bên trong kiến trúc MPTCP), từ đó Path Manager có thể tham chiếu Path Index này với action tương ứng(nhìn vào bảng dưới cùng bên trái hình Mỗi action riêng biệt phụ thuộc vào cơ chếmạng được sử dụng để lựa chọn đường dẫn Ví dụ là viết lại địa chỉ, định tuyếnđường hầm hay thiết lập giá trị lựa chọn đường dẫn trong gói tin Việc ứng dụng cáckiến trúc không bị giới hạn bởi giao thức MP TCP, trong khi ta xác định trong báocáo này một MP TCP Multipath Scheduler, thì các Multipath Scheduler khác có thểđược xác định Ví dụ, nếu một giao diện với socket thích hợp được sử dụng, cácứng dụng có thể xem như một Multipath Scheduler và quyết định sẽ gửi các phần
dữ liệu riêng biệt ở đâu
2.9 Giao diện Path Manager/Multipath Scheduler
Các yêu cầu tối thiểu cho Path Manager như sau:
Các gói tin truyền đi không được gắn nhãn: Mỗi gói tin được gửi đi qua Path
Manager hoặc được gắn nhãn hoặc không được gắn nhãn (bởi Multipath Scheduler)với một Path Index Nếu nó không được gắn nhãn, gói tin được gửi bình thườngtrên mạng Internet, mà không sử dụng được khả năng Multipath Các gói tin khônggắn nhãn có thể được sử dụng để kích hoạt quá trình tìm đường dẫn, nghĩa là, PathManager có thể lắng nghe các gói tin không được gắn nhãn và quyết định tìm nếu
có bất kỳ đường dẫn nào ngoài đường mặc định có thể sử dụng Chú ý bất kỳ tiêuchuẩn nào cũng có thể được sử dụng để quyết định khi nào bắt đầu tìm kiếm cácđường dẫn khả dụng Cũng chú ý rằng Multipath Scheduler không có khả năng tìmcho đến khi Path Manager được thông báo về các dường dẫn khả dụng
Các gói tin truyền đi được gắn nhãn: Path Manager duy trì một bảng tham
chiếu đường dẫn với action Action là hoạt động mà cho phép sử dụng một đườngdẫn riêng biệt Ví dụ về các hành động như lựa chọn định tuyến, lựa chọn giaodiện hay truyền gói tin Khi Path Manager thấy một gói tin được gắn nhãn với mộtPath Index, nó sẽ tìm kiếm trong bảng để tìm ra action thích hợp cho gói tin Việc
Trang 38gắn nhãn chỉ được biết trong Path Manager Nó sẽ bị xóa trước khi gói tin đượctruyền đi.
Các gói tin đến: Path Manager phải bảo đảm mỗi đường dẫn đến phải được
tham chiếu rõ ràng và chính xác đến một đường ra Chú ý rằng, yêu cầu này nghĩa
là số đường dẫn vào và ra phải bằng nhau Hơn nữa, Path Manager phải gắn nhãnbất kỳ đường dẫn vào nào với cùng Path Index như sử dụng cho đường dẫn ra tươngứng Điều này là cần thiết để MP TCP biết được đường ra nào được xác nhận bởigói tin đến
Giao diện module: Path Manager phải có khả năng thông báo cho Multipath
Scheduler về số đường dẫn khả dụng Các thông báo này phải bao gồm Path Indexphù hợp để Multipath Scheduler sử dụng Trong trường hợp Path Manager quyếtđịnh ngừng cung cấp dịch vụ cho một đường dẫn, nó phải thông báo cho MultipathScheduler Hơn nữa, Path Manager có thể cung cấp thông tin phụ về đường dẫn khi
có thể, như chất lượng liên kết hay mức độ ưu tiên của đường dẫn đó
Trang 39CHƯƠNG 3: HOẠT ĐỘNG CỦA GIAO THỨC MP TCP
3.1 Bản tin MPTCP
Tất cả những hoạt động của giao thức MP TCP được báo hiệu qua các bản tinđược thêm vào trong trường Options trong TCP header Các bản tin này được kýhiệu bởi “Tổ chức cấp phát số hiệu Internet”(IANA) như bảng sau:
Bảng 3-1: Các loại bản tin trong giao thức MP TCP.
Ý nghĩa và cơ chế của các bản tin này sẽ được phân tích chi tiết ở các phần saucủa chương
Trong MP TCP, một số khái niệm ở TCP thông thường đã thay đổi, sau đây lànhững thay đổi :
Số thự tự (Sequence Number): Trường “Sequence Number” trong phần mào
đầu của gói tin TCP là để đánh số thự tự trong các luồng con Để cho phép bênnhận có thể sắp xếp lại đúng thứ tự dữ liệ cho việc chuyển lên tầng ứng dụng, giaothức MP TCP sử dụng thêm một phần gọi là không gian thứ tự cấp dữ liệu Trongtrường này, bản tin khởi tạo SYN và bản tin kết thức DATA FIN chiếm 1 octet (8bit) của không gian thứ tự Do có hai không gian số thứ tự nên cần một ánh xạ chínhxác giữa không gian chuỗi dữ liệu và không gian chuỗi luồng con(chính là DataSequence Mapping), ánh xạ này được báo hiệu thông qua trường “TCP option”trong các gói tin TCP
Ký hiệu bản tin Tên bản tin
Trang 40ACK: Trường ACK trong phần mào đầu TCP chỉ báo nhận ở mức subflow
thông qua số thứ tự cấp luồng con, không báo nhận ở không gian thứ tự mức dữliệu(mức kết nối MP TCP) Không nên cố gắng liên hệ việc báo nhận ở mức dữ liệu
từ các khung báo nhận ACK mức luồng con thay vì dùng riêng một khung báo nhậntách biệt ở mức kết nối
Duplicate ACK: Khung ACK dành cho MP TCP này phải được tách biệt độc
lập với báo hiệu tắc nghẽn Để loại bỏ trường hợp những đối tượng non-MP TCPkhông nhận biết được duplicate ACKS, MP TCP không nên gửi nhiều hơn haiduplicate ACKS chứa báo hiệu MP TCP trong một hàng
Cửa sổ nhận (Receive Window): Cửa sổ nhận tồn tại ở cấp kết nối thích hợp
hơn là ở cấp luồng con, cửa sổ này dùng để điều chỉnh tốc độ gửi phù hợp với tốc
độ xử lý của bên nhận Trong MP TCP, mỗi luồng con phải báo cáo cùng một cửa
sổ nhận toàn phần, được xác định trên mỗi kết nối ở bộ đệm bên nhận Cửa sổ nhận
ở phần mào đầu TCP cho cho biết không gian đệm còn trống cho kết nối mức dữliệu(trái ngược với mức luồng con) ở bên nhận Điều này cũng giống ở TCP thôngthường, nhưng để duy trì điều này cửa sổ nhận phải được thể hiện ở bên gửi liên hệvới số thứ tự ở khung báo nhận DATA_ACK Với cách này, vai trò kiểm soát luồngđược bảo toàn Chú ý rằng một số middleboxes có thể làm thay đổi cửa sổ nhận và
vì thế một đầu cuối phải sử dụng giá trị cực đại trên mỗi luồng con cho cửa sổ nhận
ở mức kết nối cũng như cần phải duy trì một cửa sổ mức luồng con cho việc xử lýmức luồng con
FIN(FINISH): Cờ đánh dấu kết thúc FIN trong mào đầu TCP sử dụng cho
mỗi luồng con, không sử dụng ở mức kết nối Để báo hiệu kết thúc ở mức kết nối,
ta sử dụng option DATA_FIN
RST(RESET): Cũng như cờ FIN, cờ RST cũng chỉ sử dụng ở mức luồng con.
Không có RST ở mức kết nối, vì không thể phân biệt RST của hai kết nối Ví dụ:nếu một máy không có trạng thái về một luồng con, nó sẽ không thể biết luồng con
đó thuộc về kết nối nào trong số những kết nối nó đang thực hiện Để reset một kếtnối, ta reset đồng thời tất cả luồng con của kết nối đó