Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
394,28 KB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KHOA ĐIỆN TỬ VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN CƠ SỞ MẠNG THƠNG TIN Đề tài : Kiểm tra thuật tốn điều khiển luồng sử dụng TCP Giáo viên hướng dẫn : Sinh viên thực Trương Thu Hương : Đỗ Anh Việt 20083126 Vũ Thanh Hà 20080836 Lợi Quang Hảo 20080893 Chhoeung Yean 20083634 Lương Thế Diện 20080442 Phạm Văn Phong 20081973 Hà Nội- 11/2011 MỤC LỤC MỞ ĐẦU Mạng Internet mạng máy tính rộng lớn sử dụng nhiều công nghệ mạng khác cho phép chia sẻ tài nguyên mạng cách phân tán Chính khả ngun nhân đem lại thành cơng to lớn công nghệ 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 I Yêu cầu : Kiểm tra thuật toán điều khiển luồng sử dụng TCP TCP (Transmission Control Protocol) giao thức cho phép truyền liệu cách tin cậy máy tính TCP dựa vào phương pháp điều khiển luồng theo cửa sổ trượt Mặt khác, UDP giao thức không đưa chế truyền tin cách tin cậy, nhiên UDP lại có đặc điểm đơn giản, trễ truyền liệu nhỏ, hiệu suất truyền lớn nên thích hợp cho ứng dụng thời gian thực Một câu hỏi đặt truyền TCP UDP mạng Internet giao thức chia sẻ băng thông nào, hoạt động chúng trường hợp mạng xảy tắc nghẽn Bài tập cho phép sinh viên khảo sát trả lời câu hỏi thông qua bước sau: Tạo mạng cần mô sử dụng NS-2 giống hình vẽ Tạo kết nối TCP UDP sử dụng nguồn/đích TCP nguồn/đích UDP Nguồn TCP sử dụng TCP Reno (TCP Reno phiên TCP hỗ trợ NS-2) Thiết lập cửa sổ chống tắc nghẽn tối đa (maximal congestion window size) luồng TCP 32 gói Kích thước gói UDP TCP 512 bytes Chạy mô 300s Các nguồn UDP TCP phát gói liên tục Luồng UDP có tốc độ phát 512kbit/s (sử dụng nguồn CBR) 7.1 Chạy mô đo băng thơng trung bình luồng TCP (băng thơng trung bình tính bằng: Số byte truyền luồng TCP/thời gian mơ phỏng) 7.2 Lặp lại thí nghiệm 7.1 trường hợp tốc độ phát luồn UDP Mbit/s, Mbit/s, Mbit/s 4Mbit/s 7.3 Vẽ đồ thị thể băng thông TCP so sánh với băng thông UDP 7.4 Trong trường hợp tốc độ luồng UDP 500kbit/s 4Mbit/s, vẽ kích thước cửa sổ trượt “congestion window” TCP (trục tung: kích thước cửa sổ, trục hồnh: thời gian) 7.5 Có kết luận kích thước Congestion Window băng thông luồng II Phân chia công việc STT Họ Tên Công việc Đỗ Anh Việt (Trưởng nhóm) Tìm hiểu sổ chống tắc nghẽn Vũ Thanh Hà Tìm hiểu chia sẻ băng thông TCP&UDP Lợi Quang Hảo Code Chhoeung Yean Tìm hiểu UDP TCP Lương Thế Diện Phạm Văn Phong Tìm hiểu NS2 & Ubutun NỘI DUNG A Cơ sở lý thuyết I Giới thiệu giao thức TCP/IP Trước vào hai giao thức TCP UDP, ta tìm hiểu giao thức TCP/IP - Để máy tính liên lạc với qua mạng, chúng phải chung sử dụng ngôn ngữ hay gọi môt giao thức (Protocol) Giao thức hệ luật chuẩn cho phép máy tính liên lạc với - TCP/IP viết tắt Transmission Control Protocol (Giao thức điều khiển truyền thông)/Internet Protocol (Giao thức Internet) - TCP/IP không gồm giao thức mà thực tế tập hợp nhiều giao thức gọi giao thức (Suite of Protocol) - Để máy tính trao đổi liệu với nhau, TCP/IP sử dụng mơ hình truyền thơng tầng ( nằm mơ hình lớp OSI): Tầng ứng dụng (Application Layer) Tầng giao vận (Transport Layer) Tầng liên mạng (Internet Layer) Tầng giao diện mạng (Network Interface Layer) Mỗi giao thức họ TCP/IP thuộc tầng II Transmission Control Protocol (TCP) TCP giao thức cho phép truyền liệu cách tin cậy máy tính dựa phương pháp điều khiển luồng theo cửa sổ trượt Phía phát phép phát liên tục nhiều gói Số gói cực đại phép phát khia chưa nhận ACK từ bên thu W- kích thước cửa sổ Mơ tả TCP 1.1 Mục đích TCP điều khiển luồng theo chế sổ - Điều chỉnh tốc độ truyền gói liệu cho phù hơp với băng thơng khả dụng - Tránh tượng nghẽn mạng - Tạo kết nối tin cậy cách truyền lại gói tin bị thất lạc Để điều khiển tốc độ truyền, số lượng gói tin chưa nhận (những gói tin mà nguồn chưa nhận thông tin phản hồi từ đích nhận được) bị giới hạn tham số gọi cửa sổ tắc nghẽn Điều có nghĩa nơi truyền gói tin buộc phải chờ ngừng truyền gói tin mà truyền trước để đích nhận liệu sử dụng tin xác nhận Để gói tin xác nhận có khả truyền lại bị thất lạc, gói tin truyền phải có số thứ tự 1.2 Các tin xác nhận - Mục tiêu tin xác nhận: Điều chỉnh tốc độ truyền TCP, đảm bảo gói tin truyền mà gói tin khác truyền khỏi mạng Tạo đường kết nối đáng tin cậy cách truyền tới nút nguồn thông tin yêu cầu để truyền lại gói tin khơng đến đích Làm mà đích đến gói tin biết gói tin có bị thât lạc? Làm mà ta biết gói tin bị mất? Gói ACK (Acknowlegde) chứa thơng tin gì? - Gói ACK cho nguồn gửi tin biết số thứ tự gói tin mà đích chờ Ví dụ : Giả sử gói tin 1,2, đến đích theo thứ tự gói tin số đến, đích gửi gói tin ACK thơng báo đợi gói tin số Nếu gói tin số đến đích u cầu gói tin số Giả sử gói tin số bị thất lạc, gói tin số đến đích Tại thời điểm đó, đích gửi gói tin ACK có tên “ACK lặp” thơng báo với nguồn gửi tin chờ gói tin số Phương pháp gọi “ACK ẩn” (implicit ACK) Phương pháp hiệu gói tin ACK Hơn nữa, giả sử gói tin ACK thơng báo đích đợi gói tin số bị Khi gói tin ACK đến thơng báo đích đợi gói số 6, nguồn hiểu đích nhận gói số 5, thơng tin gửi ACK bị suy từ gói tin ACK - Gói tin TCP bị coi như: Có gói tin ACK giống thơng tin cho ngn gói tin gửi Khi gói tin truyền đi, có đồng hộ đếm thời gian Nếu gói tin ACK gói tin truyền khơng đến khoảng thời gian To, có nghĩa “quá hạn” (Timeout) gói tin coi bị Chọn To cách nguồn ước tính thời gian quay vịng RTT (round trip-time) trung bình thời gian cần thiết cho gói tin đến đích cộng với thời gian cho gói tin ACK quay trở lại thông báo cho nguồn - Để giảm số lượng gói tin ACK hệ thống, TCP thường xuyên sử dụng lựa chọn “ACK trễ” (delayed ACK) gói tin ACK truyền cho d gói tin đến đích Tuy nhiên, trễ gói tin ACK đến tận d>1 gói tin nhận dẫn đến việc đình trệ hồn tồn trường hợp kích thước cửa số nhỏ Vì vậy, gói tin (nằm d gói tin chờ đợi) đến đích sau khoảng thời gian ngắt quãng (thường 100ms) d gói tin chưa đến tin ACK tạo thành mà không cần chờ đợi thêm 1.3 Thuật toán điều khiển luồng TCP - Thuật toán điều khiển luồng TCP sử dụng chế cửa sổ thông báo nhận (ACK) đầu cuối tới đầu cuối để đảm bảo truyền tin cách tin cậy mạng Bên gửi trì cửa sổ tắc nghẽn, wnd c , số gói tin máy gửi chờ tin ACK từ bên nhận Sau nhận gói tin số liệu, bên nhận chuẩn bị tin ACK để thông báo cho bên gửi tin nhận Bên nhận thông báo cho bên gửi cửa sổ nhận, wnd r , kích thước đệm dành cho kết nối Bên gửi không nhiều } , min{ wnd wnd r c gói tin chờ nhận tin ACK Cửa sổ nhận cho phép bên nhận điều khiển luồng bên nhận xử lý kịp thông tin với tốc độ thời, cửa sổ nhận làm nhỏ đi, bên gửi giảm tốc độ gửi Cửa sổ tắc nghẽn có nhiệm vụ điều khiển luồng điều kiện tắc nghẽn Việc gói tin phát thơng qua timeout gói tin chưa thơng báo nhận nhận nhiều tin ACK giống nhau, nhận tin SAC từ bên nhận Với giao thức TCP, việc gói tin đồng nghĩa với tắc nghẽn mạng gói tin giả thiết tràn đệm lưu lượng vượt dung lượng tuyến kết nối đầu cuối tới đầu cuối Bên gửi cập nhật kích thước cửa sổ tắc nghẽn nhận tin ACK cho gói tin gửi phát tắc nghẽn Sau RTT khơng có tắc nghẽn, cho tin ACK nhận được, cửa sổ tắc nghẽn cập nhật theo công thức: (1) phát tắc nghẽn RTT: (2) Quy trình tăng giảm kích thước cho phép TCP tận dụng băng thông tuyến kết nối đầu cuối tới đầu cuối Kích thước cửa sổ thay đổi tùy theo trạng thái mạng Khi cửa sổ nhỏ, kích thước tăng nhanh chóng, đạt đến giá trị định kích thước có tăng chậm Khi tượng tăng nghẽn mạng pháp hiện, kích thước cửa sổ giảm mạnh Cơ chế động cho phép giải quyến tắc nghẽn nhanh chóng sử dụng hiệu băng thông mạng - Wth : ngưỡng bắt đầu chậm Cửa sổ bắt đầu giá trị gói tin đơn lẻ truyền Khi gói tin ACK gói tin quay trở lại, ta truyền gói tin Đối với gói tin ACK gói tin này, cửa sổ tăng thêm giá trị, mục đích gói tin ACK gói tin quay trở lại, ta truyền gói tin hay cửa sổ tăng theo số mũ Giai đoạn gọi “bắt đầu chậm” thay cửa sổ to dẫn lên nhanh chóng, lớn lên từ từ ta bắt đầu đến với giá trị W = Wth - Nếu W = Wth , ta chuyển qua giai đoạn “tránh tắc nghẽn” Khi đó, gói tin ACK quay lại làm cửa sổ W tăng lên [1/W] Sau truyền W gói tin, W tăng lên Nếu ta truyền W gói tin cần t thời gian truyền W+1 cần t+RTT W+2 cần t+2RTT, vv Ta thấy độ lớn cửa sổ thay đổi tuyến tính 1.4 Mất gói tin - Khơng W động mà Wth Nó cố định TCP gói giá trị W giảm nửa - Có số phương pháp cải thiện TCP sau: Phương pháp Tahoe: Bất kể pháp gói tin bị cửa sổ giảm giá trị xuống đơn vị giai đoạn slow start bắt đầu Điều làm giảm kích cỡ cửa sổ nhanh chóng với tốc độ truyền tin Phương pháp New-Reno: Cửa sổ giảm xuống phát gói tin bị thời gian hạn Khi gói tin bị phát thơng qua gói tin ACK bị lặp, cửa sổ giám sát tắc nghẽn giảm xuống ½ Giai đoạn slow start khơng khởi tạo ta vẫ trạng thái “tránh tắc nghẽn” Hoạt động TCP TCP đòi hỏi thiết lập kết nối trướckhi 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ể TCP có ba pha: Thiết lập kết nối Truyền liệu Kết thúc kết nối Sơ đồ trạng thái TCP III User Datagram Protocol (UDP) Dùng UDP, chương trình mạng máy tính gửi liệu ngắn gọi datagram tới máy tính khác UDP khơng cung cấp tin cậy thứ tự truyền nhận, gói liệu đến khơng thứ tự mà không thông báo Tuy nhiên, UDP nhanh hiệu mục tiêu kích thước nhỏ yêu cầu khắt khe thời gian , hữu dụng việc trả lời truy vấn với số lượng lớn người yêu cầu Khái niệm - Packet: Trong truyền số liệu, packet dãy số nhị phân, biểu diễn liệu tín hiệu điều khiển, gói tin truyền chuyển tới host Trong gói tín, thơng tin xếp theo khn dạng cụ thể - Datagram: Một datagram gói tin độc lập, tự chứa, mang đầy đủ liệu định tuyến từ nguồn tới đích mà khơng cần thơng tin thêm - MTU (Maximum Transmission Unit) đặc trưng tầng liên kết, mô tả số byte liệu tối đa truyền gói tin Mặt khác, MTU gói liệu lớn mà mơi trường mạng cho trước trung Ví dụ, Etherner có MTU cố định 1500 byte Trong UDP, kích thước datagram lớn MTU, IP thực hienej phân đoạn, chia datagram thành phần nhỏ (segment) vậy, đoạn có kích thước nhỏ MTU - Port:UDP sử dụng cổng để ánh xạ liệu đến tiến trình cụ thể chạy máy tính UDP định hướng cho packet vị trí xác định cách sử dụng số hiệu cổng xác định header datagram Các cổng biểu diễn số 16 bit Các cổng xem điểm cuối liên kết logic - TTL (Time To Live): Giá trị TTL giá trị giới hạn router mà datagram qua Giá trị TTL ngăn ngừa gói tin khỏi bị kẹt vịng lặp định tuyến vô hạn TTL khởi tạo từ bên gửi giá trị giảm router quản lý datagram Khi TTL = 0, datagram bị drop (loại bỏ) - Multicasting phương pháp dựa chuẩn có tính chất mở để phân phối thơng tin giống nhiều người dùng Multicasting đặc trưng UDP cho phép ta truyền tin theo kiểu – nhiều Ví dụ: gửi thư điện tử nhiều người nhận, đài phát Internet… Hoạt động UDP Khi ứng dụng dựa giao thức UDP gửi liệu tới host khác mạng, UDP thêm vào header có độ dài byte chữa số liệu cổng nguồn đích, với tổng chiều dài liệu thơng tin checksum IP thêm vào header riêng vào đầu datagram để tạo nên datagram IP + 32 64 Bit 0-15 Source Port Length Bit 16-31 Destination Port Checksum Data - Source port: Trường xác định cổng người gửi thơng tin có ý nghĩa muốn nhận thông tin phản hồi từ người nhận Nếu khơng dùng đến đặt - Destination port: Trường xác định cổng nhận thông tin trường cần thiết - Length: Trường có độ dài 16 bit xác định chiều dài toàn datagram : phần header liệu: Chiều dài tối thiểu byte gói tin khơng có liệu có header - Checksum có 16 bit dùng cho việc kiểm tra lôi phần header liệu IV So sánh TCP UDP - Giống Đều giao thức giao thức TCP/IP Đều có chức kết nối máy tính lại với gửi liệu cho - Khác nhau: Các header TCP UDP khác kích thước (20 byte) TCP hỗ trợ nhiều chức hữu ích (như khả phục hồi lỗi) UDP dùng byte TCP Dùng cho mạng WAN Cần thiết lập kêt nối Sử dụng chế điều khiển luồng chống tắc nghẽn Khơng cho phép gói tin Đảm bảo việc truyền data Tốc độ thấp UDP B UDP Dùng cho mạng LAN Không cần thiết lập kết nối Khơng có chế điều khiển luồng chống tắc nghẽn Cho phép gói tin Khơng đảm bảo việc truyền data Tốc độ truyền cao Quá trình thực Code # Khoi tao set ns [new Simulator] # Dinh nghia mau cho cac luong du lieu $ns color Red $ns color Blue # Tao file chua thong tin bang thong set thru(1) [open thru1.tr w] set thru(2) [open thru2.tr w] # Tao filetrace luu tat ca thong tin ve mang set filetrace [open out.tr w] $ns trace-all $filetrace # Tao NAM trace file set namfile [open out.nam w] $ns namtrace-all $namfile # Tao cwnd chua thong tin ve cua so truot set cwnd [open cwnd.tr w] # Thu tuc finish proc finish {} { global ns thru filetrace namfile cwnd $ns flush-trace close $thru(1) close $thru(2) close $filetrace close $namfile close $cwnd # Thuc hien NAM file tren trace file exec nam out.nam & exec xgraph cwnd.tr -t "Cua so tac R(udp)= Mb" & exec xgraph thru1.tr thru2.tr -t "Bang thong R(udp) = Mb" -geometry 800x400 & exit } # Thoi gian mo phong set val(stop) 10 # So luong nut set val(nn) # Tao nut for {set i 0} {$i