MỤC LỤC
TFc ngh*n x/y ra khi dữ liệu đến một liên kết có băng thông lDn (fast LAN) và gửi ra một liên kết có băng thông nhX hơn (slower LAN). TFc 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ơn tổng dung lư-ng đầu vào. Gi/ thiết cho thuật toán là xác suất mất gói là rất nhX (nhX hơn 1%), do vậy việc mất gói tin báo hiệu việc tFc ngh*n tại một nơi nào đó giữa nguồn và đích.
Nhưng khi tFc ngh*n x/y ra, TCP ph/i gi/m tốc độ truyền các gói tin củ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. Tránh tFc ngh*n và khởi động chậm cần hai biến trên mỗi kết nối: cửa sổ tFc ngh*n, cwnd và kích thưDc ngưỡng khởi động chậm, ssthresh. - Khi tFc ngh*n x/y ra (sau kho/ng thời gian timeout hay bên gửi nhận đư-c b/n sao ACK), ssthresh s* là một nửa kích thưDc cửa sổ hiện tại (min(cwnd, rwnd) nhưng tối thiều là 2 phân đoạn).
- Khi dữ liệu mDi đư-c xác nhận bởi đầu cuối bên kia, tăng cwnd, nhưng cách tăng phụ thuộc vào TCP đang ở pha khởi động chậm hay tránh tFc ngh*n. Nếu cwnd nhX hơn hoặc bằng ssthresh, TCP ở trong pha khởi động chậm, còn ngư-c lại th6 đang ở trong pha tránh tFc ngh*n. Pha khởi động chậm đư-c duy tr6 cho đến khi TCP ở điểm mà tại đó x/y ra tFc ngh*n (nó ghi nhD một nửa kích thưDc cửa sổ ở bưDc 2), và sau đó chuyển sang pha tránh tFc ngh*n.
Như đã đư-c nói đến ở trưDc đó, việc tăng này theo cấp số mũ, gửi 1 phân đoạn, sau đó là 2, 4 và gấp đôi… Trong pha tránh tFc ngh*n th6 cwnd đư-c tăng segsize*segsize/cwnd sau mỗi lần nhận đư-c ACK, ở đó segsize là kích thưDc phân đoạn và cwnd đư-c tính theo byte. Việc tăng cwnd nhiều nhất là 1 phân đoạn sau mỗi RTT, trong khi trong pha khởi động chậm tăng cwnd theo số ACK nhận đư-c sau mỗi RTT.
Path Manager trong 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. Nhưng khi Path manager đư-c phân lDp ở dưDi Multipath Scheduler, nó có thể dò đư-c rằng một giao tiếp mDi đang diễn ra, và báo cho Multipath Scheduler về các đường dẫn khác mà nó biết. Do đó, có kh/ năng Multipath Scheduler gFn mộ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 MP TCP), từ đó Path Manager có thể tham chiếu Path Index này vDi action tương ứng (nh6n vào b/ng dưDi cùng bên trái h6nh.
Việc ứng dụng các kiến trúc không bị giDi hạn bởi giao thức MP TCP, trong khi ta xác định trong báo cáo này một MP TCP Multipath Scheduler, th6 các Multipath Scheduler khác có thể đư-c xác định. Ví dụ, nếu một giao diện vDi 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. 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 gFn nhãn hoặc không đư-c gFn nhãn (bởi Multipath Scheduler) vDi một Path Index.
Các gói tin không gFn nhãn có thể đư-c sử dụng để kích hoạt quá tr6nh t6m đường dẫn, nghĩa là, Path Manager có thể lFng nghe các gói tin không đư-c gFn nhãn và quyết định t6m nếu có bất kỳ đường dẫn nào ngoài đường mặc định có thể sử dụng. Cũng chú ý rằng Multipath Scheduler không có kh/ năng t6m cho đến khi Path Manager đư-c thông báo về các dường dẫn kh/ dụng. Khi Path Manager thấy một gói tin đư-c gFn nhãn vDi một Path Index, nó s* t6m kiếm trong b/ng để t6m ra action thích h-p cho gói tin.
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 Multipath Scheduler. 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 đó.
5 – tuple: bao gồm protocol, local address, local port, remote address, remote port đư-c áp dụng cho tầng ứng dụng đối vDi ứng dụng không có kh/ năng nhận diện Multipath trên luồng con đầu tiên, ngay c/ khi luồng con đó vừa bị đóng hay xóa khXi kết nối. Và cuối cùng th6 bên gửi cũng s* gửi như một phiên TCP trên một đường dẫn thông thường (mà không có b/n tin “Multipath Capable”), một kh/ năng khác là các Middlebox có thể loại bX các gói tin có các b/n tin mà nó không biết; tuy nhiên số lần thử kh/ năng Multipath đầu tiên đư-c tạo ra s* phụ thuộc vào chính sách cục bộ. Trong trường h-p các gói tin không theo thứ tự, ví dụ nếu bên gửi nhận đư-c một gói tin SYN/ACK chứa b/n tin “Multipath Capable”, sau khi nó gửi một b/n tin SYN thông thường, th6 khi nó nó s* dựa vào bộ khởi tạo để quyết định cách thức thực hiện.
Thực tế, thấy đư-c là hầu hết các luồng con mDi s* kết nối lại vDi một port ( mà đã đư-c sử dụng như là cổng nguồn hay cổng đích của một luồng con đang tồn tại ), để có nhiều cơ hội vư-t qua firewall và các Middlebox khác hơn, và để hỗ tr- kĩ thuật điều khiển lưu lư-ng của luồng. Đầu tiên, nếu một địa chỉ v6 một lý do nào đó trở nên không tồn tại đối vDi bên gửi, nó có thể thông báo điều này đến bên nhận trông qua b/n tin “Remove Address” mà không cần biết địa chỉ nguồn thực chất là g6 (do cho phép sử dụng NAT). Nếu, trong suốt thời gian tồn tại của một kết nối MP TCP, một địa chỉ đã đư-c thông báo trưDc đó trở nên không h-p lệ (ví dụ nếu interface của nó bị hXng), đầu cuối liên quan đến địa chỉ này s* thông báo điều này để đầu cuối kia có thể xóa đi những luồng con liên quan đến địa chỉ này.
Trường “Data Sequence Number” trong b/n tin này là tuyệt đối, trong khi trường “Subflow Sequence Number” là tương đối (khi gói tin SYN đư-c gửi đi th6 nó khởi tạo giá trị của trường “Subflow Sequence Number” là 1). Mỗi ánh xạ là duy nhất, ở đó “Subflow Sequence Number” là giDi hạn của “Data Sequence Number” sau khi việc ánh xạ hoàn tất. Về sau không thể thay đổi sự ánh xạ này; tuy nhiên, khi truyền lại cùng một “Data Sequence Number” có thể đư-c trên. OPT_REMADR Length=2+n Address ID. nhiều luồng con khác nhau hay dữ liệu bị mất có thể đư-c truyền lại trên luồng con khác). Nếu x/y ra trường h-p mà dữ liệu trong luồng bị loại bX sau khi nó đư-c xác nhận (có thể x/y ra khi proxy middlebox bị lỗi, hay bộ đệm ở một máy bị tràn), kết nối s* đứt hoàn toàn v6 bên gửi cho rằng dữ liệu đã đư-c nhận trong khi thực tế lại chưa. Ý tưởng này cho phép bất cứ luồng con nào đều có thể gửi dữ liệu miễn là bên nhận có thể nhận đư-c; hoặc một kh/ năng khác, duy tr6 cửa sổ nhận trên mỗi luồng con, hay có thể thiết lập hay kết thúc trên một vài luồng trong khi những luồng con còn lại không sử dụng những cửa sổ này.
Khi thực hiện điều này, một đầu cuối vẫn ph/i truyền lại gói tin dữ liệu ban đầu trên luồng con ban đầu, để đ/m b/o trọn vẹn luồng con đó (Middlebox có thể chạy lại dữ liệu cũ, hoặc có thể từ chối những chỗ khuyết trong luồng con), và bên nhận s* bX qua những sự truyền lại này.Việc tối ưu có thể đư-c đưa ra ở những phiên b/n sau của giao thức. Trong trường h-p thông thường, khi mà mục đích truyền dữ liệu để đạt đư-c thông lư-ng lDn nhất, th6 tất c/ các đường dẫn kh/ dụng s* đư-c sử dụng đồng thời để truyền dữ liệu, sử dụng thuật toán điều khiển tFc ngh*n là “Coupled Multipath-Aware Congestion Control”. Ví dụ giữa hai đầu cuối có thêm một hoặc nhiều đường dẫn kh/ dụng, tuy nhiên những đường dẫn này không có đư-c sự ổn định cần thiết như là thông lư-ng quá thấp, xác suất mất gói quá cao, hay độ trễ quá lDn th6 s* không đáp ứng đư-c ứng dụng mà đầu cuối yêu cầu th6 những đường dẫn này cũng s* không đư-c lựa chọn.
Khi thực hiện điều này, một đầu cuối vẫn ph/i truyền lại dữ liệu ban đầu trên luồng con ban đầu, để giữ đư-c tính toàn vẹn (Middleboxes có thể chạy dữ liệu cũ, hoặc từ chối chỗ hổng trong các luồng con ), và bên nhận s* từ chối lại sự truyền lại này.