Báo Cáo Hệ Thống Viễn Thông Đề Tài Tìm Hiểu Giao Thức Multipath Tcp Trong Hệ Thống Truyền Thông.pdf

32 0 0
Tài liệu đã được kiểm tra trùng lặp
Báo Cáo Hệ Thống Viễn Thông Đề Tài Tìm Hiểu Giao Thức Multipath Tcp Trong Hệ Thống Truyền Thông.pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

TRƯỜNG ĐIỆN-ĐIỆN TỬ

BÁO CÁO HỆ THỐNG VIỄN THÔNG

ĐỀ TÀI:

TÌM HIỂU GIAO THỨC MULTIPATH TCP TRONG HỆ THỐNG TRUYỀN THÔNG Giáo viên hướng dẫn : Ts Nguyễn Thành Chuyên

Sinh viên thực hiện : Phạm Thanh Tân-20198147 Dương Tuấn Huy-201981 Nguyễn Trọng Đức-201981

LỜI NÓI ĐẦU

Hệ thống viễn thông hay mạng viễn thông là một hệ thống chức năng truyền thông tin đi xa bằng sóng vô tuyến điện, Hệ thống này là một nhóm các nút được kết nối lại Thông liên kết viễn thông, các nút có thể trao đổi thông điệp với nhau Giao thức truyền thông l một phần trong sự phát triển

mạng Nó định nghĩa cách thức giao tiếp, đồng bộ hóa và xử lý dữ liệu để đảm bảo truyền thông hiệu quả và đáng tin cậy.

Ngày nay, với sự phát triển lớn mạnh của mạng internet, các hệ thống truyền tải thông tin, và nhu cầu sử dụng ngày càng đa dạng của mọi người trên toàn thế giới, việc đảm độ chính xác, bảo mật và lưu lượng lớn của thông tin khi truyền đi vô cùng quan trọng, cần thiết hơn bao giờ hết Với mong muốn được học tập, nghiên cứu và vận dụng kiến thức đã học được trên giảng đường, trong môn học Hệ thống viễn thông, chúng em đã chọn đề

tài “Tìm hiểu giao thức multi-path TCP trong hệ thống truyền thông”.

Trong quá trình làm bài tập lớn, chúng em xin chân thành cảm ơn thầy Nguyễn Thành Chuyên, trường Điện-Điện tử, Đại học Bách khoa Hà Nội đã giúp đỡ chúng em thực hiện đề tài này Trong quá trình thực hiện đề tài, không tránh khỏi những thiếu sót và hạn chế nhất định Vì thế chúng em mong nhận được những sự góp ý, bổ sung của thầy để đề tài của nhóm được hoàn thiện hơn.

Hà Nội, 7-2023

Trang 2

1.1 Giao thức TCP

TCP ( Transmission Control Protocol ) là giao thức nằm ở tầng 4 trong mô hình 7 lớp OSI (tầng 3 trong mô hình TCP/IP) Nó là giao thức hướng liên kết tức là khi truyền dữ liệu, bên gửi và bên nhận TCP thương lượng và thiết lập một kết nối logic tạm thời, tồn tại trong suốt quá trình truyền dữ liệu TCP nhận thông tin từ tầng trên, chia dữ liệu thành nhiều phân đoạn(segment) theo độ dài quy định và chuyển các phân đoạn xuống cho các giao thức tầng mạng để định tuyến, bên nhận TCP s* xác nhận mỗi phân đoạn nhận đư-c bằng b/n tin ACK gửi lại bên gửi, nếu bên gửi không nhận đư-c ACK th6 phân đoạn này s* đư-c gửi lại Bên nhận TCP s* khôi phục lại thông tin ban đầu dựa vào số thứ tự của dữ liệu và chuyển lên tầng trên.

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ưDc khi truyền dữ liêu TCP thiết lập kết nối bằng 3 bưDc bFt taG (3-way handshake)

- TCP truyền dữ liêu theo dòng byte(stream-of-bytes): Giao thức TCP truyềL 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ạn TCP, sau đó các phân đoạn này đư-c gFn thêm nhãn ở tầng 3 để truyền đến đích trong 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:P

- TCP sử dụng khung báo nhân ACK để xác nhận từ bên nhận Bên nhận ph/ị ph/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ỗị

