Bài tập lớn mạng máy tính mô PHỎNG điều KHIỂN LUỒNG Bài tập lớn mạng máy tính mô PHỎNG điều KHIỂN LUỒNG Bài tập lớn mạng máy tính mô PHỎNG điều KHIỂN LUỒNG Bài tập lớn mạng máy tính mô PHỎNG điều KHIỂN LUỒNG Bài tập lớn mạng máy tính mô PHỎNG điều KHIỂN LUỒNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỂN THÔNG - - BÁO CÁO MÔ PHỎNG ĐIỀU KHIỂN LUỒNG TRONG GIAO THỨC TCP/IP Hà Nội, 12/2017 Điều khiển lưu lượng giao thức TCP MỤC LỤC MỤC LỤC DANH MỤC HÌNH ẢNH LỜI MỞ ĐẦU .5 CHƯƠNG GIỚI THIỆU CHUNG 1.1 Sự đời phát triển mạng Internet 1.2 Mơ hình tham chiếu OSI TCP/IP 1.2.1 Mơ hình tham chiếu OSI 1.2.2 Mơ hình tham chiếu TCP/IP .11 1.3 Vấn đề tắc nghẽn cần thiết chế điều khiển lưu lượng 13 1.3.1 Hiện tượng tắc nghẽn .13 1.3.2 Khái niệm điều khiển lưu lượng .15 1.3.3 Khái niệm điều khiển tắc nghẽn .16 1.3.4 Các chế điều khiển lưu lượng điều khiển tắc nghẽn .16 1.3.5 Cách thực chế điều khiển lưu lượng 24 1.4 Cơ chế điều khiển lưu lượng cửa sổ trượt 25 CHƯƠNG ĐIỀU KHIỂN LƯU LƯỢNG TRONG GIAO THỨC TCP 30 2.1 Tìm hiểu giao thức TCP .30 2.1.1 Cách thức truyền liệu qua giao thức TCP 31 2.2.2 Cấu trúc gói tin TCP 32 2.2.3 Thiết lập kết thúc kết nối TCP .35 2.2 Sự kiện tắc nghẽn Internet đề xuất Jacobson ngun lý “bảo tồn gói tin” 37 2.2.1 Sự kiện tắc nghẽn Internet 37 2.2.2 Nguyên lý bảo tồn gói tin .38 2.3 Các chế điều khiển lưu lượng giao thức TCP 40 2.3.1 Một số chế điều khiển lưu lượng giao thức TCP 40 2.3.2 Việc áp dụng chế điều khiển lưu lượng phiên TCP .44 2.4 Các chế thực thi TCP 51 Page | Điều khiển lưu lượng giao thức TCP 2.4.1 Việc áp dụng chế điều khiển lưu lượng phiên TCP là: Tahoe TCP 51 2.4.2 Các cải tiến giao thức TCP 54 CHƯƠNG 3: KHẢO SÁT ĐÁNH GIÁ HIỆU SUẤT CỦA TCP BẰNG BỘ MÔ PHỎNG MẠNG NS2 62 3.1 Giới thiệu mô mạng NS2 (Network Simulator Version 2) 62 3.2 Thí nghiệm mơ kết đạt .65 3.2.1 Thí nghiệm mơ 65 3.2.2 Nhận xét kết luận 67 KẾT LUẬN .69 Page | Điều khiển lưu lượng giao thức TCP DANH MỤC HÌNH ẢNH Hình Mơ hình tham chiếu OSI Hình Mơ hình tham chiếu OSI TCP/IP 12 Hình Các giao thức mạng mơ hình TCP/IP ban đầu 13 Hình Sự xuất tắc nghẽn mạng .14 Hình Ảnh hưởng lỗi kích thước cửa sổ người nhận 21 Hình Ảnh hưởng lỗi kích thước cửa sổ người nhận lớn 22 Hình Điều khiển lưu lượng cửa sổ trượt, biên nhận gói số liệu 27 Hình Điều khiển lưu lượng cửa sổ trượt Kích thước cửa sổ nhận gửi ban đầu 28 Hình 10 Điều khiển lưu lượng cửa sổ trượt, kích thước cửa sổ W=3 29 Hình 11 Hoạt động giao thức TCP .31 Hình 12 Cấu trúc gói tin TCP với phần tiêu đề giả 32 Hình 13 Cấu trúc gói tin TCP 33 Hình 14 Ngun lý bảo tồn gói tin điều khiển lưu lượng TCP 38 Hình 15 Xác định thời gian RTT 41 Hình 16 Hoạt động thuật toán Slow Start 45 Hình 17 Hoạt động Slow Start 46 Hình 18 Hoạt động kết hợp Slow Start Congestion Avoidance 49 Hình 19 Hoạt động Tahoe TCP 52 Hình 20 Tahoe TCP với gói tin bị loại bỏ 52 Hình 21 Hoạt động chi tiết Tahoe TCP với gói tin bị loại bỏ 54 Hình 22 Hoạt động Reno TCP 55 Hình 23 Reno TCP với gói tin bị loại bỏ 56 Hình 24 Hoạt động chi tiết Reno TCP với gói tin bị loại bỏ 57 Hình 25 Hoạt động New Reno TCP, trường hợp có ba gói số liệu bị loại bỏ .58 Hình 26 Hoạt động SACK TCP, trường hợp có ba gói số liệu bị 59 Hình 27 Hình thể NAM (Network Animator) 63 Hình 28 Hoạt động NS góc nhìn người sử dụng 63 Page | Điều khiển lưu lượng giao thức TCP Hình 29 Cấu trúc trace file 64 Hình 30 Chi tiết topo mạng mô .65 Hình 31 Mơ giao thức TCP 66 Hình 32 Mô giao thức UDP 66 LỜI MỞ ĐẦU Ngày nay, khắp nơi giới, Internet mang lại lợi ích to lớn cho xã hội lồi người Các cơng ty tổ chức thấy khả tăng suất hiệu việc đầu tư mạnh hoạt động mạng Internet Sự phát triển thay đổi mạnh mẽ công nghệ Internet, tạo gia tăng nhanh, phức tạp đa dạng ứng dụng truyền thơng Trong trao đổi thơng tin, phía phát truyền liệu đến phía thu liệu được lưu đệm phía thu Dữ liệu đệm sau xử lý chuyển lên lớp phía xóa đi, để dành đệm cho liệu Trên thực tế trao đổi thông tin mạng, xảy tình trạng phía phát truyền liệu với tốc dộ cao khả xử lý xủa phía thu, đẫn đến đệm phía thu dần đầy bị tràn Trong trường hợp này, phía thu khơng thể nhận thêm gói liệu từ phía phát dẫn đến việc phía phát phải thực truyền lại liệu, gây lãng phí băng thơng đường truyền Nhằm giảm thiểu việc phải truyền lại thơng tin gói tràn hàng đợi, cần có chế thực kiểm sốt điều khiển lưu lượng thông tin cần Như vậy, vấn đề điều khiển lưu lượng mạng để tránh tắc nghẽn sử dụng hữu hiệu tài nguyên mạng trở lên quan trọng cần thiết để đáp ứng u cầu truyền thơng người dùng Mục đích đề tài nghiên cứu chế điều khiển giao thức TCP từ đưa biện pháp thực thi nhằm làm tăng hiệu suất sử dụng mạng thông qua chế điều khiển lưu lượng điều khiển tắc nghẽn Để thực mục đích đó, chúng em nghiên cứu số vấn đề liên quan trực tiếp là: Page | Điều khiển lưu lượng giao thức TCP Tìm hiểu chế điều khiển lưu lượng điều khiển chống tắc nghẽn giao thức TCP Việc áp dụng chế phiên TCP Mô để đánh giá giải pháp điều khiển chế TCP Với khả hạn chế thời gian hạn hẹp, chắn báo cáo nhiều điều thiếu sót, chưa hồn thiện Kính mong đóng góp ý kiến giúp đỡ q thầy bạn Nhóm sinh viên Page | Điều khiển lưu lượng giao thức TCP CHƯƠNG GIỚI THIỆU CHUNG 1.1 Sự đời phát triển mạng Internet Nguồn gốc Internet hệ thống mạng máy tính quốc phòng Mỹ, có tên gọi mạng Arpanet Đó mạng thí nghiệm thiết kế đưa vào sử dụng năm 1969 để tạo điều kiện thuận lợi cho việc hợp tác khoa học cơng trình nghiên cứu quốc phòng Arpanet nêu cao triết lý truyền thơng bình đẳng (peer-to-peer), máy tính hệ thống có khả “nói chuyện” với máy tính thành viên khác Bất kỳ mạng máy tính dựa sở thiết kế Arpanet mô tả tập hợp trung tâm điện toán tự quản, mang tính địa phương tự điều hành, chúng liên kết dạng “vơ phủ có điều tiết” Sự phát triển thiết kế mạng Arpanet đơn yêu cầu quân sự: mạng phải có khả chống lại cơng vơ hiệu hố số lớn trạm thành viên Mạng Internet nguyên thuỷ thiết kế nhằm mục đích phục vụ việc cung cấp thơng tin cho giới khoa học, nên công nghệ cho phép hệ thống liên kết với thơng qua cổng điện tử Theo cách đó, có hàng ngàn hệ máy tính hợp tác, nhiều hệ thống dịch vụ thư điện tử có thu phí, MCI Compuserve chẳng hạn, trở thành thành viên Internet Cũng từ hệ thống Internet đời, gồm mạng máy tính liên kết với phạm vi toàn giới, tạo điều kiện thuận lợi cho dịch vụ truyền thông liệu, đăng nhập từ xa, truyền tệp tin, thư tín điện tử nhóm thơng tin…Ở khía cạnh đó, coi Internet phương pháp ghép nối mạng máy tính hành, phát triển rộng rãi tầm hoạt động hệ thống thành viên Với hai triệu máy chủ phục vụ chừng vài trăm triệu người dùng, mạng Internet phát triển với tốc độ bùng nổ, việc sử dụng Internet trở thành phổ biến sống Mạng Arpanet có ảnh hưởng lớn đến tiến hố mạng thương mại, mơ hình tham chiếu sử dụng mạng Arpanet tiền thân tất mạng máy tính, kể mạng Internet đời sau Về sau, mạng vệ tinh vô tuyến đời kết nối vào Arpanet giao thức sử dụng Arpanet không Page | Điều khiển lưu lượng giao thức TCP đáp ứng yêu cầu liên mạng, cần phải có mơ hình kiến trúc mới, có khả liên kết nhiều mạng với cách suốt Kiến trúc gọi mơ hình tham chiếu TCP/IP, tên đặt theo tên hai giao thức TCP IP 1.2 Mơ hình tham chiếu OSI TCP/IP Việc xây dựng hệ thống phần mềm để kết nối máy tính thành mạng nhỏ kết nối mạng nhỏ thành mạng toàn cầu Internet toán phức tạp, để thực công việc phức tạp này, người ta chia hệ thống phần mềm thành lớp, hay tầng (Layer) theo số nguyên tắc định khoa học Các lớp tương tác với lớp Trong mạng khác nhau, số tầng, tên tầng, nội dung tầng chức tầng khác nhau; nhiên, mục đích tầng sử dụng dịch vụ tầng cung cấp, để cung cấp dịch vụ định cho tầng cao hơn, cho tầng sử dụng dịch vụ nó, khơng cần phải quan tâm tới thao tác chi tiết mà dịch vụ phải thực Để mạng máy tính khác truyền thông với nhau, chúng cần tuân theo chuẩn Người ta xây dựng nên chuẩn vậy, chúng gọi mơ hình tham chiếu, làm sở chung cho nhà thiết kế dựa vào thiết kế mạng Hai mơ hình mạng phổ biến sử dụng lớp mơ hình OSI (Open System Interconnection) mơ hình TCP/IP trình bày 1.2.1 Mơ hình tham chiếu OSI Thời kỳ đầu thiết kế mạng, nhà thiết kế tự lựa chọn kiến trúc cho riêng Từ dẫn đến tình trạng khơng tương thích mạng máy tính với nhau, phương pháp truy nhập đường truyền khác nhau, sử dụng họ giao thức khác nhau,…vấn đề khơng tương thích làm trở ngại cho tương tác người sử dụng mạng khác Nhu cầu trao đổi thơng tin lớn, thúc đẩy việc xây dựng khung chuẩn kiến trúc mạng để làm cho nhà thiết kế chế tạo thiết bị mạng Chính lý tổ chức tiêu chuẩn hố quốc tế ISO (International Organization for Standardization) lập (vào năm 1977) tiểu ban nhằm phát Page | Điều khiển lưu lượng giao thức TCP triển khung chuẩn Kết năm 1984, ISO xây dựng cơng bố mơ hình tham chiếu cho việc kết nối hệ thống mở OSI (reference model for Open Systems Interconnection) Mơ hình cung cấp đại lý với chuẩn đảm bảo tạo tính tương thích hoạt động giao tiếp loại cơng nghệ mạng khác giới thiệu nhiều cơng ty tồn giới Mơ hình OSI định nghĩa chức mạng lớp quan hệ lớp Quan trọng hơn, khuôn mẫu thuận tiện cho việc hiểu cách thông tin truyền qua mạng Hơn nữa, mô hình OSI mơ tả cách thức mà thơng tin, hay cụ thể gói liệu, truyền từ chương trình ứng dụng (như bảng tính tài liệu) qua phương tiện mạng (như dây dẫn) tới chương trình ứng dụng khác máy tính mạng khác, chí người gửi người nhận có loại phương tiện mạng khác Mơ hình OSI có bảy tầng minh hoạ sau: Hình Mơ hình tham chiếu OSI Mỗi tầng mơ hình OSI có chức mà phải thi hành gói liệu để truyền từ nguồn tới đích mạng Sau chi tiết chức tầng: Tầng vật lý (Physical layer): Tầng vật lý giải vấn đề ghép nối khí, điện giao thức để khởi tạo, trì kết thúc liên kết vật lý thiết bị Page | Điều khiển lưu lượng giao thức TCP truyền thông Tầng liên quan đến việc truyền dòng bit máy kênh truyền thông vật lý, không xét đến ý nghĩa cấu trúc dòng bit Tầng liên kết liệu (Data Link layer): Nhiệm vụ tầng cung cấp đường truyền tin cậy liệu qua kết nối vật lý Để làm điều này, lớp liên kết liệu liên quan với địa vật lý, tô-pô mạng, truy cập mạng, khai báo lỗi, đảm bảo việc biến đổi tin dạng bits nhận từ lớp (lớp vật lý) sang khung số liệu, điều khiển lưu lượng Ví dụ giao thức lớp hai bao gồm: Ethernet, Token Ring, ISDN, PPP Frame Relay Tầng mạng (Network layer): Đảm bảo việc chuyển xác số liệu thiết bị cuối mạng, đảm bảo việc tìm đường tối ưu cho gói liệu giao thức chọn đường, điều khiển lưu lượng số liệu mạng để tránh xảy tắc nghẽn cách chọn chiến lược tìm đường khác Hơn nữa, tầng mạng liên quan đến địa lơ-gíc Ví dụ giao thức tầng là: IP, IPX, Appletalk Tầng giao vận (Transport layer) :Thực vận chuyển phân đoạn liệu lớp Transport từ hệ thống máy gửi đến hệ thống máy nhận tập hợp lại thành luồng liệu hệ thống máy người nhận Đường biên giới lớp Transport lớp phiên coi đường biên giới giao thức ứng dụng giao thức vận chuyển lưu lượng liệu Ngược lại tầng: ứng dụng, trình bày, phiên liên quan với ứng dụng, bốn tầng thấp liên quan với việc vận chuyển liệu Tầng Transport cố gắng cung cấp dịch vụ truyền liệu tin cậy hai máy người gửi người nhận qua mạng Ví dụ giao thức tầng như: TCP, UDP SPX Tầng phiên (Session layer): Đảm bảo việc liên kết hai thực thể có nhu cầu trao đổi số liệu, ví dụ người dùng máy tính xa, gọi phiên làm việc Nó quản lý việc trao đổi số liệu, thiết lập giao diện người dùng máy, xác định thông số điều khiển trao đổi số liệu, v.v Tầng trình bày liệu (Presentation layer) Đảm bảo việc thích ứng cấu trúc liệu khác người dùng với cấu trúc liệu thống sử dụng mạng Nó có chứa thư viện yêu cầu người dùng, thư viện tiện ích, v.v Page | 10 Điều khiển lưu lượng giao thức TCP lặp nhận, người gửi truyền lại gói giảm bớt cửa sổ tắc nghẽn xuống nửa Thay Slow Start, thực người gửi Tahoe TCP, người gửi Reno TCP sử dụng biên nhận lặp đến thêm vào để điểm cho gói tin tiếp sau Sau sơ đồ hoạt động Reno TCP: Hình 22 Hoạt động Reno TCP Trong hoạt động Reno TCP, cửa sổ sử dụng người gửi trở thành min(awin,cwnd+ndup), awin cửa sổ thông báo người nhận, cwnd cửa sổ tắc nghẽn người gửi,và ndup trì số lượng biên nhận lặp đạt tới tcprexmtthresh, sau theo dõi số lượng biên nhận lặp Do đó, giai đoạn fast recovery người gửi tăng thêm cửa sổ số lượng biên nhận lặp mà vừa nhận, phụ thuộc vào theo dõi biên nhận lặp vài gói tin bị khỏi mạng đón phía người nhận.sau đưa vào thuật tốn fast recovery gửi lại gói đơn lẻ, người gửi chờ nửa cửa sổ biên nhận lặp nhận, gửi gói tin cho biên nhận lặp thêm vào mà nhận Cho đến Page | 56 Điều khiển lưu lượng giao thức TCP nhận biên nhận ACK cho gói tin (được gọi biên nhận phục hồi, “recovery ACK”), người gửi thoát khỏi fast recovery cách đặt ndup tới Hình 23 Reno TCP với gói tin bị loại bỏ Với Reno TCP, thuật tốn fast recovery đưa đến thực thi tối ưu khuôn cảnh Cửa sổ tắc nghẽn người gửi bị giảm xuống nửa, biên nhận lặp đến sử dụng để điểm cho gói tin ra, tránh Slow Start Các hoạt động Reno giống với Tahoe biên nhận thứ tư cho gói tin 13 nhận người gửi Các biên nhận tương ứng với gói từ 15 đến 28 bao gồm 14 biên nhận lặp cho gói tin 13 Biên nhận lặp thứ ba gây việc truyền lại gói tin 14, làm cho người gửi phải dùng đến fast recovery, giảm cửa sổ tắc nghẽn xuống, ngưỡng Slow Start đặt tới bẩy Trong giai đoạn fast recovery, việc nhận biên nhận lặp thứ tư đưa cửa sổ sử dụng đến 11, biên nhận lặp thứ 14 cửa sổ sử dụng đạt đến 21 Cửa sổ tăng thêm từ sáu biên nhận lặp vừa cho phép ngưòi gửi gửi gói tin từ 29 đến 34 Cho đến biên nhận cho gói 28, người gửi khỏi fast recovery tiếp tục thực congestion avoidance với cửa sổ tắc nghẽn bảy Page | 57 Điều khiển lưu lượng giao thức TCP Quá trình hoạt động thể hình 24 Hình 24 Hoạt động chi tiết Reno TCP với gói tin bị loại bỏ New-Reno New-Reno có sửa đổi nhỏ thuật toán frcv để cải thiện hiệu trường hợp cửa sổ có gói số liệu bị loại Sự thay đổi liên quan đến hành vi bên gửi tình thực frcv, nhận biên nhận phần (partial ACK), biên nhận mới, nhận sau thực phát lại nhanh, biên nhận có số thứ tự nhỏ số thứ tự byte cuối truyền thực phát lại nhanh Mỗi biên nhận phần biên nhận cho số khơng phải tất gói số liệu vào mạng từ bắt đầu giai đoạn frcv, việc có nhiều gói số liệu bị cửa sổ phát Trong Reno TCP, biên nhận phần không làm cho TCP khỏi giai đoạn frcv, ngược lại, việc nhận biên nhận phần coi tín hiệu báo gói số liệu sau (có thứ tự tiếp theo) gói số liệu biên nhận bị cần truyền lại Như vậy, cửa sổ có nhiều gói số liệu bị mất, new-Reno phát lại khơng bị hết Mỗi gói số liệu bị phát lại khoảng thời gian tất gói số liệu bị cửa sổ phát lại hết New-Reno trạng thái frcv gói số liệu gửi từ bắt đầu thực frcv nhận hết Page | 58 Điều khiển lưu lượng giao thức TCP Hình 25 Hoạt động New Reno TCP, trường hợp có ba gói số liệu bị loại bỏ Trường hợp cửa sổ có gói số liệu bị loại, hoạt động new-Reno Reno giống Hình 25 minh hoạ hoạt động new-Reno trường hợp có ba gói số liệu bị loại SACK TCP Trong SACK TCP (Selective ACKnowledgement TCP) segment có chứa trường tuỳ chọn SACK, trường gồm số khối SACK, khối chứa thông tin khối liệu nhận, không thứ tự, bên nhận chứa đệm Khối SACK thứ chứa thơng tin gói số liệu nhận nhất, khối SACK thứ hai chứa thông tin Việc bổ sung tuỳ chọn SACK vào giao thức TCP không làm thay đổi chế điều khiển tắc nghẽn bên nó, SACK TCP bảo tồn đặc tính Tahoe Reno TCP mạnh trường hợp có gói số liệu đến khơng thứ tự, sử dụng chế phát lại bị hết giải pháp cuối Hình 26 minh hoạ hoạt động SACK TCP trường hợp có ba gói số liệu bị loại Page | 59 Điều khiển lưu lượng giao thức TCP Hình 26 Hoạt động SACK TCP, trường hợp có ba gói số liệu bị SACK TCP giống Reno TCP chỗ: SACK TCP vào giai đoạn frcv bên gửi nhận số biên nhận lặp tcprexmtthresh; bên gửi phát lại gói số liệu giảm cwnd xuống nửa SACK TCP khác Reno TCP chỗ: thực frcv, SACK TCP trì biến gọi pipe Biến biểu diễn ước lượng số gói số liệu gửi vào mạng chưa có biên nhận Bên gửi gửi liệu phát lại ước lượng nói nhỏ cửa sổ tắc nghẽn cwnd Biến pipe tăng thêm bên gửi phát gói số liệu phát lại gói số liệu cũ, giảm bên gửi nhận gói số liệu biên nhận lặp, trường tuỳ chọn SACK cho biết bên nhận nhận liệu Trong trường hợp cửa sổ có khơng q gói số liệu bị loại, hoạt động SACK TCP giống Reno new-Reno TCP SACK TCP khác Reno TCP cách nhiều gói số liệu cửa sổ bị loại Nhận xét biện pháp thực thi TCP: Hiệu suất Tahoe TCP không bị giảm mạnh tỉ lệ gói tin hỏng tăng Reno TCP có hiệu suất cao hẳn Tahoe TCP cửa sổ có gói số liệu bị loại Số gói số liệu bị loại cửa sổ tăng hiệu Page | 60 Điều khiển lưu lượng giao thức TCP suất Reno TCP tồi Ngay trường hợp cửa sổ có hai gói số liệu bị loại, hiệu suất Reno TCP thấp hiệu suất Tahoe TCP nhiều New-Reno SACK TCP có hiệu suất cao Tahoe Reno số gói số liệu bị loại cửa sổ lớn Khi số gói số liệu cửa sổ bị loại tăng lên hai, SACK TCP có hiệu suất cao new-Reno TCP Đó new-Reno phát lại nhiều gói số liệu bị loại khoảng thời gian khứ hồi, gây trễ lớn việc phát lại gói số liệu bị loại cửa sổ 2.4.2.2 Sơ qua cải tiến giao thức TCP cho mạng không dây Indirect TCP (I-TCP) TCP gián tiếp (Indirect TCP): theo chế này, kết nối TCP từ người gửi kết thúc đầu vào đường truyền hay gây lỗi, nơi đặt agent TCP, agent biên nhận gói số liệu mà nhận chịu trách nhiệm gửi đến đích Trên đường truyền khơng dây, nơi có tỉ suất lỗi bit cao thất thường, kết nối TCP tinh chỉnh cho phù hợp với đặc điểm đường truyền thiết lập Ngoài kết nối TCP, đây, sử dụng giao thức giao vận khác Nhược điểm I-TCP làm ngữ nghĩa đầu cuối- đầu cuối giao thức TCP, nút trung gian (trong có agent TCP) gửi biên nhận thay cho người nhận, biên nhận đến người gửi trước gói số liệu thực đến người nhận Ngoài ra, I-TCP gây khó khăn cho trạm sở, chúng phải chuyển cho lượng lớn thông tin trạng thái xảy việc chuyển gọi Snoop TCP Cơ chế thực agent TCP thứ hai tôn trọng ngữ nghĩa “end-to-end” Agent nằm hai mạng không chia đơi kết nối TCP, giữ gói số liệu khơng tự sinh biên nhận Các biên nhận lặp mà bên nhận gửi lại agent chuyển tiếp tới cho bên gửi, biên nhận lặp bị chặn lại, tránh cho bên gửi chuyển sang pha phát lại nhanh Khi nhận biên nhận lặp thứ ba, agent đợi khoảng thời gian hết cục bộ, gói số liệu Page | 61 Điều khiển lưu lượng giao thức TCP tương ứng agent phát lại Thời gian hết cục phải xác định phù hợp với đường truyền khơng dây có chặng, đương nhiên nhỏ thời gian hết mà bên người gửi (nguồn) sử dụng Về thực chất, giải pháp SnoopTCP giống giải pháp phát lại tầng liên kết liệu, vậy, chúng có tên gọi “phát lại tầng liên kết có nhận biết TCP” (TCP aware link layer retransmission) Cả hai giải pháp đòi hỏi khơng có gói số liệu tắc nghẽn đường truyền snoop agent đích, nghĩa từ trạm sở đến người nhận có chặng Ngồi ra, giải pháp có nhược điểm tương tự giải pháp phát lại tầng liên kết liệu, cản trở chế kiểu đầu cuốiđầu cuối, thời gian đường truyền xấu kéo dài Như vậy, với biện pháp cải tiến ta thấy sử dụng mạng hiệu suất cao hẳn Page | 62 Điều khiển lưu lượng giao thức TCP CHƯƠNG 3: KHẢO SÁT ĐÁNH GIÁ HIỆU SUẤT CỦA TCP BẰNG BỘ MÔ PHỎNG MẠNG NS2 3.1 Giới thiệu mô mạng NS2 (Network Simulator Version 2) Việc nghiên cứu mạng thực trở nên trực quan, đáng tin cậy, dễ dàng đưa đến kết xác sử dụng hệ thống phần mềm mơ mạng thích hợp, NS (Network Simulator) phần mềm Các hoạt động mạng thực mô để xem xét đặc tính, tính chất hoạt động mạng, từ đánh giá hay đề cải tiến, tinh chỉnh giao thức để nâng cao hiệu suất truyền thông mạng NS2 (Network Simulator Version 2) hệ thống phần mềm mơ máy tính xây dựng phát triển dự án VINT phòng thí nghiệm quốc gia Lawrence Berkeyley Laborary Mỹ NS hệ mơ có cấu trúc hướng đối tượng xây dựng hai ngơn ngữ C++ Otcl, xây dựng theo cách để mở rộng dễ dàng người dùng Với NS, người dùng mơ mạng LAN, WAN, … theo kiểu truyền thống có dây, khơng dây, hỗn hợp có dây không dây, mạng thông tin vệ tinh,… NS mơ thực thi giao thức mạng TCP, UDP, thực phương thức khai thác truyền thông FTP, TELNET, WEB, CBR VBR, kỹ thuật quản lý hàng đợi định tuyến Drop Tail, Red, CBQ, thuật toán định tuyến Dijkstra,… Cùng với NS, NAM (Network Animator) Xgraph hai công cụ phần mềm kèm dùng để xem xét, nghiên cứu, trực quan hoá kết thu từ ns dạng đồ hoạ Chúng thể trình kết thu giao diện hình đồ hoạ, tiện cho người dùng xem xét hoạt động mạng phát số sai sót việc viết kịch mơ Hình vẽ 27 cho thấy thể hình NAM Ngồi cơng cụ kèm NS NAM XGRAPH nêu trên, em sử dụng chương trình cơng cụ để phân tích kết mơ trace file, có Page | 63 Điều khiển lưu lượng giao thức TCP tên trace graph, tác giả Jaroslaw malek, thuộc trường Đại học Tổng hợp kỹ thuật Wroclaw, Ba Lan, đóng góp cho cộng đồng sử dụng NS Phiên 2.02 chạy mơi trường Linux, Unix Windows Màn hình hiển thị kết phân tích đồ thị trace graph trình bày hình 31 Hình 27 Hình thể NAM (Network Animator) Có thể hình dung cách đơn giản hoạt động ns qua hình vẽ 28 sau đây: Hình 28 Hoạt động NS góc nhìn người sử dụng Như vậy, để thực chương trình mơ mạng, cơng việc lập trình, người dùng cần viết kịch (script) cho chương trình mơ Page | 64 Điều khiển lưu lượng giao thức TCP phỏng, script ngôn ngữ otcl, NS xử lý, thông qua việc liên kết tới thư viện mình, NS đưa kết mơ phỏng, thông qua NAM hay công cụ xử lý khác, người dùng đánh giá tham số mạng mơ NS cung cấp kết mơ dạng file văn cách xác, đầy đủ tuỳ biến mềm dẻo Các file kết quả: Khi thực việc mô phỏng, NS sinh trace file ghi lại toàn trình xảy kiện thời gian mô gọi trace file (các file dấu vết), có phần tên mở rộng tr Ngồi NS tạo loại trace file nữa, có tên mở rộng NAM, dùng làm input cho chương trình hiển thị trực quan NAM Sau cấu trúc trace file: Hình 29 Cấu trúc trace file Theo hình thấy, cấu trúc trace file gồm dòng, dòng ghi thông tin kiện mạng bao gồm 12 trường, trường có ý nghĩa sau: Event: có bốn giá trị diễn tả là: r (receive), + (enqueue), - (dequeue), d (drop), chúng tương ứng với việc nhận packet nút mạng có định danh ghi trường to_node, đưa packet vào hàng đợi, đưa packet khỏi hàng đợi, loại bỏ packet khỏi hàng đợi Time: thời gian xảy kiện mơ phỏng, tính theo đơn vị giây Page | 65 Điều khiển lưu lượng giao thức TCP From node: xác định nút gửi gói tin Pkt type: kiểu packet Pkt size: kích thước packet tính theo byte Flags: thiết lập giá trị cờ Fid: flow id, định danh dòng (hay kết nối) Src addr: địa nút nguồn Dst addr: địa nút đích Seq num: định danh packet Như vậy, trace file chứa đầy đủ thông tin kiện diễn trình hoạt động mạng, trace file cần thiết cho việc nghiên cứu mạng mơ 3.2 Thí nghiệm mơ kết đạt 3.2.1 Thí nghiệm mơ Chúng ta thấy rõ chi tiết mạng mơ qua hình vẽ 30 sau: Hình 30 Chi tiết topo mạng mô Page | 66 Điều khiển lưu lượng giao thức TCP Mạng bao gồm node (n0, n1, n2, n3) Duplex link (liên kết truyền nhận liệu hai chiều diễn đồng thời) node n0 n2, n1 n2 có bandwidth (băng thơng) = Mbps, delay (thời gian trì hỗn) = 10 ms Duplex link n2 n3 có bandwidth = 1.7 Mbps delay = 20 ms Các node dùng hàng đợi DropTail, max size (kích thuớc lớn nhất) = 10 Agent “tcp” gắn với n0 agent “sink” gắn với n3 Agent “tcp” tạo packet với max size = KByte Agent tcp “sink” tạo gửi packet dạng ACK cho sender (sender agent gửi packet đi) giải phóng packet nhận Agent “udp” gắn với n1 kết nối với agent “null” gắn với n3 Agent “null” giải phóng packet nhận Bộ khởi tạo lưu lượng “ftp” “cbr” tương ứng gắn vào agent “tcp” “udp” “cbr” cấu hình để tạo packet KByte tốc độ Mbps “cbr” thiết lập cho start bắt đầu thời điểm 0.1 giây kết thúc thời điểm 4.5 giây, “ftp” bắt đầu lúc 1.0 giây kết thúc lúc 4.0 giây Mô giao thức TCP mơ hình TCP/IP Hình 31 Mơ giao thức TCP Mô giao thức UDP mô hình TCP/IP Hình 32 Mơ giao thức UDP Page | 67 Điều khiển lưu lượng giao thức TCP 3.2.2 Nhận xét kết luận Nhận xét: Về thông lượng kết nối TCP thứ nhất, nốt s1 nốt s3: Thông lượng cực đại 185 packets/s, đạt khoảng thời gian từ 2,15s đến 3,15s, lúc kết nối tcp thứ hai nốt s2 nốt s4 chưa gửi gói tin lên đường truyền Với kích thước packet 1040 byte, em đổi đơn vị Mbps được: 185 packets/s * 1040 bytes/packet * bits/byte /220 = 1,47 Bbps So với đường truyền r1 r2 có băng thông 1,54Mbps, thông lượng cực đại bằng: 95,3% Khi kết nối thứ vào hoạt động (thời điểm 3,1s), thông lượng kết nối bắt tiến tới giá trị dừng (ổn định) sau khoảng 2s (thời điểm 5s) Từ thời điểm đường biểu diễn thông lượng kết nối dao động quanh giá trị trung bình, khoảng 92 packets/s Nếu tính Mbps tương tự cách tính trên, nhận giá trị 50,1Mbps Nếu đem chia cho 1,54Mbps 47,4% Về thông lượng kết nối tcp thứ hai, nốt s2 nốt s4: Đường cong thông lượng tăng dần lên thời điểm 3,1s thời điểm 5,2s đạt giá trị khoảng 92 packets/s, giá trị trung bình kết nối, tính từ thời điểm kết thức mơ (10s) Kết luận: TCP có khả tự thích ứng với đường truyền sử dụng hữu hiệu đường truyền Khi đường truyền rỗi (chỉ có kết nối tcp hoạt động), kết nối tcp nhanh chóng sử dụng gần tồn băng thơng đường truyền Trong thí dụ em, kết nối tcp thứ cần khoảng 2,1s đạt tới thông lượng 95,3% khả vận chuyển đường truyền Page | 68 Điều khiển lưu lượng giao thức TCP TCP có khả chia sẻ cơng đường truyền với kết nối tcp khác Khi có nhiều kết nối chia sẻ đường truyền chung, kết nối sử dụng phần băng thông, chia sẻ tương đối công Trong thí dụ mơ em, kết nối thiết lập qua đường truyền có tham số giống hệt nhau, chia sẻ 50/50, nghĩa kết nối sử dụng 50% khả vận chuyển đường truyền Tuy nhiên kết nối có tham số “bandwidth x delay” khác nhau, tỉ lệ chia sẻ khác [8] Page | 69 Điều khiển lưu lượng giao thức TCP KẾT LUẬN Các kết đạt Qua việc nghiên cứu khoá luận tốt nghiệp này, thu kết sau: Thấy phát triển ngày lớn mạnh mạng Internet vấn đề nảy sinh mạng Thấy tượng tắc nghẽn chế để điều khiển lưu lượng điều khiển tắc nghẽn Tìm hiểu giao thức TCP cách điều khiển lưu lượng + điều khiển tắc nghẽn giao thức Biết cải tiến TCP: Tahoe, Reno, New-Reno, SACK v.v cho mạng truyền thơng có dây khơng dây như: Indirect TCP, snoop TCP thuật toán áp dụng điều khiển lưu lượng điều khiển tắc nghẽn cải tiến Tìm hiểu mô mạng :NS2(Network version 2) Thực mô thấy được: Sử dụng giao thức TCP hiệu suất sử dụng đường truyền gần tối đa Việc đảm bảo tính cơng chia sẻ: Các kết nối TCP có tích bandwidth*delay nhau, chia sẻ dải thông ngược lại chia sẻ không công Page | 70 ... đề điều khiển lưu lượng điều khiển tắc nghẽn trình bày chung, với tên gọi điều khiển lưu lượng Các tầng thực điều khiển lưu lượng: Có thể thực điều khiển lưu lượng vài tầng mạng, thí dụ: Điều. .. (peer-to-peer), máy tính hệ thống có khả “nói chuyện” với máy tính thành viên khác Bất kỳ mạng máy tính dựa sở thiết kế Arpanet mô tả tập hợp trung tâm điện tốn tự quản, mang tính địa phương tự điều hành,... hướng làm giảm dung lượng vận tải mạng 1.3.4 Các chế điều khiển lưu lượng điều khiển tắc nghẽn 1.3.4.1 Điều khiển lưu lượng (flow control) Có thể thực điều khiển lưu lượng phương pháp sau: