Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
835,03 KB
Nội dung
ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM KHOA CÔNG NGHỆ THƠNG TIN Mơn học: TRUYỀN THƠNG KHƠNG DÂY Đề tài: Multipath TCP Giảng viên hướng dẫn: Mai Xuân Phú Sinh viên thực hiện: Lê Hoàng Khánh Cao Trần Hữu Lộc Trương Quang Lân Đồ án cuối kì MỤC LỤC Trang Đồ án cuối kì DANH MỤC TỪ VIẾT TẮT TCP Transmission Control Protocol IP Internet Protocol UDP User Datagram Protocol OSI Open Systems Interconnection MPTCP Multi path Transmission Control Protocol IETF Internet Engineering Task Force PBX Private Branch Exchange NAT Network address translation IANA Internet Assigned Numbers Authority Trang Đồ án cuối kì PHẦN MỞ ĐẦU Hiện hạ tầng Internet thay đổi nhiều so với thời điểm ban đầu lúc đời Khi giao thức TCP/IP thiết kế, thiết bị đầu cuối có giao diện kết nối(single interface) Ngày nay, hầu hết phương tiện kết nối internet có nhiều giao diện, điển hình điện thoại thông minh trang bị với 3G Wi-Fi Người dùng mong đợi việc sử dụng thiết bị tăng khả dự phòng hiệu thực thực tế luôn Hơn 95% tổng lưu lượng truy cập Internet điều khiển giao thức TCP TCP liên kết kết nối với giao diện Điều có nghĩa thân giao thức TCP không hiệu suốt việc sử dụng giao diện có sẵn đầu cuối multihomed Vấn đề multihoming nhận nhiều ý cộng đồng nghiên cứu IETF năm qua Nhiều giải pháp đưa ra, nhiên chúng giai đoạn thử nghiệm không giải pháp triển khai rộng rãi Các giải pháp tầng Transport phát triển, mở rộng TCP Tuy nhiên, phần mở rộng chưa triển khai Giao thức SCTP (Stream Control Transmission Protocol) thiết kế với mục đích multihoming Một số mở rộng giao thức SCTP cho phép đầu cuối truyền thông tin nhiều đường dẫn lúc Mặc dù thực thi số hệ điều hành, giao thức SCTP không sử dụng rộng rãi bên cạnh ứng dụng cụ thể Các hạn chế giao thức SCTP mạng Internet toàn cầu việc ứng dụng phải thay đổi để sử dụng SCTP Thứ hai, số khâu mạng truyền thông chẳng hạn NAT Firewall không hiểu giao thức SCTP ngăn chặn tất gói tin SCTP Trong năm qua, nhóm nghiên cứu giao thức Multipath TCP(MP TCP) tổ chức IETF phát triển phần mở rộng đa đường dẫn giao thức TCP, cho phép đầu cuối sử dụng nhiều đường dẫn thông qua nhiều giao diện, để thực truyền gói tin kết nối Đây có lẽ phần mở rộng đầy tham vọng với TCP tiêu chuẩn hóa IETF Trang Đồ án cuối kì CHƯƠNG I: TỔNG QUAN VỀ GIAO THỨC TCP 1.1 Giới thiệu TCP Transmission control protocol (TCP) giao thức truyền thông mạng thiết kế để gửi gói liệu qua Internet TCP giao thức sử dụng nhiều truyền thông mạng kỹ thuật số phần giao thức Internet, thường gọi TCP/IP TCP giao thức nằm tầng mơ hình Cịn mơ hình lý thuyết OSI TCP giao thức nằm tầng TCP giao thức hướng kết nối TCP đảm bảo kết nối end-to-end giúp chuyển giao liệu nút riêng biệt Trước truyền liệu, TCP tạo kết nối nút nguồn đích giữ sống kết thúc TCP cung cấp khả chống tắc nghẽn, nghĩa giao thức có khả thích ứng với tình trạng mạng để điều chỉnh lượng liệu gửi cho phù hợp TCP cung cấp kết nối full-duplex, nghĩa đồng thời nhận gửi liệu lúc 1.2 Cấu trúc TCP Segment TCP truyền liệu theo dịng byte, chia thành nhiều phần thêm vào tiêu đề TCP (TCP header) tạo phân đoạn TCP (TCP segment) Sau TCP segment đóng gói vào IP datagram trao đổi với peer khác Thuật ngữ TCP segment dùng để Protocol Data Unit (PDU) tầng Transport mơ hình OSI, cịn tầng PDU gọi packet, tầng gọi frame Một TCP segment bao gồm segment header phần liệu TCP header chứa 10 trường bắt buộc, trường tùy chọn mở rộng Phần liệu theo sau header Nội dung liệu payload mang cho ứng dụng Chiều dài phần liệu không quy định TCP segment header Nó tính cách lấy tổng chiều dài IP datagram trừ tổng chiều dài TCP header IP header Trang Đồ án cuối kì a) TCP header Hình 1-1: Cấu trúc trường phần TCP header Ý nghĩa trường TCP header: Cổng gửi (Source port) - 16 bits: xác định cổng gửi Cổng nhận (Destination port) - 16 bits: xác định cổng nhận Số thứ tự (Sequence number) - 32 bits: có hai vai trị: • Nếu cờ SYN (SYN flag) bật(1), số thứ tự ban đầu (init sequence number sinh hệ điều hành) Số thứ tự byte liệu với số xác nhận vừa nhận với số thứ tự trước cộng thêm • Nếu cờ SYN tắt (0), số thứ tự tích lũy byte liệu segment cho phiên Acknowledgment number (32 bits): cờ ACK (ACK flag) bật giá trị trường số thứ tự mà bên nhận mong đợi Điều thừa nhận nhận tất byte trước (nếu có) Các ACK dùng để xác nhận số thứ tự ban đầu bên vừa gửi, liệu Data offset (4 bits): Trường có độ dài bít qui định độ dài phần header (tính theo đơn vị từ 32 bít) Phần header có độ dài tối thiểu từ (160 bit) tối đa 15 từ (480 bít) Reserved (3 bits): để sử dụng tương lai cần thiết lập Flags (9 bits) (hay Control bits): • URG: Cờ cho trường Urgent pointer • ACK: Cờ cho trường Acknowledgement Trang Đồ án cuối kì • PSH: Hàm Push • RST: Thiết lập lại đường truyền • SYN: Đồng lại số thứ tự • FIN: Không gửi thêm số liệu Window size (16 bits): kích thước cửa sổ nhận, xác định số lượng đơn vị kích thước cửa sổ (theo mặc định, byte) mà người gửi phân khúc sẵn sàng nhận (xem Flow control Window Scaling) Checksum (16 bits): 16 bit trường checksum dùng để kiểm tra lỗi header data Urgent pointer (16 bits): Nếu cờ URG bật giá trị trường số từ 16 bít mà số thứ tự gói tin (sequence number) cần dịch trái Options (Variable 0–320 bits, divisible by 32) b) Phần liệu: Hình 1-2: TCP pseudo-header Trường cuối không thuộc header Giá trị trường thơng tin dành cho tầng (trong mơ hình lớp OSI) Thông tin giao thức tầng không rõ phần header mà phụ thuộc vào cổng chọn Trang Đồ án cuối kì 1.3 Quá trình hoạt động giao thức TCP Hình 1-3: Sơ đồ trạng thái TCP – phiên đơn giản hóa Kết nối TCP có ba pha: Thiết lập kết nối Truyền liệu Kết thúc kết nối Trước miêu tả pha này, ta cần lưu ý trạng thái khác socket: LISTEN: (máy chủ) đại diện chờ đợi yêu cầu kết nối từ TCP từ xa cổng SYN-SENT: (client) đại diện chờ đợi yêu cầu kết nối phù hợp sau gửi yêu cầu kết nối Trang Đồ án cuối kì SYN-RECEIVED: (máy chủ) đại diện chờ đợi xác nhận thừa nhận yêu cầu kết nối sau hai nhận gửi yêu cầu kết nối ESTABLISHED: (cả máy chủ máy khách) đại diện cho kết nối mở, liệu nhận được chuyển cho người sử dụng Các trạng thái bình thường giai đoạn truyền liệu kết nối FIN-WAIT-1: (cả máy chủ máy khách) đại diện chờ đợi yêu cầu chấm dứt kết nối từ TCP từ xa xác nhận yêu cầu chấm dứt kết nối gửi trước FIN-WAIT-2: (cả máy chủ máy khách) đại diện chờ đợi yêu cầu chấm dứt kết nối từ TCP từ xa CLOSE-WAIT: (cả máy chủ máy khách) đại diện chờ đợi yêu cầu chấm dứt kết nối từ người dùng địa phương CLOSING: (cả máy chủ máy khách) đại diện chờ đợi xác nhận yêu cầu chấm thúc kết nối từ TCP từ xa LAST-ACK: (cả máy chủ máy khách) đại diện chờ đợi xác nhận yêu cầu chấm dứt kết nối trước gửi cho TCP từ xa (trong bao gồm xác nhận yêu cầu chấm dứt kết nối nó) TIME-WAIT: (hoặc máy chủ máy khách) đại diện chờ đợi đủ thời gian để chắn TCP từ xa nhận xác nhận yêu cầu chấm dứt kết nối [Theo RFC 793 kết nối lại TIME-WAIT tối đa bốn phút biết đến MSL (đoạn tuổi thọ tối đa).] CLOSED: (cả máy chủ máy khách) đại diện khơng có trạng thái kết nối tất a) Thiết lập kết nối Trang Đồ án cuối kì Hình 1-4: Sơ đồ thiết lập kết nối Hình 1-5: Quá trình thiết lập kết nối phía Để thiết lập kết nối, TCP sử dụng quy trình bắt tay bước (3-way handshake) Đầu tiên Server mở cổng đợi Client kết nối Quy trình bắt tay bước xảy sau: Client gửi gói tin SYN (gói tin TCP) tới server yêu cầu thiết lập kết nối Trong gói tin này, tham số sequence number gán cho giá trị ngẫu nhiên X (X init sequence number máy client, init sequence number tạo từ thuật toán riêng hệ điều hành) Server hồi đáp cách gửi lại phía client gói tin SYN-ACK, gói tin này, tham số acknowledgment number gán giá trị X + 1, tham số sequence number gán ngẫu nhiên giá trị Y (Y init sequence number máy server) Để hồn tất q trình bắt tay ba bước, client tiếp tục gửi tới server tin ACK với sequence number gán cho giá trị X + tham số acknowledgment number gán giá trị Y + Kết nối thiết lập Trang 10 Đồ án cuối kì phần, xác định kết nối đệm bên nhận FIN(FINISH): Cờ đánh dấu kết thúc FIN tiêu đề TCP sử dụng cho 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 cờ FIN, cờ RST sử dụng mức luồng Khơng có RST mức kết nối, khơng thể phân biệt RST hai kết nối Ví dụ: máy khơng có trạng thái luồng con, khơng thể biết luồng thuộc kết nối số kết nối thực Để reset kết nối, ta reset đồng thời tất luồng kết nối Danh sách địa chỉ(Address List): Việc quản lý danh sách địa thực kết nối(trái ngược với luồng con, đầu cuối, hay host ) Điều cho phép ứng dụng sách cục kết nối Thêm địa vào kết nối không liên quan đến kết nối khác cặp đầu cuối – tuple: bao gồm protocol, local address, local port, remote address, remote port áp dụng cho tầng ứng dụng ứng dụng khơng có khả nhận diện Multipath luồng đầu tiên, luồng vừa bị đóng hay xóa khỏi kết nối Đây vấn đề liên quan đến Multipath API 3.2 Quá trình thiết lập kết nối Để hiểu rõ giao thức MP TCP khởi tạo kết nối ta tìm hiểu hoạt động tổng quát MP TCP qua kịch đơn giản sau : Address A1 Address A2 Address B1 Address B2 Thiết lập kết nối Thiết lập kết nối thêm Hình 3-1: Ví dụ kịch sử dụng MP TCP Đối với ứng dụng khơng có khả nhận biết MP TCP, ứng dụng khơng phân biệt giao thức MP TCP với giao thức TCP thông thường Tất hoạt Trang 25 Đồ án cuối kì động MP TCP thực nhờ việc triển khai cấu trúc MP TCP lớp ứng dụng bắt đầu với việc mở socket TCP theo cách thông thường Một kết nối MP TCP giao thức MP TCP bắt đầu phiên TCP thơng thường Nó minh họa hình hai địa A1 B1, tương ứng hai host A host B Nếu có thêm (hay nhiều) đường dẫn, có thêm (hay nhiều) phiên TCP tạo nên đường dẫn này, phiên TCP kết hợp với phiên TCP tồn Tất phiên TCP thuộc kết nối ứng dụng ban đầu hai đầu cuối Việc tạo nên phiên TCP minh họa hình địa hai địa chỉ: A2 máy A B1 máy B MP TCP nhận dạng đường dẫn thông qua địa IP hai đầu cuối Sự kết hợp địa IP đầu cuối tạo nên đường dẫn Ví dụ, đường dẫn tạo nên từ hình A1 B2, A2 B2 Cũng hình trên, phiên TCP khởi tạo từ A2 (tuy nhiên khởi tạo từ B1) Việc tìm thiết lập phiên TCP (hay cịn gọi luồng con) thực thông qua lớp quản lý đường dẫn (Path Managerment) lớp MP TCP Giao thức MP TCP thêm chuỗi nhận dạng gói tin cấp kết nối để lắp ghép lại liệu mà nhận từ nhiều luồng Kết nối kết thúc nhờ tin DATA FIN, nhiều gói tin FIN độc lập luồng Việc khởi tạo phiên kết nối bắt đầu tin SYN, tin SYN ACK trao đổi đường dẫn Trong hai loại gói tin thêm vào tin “Multipath Capable” (hình 3-2) Bản tin “Multipath Capable” bao gồm trường: loại tin (8 bit), chiều dài tin (8 bit), 32 bit Token để xác định kết nối (mỗi kết nối có Token nhất), Initial Data Sequence Number (48 bit) để khởi tạo số thứ tự liệu ban đầu Ý nghĩa tin “Multipath Capable” cho biết đầu cuối có khả hoạt động Multipath TCP hay không cung cấp Token nhận dạng kết nối trường hợp đầu cuối muốn thêm luồng vào kết nối Token tạo bên gửi, xác định cho bên gửi Token phải an tồn để tránh bị cơng, nên tạo cách lấy ngẫu nhiên Bản tin “Multipath Capable” đưa gói tin SYN Nó sử dụng phiên TCP kết nối, để xác định kết nối có khả truyền lúc nhiều đường dẫn hay khơng Tất phiên sau sử dụng tin quản lý đường dẫn để kết hợp luồng vào kết nối tồn Trang 26 Đồ án cuối kì 7 Kind=OPT_MPC Length=7 Sender Token Sender Token ( gồm octet ) Initial Data Sequence Number Initial Data Sequence Number ( gồm octet ) Hình 3-2: Bản tin Multipath Capable Nếu gói tin SYN bao gồm tin “Multipath Capable” tin đáp trả lại SYN/ACK khơng có bên gứi giả thiết bên nhận khơng có khả nhận đa đường phiên MP TCP thực phiên TCP bình thường Nếu gói tin SYN khơng bao gồm tin “Multipath Capable”, gói tin SYN/ACK gửi lại khơng phải bao gồm tin “Multipath Capable” Nếu gói tin “Multipath Capable” SYN không xác nhận, bên gửi dựa vào sách cục để định cách truyền gói tin Và cuối bên gửi gửi phiên TCP đường dẫn thơng thường (mà khơng có tin “Multipath Capable”) Trong trường hợp gói tin khơng theo thứ tự, ví dụ bên gửi nhận gói tin SYN/ACK chứa tin “Multipath Capable”, sau gửi tin SYN thơng thường, dựa vào khởi tạo để định cách thức thực Cụ thể đáp lại kết nối sử dụng Token có trước đó, đơn giản loại bỏ tin Multipath luồng Khi bên mở chủ động kết nối cách gửi gói tin SYN mà khơng bao gồm tin “Multipath Capable”, kết nối hoạt động TCP thông thường, sau nhận SYN/ACK có chứa tin “Multipath Capable” Trạng thái cuối suy từ tin DATA_ACK gói tin thứ trình bắt tay bước TCP Host A SYN + TokA + DSN SYN/ACK + TokB + DSN Trang 27 Host B Đồ án cuối kì Hình 3-3: Quá trình khởi tạo phiên kết nối giao thức MP TCP Nếu đầu cuối có nhiều địa IP (biết thông qua DNS lookup), thử địa số địa đó, trước quay trở lại phiên TCP thơng thường Ngồi ra, trường “Initial Data Sequence Number” thêm vào để cung cấp số thứ từ cho liệu ban đầu 3.3 Khởi tạo luồng Thiết bị đầu cuối phải biết địa nó, nhận biết địa đầu cuối khác thông qua việc trao đổi báo hiệu Nhờ hiểu biết mà đầu cuối khởi tạo luồng cặp địa mà chưa sử dụng Một luồng bắt đầu với việc trao đổi SYN/ACK TCP thông thường Giao thức MP TCP sử dụng tin “Join Connection” để xác định luồng thuộc kết nối Token tin “Join Connection ” token kết nối mà luồng muốn kết hợp vào Token cho kết nối xác định tin “Multipath Capable” nhận trao đổi SYN/ACK Host A Host B SYN + TokB + Address ID SYN/ACK + TokA + Address ID Hình 3-4: Minh họa trình bắt đầu luồng giao thức MP TCP Nếu tin “Join Connection” có token phù hợp với kết nối MP TCP tồn tại, bên nhận gửi lại gói tin TCP SYN/ACK bao gồm tin “Join Connection” token ban đầu Điều nhằm hai mục đích: thứ nhất, để đảm bảo hai đầu cuối đồng ý xác nhập với kết nối đưa (có ý nghĩa hai địa hai đầu cuối kết nối ); thứ hai, để đảm bảo không Middlebox đường dẫn loại bỏ tin MP TCP theo đường dẫn ngược lại Điều minh họa hình sau: Trang 28 Đồ án cuối kì Hình 3-5: Ví dụ sử dụng Token Nếu token không xác định, bên nhận gửi lại TCP RST giống trường hợp cổng không xác định TCP Để kết hợp luồng với kết nối tồn tại, Token cung cấp trao đổi SYN khởi tạo ban đầu tách Điều nghĩa số hiệu port trao đổi SYN luồng không quan trọng, sử dụng giá trị nào, miễn host có – tuple Thực tế hầu hết luồng kết nối lại với port (mà sử dụng cổng nguồn hay cổng đích luồng tồn tại), để có nhiều hội vượt qua firewall Middlebox khác hơn, để hỗ trợ kĩ thuật điều khiển lưu lượng luồng Các Token sử dụng để tách SYN luồng con, điều không giống TCP thơng thường, cổng đích sử dụng để tách gói tin SYN Kind=OPT_JOIN 7 Length=7 Receiver Token ( gồm octet ) Receiver Token Address ID Hình 3-6: Bản tin Join Connection 3.4 Quản lý đường dẫn Khái niệm “quản lý đường dẫn” việc trao đổi thông tin đường dẫn (được thêm vào hay xóa đi) đầu cuối, để quản lý đầu cuối có nhiều địa IP Có phương pháp để chia sẻ thông tin này, sử dụng cách đồng thời Phương pháp thiết lập trực tiếp luồng mới, khởi tạo có thêm địa IP Trang 29 Đồ án cuối kì Phương pháp thứ hai mơ tả phần sau, địa thông báo cách rõ ràng đến đầu cuối kia, phép khởi tạo luồng Nếu theo phương pháp tồn chế phụ, chế thứ cho phép thay đối địa (do hỗ trợ hoạt động NAT), chế thứ cho phép thông báo địa chưa biết đến trước đó, ví dụ địa thuộc loại địa khác (ví dụ IPv4 IPv6) Sau ví dụ hoạt động chuẩn giao thức: Một đầu cuối có nhiều địa IP bắt đầu mở phiên TCP đến cặp địa chỉ/cổng sử dụng đầu cuối kia, sử dụng Token để xác định luồng (một host đích có nhiều địa IP mở luồng từ địa đến cổng địa nguồn luồng tồn tại, host nguồn có nhiều địa IP mở luồng từ địa đến port địa đích luồng tồn tại) Để hiểu rõ hơn, ta giả sử kết nối khởi tạo từ máy “A” với địa cổng A1 đến đích địa cổng B1 máy B Nếu máy A có nhiều địa IP, bắt đầu thêm kết nối từ địa cổng A2 đến B1, sử dụng Token lấy trước B Cách khác, B có nhiều địa IP, thử thiết lập kết nối TCP từ B2 đến A1, sử dụng Token trước lấy A Cùng lúc (hay sau khoảng thời gian timeout), tin “Add address” gửi luồng tồn tại, thông báo cho bên nhận hay nhiều địa bên gửi Bên nhận sử dụng thông tin để mở luồng tới địa bên gửi Nếu host B nhận thành công tin SYN đầu tiên, để bắt đầu luồng sử dụng trường “Address ID” tin “Join Connection” liên kết địa với tin “Add Address” từ A đến luồng tồn Giả sử host đáp trả tin “SYN-JOIN” tin “SYN/ACKJOIN”, bỏ qua tin “Add Address” Hay nói cách khác, khơng nhận tin “SYN”, cố khởi tạo luồng từ hay nhiều địa IP đến địa A2 Điều thực phép mở phiên đầu cuối sử dụng NAT Việc bảo mật tăng lên máy chắn có tin “Add Address” liên hệ trước đáp trả tin SYN 3.4.1 Thêm địa chỉ(Add Address) Bản tin “Add Address” thông báo địa mà đầu cuối liên kết, cho phép tin thông báo nhiều cặp (ID, Address) đến đầu cuối Nhiều địa thêm vào có đủ khơng gian trường “TCP Option”, gửi nhiều gói tin TCP bao gồm tin Bản tin sử dụng thời điểm kết nối, phụ thuộc Trang 30 Đồ án cuối kì vào bên gửi mong muốn thực truyền qua nhiều đường dẫn hay/hoặc có nhiều đường dẫn khả dụng Mỗi địa IP có ID, ID sử dụng để xóa địa khơng cần tới, đầu cuối phải biết tham chiếu ID địa IP Điều sử dụng để xác định tin “Join Connection” liên quan đến địa chỉ, phân giải địa sử dụng ID phải cho bên gửi kết nối Kind=OPT_ADDR 7 Length=7 Address ID IPVer (resvd) Address ( IPv4 – octet ) Hình 3-7: Bản tin “Add Address” Xóa địa chỉ(Remove Address) 3.4.2 Nếu suốt thời gian tồn kết nối MP TCP, địa thông báo trước trở nên khơng hợp lệ (ví dụ interface bị hỏng), đầu cuối liên quan đến địa thông báo điều để đầu cuối xóa luồng liên quan đến địa Điều thực thông qua tin “Remove Address”, tin xóa địa thêm vào trước (có danh sách địa chỉ) từ kết nối kết thúc luồng sử dụng địa Quá trình gửi nhận tin khởi tạo trình gửi FIN hai đầu cuối (hay những) luồng bị ảnh hưởng, đầu cuối xóa trạng thái bên chúng mà không cần chờ khoảng thời gian timeout Việc xóa địa thực thơng qua ID Nếu khơng có địa ứng với ID yêu cầu, bên nhận tự nhiên bỏ qua yêu cầu Cách chuẩn để đóng luồng (ngay hoạt động) sử dụng trao đổi tin FIN TCP thông thường OPT_REMADR 7 Address ID Length=2+n Trang 31 … Đồ án cuối kì Hình 3-8: Bản tin “Remove Address” 3.5 Quá trình truyền liệu Ánh xạ số thứ tự liệu(Data Sequence Mapping) 3.5.1 Thiết bị đầu cuối triển khai giao thức MP TCP nhận dòng liệu từ ứng dụng, phân chia vào hay nhiều luồng Tất dịng liệu ráp lại bên nhận cách sử dụng tin “Data Sequence Mapping”, để ánh xạ số thứ tự cấp liệu với số thứ tự cấp luồng Nhờ tin mà tầng ứng dụng bên nhận nhận liệu theo thứ tự Trong đó, trường “Subflow Sequence Number” xác định liệu thuộc luồng Những xác nhận mức độ luồng con, bên nhận phải đối chiếu xác nhận với trường “Data Sequence Number” có gói tin liên quan Nếu phân đoạn liệu luồng bị bên nhận phải báo cho bên gửi truyền lại phân đoạn liệu Để thực điều này, luồng thực chế SACK (TCP SACK: Phương pháp cho phép TCP báo nhận ACK liệu nhận mà không theo thứ tự) Kind=OPT_DSN 7 Length Data Sequence Number Data Sequence Number ( dài octet ) Data – level Length ( dài octet ) Subflow Sequence Number ( dài octet ) Hình 3-9: Bản tin “Data Sequence Mapping” Bản tin “Data Sequence Mapping” cung cấp trường “Data Sequence Number” trường “Subflow Sequence Number” thông báo cho bên nhận có ánh xạ hai không gian chuỗi với chiều dài xác định Trường “Data Sequence Number” tin tuyệt đối, trường “Subflow Sequence Number” tương đối (khi gói tin SYN gửi khởi tạo giá trị trường “Subflow Sequence Number” 1) Trong gói tin MP TCP khơng thiết phải có tin “Data Sequence Mapping”, miễn bên nhận biết ánh xạ “Subflow Sequence Number” gói tin Điều sử dụng để giảm overhead trường hợp ánh xạ biết, trường hợp khác có luồng hai đầu cuối Trang 32 Đồ án cuối kì Báo nhận liệu 3.5.2 Từ thấy hoàn tồn xác nhận cấp luồng Nếu xảy trường hợp mà liệu luồng bị loại bỏ sau xác nhận (có thể xảy proxy middlebox bị lỗi, hay đệm máy bị tràn), kết nối đứt hoàn tồn bên gửi cho liệu nhận thực tế lại chưa Do vậy, MP TCP đưa xác nhận cấp kết nối (bản tin DATA_ACK) hoạt động “cumulative ACK” toàn kết nối Bản tin hoạt động tương tự gói tin “cumulative ACK” SACK TCP chuẩn – cho biết có liệu nhận thành công Bản tin thêm vào gói tin máy triển khai MP TCP 7 Kind=OPT_DACK Length Data Sequence Number Data Sequence Number Hình 3-10: Bản tin xác nhận cấp kết nối 3.5.3 Cửa sổ nhận(Receive Window) TCP thơng thường quảng bá kích thước cửa sổ nhận (trường “Receive Window”) gói tin để báo cho bên gửi biết nhận gói tin có kích thước Cửa sổ nhận sử dụng để thực điều khiển luồng truyền, giảm tốc độ gửi bên gửi bên nhận khơng có khả nhận tiếp MP TCP sử dụng cửa sổ nhận nhất, chia sẻ luồng 3.5.4 Xem xét phía bên gửi Bên gửi xem xét cửa sổ nhận quảng bá kết hợp với “Sequence Number” lớn phép tăng để định việc cập nhật lại cửa sổ nhận cục MPTCP sử dụng cửa sổ nhận tất luồng Tuy nhiên, số trường hợp, middleboxes làm thay đổi cửa sổ nhận này, thông thường theo hướng nhỏ Do đó, có nhiều giá trị cửa sổ nhận luồng con, giá trị lớn sử dụng 3.5.5 Điều khiển tắc nghẽn(congestion control) Các luồng khác kết nối MP TCP có cửa sổ điều khiển tắc nghẽn khác Để thực việc chia sẻ tài nguyên (resource pooling) cần phải kết hợp cửa sổ tắc nghẽn này, chuyển tất lưu lượng sang liên kết không tắc nghẽn Một thuật tốn thực điều thuật toán “Coupled Trang 33 Đồ án cuối kì Multipath-Aware Congestion Control” Thuật tốn khơng thật hồn hảo việc chia sẻ tài ngun an tồn mơi trường Internet Có thể tồn nhiều phương pháp điều khiển luồng khác triển khai MP TCP, phương pháp nhắm đến đặc điểm khác giao thức chia sẻ tài ngun, tính cơng hay tính ổn định Các sách luồng 3.5.6 Với giao thức MP TCP, máy sử dụng sách cục (local policy) mong muốn để định việc chia sẻ lưu lượng gửi đường dẫn kết nối Trong trường hợp thông thường, để truyền liệu để đạt thơng lượng lớn tất đường dẫn khả dụng sử dụng đồng thời để truyền liệu, sử dụng thuật toán điều khiển tắc nghẽn “Coupled Multipath-Aware Congestion Control” Tuy nhiên, trường hợp khác khơng sử dụng Ví dụ hai đầu cuối có thêm nhiều đường dẫn khả dụng, nhiên đường dẫn ổn định cần thiết thơng lượng thấp, xác suất gói cao, hay độ trễ lớn Sự ổn định quan trọng thông lượng Khả đưa lựa chọn hiệu đòi hỏi thiết bị đầu cuối hiểu biết rõ giá trị đường dẫn Hiện khơng có chế MP TCP xử lý vấn đề Truyền lại 3.5.7 Hiện giao thức MP TCP khơng có chế cho việc xử lý việc truyền lại đường dẫn hỏng, phụ thuộc vào sách luồng 3.6 Đóng kết nối Với TCP thơng thường, tin FIN gửi nghĩa bên gửi khơng cịn liệu để gửi thêm Để cho phép luồng hoạt động cách độc lập, thay đổi nhỏ từ TCP thông thường FIN MP TCP có tác dụng luồng mà truyền liệu Khi ứng dụng muốn đóng socket, với TCP thơng thường q trình FIN thực Đối với MP TCP, chế tương đương cần thiết, DATA FIN Bản tin gắn tin FIN thông thường luồng Một DATA FIN cho biết bên gửi khơng cịn liệu để gửi, sử dụng nhận biết nhanh việc kết thúc truyền liệu Một tin DATA FIN, tin FIN kết nối TCP thông thường, gửi theo hướng DATA FIN tối ưu biết cách nhanh việc Trang 34 Đồ án cuối kì kết thúc luồng liệu xóa trạng thái liên kết với kết nối MP TCP, đặc biệt trường hợp nhiều luồng bị lỗi Những đặc tính DATA FIN luồng : Một DATA FIN gửi gói tin mà có cờ FIN bật Một DATA FIN chiếm octet (octet cuối) không gian Data Sequence Number Do đó, khơng sử dụng liệu, tin Data Sequence Number phải thêm vào để gói tin trì tin DATA FIN Điều cho phép bên nhận xác định dễ dàng Data Sequence Number cuối mà nhận Có ánh xạ DATA FIN cờ FIN luồng Cần ý đầu cuối gửi FIN luồng riêng biệt để đóng nó, hành động giới hạn luồng Nếu tất luồng đóng tin FIN tương đương với đóng kết nối tin DATA FIN 7 Kind=OPT_DFIN Length=2 Hình 3-11: Bản tin “Data Finish” Trang 35 Đồ án cuối kì CHƯƠNG 4: ĐIỀU KHIỂN TẮC NGHẼN 4.1 Các nguyên nhân gây tắc nghẽn Tràn đệm: đệm có kích thước giới hạn khơng đủ xử lý gói tin đến Lỗi đường truyền: lý gây gói ảnh hưởng đến tắc nghẽn mạng Nghẽn cổ chai: điểm đấu nối từ mạng tốc độ thấp vào mạng tốc độ cao Đây đặc điểm bật môi trường mạng - Lưu lượng lớn, thay đổi cách đột ngột 4.2 Khái niệm điều khiển tắc nghẽn Nói chung điều khiển tắc nghẽn (Congestion Control) thực nhiệm vụ để đảm bảo mạng có khả lưu thơng lưu lượng đưa vào mạng cách bình thường Đó vấn đề toàn cục, liên quan đến hoạt động Host, Router, trình chứa chuyển tiếp (store-and-forward) Router, tất yếu tố khác có khuynh hướng làm giảm dung lượng vận tải mạng Cần phân biệt khái niệm “Điều khiển tắc nghẽn” với khái niệm “Tránh tắc nghẽn” Điều khiển tắc nghẽn thực mạng bị nghẽn tránh tắc nghẽn thực để mạng tránh rơi vào trường hợp nghẽn 4.3 4.3.1 Thuật toán điều khiển tắc nghẽn giao thức MP TCP Các yêu cầu thuật tốn Tính cơng (fairness): nhiều người dùng chia sẻ tài nguyên, tất người dùng lớp phải có chia sẻ tài nguyên Trong đề tài ta xét tính cơng mặt thơng lượng người dùng TCP người dùng MP TCP liên kết thắt cổ chai Chia sẻ tài nguyên(Resource Pooling): hiểu kỹ thuật cân tải ( load balancing) kết nối sử dụng nhiều đường dẫn Một thuật toán điều khiển tắc nghẽn Multipath thực tế có mục đích giảm tắc nghẽn tối đa cho mạng phải đạt mục đích sau: Mục đích 1( tăng thơng lượng): Mỗi kết nối MP TCP phải đạt thơng lượng với kết nối TCP đường dẫn tốt Ví dụ ta có kết nối MP TCP từ host A đến host B Kết nối sử dụng đường dẫn p1,p2,p3 để truyền số liệu Mục đích thơng lương đạt kết nối MP TCP từ A đến B không nhỏ thông lượng đạt kết nối TCP từ A đến B sử dụng đường dẫn p1, p2 p3 Trang 36 Đồ án cuối kì Mục đích 2( khơng gây tổn hại): Thông lượng subflow(luồng con) kết nối MP TCP không vượt thông lượng kết nối TCP sử dụng đường dẫn luồng Ví dụ ta có kết nối MP TCP từ host A đến host B Kết nối sử dụng đồng thời đường dẫn p1,p2,p3 để truyền số liệu Mục đích thơng lượng đạt luồng con, chẳng hạn luồng sử dụng đường dẫn p2 không lớn hớn thông lượng đạt kết nối TCP truyền đường dẫn p2 từ A đến B Mục đích 3(tắc nghẽn cơng bằng): Một luồng Multipath chuyển nhiều lưu lượng tốt khỏi liên kết tắc có nhiều tắc nghẽn với mục đích để thỏa mãn mục đích mục đích Mục đích mục đích kết hợp với chắn tạo công liên kết thắt cổ chai Mục đích khái niệm liên quan đến “cân tải”(resource pooling) 4.3.2 Các thuật toán điều khiển tắc nghẽn MP TCP Thuật toán UNCOUPLED TCP: Thuật toán xem luồng Multipath luồng TCP đơn thực chế điều khiển tắc nghẽn pha tránh tắc nghẽn TCP Thuật toán FULLY COUPLED: Hình 4.1: Kịch luồng MP TCP luồng TCP qua liên kết thắt cổ chai Thuật toán LINKED INCREASES: Thuật toán LINKED INCREASES lấy quy tắc tăng từ thuật toán FULLY COUPLED quy tắc giảm từ thuật toán UNCOUPLED TCP Trong đề tài lý thời gian kiến thức có hạn, nhóm sơ lượt thuật tốn tắc nghẽn áp dụng mà khơng sâu phân tích Trang 37 Đồ án cuối kì KẾT LUẬN Cơng nghệ phát triển nhanh, đặc biệt cải tiến vượt bậc phần cứng thiết bị Thêm vào tài nguyên Internet ngày tăng, thường nguồn tài nguyên này(băng thông) không tận dụng tối đa hạn chế giao thức hệ thống đầu cuối hệ thống mạng Nếu nguồn tài nguyên sử dụng đồng thời, trải nghiệm người dùng cải thiện nhiều Những cải tiến làm giảm chi phí đầu tư sở hạ tầng mạng Bằng cách ứng dụng chia sẻ tài nguyên(resource pooling), tài nguyên sẵn có gộp lại nguồn tài nguyên dành cho người sử dụng Nhưng giao thức đặt lại khơng thể hịa hợp tốt với hạ tầng mạng Trong bối cảnh MP TCP xuất hứa hẹn chuẩn giao thức mạng tương lai Tuy nhiên để thực đưa giao thức MP TCP vào ứng dụng hạ tầng mạng, cần phải khắc phục nhược điểm quan trọng vấn đề an ninh bảo mật mạng MP TCP Một vấn đề phải có chuẩn bị thử nghiệm kỹ cho việc chuyển đổi từ TCP sang MP TCP để hạ tầng mạng không gặp phải vấn đề tương thích Có nghĩa phải có khoảng thời gian q độ trước giao thức MP TCP sử dụng rộng rãi Trang 38 Đồ án cuối kì TÀI LIỆU THAM KHẢO 1) Hà Văn Đạt(2009) Giao thức Multipath TCP, Luận văn thạc sĩ, Trường đại học bách khoa Hà Nội 2) Lê Phong Dũ, Lê Tuấn Anh (2013) Điều khiển tắc nghẽn giao thức truyền thông đa đường cho ứng dụng multimedia Tạp chí khoa học trường đại học Cần Thơ, chuyên đề công nghệ thông tin 2013, 30-37 3) M Bagnulo(2011) RFC6824 (Threat Analysis for TCP Extensions for Multipath Operation with Multiple Addresses), Internet Engineering Task Force 4) A Ford, C.Raiciu, U.Politechnica of Bucharest, M.Handley, U.College London, O.Bonaventure, U.catholique de Louvain (2013) RFC6181 (TCP Extensions for Multipath Operation with Multiple Addresses), Internet Engineering Task Force 5) Mark Handley, Costin Raiciu, Alan Ford(2010), “Multipath TCP in Practice” Trang 39 ... nhận gửi liệu lúc 1.2 Cấu trúc TCP Segment TCP truyền liệu theo dòng byte, chia thành nhiều phần thêm vào tiêu đề TCP (TCP header) tạo phân đoạn TCP (TCP segment) Sau TCP segment đóng gói vào IP... hiệu thông qua trường ? ?TCP option” gói tin TCP ACK: Trường ACK phần tiêu đề TCP 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 liệu(mức kết nối MP TCP) ... hình phân chia chức MP TCP Application Application TCP MPTCP Subflow ( TCP ) Subflow ( TCP ) IP IP Hình 2-3: Mơ hình MPTCP Nằm bên tầng ứng dụng, mở rộng MPTCP quản lý TCP subflow (luồng con)