• 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ấW mà không loại bX toàn bộ dòng dữ liệu.

• 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ápP lại theo đúng thứ tự trưDc 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 vDi 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 tFc ngh*n để chia sẻ dung lư-ng mạng giữa các người dùng.P

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ôn dạng và nội dung của gói tin TCP gồm 2 phần :

Trang 3

-H6nh 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ày dài 16 bit).

- Trường cổng đích (Destination Port): Số hiệu cổng của máy đích ( trường này dài 16 bit ).

- 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 th6 giá trị ban đầu của trường “Sequence Number” là số hiệu tuần tự khởi đầu (ISN) và byte dữ liệu đầu tiê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 th6 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ày dài 16 bit).

- Trường dịch dữ liệu (Data offset): Trường có độ dài 4 bit qui định độ dài củ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ưDc cửa sổ (Window Size): Số byte có thể nhận bFt đầu từ trường báo nhận (ACK) (trường này

Trang 4

- 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 trX khẩn (Urgent Pointer): Nếu cờ URG bật th6 giá trị trường này chí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ó th6 độ dài của trường này là bội số của 32.

1.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ỉ rz 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 5

khi một kết nối TCP đư-c khởi tạo đến khi kết thúc có 3 pha :

- Thiết lập kết nối.

- 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 tr6nh bFt tay 3 bưDc TrưDc khi máy A thử kết nối vDi máy B, máy B ph/i đăng ký một cổng và mở cổng đó cho các kết nối: đây đư-c gọi là mở bị động Một khi mở bị động đã đư-c thiết lập th6 máy A có thể bFt đầu mở chủ động Để thiết lập một kết nối, quy tr6nh bFt tay 3 bưDc x/y ra như sau :

- BưDc 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) tDi máy B, trong gói tin này, giá trị số thứ tự trong trường “Sequence Number” đư-c gán cho một giá trị ngẫu nhiên.

- BưDc 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 giá trị Y.

- BưDc 3: Để hoàn tất quá tr6nh bFt tay ba bưDc, máy A tiếp tục gửi tDi 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 “Ackowledgment Number” đư-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 vDi 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.

Trang 6

Cơ chế hạn chế tFc ngh*n đường truyền.

Ở hai bưDc đầu tiên trong quá tr6nh bFt tay ba bưDc, 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ột cá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ỗi má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ể sFp xếp lại chúng khi tDi máy tính kia bất kể các gói tin tDi nDi 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 th6 máy tính nhận gửi lại báo nhận ACK Trong thực tế th6 chỉ có byte dữ liệu đầu tiên đư-c gá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ận bằng cách gửi số thứ tự của byte đang chờ.

Ví dụ: máy tính A gửi 4 byte vDi số thứ tự ban đầu là 100 (theo lý thuyết th6 4 byte s* có thứ tự là 100, 101, 102, 103) th6 bên nhận s* gửi tin báo nhận có nội dung là 104 v6 đó 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 th6 bên nhận s* gửi tin báo nhận vDi nội dung là 102 v6 2 byte 100, 101 đã đư-c nhận thành công Gi/ 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 th6 bên gửi s* ph/i gửi lại toàn bộ 10 gói v6 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 Transmission Protocol) vDi 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ại những gói tin bị hXng/mất và các gói tin đến sai thứ tự Để phục vụ mục đích kiểm tra, 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á tr6nh bFt tay 4 bưDc và chiều của kết nối kết thúc độc lập vDi 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 V6 vậy, một quá tr6nh kết thúc tiêu biểu s* có 2 cặp gói tin trao đổi.

Quy tr6nh kết thúc 4 bưDc như sau :

Một kết nối có thể tồn tại BưDc 1: Máy A gửi b/n tin FIN cho máy B.

BưDc 2: Máy B nhận đư-c FIN, tr/ lời ACK đồng thời đóng liên kết và gửi FIN cho máy A BưDc 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 và ở trạng thái chờ BưDc 4: Máy B nhận đư-c ACK và đóng liên kết.

ở dạng, một bên đã kết thúc gửi dữ liệu và chỉ nhận thông tin, bên kia vẫn tiếp tục gửi.

Trang 7

thay đổi đư-c cho phép xác định số gói dữ liệu tối đa đư-c truyền trưDc 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ên gửi (thông tin này 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):

VDi cơ chế phát lại Go-back-N, phía phát s* đư-c phát nhiều hơn một khung thông tin trưDc 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à ) đư-c gọi là kích thưDc cửa sổ VDi cơ chế W hoạt động này, Go-back-N (và c/ phương pháp selective repeat tr6nh 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ưDc cửa sổ đi 1, khi kích thưDc cửa sổ bằng 0, phía phát s* không đư-c phát thêm khung thông tin nà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á , và do đó, không vư-t quá kh/ năng xử lý của phía thu).W

Mỗi khi phía thu nhận đư-c một khung thông tin đúng và xử lý xong, phía thu s* 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ưDc cửa sổ lên 1 Điều này đồng nghĩa vDi việc phía phát W s* đư-c phát thêm một khung nữa, ngoài khung đã phát trưDc đó, v6 phía thu đã xử lý xong một khung, và như vậy, W tổng số khung mà phía thu ph/i xử lý tại một thời đ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 bit để đánh số th6 k tổng số khung đư-c đánh số s* là (từ 0 đến – 1) và do đó, kích thưDc cửa sổ tối đa 2k 2k 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ích thưDc 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ưDc 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 (bFt đầu từ khung ) Sau khi phía phát đã phát đư-c ba khung (F0 F0, F1, F2) và chưa nhận đư-c ACK, phía phát gi/m kích thưDc 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ừ đến F3 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, bFt đầu từ khung F3

Ở phía thu, sau khi đã nhận đúng và xử lý xong ba khung , và th6 s* gửi lại F0 F1 F2 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 và phía thu đang sẵn sàng nhận khung 3.” Thực tế, F2 phía thu sẵn sàng nhận 7 khung bFt đầu từ khung Phia thu đồng thời tăng kích thưDc cửa sổ bên thu lên 7, bao các F3 khung từ cho đến F3 F1

Phía phát sau khi nhận đư-c ACK3 s* tăng kích thưDc cửa sổ thêm 3 đơn vị Lúc này cửa sổ phía phát = 7 và bao các W khung từ đến Gi/ sử lúc này phía phát thực hiện phát các khung từ đến (4 khung) Sau khi phát, phía phát F3 F1 F3 F6 s* gi/m kích thưDc cửa sổ đi 4 ( = 3), lúc này cửa sổ chỉ còn bao các khung , W 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 bFt đầu từ Tuy nhiên khi F4 ACK4 về đến phía phát th6 phía phát đã thực hiện phát các khung , và F4 F5 F6 rồi, như vậy, phía phát s* chỉ còn phát đư-c tối đa là 4 khung bFt đầu từ F7

H6nh dưDi đây minh họa nguyên tFc hoạt động của cơ chế cửa sổ trư-t.

Trang 8

chế cửa sổ trư-t đ/m b/o số khung thông tin từ phía phát đến phía thu không vư-t quá kích thưDc 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 tFc hoạt động và minh họa đã tr6nh bày trên đây, cần chú ý một số điểm sau khi t6m hiểu hoạt động của Go-back-N:

- Trong trường h-p phía thu có kh/ năng xử lý khung thông tin th6 không cần bộ đệm Phía thu chỉ nhận vàW 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 lDp 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ều này là nguyên nhân khiến phía thui không cần ph/i có bộ đệm

- Phía phát ph/i lưu tối đa là khung thông tin trong bộ đệm để chờ ACKW

b 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 đư-c phép phát tối đa W khung thông tin (kích thưDc cửa sổ) trưDc khi nhận đư-c báo nhận Điểm khác biệt giữa selective repeat và Go-back-N nằm ở cách hai phương thức này xử lý khung thông tin bị lỗi VDi 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 khung khác sau khung lỗi nếu như các khung đó không bị sai Cơ chế này giúp tăng hiệu qu/ sử dụng đường truyền so

Trang 9

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ía thu 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 lDp 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ất hoặ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-out tươ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ể gử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 đư-c thự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ưIng trong TCP.

Trong TCP, điều khiển lưu lư-ng(traffic control) đư-c thể hiên trong 3 khíạ cạ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 cho bê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ộ đệm củ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 tFc ngh*n (congestion control):

Điều khiển luồng dữ liệu khi tFc ngh*n đã x/y ra để khFc phục t6nh trạng tFc ngh*n.

Trang 10

