BÁO CÁO MÔN MẠNG TRUYỀN THÔNG: TÌM HIỂU CHUNG VỀ GIAO THỨC TCPIP, TCP RENO TCP VEGASTrong các giao thức thì giao thức TCP là giao thức truyền thông được sử dụng phổ biến nhất trong mạng Internet. Trong phần lớn lưu lượng trên mạng Internet, lưu lượng TCPIP đóng góp một phần đáng kể vì phần lớn ứng dụng trên mạng Internet, ví dụ như lướt Web và truyền file, đều sử dụng giao thức TCPIP. Do vậy, có thể thấy rằng hiệu năng của TCPIP sẽ có ảnh hưởng lớn đến hiệu năng của mạng và trực tiếp ảnh hưởng đến chất lượng dịch vụ của mạng. Tuy nhiên số lượng người tham gia vào mạng ngày càng tăng và có ngày càng nhiều dịch vụ hỗ trợ điều này đòi hỏi chúng ta phải không ngừng cải tiến và nâng cao hiệu năng giao thứcTCPIP. Từ khi ra đời đến nay giao thức TCP đã có nhiều phiên bản cải tiến, đặc biệt với sự đóng góp của phiên bản TCP Reno đã làm các cơ chế điều khiển truyền thông linh hoạt. Giao thức TCP Vegas là phiên bản cải tiến của TCP Reno.
DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT Cơ sở kĩ thuật mạng truyền thông MỤC LỤC I Giới Thiệu Chung Về Giao Thức TCP 1.1 Lịch sử đời 1.2 Giới Thiệu Chung 1.3 Đặc điểm giao thức TCP 1.3.1 Đặc điểm gói tin TCP 1.3.2 Các pha kết nối .10 II Giới thiệu giao thức TCP Reno TCP Vegas 14 2.1 TCP Reno 14 2.1.1 Các chế TCP Reno 14 2.1.2 TCP NewRENO .17 2.2 Giới thiệu giao thức TCP Vegas 18 2.2.1 Giao thức TCP Vegas .18 2.2.2 Thuật toán điều khiển TCP Vegas 19 2.2.3 Ảnh hưởng tham số thuật toán TCP Vegas 20 2.2.4 Một số cải tiến TCP Vegas 21 2.2.5 TCP Vegas + 22 2.3 So sánh chế điều khiển tắc nghẽn TCP Reno TCP Vegas 23 2.3.1 TCP Reno 23 2.3.2 TCP Vegas .24 III CÁC CHUẨN CỦA TCP 24 3.1 Quá trình phát triển 24 3.2 Một số tài liệu chuẩn TCP .25 KẾT LUẬN 26 Tài liệu tham khảo 27 DANH MỤC HÌNH ẢN Hình 1: Bài báo "Giao thức cho mạng truyền thông kiểu gói" (tạm dịch) Hình 2: Mơ hình TCP/IP mơ hình OSI Hình 3:Cấu trúc header gói tin TCP Hình 4: Một số port ứng dụng thông dụng Hình 5: Thiết lập kết nối 11 Hình 6: Truyền liệu 13 Hình 7: Kết thúc phiên 13 Hình 8: Cơ chế TCP Reno 14 Hình 9: Ví dụ chế phục hồi nhanh 16 Hình 10: Ví dụ chế phục hồi nhanh TCP NewReno 18 DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT Cơ sở kĩ thuật mạng truyền thơng Hình 11: Mơ hình mạng ví dụ 21 Hình 12: Cửa sổ tắc nghẽn TCP Reno Vegas 22 DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT TCP IP WWW IEEE UDP OSI ACK ISN SCTP CRC PPP CWND RTT MWND ssthresh EFS RFC ECN SYN-ACK FIN TOS TTL Transmission Control Protocol Giao thức truyền tin kiểm soát Internet Protocol Giao thức internet World wide web Mạng lưới toàn cầu khơng gian thơng tin tồn cầu mà người truy cập (đọc viết) qua thiết bị kết nối với mạng Internet Institute of Electrical and Viện kỹ nghệ Điện Điện Electronics Engineers tử User Datagram Protocol Giao thức truyền tin người dùng Open Systems Interconnection Mơ hình tham chiếu kết nối Reference Model hệ thống mở Acknowledge Bản tin ACK Initial Sequence Number Số thứ tự ban đầu Stream Control Transmission Giao thức điều khiển luồng Protocol Cyclic Redundancy Check Kiểm dư chu trình Point-to-Point Protocol Giao thức kết nối điểm tới điểm Congest Windows Cửa sổ nghẽn Round Trip Time Thời gian truyền vòng Maximum Windows Cửa sổ cực đại Slow-start thresh Ngưỡng bắt đầu chậm Estimate Flight Size Kích thước truyền ước lượng Request for Comments Tài liệu đề nghị duyệt thảo bình luận Explicit Congestion Thơng báo tắc nghẽn rõ Notification ràng Synchronize-ACK message Bản tin ACK đồng End of data Kết thúc liệu Type of Services Loại dịch vụ Time to Live Thời gian gian sống gói tin Lời mở đầu Cơ sở kĩ thuật mạng truyền thông LỜI MỞ ĐẦU Ngày nay, dịch vụ mạng Internet không ngừng cải tiến để đáp ứng nhu cầu ngày tăng người sử dụng Do cần xây dựng giao thức phù hợp để đảm bảo chất lượng mạng Trong giao thức giao thức TCP giao thức truyền thông sử dụng phổ biến mạng Internet Trong phần lớn lưu lượng mạng Internet, lưu lượng TCP/IP đóng góp phần đáng kể phần lớn ứng dụng mạng Internet, ví dụ lướt Web truyền file, sử dụng giao thức TCP/IP Do vậy, thấy hiệu TCP/IP có ảnh hưởng lớn đến hiệu mạng trực tiếp ảnh hưởng đến chất lượng dịch vụ mạng Tuy nhiên số lượng người tham gia vào mạng ngày tăng có ngày nhiều dịch vụ hỗ trợ điều đòi hỏi phải không ngừng cải tiến nâng cao hiệu giao thứcTCP/IP Từ đời đến giao thức TCP có nhiều phiên cải tiến, đặc biệt với đóng góp phiên TCP Reno làm chế điều khiển truyền thông linh hoạt Giao thức TCP Vegas phiên cải tiến TCP Reno Trong khuôn khổ tiểu luận này, chúng em tìm hiểu giao thức TCP Reno TCP Vegas Chúng em mong nhận góp ý thầy cơ! Đại diện nhóm sinh viên thực Chương I: Giới thiệu chung Cơ sở kĩ thuật mạng truyền thông I Giới Thiệu Chung Về Giao Thức TCP 1.1 Lịch sử đời Tháng năm 1974, viện điện kỹ sư điện tử (IEEE) xuất báo có tiêu đề "A Protocol for Packet Network Intercommunication" tác giả tờ báo, Vint Cerf Bob Kahn, mô tả giao thức liên mạng để chia sẻ tài nguyên cách sử dụng chuyển mạch gói nút, kết hợp với khái niệm từ dự án FRENCH CYCLADES đạo Louis Pouzin Hình 1: Bài báo "Giao thức cho mạng truyền thơng kiểu gói" (tạm dịch) 1.2 Giới Thiệu Chung Sử dụng TCP, ứng dụng máy chủ nối mạng tạo "kết nối" với nhau, mà qua chúng trao đổi liệu gói tin Giao thức đảm bảo chuyển giao liệu tới nơi nhận cách đáng tin cậy thứ tự TCP phân biệt liệu nhiều ứng dụng (chẳng hạn, dịch vụ Web dịch vụ thư điện tử) đồng thời chạy máy chủ Nền tảng Internet TCP, bao gồm quy tắc để định dạng tin nhắn, xử lý tắc nghẽn, sửa lỗi cung cấp thông tin nơi mà gói tin cần gửi đi, cho dù đến q nhanh cho máy tính nhận liệu đến tất Về TCP chất keo đảm bảo điều kiện mạng hoạt động trơn tru TCP UDP protocol hoạt động lớp thứ 04 (Transport Layer) mơ hình OSI lớp thứ 02 (Transport Layer) mơ hình TCP/IP Chương I: Giới thiệu chung Cơ sở kĩ thuật mạng truyền thông Hình 2: Mơ hình TCP/IP mơ hình OSI Mục đích TCP cung cấp giải pháp tin cậy, mạch logic dịch vụ kết nối cặp quy trình Để cung cấp dịch vụ đầu trang internet tin cậy, hệ thống thơng tin liên lạc đòi hỏi sở lĩnh vực sau: - Chuyển liệu bản: TCP truyền luồng octet liên tục hướng người dùng cách đóng gói số octet phân đoạn để truyền qua hệ thống internet Nói chung, TCPs định để chặn chuyển tiếp liệu riêng Đơi người dùng cần phải chắn tất liệu họ có gửi đến TCP truyền Đối với mục đích đẩy chức xác định Để đảm bảo liệu gửi tới TCP thực truyền tải cho người sử dụng phải đẩy qua người dùng nhận Một đẩy gây TCPs để nhanh chóng chuyển tiếp cung cấp liệu đến điểm cho người nhận Điểm đẩy xác không hiển thị cho người dùng nhận chức đẩy không cung cấp mốc đánh dấu biên giới - Độ tin cậy: TCP có nhiệm vụ phải phục hồi liệu hỏng, mất, nhận không thứ tự hệ thống truyền thông internet Điều đạt cách gán thứ tự cho octet truyền đi, yêu cầu gửi tin ACK từ phía nhận Nếu ACK khơng nhận khoảng thời gian chờ, liệu truyền lại Tại máy thu, trình tự số sử dụng để phân đoạn xác để nhận lệnh để loại bỏ Thiệt hại xử lý thêm checksum cho phân đoạn truyền, kiểm tra nhận, loại bỏ phân đoạn bị hư hỏng Miễn TCPs tiếp tục hoạt động Chương I: Giới thiệu chung Cơ sở kĩ thuật mạng truyền thông hệ thống internet không trở thành phân vùng hồn tồn, khơng truyền lỗi ảnh hưởng đến việc phân phối liệu xác TCP phục hồi từ lỗi hệ thống truyền thông internet - Kiểm soát lưu lượng: TCP cung cấp phương tiện để người nhận điều chỉnh lượng liệu gửi người gửi Điều đạt cách trả "cửa sổ" với ACK loạt số thứ tự chấp nhận segment cuối nhận thành công Cửa sổ cho biết số octet phép mà người gửi truyền trước cho phép nhận thêm - Ghép Kênh: Để cho phép nhiều quy trình máy chủ sử dụng TCP phương tiện truyền thông đồng thời, TCP cung cấp địa cổng máy chủ Liên kết với mạng địa host từ lớp truyền thông internet, gọi cổng (virtual port) Một cặp cổng nhận diện kiểu kết nối Một cổng dùng nhiều kết nối khác Việc ràng buộc cổng vào trình xử lý độc lập host Tuy nhiên, hữu ích gắn q trình thường xun sử dụng (ví dụ, "logger" dịch vụ chia sẻ thời gian thực (timesharing ) ) để cố định cổng được công bố rộng rãi Các dịch vụ sau truy cập thông qua địa biết - Kết nối: Các chế kiểm soát độ tin cậy lưu lượng mô tả u cầu TCPs khởi tạo trì thơng tin trạng thái định cho luồng liệu Sự kết hợp thông tin này, bao gồm cổng, số thứ tự, kích cỡ cửa sổ, gọi kết nối Mỗi kết nối định cặp cổng xác định hai bên Khi hai bên muốn truyền đạt, TCP thiết lập kết nối (khởi tạo thông tin trạng thái bên) Khi giao tiếp hoàn tất, kết nối phải chấm dứt đóng lại để giải phóng tài nguyên cho mục đích sử dụng khác Vì kết nối thiết lập máy không đáng tin cậy qua hệ thống truyền thông internet không đáng tin cậy, chế bắt tay với số thứ tự dựa đồng hồ sử dụng để tránh khởi tạo sai kết nối - Ưu tiên bảo mật: Người sử dụng TCP an toàn ưu tiên giao tiếp Các giá trị mặc định sử dụng tính khơng cần thiết Chương I: Giới thiệu chung Cơ sở kĩ thuật mạng truyền thông 1.3 Đặc điểm giao thức TCP 1.3.1 Đặc điểm gói tin TCP TCP giao thức truyền thơng tin cậy, đảm bảo tất liệu truyền từ nguốn đến đích Do cấu trúc header TCP khác phức tạp Hình 3:Cấu trúc header gói tin TCP Source port (0-655535): Số hiệu xác định cổng chương trình ứng dụng, máy tính tự động sinh Destination port (0-655535) Tại lớp Transport Data chia nhỏ thành khối khối liệu nhỏ có kích thước phù hợp, sau chúng đóng gói lại tiêu đề header,header thêm vào nhằm theo dõi luồng liệu đánh dấu thứ tự khối data nhằm tập hợp liệu máy nhận Những gói tin nhỏ đóng thêm header đầu gọi Segment Có nhiều ứng dụng, dịch vụ chạy máy tính, nên để chuyển xác liệu cho ứng dụng dịch vụ, lớp Transport gán cho application định danh gọi port number Mọi ứng dụng muốn truy cập mạng gán port number, port number độc máy tính Ví dụ số port number dành cho số ứng dụng thơng dụng hình Sequence number (0-4294967295) Trường có nhiệm vụ Nếu cờ SYN bật số thứ tự gói ban đầu byte gửi có số thứ tự cộng thêm Nếu khơng có cờ SYN số thứ tự byte Chương I: Giới thiệu chung Cơ sở kĩ thuật mạng truyền thơng Hình 4: Một số port ứng dụng thông dụng Acknowledgement number (0-4294967295) Nếu cờ ACK bật giá trị trường số thứ tự gói tin mà bên nhận cần Data offset Trường có độ dài bít quy đị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 Dành cho tương lai có giá trị Flags (hay Control bits) Bao gồm cờ: 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 lại số thứ tự Chương I: Giới thiệu chung Cơ sở kĩ thuật mạng truyền thông FIN: Không gửi thêm số liệu Window Số byte nhận giá trị trường báo nhận (ACK) Checksum 16 bít kiểm tra cho phần header liệu Urgent pointer 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 Đây trường tùy chọn Nếu có độ dài bội số 32 bít 1.3.2 Các pha kết nối Không giao thức UDP - giao thức gửi gói tin mà khơng cần thiết lập kết nối, TCP đòi hỏi thiết lập kết nối trước bắt đầu gửi liệu kết thúc kết nối việc gửi liệu hoàn tất Cụ thể, 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 Thiết lập kết nối Để thiết lập kết nối, TCP sử dụng quy trình bắt tay bước (3-way handshake) Trước client thử kết nối với server, server phải đăng ký cổng mở cổng cho kết nối: gọi mở bị động Một mở bị động thiết lập client bắt đầu mở chủ động Để thiết lập kết nối, quy trình bắt tay bước xảy sau: Client yêu cầu mở cổng dịch vụ cách gửi gói tin SYN (gói tin TCP) tới server, gói tin này, tham số sequence number gán cho giá trị ngẫu nhiên X Server hồi đáp cách gửi lại phía client 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… Để hoàn tất trình bắt tay ba bước, client tiếp tục gửi tới server tin ACK, tin này, tham số sequence number gán cho giá trị X + tham số acknowledgment number gán giá trị Y + Tại thời điểm này, client server xác nhận rằng, kết nối thiết lập Chương I: Giới thiệu chung Cơ sở kĩ thuật mạng truyền thơng Hình 5: Thiết lập kết nối Truyền liệu Một số đặc điểm TCP để phân biệt với UDP: ◾ Truyền liệu khơng lỗi (do có chế sửa lỗi/truyền lại) ◾ Truyền gói liệu theo thứ tự ◾ Truyền lại gói liệu đường truyền ◾ Loại bỏ gói liệu trùng lặp ◾ Cơ chế hạn chế tắc nghẽn đường truyền Ở hai bước ba bước bắt tay, hai máy tính trao đổi số thứ tự gói ban đầu (Initial Sequence Number -ISN) Số chọn cách ngẫu nhiên Số thứ tự dùng để đánh dấu khối liệu gửi từ máy tính Sau byte truyền đi, số lại tăng lên Nhờ ta xếp lại chúng tới máy tính gói tới nơi theo thứ tự Trên lý thuyết, byte gửi có số thứ tự nhận máy tính nhận gửi lại tin báo nhận (ACK) Trong thực tế có byte liệu gán số thứ tự trường số thứ tự gói tin bên nhận gửi tin báo nhận cách gửi số thứ tự byte chờ Ví dụ: Máy tính A gửi 4byte với số thứ tự ban đầu 100 (theo lý thuyết 4byte có thứ tự 100, 101, 102, 103) bên nhận gửi tin báo nhận có nội dung 104 thứ tự byte cần Bằng cách gửi tin báo nhận 104, bên nhận ngầm thông báo nhận byte 100, 101, 102 103 Trong trường hợp 2byte cuối bị lỗi bên nhận gửi tin báo nhận với nội dung 102 byte 100 101 nhận thành công Chương II: Giới thiệu giao thức TCP Reno&Vegas Cơ sở kĩ thuật mạng truyền thông II Giới thiệu giao thức TCP Reno TCP Vegas 2.1 TCP Reno 2.1.1 Các chế TCP Reno Để điều khiển truyền thông TCP Reno sử dụng hầu hết chế điều khiển như: Cơ chế cửa sổ trượt, chế bắt đầu chậm, chế tránh tắc nghẽn, chế truyền lại nhanh chế phục hồi nhanh TCP Reno sử dụng cửa sổ tắc nghẽn (CWND) để điều khiển lượng liệu truyền thời gian vòng quay (RTT) cửa sổ cực đại (MWND) để giới hạn giá trị lớn cwnd Cơ chế hoạt động TCP Reno mơ tả hình vẽ: Cơ chế bắt đầu chậm (slow-start): Khi kết nối bắt đầu bị trễ xảy ra, trạng thái bắt đầu chậm bắt đầu hoạt động Giá trị ban đầu cwnd đặt gói tin cho trạng thái ban đầu trường hợp Trạm gửi tăng cwnd theo hàm mũ cách thêm lần gói nhận ACK Cơ chế bắt đầu chậm điều khiển kích thước cửa sổ chon đến cwnd đạt đến mức thiết lập trước gọi ngưỡng bắt đầu chậm (ssthresh) Khi cwnd vượt khỏi ssthresh, việc tránh tắc nghẽn bắt đầu Hình 8: Cơ chế TCP Reno Chương II: Giới thiệu giao thức TCP Reno&Vegas Cơ sở kĩ thuật mạng truyền thông Cơ chế tránh tắc nghẽn (Congestion avoidance): Khi kích thước cửa sổ trạng thái bắt đầu chậm vượt qua hàm mũ, gói tin gởi thời điểm tăng lên cách nhanh chóng nên gây tắc nghẽn Để giải vấn đề chế “tránh tắc nghẽn” khởi tạo cwnd vượt ssthresh Trong trường hợp này, cwnd cộng thêm 1/cwnd gói lần nhận ACK để tăng kích thước cửa sổ theo hàm tuyến tính Cơ chế truyền lại nhanh (Fast retransmission): Nếu gói phản hồi ACK gói khơng thủ tục nhận bên nhận, trạm gửi xử lý tín hiệu cho gói bị gói bị trễ Nếu nhiều gói hồi đáp ACK nhận dòng, bên gửi thực chế truyền lại nhanh, gói truyền gói bị lỗi mà khơng cần đợi thời gian để coarse-grain[*] [RFC2988] kết thúc Cơ chế phục hồi nhanh (Fast recovery): Truyền lại nhanh yêu cầu người gửi thiết lập cwnd = kênh nghẽn khơng có ACK đến Phục hồi nhanh kỹ thuật thường cho phép người gửi tránh nghẽn kênh, chuyển từ cwnd sang cwnd / không gian RTT Ý tưởng sử dụng cặp ACK song song (dup-ACK) đến để tăng tốc độ truyền lại Giả định lần đến dupACK số gói liệu sau gói bị gửi thành cơng; khơng vấn đề gói tin Khi phát gói bị thông qua Fast Retransmit, đặt cwnd = cwnd / 2; bước tìm hiểu xem phải chờ gói nhớ trước tiếp tục truyền liệu Ban đầu, nhất, giả định có gói liệu bị mất, phần sau thấy nhiều tổn thất xử lý thông qua sửa đổi nhẹ chiến lược Phục hồi Nhanh.Trong q trình khơi phục, khơng thể sử dụng trực tiếp cwnd, cửa sổ trượt khơng thể nhúc nhích gói bị truyền lại Thay vào đó, sử dụng khái niệm ước tính kích thước (Estimate Flight Size-EFS) dự đốn tốt phía gửi với số lượng gói tin chưa xử lý Trong trường hợp bình thường, EFS giống cwnd Sự quan trọng quan trọng Phục hồi nhanh EFS nên giảm cho dup-ACK đến Đầu tiên phác thảo trường hợp chung, sau xem xét ví dụ cụ thể Cho phép cwnd = N, giả sử gói bị (số gói dùng tương đối) Cho đến gói truyền lại, người gửi Chương II: Giới thiệu giao thức TCP Reno&Vegas Cơ sở kĩ thuật mạng truyền thông gửi qua gói tin N (Dữ liệu [N] gửi sau ACK [0] đến người gửi) Người nhận gửi N-1 dupACK [0] đại diện cho gói từ đến N Tại thời điểm dupACK thứ ba, liệu [1] phát hiện, người gửi tính sau: EFS cwnd = N Ba dup-ACKs đến, đại diện cho ba gói tin sau khơng chuyến gửi, đó, EFS N-3 Tại thời điểm này, người gửi nhận gói bị mất, làm cho EFS = N-4, gói sau truyền lại lập tức, đưa EFS trở N-3 Người gửi mong đợi vào thời điểm để nhận thêm N-4 dupACKs, ACK để truyền lại gói bị ACK cuối cho toàn thời gian ban đầu Mục tiêu cho cwnd N / (cho đơn giản, giả sử N số chẵn) Vì vậy, chờ N / - thêm dup-ACKs để đến, điểm EFS N-3- (N / 2-3) = N / Sau thời điểm này, người gửi tiếp tục gửi gói tin mới; gửi gói tin cho N / 2-1 sau dup-ACK đến (nhớ lại có tất N-1 dup-ACK) Các đợt truyền liệu [N + 1] thông qua liệu [N + (N / 2-1)] Sau dup-ACK cuối đến ACK tương ứng với việc truyền lại gói tin bị mất; ACK [N], thừa nhận tất cửa sổ ban đầu Tại thời điểm này, có N / - unacknowledged gói liệu [N +1] thông qua liệu [N (N / 2) -1] Người gửi gửi liệu [N + N / 2] tiếp tục cửa sổ trượt với cwnd = N / 2: người gửi nhận ACK [N] có xác cửa sổ đầy đủ chưa xử lý cho giá trị cwnd= N / Đây sơ đồ minh hoạ Phục hồi nhanh cho cwnd = 10 Dữ liệu [10] bị Chương II: Giới thiệu giao thức TCP Reno&Vegas Cơ sở kĩ thuật mạng truyền thơng Hình 9: Ví dụ chế phục hồi nhanh Cơ chế truyền lại trễ (Timeout retransmission): Đối với gói tin, trạm gửi giữ khoảng thời gian đến hồi đáp, thời gian dùng để kiểm tra gói bị trễ gói khơng nhận ACK Nếu việc trễ xảy ra, trạm gửi cài đặt lại cwnd khởi động chế bắt đầu chậm Giá trị mặc định thời gian dùng lần quay vòng 500ms, trạm gửi kiểm tra với lần 500ms 2.1.2 TCP NewRENO TCP NewReno, mô tả RFC 2582 (hiện RFC 6582), bước tinh chỉnh khiêm tốn Fast Recovery giúp cải thiện đáng kể việc xử lý trường hợp hai nhiều gói liệu bị cửa sổ Nó coi phần TCP Reno đương đại Nếu hai gói liệu bị gói truyền lại, người nhận thừa nhận liệu trước gói thứ hai, sau tiếp tục gửi dup-ACK gói tin bị thứ hai truyền lại Các ACK liệu đến trước gói thứ hai đơi gọi ACKs phần, retransmission gói bị khơng dẫn đến ACK tất liệu chưa xử lý Cơ chế NewReno sử dụng ACK phần làm chứng để truyền lại gói tin bị sau để giữ tốc độ Fast Recovery Trong sơ đồ đây, gói bị cửa sổ 0…11 kích thước 12 Ban đầu, người gửi nhận dupACK [0] 's; 11 ACK (đường nét từ phải sang trái) ACK [0] 10 dupACK [0] Khi gói truyền lại thành Chương II: Giới thiệu giao thức TCP Reno&Vegas Cơ sở kĩ thuật mạng truyền thông công nhận dupACK thứ ba, phản hồi người nhận ACK [3] (đường đứt mạnh) Đây ACK phần (ACK đầy đủ ACK [12]) Khi nhận ACK phần trình Phục hồi Nhanh, TCP NewReno giả định gói liệu bị truyền lại lập tức; người gửi không chờ đợi ba gói dup-ACK gói liệu sau khơng bị mất, khơng có trường hợp ACK phần tạo ra, gói lại gói xảy Phản ứng người gửi TCP NewReno có hiệu để xử lý ACK thành phần dạng dupACK [0], ngoại trừ việc người gửi truyền lại gói liệu dựa việc nhận ACK phần - suy luận bị NewReno tiếp tục tiến hành nhanh chóng Phục hồi nhanh ACK đến, cho dù gói tin gốc sau phần ACK dup-ACKs Hình 10: Ví dụ chế phục hồi nhanh TCP NewReno 2.2 Giới thiệu giao thức TCP Vegas 2.2.1 Giao thức TCP Vegas Năm 1994 Lawren S Brakmo đồng Larry L Peterson trường Đại học Arizona đề xuất thuật toán cải tiến cho TCP gọi TCP Vegas Nó phiên cải tiến TCP Reno Trong báo cáo, họ cho TCP Vegas đạt thông lượng cao từ 37% đến 71% so với TCP Reno Internet Chương II: Giới thiệu giao thức TCP Reno&Vegas Cơ sở kĩ thuật mạng truyền thơng Sự phát lại segments từ 1/5 đến 1/2 TCP Reno cho cải tiến thông lượng đường truyền giảm gói tin bị giảm phát lại gói tin Năm 1995 Ahn đồng kiểm nghiệm TCP Vegas SunOS 4.1.3 cho chúng cạnh tranh mạng diện rộng internet Họ tuyên bố TCP Vegas đạt dược thông lượng cao, giảm phát lại thời gian trung bình RTT ngắn TCP Reno, TCP Vegas giữ liệu mạng Trong khoảng thời gian 10 năm trở lại có nhiều nghiên cứu TCP Vegas Trong tài liệu mình, tác giả ưu điểm khuyết điểm TCP Vegas Khuyết điểm lớn TCP Vegas có cạnh tranh đường truyền TCP Vegas phiên TCP khác TCP Vegas tỏ cạnh tranh, từ họ đưa cải tiến để khắc phục nhược điểm Hiện TCP Vegas chưa sử dụng rộng rãi Internet, số hạn chế định việc xác định tham số ảnh hưởng thời điểm định, để tăng hiệu đường truyền, vấn đề mở mà nhà nghiên cứu quan tâm 2.2.2 Thuật toán điều khiển TCP Vegas Ý tưởng then chốt TCP Vegas ngăn ngừa segment bị q trình truyền thơng tránh tắc nghẽn mạng TCP Vegas điều khiển kích thước cửa sổ tắc nghẽn cách theo dõi RTT RTT thời gian tính từ segment gửi từ trạm phát đến trạm nhận, trạm phát nhận segment hồi đáp ACK, chứa thơng tin segment nhận thành công Nếu thời gian RTT theo dõi tăng, TCP Vegas nhận biết mạng bị tắc nghẽn thực chế tránh tắc nghẽn Nếu thời gian RTT giảm TCP Vegas nhận biết mạng khai thông TCP Vegas thực chế tăng kích thước cửa sổ để tận dụng thơng lượng đường truyền Trong q trình điều khiển truyền thông, TCP Vegas sử dụng chế : Cơ chế cửa sổ trượt, chế bắt đầu chậm, tránh tắc nghẽn, phát lại nhanh, phục hồi nhanh chế điều khiển truyền thơng Cơ chế bắt đầu chậm TCP Vegas sử dụng bắt đầu kết nối Cơ chế phát lại nhanh phục hồi nhanh thực nhận segment ACK trùng lặp số hiệu Thuật toán TCP Vegas thực sau: Ký hiệu: rtt[sec]: thời gian RTT theo dõi base_rtt: giá trị nhỏ RTT theo dõi trị Thuật toán điều khiển TCP Vegas : Chương II: Giới thiệu giao thức TCP Reno&Vegas Cơ sở kĩ thuật mạng truyền thông Trong pha bắt đầu chậm TCP Vegas ước tính diff so sánh với ngưỡng γ (thường chọn 1) diff < γ cửa sổ tắc nghẽn tăng gấp đôi lần nhận ACK hồi đáp Sau pha bắt đầu chậm TCP Vegas thực pha tránh tắc nghẽn Khi TCP Vegas nhận ACK trùng lặp số hiệu thực chế phát lại nhanh phục hồi nhanh, nhiên pha TCP Vegas có cải tiến đặt cửa sổ xuống 3/4 cửa sổ hành TCP Reno đặt 1/2 Khi phát có segment bị Time Out TCP Vegas thực giống TCP Reno Ước lượng băng thông: Hiện nay, chế sử dụng TCP Vegas để ước lượng băng thơng có giá trị khác so với TCP Reno chủ định nguyên nhân việc gói tin Do chế xóa bỏ trạng thái khơng ổn định từ TCP Vegas đạt thơng lượng hiệu trung bình cao Ngoài ra, kết nối giữ vài gói đệm Switch Cơ chế truyền lại: Một chế khác bổ sung thêm TCP Vegas TCP Reno chế truyền lại Trong TCP Reno đếm thời gian sử dụng ước lượng RTT thay đổi, kết việc ước lượng sơ sài 2.2.3 Ảnh hưởng tham số thuật toán TCP Vegas TCP Vegas dựa vào quan sát RTT để điều khiển truyền thông Các tham số : độ trễ d, độ trễ D RTT việc thiết lập giá trị α, β Các tham số có ảnh hưởng lớn đến việc điều khiển truyền thông TCP Vegas mạng Trong mạng dùng TCP Vegas thơng lượng tăng, khả tránh tắc nghẽn tốt, tỷ lệ gói tin giảm, mạng có tham gia TCP Reno khả cạnh tranh tỏ TCP Reno Dễ thấy điều qua thuật tốn Các số α, β thường chọn (hoặc 4) TCP Vegas tăng kích thước cửa sổ lên Tỷ số dương thường nhỏ Do cửa sổ đủ lớn, lưu lượng đường truyền cao, độ trễ RTT tăng (Do thời gian chờ segment hàng đợi tăng) khả tăng kích thước cửa sổ Chương II: Giới thiệu giao thức TCP Reno&Vegas Cơ sở kĩ thuật mạng truyền thơng khó xảy Nếu lớn β TCP Vegas giảm kích thước cửa sổ xuống Điều cho thấy TCP Vegas tăng giảm kích thước cửa sổ linh hoạt, dựa vào quan sát độ trễ RTT cách thiết lập trị số cho α, β Trong trường hợp dung lượng đường truyền nhỏ, độ trễ đường truyền cao, chiều dài hàng đợi hạn chế, khả xử lý hàng đợi chậm, khả nghẽn mạng xảy Nếu mạng sử dụng giao thức TCP Vegas thơng lượng đường truyền nâng cao rõ rệt nhờ kích thước cửa sổ giữ mức cao Rõ ràng TCP Vegas đời nhằm đáp ứng hạn chế tài nguyên phần cứng mạng TCP Reno tăng kích thước cửa sổ phát segment, bất chấp RTT có tăng hay khơng Với chế nên TCP Vegas tham gia truyền thơng với TCP Reno khả chiếm giữ đường truyền hàng đợi TCP Reno nhiều TCP Vegas khó có hội tăng kích thước cửa sổ, độ trễ hàng đợi tăng, trị số α, β thiết lập nhỏ, làm số lượng segment mạng TCP Vegas giảm Để tạo công tăng thông lượng mạng người ta tăng lực phần cứng : tăng đệm router tăng tốc độ xử lý routers, cải tiến thuật toán TCP Vegas Người ta thường cải tiến thuật toán kết hợp với việc cải tiến cách quản lý hàng đợi để giảm bớt segment bị giảm thời gian chi phí cho việc xử lý, thiết lập giá trị số α, β cách phù hợp Giá trị ban đầu α, β ảnh hưởng lớn đến cạnh tranh TCP Vegas Nếu giá trị thiết lập đủ lớn cách phù hợp, cho TCP Reno tăng kích thước cửa sổ TCP Vegas tăng kích thước cửa sổ, giới hạn cạnh tranh, làm tăng thông lượng đường truyền tăng sức cạnh tranh TCP Vegas mạng 2.2.4 Một số cải tiến TCP Vegas Một số nghiên cứu thiếu sót TCP Vegas Từ có số cải tiến TCP Vegas nhằm khắc phục thiếu sót, tăng lực cạnh tranh TCP Vegas nâng cao chất lượng truyền thông Các cải tiến TCP Vegas nhằm vào việc cải tiến cách quản lý hàng đợi cho có thời gian D nhỏ đường truyền thiết lập giá trị α, β Ví dụ mơ hình mạng sử dụng Chương II: Giới thiệu giao thức TCP Reno&Vegas Cơ sở kĩ thuật mạng truyền thơng Hình 11: Mơ hình mạng ví dụ Trong đó: hai nguồn TCP Vegas TCP Reno chia sẻ Router đường truyền, hàng đợi đường truyền có kích thước B (segment), dung lượng đường truyền ( d>B) Các giả định mơ hình: Nếu nguồn nhận 3ACK trùng lặp số liệu sử dụng chế phát lại nhanh phục hồi nhanh Nếu nguồn phát segment Timeout sử dụng chế tránh tắt nghẽn Bộ đệm đường truyền rỗng thời điểm bắt đầu pha tránh tắt nghẽn Sự Segment xảy đồng thời hai nguồn Với mơ hình giả định ta biểu diễn chu kỳ pha tránh tắt nghẽn sau Hình 12: Cửa sổ tắc nghẽn TCP Reno Vegas Chương II: Giới thiệu giao thức TCP Reno&Vegas Cơ sở kĩ thuật mạng truyền thông 2.2.5 TCP Vegas + Trong TCP Vegas +, thay đổi thuật tốn cập nhật cho kích thước cửa sổ gốc TCP Vegas, không thay đổi chức khác, bao gồm thuật toán phát gói, chế khởi động chậm chậm TCP Vegas + thường hoạt động giống hệt với TCP Vegas, nhiên, lại vào chế độ khác để tăng kích thước cửa sổ cách mạnh mẽ nhận thấy có kết nối cạnh tranh TCP Reno Cụ thể hơn, TCP Vegas + có hai chế độ để cập nhật kích thước cửa sổ nó: Chế độ vừa phải (Moderate Mode): Ở chế độ vừa phải, người gửi TCP Vegas + hoạt động giống hệt với giao thức TCP Vegas ban đầu, tức kích thước cửa sổ cập nhật theo thuật toán TCP Vegas Chế độ Tấn công (Aggressive Mode): Trong chế độ công, máy chủ người gửi TCP Vegas + hoạt động giống hệt với TCP Reno Tức là, cập nhật kích thước cửa sổ theo công thức TCP Reno Chế độ dành cho TCP Vegas + giữ thông tin công kết nối TCP Reno Điều quan trọng chuyển đổi hai chế độ Với mục đích này, chúng tơi giới thiệu biến count countmax Đầu tiên, count cập nhật theo thuật toán sau Mỗi lần nhận gói ACK, người gửi quan sát kích thước cửa sổ giá trị RTT Nếu RTT lớn giá trị trước kích thước cửa sổ khơng tăng số lượng gửi tăng thêm Mặt khác, RTT trở nên nhỏ hơn, người gửi giảm giá trị count đơn vị Nếu gói tin bị phát thuật toán truyền lại nhanh, count giảm nửa Nếu packet bị hết thời hạn, count reset lại TCP Vegas + sau thay đổi chế độ theo giá trị count; Chế độ trung bình (Moderate Mode)→ Chế độ Tấn cơng (Aggressive Mode): Nếu tính đến giá trị ngưỡng định countmax, người gửi thay đổi chế độ từ chế độ vừa phải sang chế độ công Một lý đằng sau thuật toán sau; giá trị RTT trở nên lớn kích thước cửa sổ khơng thay đổi xem xét gia tăng RTT kết nối TCPVegas +, mà kết nối TCP Reno khác, làm tăng kích thước cửa sổ mạnh kết nối TCP Vegas + Sau kết nối TCP Vegas + làm tăng kích thước cửa sổ mạnh để cạnh tranh bình đẳng với kết nối khác Khi gói tin phát hiện, mặt khác, TCP Vegas + nên thay đổi chế độ Chương II: Giới thiệu giao thức TCP Reno&Vegas Cơ sở kĩ thuật mạng truyền thông từ chế độ tích cực sang chế độ cơng Đó gói cho thấy xuất tắc nghẽn mạng, tắc nghẽn gia tăng tích cực kích thước cửa sổ 2.3 So sánh chế điều khiển tắc nghẽn TCP Reno TCP Vegas Phần tóm tắt chế điều khiển tắc nghẽn hai phiên TCP: TCP Reno TCP Vegas Điểm cốt yếu chế điều khiển tắc nghẽn TCP tự động điều khiển kích thước cửa sổ tùy theo mức tắc nghẽn mạng Ký hiệu kích thước cửa sổ trạm gửi thời điểm t cwnd(t) 2.3.1 TCP Reno Đối với TCP Reno, kích thước cửa sổ thay đổi đặn theo trạng thái đặc trưng Kích thước cửa sổ tiếp tục tăng xuất gói tin rơi TCP Reno có hai pha việc tăng kích thước cửa sổ Pha bắt đầu chậm (slow start) pha tránh tắc nghẽn (congestion avoidance) Khi có gói ACK nhận TCP trạm gửi thời điểm t+tA [sec], kích thước cửa sổ cwnd(t+tA) cập nhật từ cwnd(t) sau: Trong ssth(t) [packets] ngưỡng giá trị mà TCP thay đổi từ giai đoạn bắt đầu chậm đến giai đoạn tránh tắc nghẽn Khi gói tin rơi phát hết thời gian chờ, cwnd(t) ssth(t) cập nhật như: ssth(t) = cwnd(t)/2; cwnd(t) = (2) Trong trường hợp khác, TCP phát gói tin rơi thuật tốn phát lại nhanh, thay đổi cwnd(t) ssth(t) là: ssth(t) = cwnd(t)/2; cwnd(t) = ssth(t) (3) 2.3.2 TCP Vegas TCP Vegas điều khiển kích thước cửa sổ tắc nghẽn cách theo dõi RTT (Round Trip Time) gói tin mà trạm gửi gửi trước [4], (RTT thời gian tính từ Segment gửi từ trạm phát đến trạm nhận, trạm phát nhận Segment hồi đáp ACK, chứa thơng tin Segment nhận thành công) Nếu thời gian RTT theo dõi tăng, TCP Vegas nhận biết mạng bị tắc nghẽn, thực chế giảm tắc nghẽn cách giảm kích Chương II: Giới thiệu giao thức TCP Reno&Vegas Cơ sở kĩ thuật mạng truyền thông thước cửa sổ Nếu thời gian RTT giảm TCP Vegas nhận biết mạng khai thông TCP Vegas thực chế tăng kích thước cửa sổ để tận dụng thơng lượng đường truyền Vì vậy, kích thước cửa sổ trạng thái lý tưởng dự kiến chuyển giá trị thích hợp III CÁC CHUẨN CỦA TCP 3.1 Quá trình phát triển TCP giao thức phức tạp Tuy nhiên, cải tiến đáng kể thực đề xuất năm qua, hoạt động khơng thay đổi đáng kể kể từ RFC 675 đặc tả vào năm 1974, đặc tả v4 RFC 793 , xuất tháng năm 1981 RFC 1122 , Yêu cầu máy chủ cho Internet Máy chủ, làm rõ số yêu cầu thực giao thức TCP Một danh sách yêu cầu đặc điểm kỹ thuật 20 cải tiến mạnh mẽ khuyến khích có sẵn RFC 7414 Trong số danh sách RFC 2581 , Kiểm soát tắc nghẽn TCP, RFC quan trọng liên quan đến TCP năm gần đây, mô tả thuật tốn cập nhật để tránh tình trạng tắc nghẽn mức Năm 2001, RFC 3168 viết để mô tả thông báo nghẽn rõ ràng (ECN), chế báo hiệu tắc nghẽn Thuật toán tránh xung đột TCP ban đầu gọi "TCP Tahoe", nhiều thuật toán thay đề xuất (bao gồm TCP Reno , TCP Vegas , FAST TCP , TCP Mới Renovà TCP Hybla ) Vào thời điểm đầu kỷ 21, khoảng 95% gói tin Internet TCP Các ứng dụng tiêu biểu sử dụng TCP HTTP/HTTPS (World Wide Web), SMTP/POP3/IMAP (e-mail) FTP (truyền file) Sự phổ biến TCP chứng tỏ thiết kế tốt … Chương III: Các chuẩn TCP Bài tập lớn Cơ sở kĩ thuật mạng truyền thông 3.2 Một số tài liệu chuẩn TCP RFC1122 -Các yêu cầu mạng Internet – đưa số yêu cầu thực TCP Các thuật toán: khởi động chậm, tránh tắc nghẽn, truyền lại nhanh phục hồi nhanh sử dụng chúng với TCP chuẩn hóa [RFC1122] RFC 3168: Mơ tả chế báo hiệu chống nghẽn mạng có tên thơng báo nghẽn mạng RFC 813 (Chiến lược cửa sổ xác nhận TCP): Thảo luận hệ thống cửa sổ xác nhận, mơ tả số vấn đề xảy phương thức để chỉnh sửa chúng RFC879 (Kích thước segment tối đa chủ đề liên quan): Thảo luận tham số kích thước segment tối đa điều khiển kích thước thơng điệp TCP mối quan hệ tham số với kích thước gói liệu IP RFC 896 (Điều khiển tắc nghẽn liên mạng IP/TCP): Thảo luận vấn đề tắc nghẽn cách thức sử dụng TCP để xử lý chúng RFC1323 (Các mở rộng hiệu cao TCP): Định nghĩa mở rộng TCP cho liên kết tốc độ cao tùy chọn RFC2018 (Các tùy chọn xác nhận lựa chọn TCP): Một mở rộng chức TCP cho phép thiết bị TCP lựa chọn segment cụ thể để truyền lại liệu RFC 2581 (Điều khiển tắc nghẽn TCP): Mơ tả bốn thuật tốn sử dụng để điều khiển tắc nghẽn mạng TCP: khởi đầu chậm, tránh tắc nghẽn, truyền lại phục hồi nhanh chóng RFC2988 (Bộ xác định thời gian truyền lại TCP): Thảo luận phát sinh liên quan đến thiết lập xác định thời gian truyền lại kiểm soát thời gian mà thiết bị nhận xác nhận liệu gửi trước truyền lại Kết luận Bài tập lớn Cơ sở kĩ thuật mạng truyền thông KẾT LUẬN Trong môi trường đồng nhất, TCP Vegas thực tốt TCP Reno để đạt mức ổn định số gói tin rơi Tuy nhiên TCP Vegas không hoạt động tốt hai TCP Vegas TCP Reno tồn Khả tương thích TCP Reno trì thuộc tính vốn TCP Vegas nguyên nhân cản trở chúng sử dụng lúc phiên phải chia sẻ đệm Router TCP chiếm nhiều băng thơng TCP Vegas Do đó, người dùng thích dùng TCP Vegas trở nên phổ biến Chúng ta đưa phương pháp đơn giản để khắc phục vấn đề Phương pháp RED hoạt động chức router phương pháp khác điều chỉnh α β TCP Vegas Hai phương pháp đưa đến tình trạng tốt hơn, chí cho ta thuận lợi Vegas TCP Vegas điều khiển truyền thông khác với TCP Reno pha tránh tắc nghẽn, giữ kích thước cửa sổ phát mức độ cao trình truyền thông, tránh tắc nghẽn tốt tận dụng thông lượng đường truyền Các tham số ảnh hưởng đến q trình truyền thơng TCP Vegas độ trễ đường truyền, chiều dài hàng đợi, giá trị α, β Các nhà nghiên cứu cải tiến tham số để TCP Vegas cạnh tranh tốt với TCP Reno mạng Do giới hạn thời gian kiến thức hiểu biết hạn hẹp nên tiểu luận khơng tránh khỏi sai sót, mong nhận góp ý Thầy để em hồn chỉnh tiểu luận Em xin chân thành cảm ơn Tài liệu tham khảo & Chú thích Bài tập lớn Cơ sở kĩ thuật mạng truyền thông Tài liệu tham khảo [1] Yuan-Cheng Lai, “Improving the Performance of TCP Vegas in a Heterogenerous Environment” [2] Go Hasegawa, Kenji Kurata and Masayuki Murata, “Analysis and Improvement of Fairness between TCP Reno and Vegas for Deployment of TCP Vegas to the Internet” [3] John Kristoff, April 24,2000, “TCP” http://condor.depaul.edu/jkristof/technotes/tcp.html [4] Information Sciences Institute University of Southern California, September 1981, RFC 793: “TRANSMISSION CONTROL PROTOCOL/ DARPA INTERNET PROGRAM / PROTOCOL SPECIFICATION” [5] Inetdaemon, Dec 2013, “TCP Header”, http://www.inetdaemon.com/tutorials/internet/tcp/tcp_header.shtml CHÚ THÍCH: [*] coarse-grained & fine-grained: TCP sử dụng RTT để đốn xem gói tin nhận Nếu vượt thời gian, gói tin giả định bị truyền lại: + TCP Reno, RTT tính tốn coarse-grained Nghĩa sau khoảng thời gian định ( ví dụ 500ms), kiểm tra xem gói tin nhận hay khơng Nếu đúng, RTT 500ms; sai, chờ thêm 500 ms để kiểm tra lại + TCP Vegas, RTT tính tốn fine-grained: thời gian tính từ lúc hệ thống gửi gói tin nhận phân đoạn