Pha khởi động chậm đưa vào một cửa sổ mDi chỉ có ở bên gửi gọi là cửa sổ tFc ngh*n cwnd Khi một kết nối mDi đư-c thiết lập giữa một máy vDi một máy trên một mạng khác, cửa sổ tFc ngh*n đư-c khởi tạo cho mỗi phân đoạn (ví dụ, kích thưDc phân đoạn thông báo bởi đầu bên kia, hoặc mặc định là 536 hoặc 512 byte) Sau mỗi kho/ng thời gian nhận đư-c ACK, cửa sổ tFc ngh*n tăng một phân đoạn Bên gửi có thể truyền tối thiểu số byte giữa cửa sổ tFc ngh*n cwnd và cửa sổ qu/ng bá “advertised windown” rwnd Cửa sổ tFc ngh*n để điều khiển luồng bởi bên gửi, trong khi cửa sổ qu/ng bá để điều khiển luồng bởi bên nhận Cửa sổ tFc ngh*n dựa vào những đánh giá về tFc ngh*n mà bên gửi có đư-c còn cửa sổ qu/ng bá là lư-ng bộ nhD đệm có thể sử dụng ở bên nhận cho kết nối này.

Bên gửi bFt đầu truyền một phân đoạn và chờ ACK báo nhận cho phân đoạn này Khi nhận đư-c ACK, cửa sổ tFc 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ổ tFc 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ũ v6 bên nhận có thể gửi ACK trễ hơn, thông thườ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 trung gian s* bFt đầu loại bX các gói tin Điều này báo cho bên gửi rằng cửa sổ tFc ngh*n đã quá lDn Do đó cần một cơ chế mDi để đ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 cho bê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ằng một phân đoạn mà nó nhận đư-c không theo thứ tự và thông báo “Sequence Number” 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à sFp xếp lại các phân đoạn, nó chờ một số lư-ng nhX b/n sao ACK để xác nhận lại việc này Gi/ sử rằng, nếu chỉ để sFp xếp lại các phân đoạn, th6 chỉ có một hoặc hai b/n sao ACK trưDc khi phân đoạn đư-c sFp xếp lại đư-c xử lý, sau đó s* là ACK mDi Nếu có 3 hay nhiều hơn 3 b/n sao ACK nhận đư-c liên tục, th6 có nghĩa là một phâ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).

Hình 1-8: Ví dụ về pha truyền lại nhanh trong TCP.

Trang 11

thực hiện pha “khởi động chậm” Đây là thuật toán “phục hồi nhanh” Pha “phục hồi nhanh” là một c/i tiến cho phép nâng cao thô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 khXi mạng và ở trong bộ đệm nhận Như vậy vẫn còn dữ liệu tiếp sau đó giữa hai đầu cuối, và TCP không muốn gi/m luồng truyền mộ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 vDi nhau 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ổ tFc ngh*n hiện tại, nhưng không nhX 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 vDi ba lần kích thưDc phân đoạn Do đó s* làm tăng cửa sổ tFc ngh*n bằng số phân đoạn đã rời mạ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ưDc phân đoạn Do đó tăng cửa sổ tFc ngh*n thêm một phân đoạn đã mất Truyền một gói tin, nếu đư-c cho phép giá trị mDi của cwnd.

- Khi ACK tiếp theo đư-c nhận xác nhận bên nhận muốn dữ liệu mDi, đặt cwnd bằng ssthresh (giá trị đư-c đặt trong bưDc 1) ACK này có thể đư-c xác nhận từ bưDc 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ưDc này để tránh tFc 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 nghTn (congestion avoidance)

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 Tránh tFc 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 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 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 sao ACK.

Tránh tFc ngh*n và khởi động chậm là hai thuật toán độc lập vDi các mục đích khác nhau 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 Trong thực tế chúng đư-c kết h-p vDi nhau.

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 Thuật toán kết h-p hoạt động như sau :

- Khởi tạo cho một kết nối cho trưDc: đặ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 lDn nhất là min (cwnd, rwnd).

- 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) Ngoài ra, nếu tFc ngh*n x/y ra do timeout, cwnd s* đư-c đặt là 1 segment.

- 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 ở

Trang 12

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.

Cwnd trong pha khởi động chậm bFt đầu từ 1 phân đoạn, và đư-c tăng lên 1 phân đoạn sau mỗi lần nhận đư-c ACK 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 cwnd tăng theo hàm tuyến tính, so vDi hàm mũ trong pha khởi động chậm 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.

Hình 1-9: Ví dụ về pha khởi động chậm và tránh tắc nghTn.CHƯƠNG 2: TỔNG QUAN VỀ GIAO THỨC MULTIPATH TCP(MP TCP)

2.1 Tại sao cần phai 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 tFc ngh*n TCP sử dụng đường dẫn dựa vào b/ng định tuyế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êL mô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 tFc ngh*n hay cũng có thể gọi là kh/ năng cân bằng t/i(load balancing) 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 tFc ngh*n so vDi 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

2.2 Các khái niệm mở đầu

TrưDc khi t6m hiểu và nghiên cứu giao thức MP TCP, những khái niêm sau P ph/i đư-c làm rz:

- Multihomed: Là những máy chủ có nhiều giao diện vật lý(ví dụ 3G, wifi, ), qua đó nó đư-c gFn nhiều địa chỉ IP Khác vDi 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 bX một kết nố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ởi một cặp địa chỉ nguồn và đích.

Trang 13

- 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 vDi khái niệm “cấp kết nối” ( connection – level ), trái ngư-c vDi “cấp luồng con” ( subflow – level ) là đặc tính của mỗi luồng con.

Các thiết bị trung gian trong mạng như Firewall, Router, NAT

2.3 Các cơ chế đa đường

Đối vDi MP TCP mục đích chính là truyền dữ liệu trên nhiều đường dẫn khác nhau 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 MP TCP ph/i có kh/ năng t6m và sử dụng nhiều đường dẫn kết nối giữa hai máy đầu cuối, nếu chúng tồn tại Tuy nhiên, có thể h6nh dung ra các cơ chế khác nhau cho việc t6m và sử dụng các đường dẫn này Sau đây là các cơ chế đó:

a.SF dụng nhiều địa chỉ IP:

Hiện tại th6 đâ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.SF 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 gFn vào các gói tin truyền đi một nhãn chứa giá 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, th6 một host có thể xác định đường dẫn ra cho gói tin.

c.Lựa chọn next – hop:

Trong cấu h6nh mạng ở những nơi mà nhiều next – hop có thể truyền các gói tin, 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ặc qua các next– hop khác.

2.4 Những lIi í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ưng thườ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ác hạ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ếu cá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(resource pooling), những tài nguyên sẵn có có thể đư-c gộp lại như một nguồn tài nguyên duy 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ủa nguồ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ên mạ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ẫn khác nhau.

Trang 14

-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/i hưDng tDi 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ính năng mà Multipath TCP cung cấp), và các mục tiêu về kh/ năng tương thích (/nh hưở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

đồ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 đơn lẻ(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 đườngdẫn thay thế cho nhau cho các mục đích kh/ năng phục hồi, bằng cách cho phé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 V6 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ông nhX 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ó vDi hiện tư-ng tFc ngh*n trong mạng Mạng s* tối ưu hơn do t/i đư-c dịch ra khXi các liên kết thFt cổ chai x/y ra tFc 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 mDi 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 TCP Multipath ph/i đáp ứng một số mục tiêu tương thích để hỗ tr- triển khai trên mạng Internet ngày nay Những mục tiêu này đư-c phân loại như sau:

- Tương thích vDi ứ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 tDi 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ô h6nh dịch vụ dự kiến đư-c cung cấp MP TCP ph/i theo cùng một mô h6nh dịch vụ như TCP : gửi thứ tự, tin cậy, theo byte Hơn nữa, một kế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ơn mộ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ó TCP multipath-capable nên giữ lại kh/ năng tương thích ngư-c vDi các TCP API hiện tại, để các ứng dụng hiện tại có thể sử dụng đơn thuần tầng Transport mDi bằng cá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 h6nh hệ thống của họ khác vDi ngầm định, ví dụ như bật hoặc tFt việc sử dụng tự động MP TCP.

- Tương thích vDi tầng mạng: Kiến trúc Internet truyền thống cFm thiết bị mạng trong lDp mạng và các lDp dưDi của mô h6nh ngăn xếp 7 lDp OSI, nơi các lDp trên lDp mạng - lDp vận t/i và các lDp trên chỉ đư-c khởi tạo tại các đầu cuối Trong khi kiến trúc này, thể hiện trong h6nh 2-2, không còn ph/n ánh "ground truth" trên mạng Internet vDi sự gia tăng của các middleboxes Các middleboxes đều đặn xen vào trên lDp Transport, thậm chí đôi khi chấm dứt một kết nối

Trang 15

Hình 2-2: Kiến trúc Internet truyền thống

Hình 2-3: Mô hình thực tế

Các khái niệm tương thích vDi tầng mạng và tương thích vDi các thiết bị hoạt động ở tầng mạng nghĩa là Multipath TCP ph/i tương thích vDi mạng Internet ngày nay bao gồm kh/ năng truyền qua các middlebox sẵn có như: firewall, NAT, và các proxy 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, theo khá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ào thích h-p Điều này yêu cầu ph/i xây dựng giao thức vDi các chức năng có thể dò và truyền qua các middlebox.

- Tương thích vDi 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 cho phép việc tồn tại song song giữa các luồng MP TCP mDi và các luồng TCP thông thườ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ững luồng TCP thông thường tại những liên kết thFt cổ chai Các luồng Multipath TCP trên cùng một nút cổ chai ph/i chia sẻ băng thông vDi mỗi luồng khác tương tự như viêc chia sẻ x/y ra tại một nút thFt cổ chai của TCP thông thường Ngoài ra, MPP TCP ph/i có đặc điểm tự động thXa thuận Một máy chủ hỗ tr- kh/ năng Multipath ph/i có kh/ năng dò t6m một cách tin cậy nơi mà một thiết bị thông tin mDi 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ết vDi giao thức đang tồn tại.

Trang 16

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 vDi TCP thông thường singlepath Đ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 vDi mở rộng Multipath TCP) và cơ chế b/o mật của truyền dẫn đa đường Giao thức MP TCP ph/i duy tr6 đư-c đặc điểm tin cậy từ đầu cuối đến đầu cuối, và cho phép nhận thực giữa đầu cuối vDi đầu cuối, hay phù h-p vDi các chính sách b/o mật trong mô h6nh mạng tương thích.

2.5 mnh hưởng của MP TCP đối với hiêu suất TCPl

Để cung cấp chức năng truyền t/i đa đường, Multipath TCP gửi dữ liệu trên nhiều đường dẫn Triển khai ban đầu là chạy thuật toán điều khiển tFc ngh*n không thay đổ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ển khai 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ại các liên kết thFt cổ chai.

Do vậy, để chFc chFn gửi dữ liệu trên nhiều đường dẫn, MP TCP ph/i thực hiệ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ủa những người sử dụng không dùng giao thức Multipath Điều này dẫn đến cần một thuật toán điều khiển tFc ngh*n hiệu qu/ trong MP TCP

2.6 Nền tang kiến trúc MP TCP

Phần này tr6nh bày một kiến trúc giao vận mà dựa vào nền t/ng đấy chúng ta s* xây dựng môt kiến trúc tổng quan có hiệu qu/ đối vDi việc đạt đư-c các mục tiêu của giao thức Multipath TCP Kiến trúc giao vân đư-c mô t/ ở đây chính là TngP (Transport next-generation, ”Tầng giao vận thế hệ mDi") Tng không ph/i là kiến trú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 hành và phát triển những kiến trúc giao vận hỗ tr- cơ chế Multipath trưDc đó.

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 lDp truyền t/i thành hai thành phần: hưDng ứng dụng application-oriented" và hưDng mạng “network-oriented”, như thể hiện trong h6nh 2-4

- Các thành phần hưDng ứ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 ứng dụng, bao gồm cung cấp các đặc điểm về việc sFp xếp theo thứ tự, gửi gói tin tin cậy giống như luồng byte TCP hay multi-streams SCTP

- Các thành phần hưDng mạng "Flow+Endpoint":

Thực hiên các chức năng chính bao gồm điều khiển tFc ngh*n và định dạng đầu cuối(dựa vào số hiêu cổng dịch vụ port P number) Các chức năng hưDng mạng,P 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 đã đư-c chứng minh trong thực tế là có liên quan chặt ch* vDi các thiết bị network operator cũng như các middlebox(các

Ngày đăng: 04/05/2024, 12:48

Tài liệu cùng người dùng

Tài liệu liên quan