Tiểu luận môn lập trình mạng nâng cao nghiên cứu thật kỹ quá trình định tuyến trong mạng TCP IP và chọn 1 trong 2 phương pháp tỉnh và động

30 15 0
Tiểu luận môn lập trình mạng nâng cao nghiên cứu thật kỹ quá trình định tuyến trong mạng TCP IP và chọn 1 trong 2 phương pháp tỉnh và động

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

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

Thông tin tài liệu

Tiểu luận mơn học Lập trình mạng nâng cao BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG -o0o BÁO CÁO TIỂU LUẬN MÔN HỌC LẬP TRÌNH MẠNG NÂNG CAO Nghiên cứu thật kỹ q trình định tuyến mạng TCP/IP chọn phương pháp: tỉnh động Giáo viên hướng dẫn: Học viên : Học viên: Bùi Tấn Ngọc PGS TS Lê Văn Sơn Bùi Tấn Ngọc Tiểu luận môn học Lập trình mạng nâng cao Lời mở đầu Trong năm gần mạng máy tính phát triển ngày mạnh mẽ tạo nên bước ngoặt quan trọng cơng nghệ thơng tin Mạng máy tính ngày có mặt nhiều hoạt động đời sống Các công nghệ, kỹ thuật phục vụ cho môi trường mạng xây dựng nhiều, tiếp tục phát triển, cải tiến Lập trình mạng nhiệm vụ để phát triển ứng dụng doanh nghiệp Một chương trình mạng viết để chương trình máy tính khác truyền tin với cách hiệu an toàn cho dù chúng cài đặt mạng LAN, WAN hay mạng toàn cầu Internet, điều thành công nhiều hệ thống Điều khiển tải mạng TCP/IP q trình định tuyến gói thơng tin toán lớn phức tạp lĩnh vực truyền thơng nói chung, phạm vi đề tài này, em xin trình bày kết nghiên cứu trình định tuyến mạng TCP/IP xây dựng chương trình Monitoring giám sát đường gói Tiểu luận gồm có chương: Chương 1: Những vấn đề mạng điều khiển tải Chương 2: Định tuyến thông tin mạng TCP/IP thuật toán phân bố tải mạng IP q trình định tuyến gói thơng tin Chương 3: Xây dựng chương trình Monitoring giám sát đường gói theo phương pháp định tuyến tĩnh Để hồn thành tiểu luận này, tơi xin chân thành cám ơn bảo tận tình PGS.TS.Lê Văn Sơn bạn học viên lớp Tuy nhiên hẳn cịn nhiều thiếu sót, kính mong góp ý thầy giáo bạn để tơi hoàn thành tốt tiểu luận Học viên: Bùi Tấn Ngọc Tiểu luận mơn học Lập trình mạng nâng cao CHƯƠNG NHỮNG VẤN ĐỀ CƠ BẢN VỀ MẠNG VÀ ĐIỀU KHIỂN TẢI Mạng máy tính Mạng máy tính tập hợp máy tính thiết bị nối với đường truyền vật lý theo kiến trúc Chúng ta phân loại mạng theo qui mơ nó: • Mạng LAN (Local Area Network)-mạng cục bộ: kết nối nút phạm vi giới hạn Phạm vi cơng ty, hay tịa nhà • Mạng WAN (Wide Area Network): nhiều mạng LAN kết nối với tạo thành mạng WAN • MAN (Metropolitan Area Network), tương tự WAN, kết nối nhiều mạng LAN Tuy nhiên, mạng MAN có phạm vi thành phố hay thị nhỏ MAN sử dụng mạng tốc độ cao để kết nối mạng LAN trường học, phủ, công ty, , cách sử dụng liên kết nhanh tới điểm cáp quang 1.1 Thiết bị giao tiếp mạng (Network Interface Thiết bị) NIC thiết bị giao tiếp sử dụng để kết nối thiết bị với mạng LAN Nó cho phép gửi nhận thông điệp từ mạng Một NIC có địa MAC mà cung cấp định danh cho thiết bị Địa MAC số 12 byte-hệ 16 gán cho thiết bị mạng Địa thay đổi trình điều khiển mạng cách linh hoạt (như trường hợp hệ thống DECnet, mạng phát triển Digital Equipment), thông thường địa MAC không thay đổi 1.2 Thiết bị định tuyến (Router) Router thiết bị trung gian mạng, kết nối nhiều mạng vật lý Một mạng có nhiều host phân chia thành phần riêng, hay cịn gọi subnet Các router khơng sử dụng LAN, chúng có vai trị quan trọng WAN Router nhận thông điệp chuyển tiếp tới đích cách sử dụng đường tốt tới đích Một Router lưu giữ bảng định tuyến liệt kê tất cách mà mạng đạt tới Thơng thường có số đường từ mạng tới mạng khác, có số tốt nhất, đường mơ tả bảng định tuyến Các router truyền tin cách sử dụng giao thức định tuyến để phát router khác mạng, hỗ trợ cho việc trao đổi thông tin mạng gắn với định tuyến Học viên: Bùi Tấn Ngọc Tiểu luận mơn học Lập trình mạng nâng cao Thơng tin mà định tuyến thu thập đường mạng gọi độ đo router, bao gồm thơng tin mát gói tin thời gian truyền tin Thơng tin sử dụng để tạo độ đo tùy thuộc vào giao thức định tuyến: • Giao thức định tuyến vectơ khoảng cách: Các giao thức RIP (Routing Information Protocol) IGRP (Interior Gateway Routing Protocol) sử dụng biến đếm để số router mà gói tin phải qua để đến đích Các giao thức thường lựa chọn đường với router, mà khơng quan tâm đến tốc độ độ tin cậy • Các giao thức định tuyến trạng thái liên kết: Việc tính tốn đường tốt giao thức định tuyến OSPF BGP quan tâm đến nhiều yếu tố tốc độ, độ tin cậy, chí chi phí đường • Các giao thức định tuyến lai: Các giao thức sử dụng kết hợp việc tính tốn trạng thái liên kết vectơ khoảng cách 1.3 Vấn đề tìm đường mạng Với cấu hình TCP/IP, gateway mặc định thiết lập Đây địa IP cổng định tuyến mà subnet kết nối tới Bộ định tuyến sử dụng host bên ngồi subnet cần liên lạc Ta thấy bảng định tuyến cục hệ điều hành Windows cách sử dụng lệnh ROUTE PRINT dòng lệnh Lệnh hiển thị gateway sử dụng cho liên kết mạng Điều khiển tải Điều khiển tải làm cho việc lưu thông mạng tốt nhất, giảm tối đa tình trạng tải dẫn đến nghẽn mạng thể hai phương diện sau đây: Học viên: Bùi Tấn Ngọc Tiểu luận mơn học Lập trình mạng nâng cao  Điều khiển tải tổng quát: Điều khiển tải tổng quát chịu trách nhiệm giữ nhịp cho hoạt động cung cấp tài nguyên  Điều khiển tải phân tán: Phân tán tải cho đối tượng có khả cung cấp người điều khiển hợp lý việc phân bố tài nguyên 2.1 Điều khiển tải tổng quát Mục tiêu phương pháp tìm cách trì tổng số yêu cầu tài nguyên lưu chuyển mạng nhỏ giá trị giới hạn (ngưỡng) N Giá trị N xác định trước vào khả tài nguyên kinh nghiệm hoạt động mạng Về mặt tổ chức, yêu cầu sử dụng tài nguyên gởi đến hệ thống qua trung gian tiến trình gọi phân phối tải 2.2 Điều khiển tải phân tán Phương pháp không yêu cầu trì giới hạn yêu cầu tài nguyên chung cho mạng mà giao cho đối tượng có khả cung cấp người điều khiển hợp lý việc phân bố tài nguyên Người ta chia thành hai loại chiến lược phân tán tải sau:  Chiến lược tĩnh: việc phân tán yêu cầu Server xác định theo kiểu cố định, nghĩa việc định tuyến để phân phối tải thực lần cho tồn cuộc, khơng có thay đổi chừng  Chiến lược thích nghi: Việc phân tán xác định chức phân tán hệ CHƯƠNG ĐỊNH TUYẾN THÔNG TIN TRONG MẠNG TCP/IP VÀ CÁC THUẬT TOÁN PHÂN BỐ TẢI CỦA MẠNG IP TRONG QUÁ TRÌNH ĐỊNH TUYẾN CÁC GĨI THƠNG TIN Học viên: Bùi Tấn Ngọc Tiểu luận mơn học Lập trình mạng nâng cao Tổng quan định tuyến Định tuyến lựa chọn đường để truyền đơn vị liệu (một gói tin chẳng hạn) từ trạm nguồn đến trạm đích cho tối ưu Do vậy, kỹ thuật định tuyến phải thực chức sau đây: - Quyết định định tuyến theo tiêu chuẩn tối ưu - Cập nhật thơng tin định tuyến, tức thơng tin dùng cho chức Có nhiều kỹ thuật định tuyến khác Sự phân biệt chúng chủ yếu vào yếu tố liên quan đến chức Các yếu tố thường là: (a) Sự phân tán chức định tuyến nút mạng (b) thích nghi với trạng thái hành mạng (c) Các tiêu chuẩn tối ưu để định tuyến Dựa yếu tố (a) ta có kỹ thuật định tuyến tập trung (Centralized Routing) phân tán (Distributed Routing) Dựa yếu tố (b) ta có kỹ thuật định tuyến tĩnh (Static hay Fixed Routing) thích nghi (Adaptatif Routing) Kỹ thuật định tuyến tập trung định tuyến phân tán Kỹ thuật định tuyến tập trung đặc trưng tồn vài trung tâm điều khiển mạng thực việc định tuyến, sau gởi bảng định tuyến (Routing Table) tới tất nút dọc theo đường chọn Trong trường hợp này, thông tin tổng thể mạng cần dùng cho việc định tuyến cất giữ trung tâm điều khiển mạng Các nút mạng không gởi thông tin trạng thái chúng tới trung tâm, gởi theo định kỳ, gởi có thay đổi Trung tâm điều khiển cập nhật bảng định tuyến dựa thông tin nhận từ trạm gởi lên Với kỹ thuật định tuyến phân tán không tồn trung tâm điều khiển mạng Quyết định định tuyến thực nút mạng Điều địi hỏi trao đổi thơng tin thường xuyên nút mạng Kỹ thuật định tuyến tĩnh định tuyến động Kỹ thuật định tuyến tĩnh (khơng thích nghi): tập trung phân tán khơng đáp ứng với thay đổi mạng Trong trường hợp này, việc định tuyến thực mà khơng có trao đổi thơng tin, không đo lường không cập nhật thông tin Tiêu chuẩn tối ưu để định tuyến thân đường chọn lần cho tồn cuộc, khơng có thay đổi chừng Học viên: Bùi Tấn Ngọc Tiểu luận mơn học Lập trình mạng nâng cao Kỹ thuật định tuyến động (thích nghi): có khả cung cấp đường khác để dự phịng cố thích nghi nhanh chóng với thay đổi mạng Mức độ thích nghi kỹ thuật định tuyến đặc trưng trao đổi thông tin định tuyến mạng Đơn giản khơng trao đổi hết Mỗi nút hoạt động cách độc lập với thông tin riêng để thích nghi với thay đổi mạng theo phương pháp Q trình định tuyến mạng TCP/IP Cơ sở hạ tầng cho trình định tuyến mạng TCP/IP bao gồm thành phần sau: - Thiết bị định tuyến (Router/Gateway): Có chức định đường gói tin mạng dựa vào thông tin bảng định tuyến lưu trữ RAM Một router phải học đường (paths) hay route từ việc cấu hình tay người quản trị hay tự động cập nhật từ router khác hệ thống dựa vào giao thức định tuyến - Bảng định tuyến (Routing Table): bảng chứa danh sách đường định tuyến Bảng định tuyến giao thức định tuyến khác nhau, bao gồm nhữnh thơng tin sau: địa đích mạng, mặt nạ mạng địa đích, địa IP router chặng kế tiếp, cổng giao tiếp vật lý phải sử dụng để đến router kế tiếp, khoảng cách đến đích - Giao thức định tuyến (Routing Protocol): ngôn ngữ để router trao đổi với router khác để chia sẻ thông tin định tuyến khả đến trạng thái mạng: RIP, IGRP, EIGRP, OSPF, IS-IS - Đường kết nối (Link Path): Các đường nối kết nút mạng với - Các thiết bị đầu cuối (host/terminal): Các thiết bị đầu cuối, nơi gửi nhận liệu Học viên: Bùi Tấn Ngọc Tiểu luận mơn học Lập trình mạng nâng cao Hub/Switch Router Link Path Host Các thành phần mạng TCP/IP Bảng định tuyến (tĩnh) lưu trữ Router A: Entry Network Address Netmask Gateway Interface 192.168.1.0 255.255.255.0 192.168.1.1 192.168.1.1 192.168.2.0 255.255.255.0 10.0.1.2 10.0.1.1 192.168.3.0 255.255.255.0 10.0.1.2 10.0.1.1 Để chọn lựa phương án triển khai giải vấn đề chuyển gói tin mạng, người ta thường quan tâm hàng đầu đến độ tin cậy, ổn định chi phí thực chúng Một số phương pháp định tuyến nghiên cứu triển khai áp dụng trình định tuyến mạng TCP/IP nay: - Phương pháp cố định/tĩnh (Fixed Routing) - Phương pháp thích nghi/động (Adaptive Routing) Phương pháp thích nghi động (Adaptive Routing) 5.1 Nguyên lý hoạt động Phương pháp thích nghi q trình mà giao thức định tuyến dựa thơng tin trạng thái thời mạng để tìm đường tốt mạng trì chúng Thơng tin trạng thái đo dự đốn tuyến đường thay đổi topo mạng lưu lượng mạng thay đổi Thông tin định tuyến cập nhật vào bảng định tuyến nút (node) mạng trực tuyến, đáp ứng tính thời gian thực nhằm tránh tắc nghẽn tối ưu hiệu mạng Học viên: Bùi Tấn Ngọc Tiểu luận mơn học Lập trình mạng nâng cao Định tuyến thích nghi động xây dựng hai yếu tố bản: Mơ hình tính tốn thơng tin trạng thái Có hai kiểu mơ hình tính tốn sử dụng định tuyến động mơ hình tập trung mơ hình phân tán Các thông tin trạng thái trao đổi cập nhật theo giao thức định tuyến (RIP, IGRP, EIGRP, OSPF, IS-IS) Kỹ thuật định tuyến thích nghi động mạng TCP/IP thực qua bước sau:  Quyết định chọn đường: Mỗi nút mạng (router) có sở liệu mơ tả tổng thể trạng thái mạng (topo, độ trễ truyền dẫn,…) Các thông tin chứa sở liệu dùng để tính tóan đường tối ưu tới nút khác (tức tính chọn đường - Routing Tree) đẩy gói tin (datagram) theo liên kết thích hợp Giải thuật chọn đường tối ưu giải thuật Bellman-Ford Dijkstra cải tiến Tiêu chuẩn chọn đường sử dụng giải thuật tính độ trễ trung bình datagram liên kết  Đo độ trễ Độ trễ liên kết đo sau: Giả sử dt độ trễ truyền gói tin hai nút hai đầu liên kết dp độ trễ truyền dẫn liên kết (là số liên kết) dq độ trễ xử lý đợi nút gởi (nút nguồn) Khi đó, độ trễ tổng cộng d tính sau: d = dt + dp + dq Độ trễ trung bình liên kết tính sau 10 giây cho tất datagram qua Nếu độ trễ tính khác với độ trễ cũ (quá ngưỡng cho trước đó) gởi đến tất nút khác nhờ đơn vị liệu điều khiển (thơng báo cập nhật) Ngồi ra, để đảm bảo độ tin cậy việc cập nhật, thông báo cập nhật gởi đi: - Sau khỏang thời gian T, thay đổi nào; - Ngay sau có thay đổi trạng thái liên kết  Cập nhật nội dung routing table Với giải thuật chọn đường mơ tả trên, nút phải biết thông tin tổng thể mạng, vấn đề truyền thông tin chọn đường (ở độ trễ) trở nên quan trọng Các thông báo cập nhật phải nhận tất sở liệu nút (gắn bó liệu) Phương pháp cập nhật nội dung routing table mạng TCP/IP sau: - Mỗi thông báo cập nhật nút chứa thông tin độ trễ tất liên kết nút Học viên: Bùi Tấn Ngọc Tiểu luận môn học Lập trình mạng nâng cao - Mỗi nút gởi thơng báo cập nhật tới tất nút láng giềng (sau khỏang thời gian T sau có thay đổi liên kết) - Một router láng giềng nhận broadcast để cập nhật, router so sánh với thông tin bảng định tuyến Nếu thơng tin có mạng mới, hay đường tới mạng mà với độ trễ tốt hơn, chúng cập nhật vào bảng định tuyến Sau router tiếp tục broadcast thơng tin bảng định tuyến cho router  Xử lý chuyển gói tin Sau router nhận packet, the router gỡ bỏ header lớp để tìm địa đích lớp Sau đọc xong địa đích lớp tìm kiếm routing table cho địa đích Giả sử đỉa đích có routing table, router xác định địa nexthop Sau packet đẩy buffer interface tương ứng, router khám phá loại encapsulation lớp sử dụng interface gói tin next-hop Packet đóng gói chuyển xuống lớp đưa xuống mơi trường truyền dẫn dạng bit, tín hiệu điện, quang…Quá trình tiếp tục packet đưa đến đích Như router phải xử lý cập nhật thông tin bảng định tuyến vừa đồng thời chuyển tiếp (repeater) thông báo cập nhật đến từ nút láng giềng Trong hình ví dụ Distance Vector Routing protocols (RIP/IGRP), chúng broadcast toàn bảng định tuyến toàn cổng cấu hình Broadcast coi multicasting Routers sử dụng giao thức khơng biết xác router bên cạnh mà giao tiếp Sơ đồ broadcast thơng tin bảng định tuyến Distance Vector Routing Tuy nhiên, có vấn đề nảy sinh xảy phân rã mạng: nút bị tách khỏi nút khác nhận thông báo cập nhật đến từ nút khác mạng Khi phân rã kết thúc, nút vừa bị tách nhận thơng báo cập nhật “quá hạn” Để cho phép nút loại bỏ thơng báo “q hạn” khơng cịn giá trị đó, người ta định nghĩa vùng “tuổi” thông báo cập nhật Khi thông báo nhận, “tuổi” giảm theo số đơn vị thời gian đo đồng hồ đặt nút Một thông báo cập nhật xem “quá hạn” vùng “tuổi” có giá trị Hai thuật toán chọn đường thường sử dụng phổ biến kỹ thuật định tuyến thích nghi động là: - Thuật toán định tuyến theo vector khoảng cách (Distance-Vector Routing) - Thuật toán định tuyến theo trạng thái liên kết (Link -State Routing) Học viên: Bùi Tấn Ngọc 10 Tiểu luận mơn học Lập trình mạng nâng cao - Đi qua D: D(A)D = dAD + D(D)D = + = Như D(A)D = min(5, 4, 5) = lúc P(A)D = C • Cập nhật đường từ A – E: - Đi qua B: D(A)E = dAB + D(B)E = + ∞ = ∞ - Đi qua C: D(A)E = dAC + D(C)E = + = - Đi qua D: D(A)E = dAD + D(D)E = + = Như D(A)E = min(∞, 2, 6) = lúc P(A)E = C • Cập nhật đường từ A – F: - Đi qua B: D(A)F = dAB + D(B)F = + ∞ = ∞ - Đi qua C: D(A)F = dAC + D(C)F = + ∞ = ∞ - Đi qua D: D(A)F = dAD + D(D)F = + = 10 Như D(A)F = min(∞,∞, 10) = 10 lúc P(A)F = D Dưới kết cập nhật nội dung routing table q trình trao đổi thơng tin định tuyến nút mạng H2 A B C D E D(A)I P(A)I D(B)I P(B)I D(C)I P(C)I D(D)I P(D)I D(E)I F P(E)I D(F)I P(F)I A - A A C C E B B - B B C E C C C - E C E D C D D - D E E C C E E - E F 10 D D E E F - H3 A B C D E D(A)I P(A)I D(B)I P(B)I D(C)I P(C)I D(D)I P(D)I D(E)I F P(E)I D(F)I P(F)I A - A A E C E B B - B B C E C C C - E C E Học viên: Bùi Tấn Ngọc 16 Tiểu luận mơn học Lập trình mạng nâng cao D C D E - D E E C C E E - E F C C E E F - H4 A B C D E D(A)I P(A)I D(B)I P(B)I D(C)I P(C)I D(D)I P(D)I D(E)I F P(E)I D(F)I P(F)I A - A A E C E B B - B B C E C C C - E C E D C D E - D E E C C E E - E F C C E E F - Khi đường q trình định tuyến gói tin từ router A đến router D diễn sau: - Router A tra bảng routing table thấy muốn gửi đến D phải qua C nên chuyển gói tin trực tiếp cho Router C - Sau nhận được, Router C tra bảng routing table thấy muốn gửi đến D phải qua E nên chuyển gói tin trực tiếp cho Router E - Sau nhận được, Router E tra bảng routing table thấy chuyển trực tiếp đến Router D - Router D nhận gói tin, kiểm tra thấy gửi cho tiến hành xử lý A D(C)I C P(C)I A A B B C C D C E C D(A)I P(A)I A - B C Học viên: Bùi Tấn Ngọc D(E)I E P(E)I D(D)I D P(D)I A C A E B B C B B - C C C E D E D D D - E E E - E E 17 Tiểu luận mơn học Lập trình mạng nâng cao F C F E F Khoang cach/ Do tre F E Router D F A B F 2 C E Đường gói tin từ A đến D theo thuật toán vectơ khoảng cách Học viên: Bùi Tấn Ngọc 18 Tiểu luận mơn học Lập trình mạng nâng cao CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH MONITORING GIÁM SÁT ĐƯỜNG ĐI CỦA CÁC GĨI Mơ tả tốn Giả lập mơi trường mạng gồm có mạng kết nối với thông qua Router, Host A D gởi thông tin cho Host B C mơ hình sau đây: Việc vận chuyển gói tin từ nguồn đến đích định tuyến Router theo phương pháp tĩnh Trong trình vận hành hệ thống, gói tin gởi từ đâu, qua Router để đến đích theo dõi Monitoring hiển thị hình Học viên: Bùi Tấn Ngọc 19 Tiểu luận mơn học Lập trình mạng nâng cao Xây dựng chương trình tốn Bài tốn tổ chức thành modul, modul đóng vai trị Router, modul đóng vai trị Host modul đóng vai trị Monitoring Các Host gởi gói tin đến Router mà kết nối, vào thông tin định tuyến Router mà Router xác định nút để chuyển gói tin Các Host Router chuyển gói tin đến đâu gởi thông tin cho Monitoring Các modul xây dựng dựa chế đa luồng socket Java theo mơ hình truyền thống Client/Server sau: Chương trình Java tiêu biểu sau: - Host: import java.io.*; import java.net.*; public class HostA { public static void main(String args[]) { System.out.println(); System.out.println("Host A da san sang!"); try { Học viên: Bùi Tấn Ngọc 20 Tiểu luận mơn học Lập trình mạng nâng cao // Tao socket de ket noi toi Server Socket connectToServer = new Socket("localhost", 2001); //Tao luong de goi du lieu cho Server PrintWriter sOut = new PrintWriter(connectToServer.getOutputStream(), true); //Tao luong de nhan du lieu tu ban phim BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); while(true) { // Tao socket de ket noi toi Monitoring Socket connectToMonitor = new Socket("localhost", 2000); PrintWriter Stm = new PrintWriter(connectToMonitor.getOutputStream(), true); System.out.print("Nhap IP dich> "); String sInput = stdIn.readLine(); String St = "Tu Host A "; Stm.println(St); Stm.flush(); sOut.println(sInput); sOut.flush(); } } catch(IOException e) { System.err.println(e); } } } - Router: import java.io.*; import java.net.*; public class Router1 { public static void main(String arg[]) { System.out.println(); System.out.println("Router1 da san sang!"); try { //Tao Socket tren Router ServerSocket serverSocket = new ServerSocket(2001); while(true) { Socket connectToClient = serverSocket.accept(); HandleRouter1 thread = new HandleRouter1(connectToClient); thread.start(); } Học viên: Bùi Tấn Ngọc 21 Tiểu luận mơn học Lập trình mạng nâng cao } catch(IOException ex) { System.err.println(ex); } } } //Dinh nghia lop ke thua tu Thread de xu ly mot ket noi moi class HandleRouter1 extends Thread { private Socket connectToClient; private int iPort; public HandleRouter1(Socket socket) { connectToClient = socket; } public void run() { try { //PrintWriter out = new PrintWriter(connectToClient.getOutputStream(), true); BufferedReader inSv1 = new BufferedReader(new InputStreamReader( connectToClient.getInputStream())); while(true) { String inputData = inSv1.readLine(); String IpDest = inputData.substring(0,inputData.lastIndexOf(".")); if(IpDest.equals("128.192.6")) { iPort = 2004; System.out.println("Chuyen den Router4"); } else if(IpDest.equals("128.192.150")) { iPort = 2005; System.out.println("Chuyen den Host A"); } else if(IpDest.equals("193.24.56")) { iPort = 2002; System.out.println("Chuyen den Router2"); } // Tao socket de ket noi toi Monitoring Socket connectToMonitor = new Socket("localhost", 2000); PrintWriter Stm = new PrintWriter(connectToMonitor.getOutputStream(), true); String St = "den Router "; Học viên: Bùi Tấn Ngọc 22 Tiểu luận môn học Lập trình mạng nâng cao Stm.println(St); Stm.flush(); try { sleep(1000); } catch (Exception e) { System.out.println("Sleep Error"); } // Tao socket de ket noi toi Router ke tiep Socket connectToServer = new Socket("localhost", iPort); PrintWriter osToServer = new PrintWriter(connectToServer.getOutputStream(), true); osToServer.println(inputData); osToServer.flush(); } } catch(IOException ex) { System.out.println(ex); } } } - Monitoring: import java.io.*; import java.net.*; public class Monitoring { public static void main(String arg[]) { System.out.println(); System.out.println(" MONITORING GIAM SAT DUONG DI CAC GOI"); try { // Tao Socket tren Server ServerSocket serverSocket = new ServerSocket(2000); while(true) { Socket connectToClient = serverSocket.accept(); HandleAClient0 thread = new HandleAClient0(connectToClient); thread.start(); } } catch(IOException ex) { Học viên: Bùi Tấn Ngọc 23 Tiểu luận mơn học Lập trình mạng nâng cao System.err.println(ex); } } } //Dinh nghia lop ke thua tu Thread de xu ly mot ket noi moi class HandleAClient0 extends Thread { private Socket connectToClient; public HandleAClient0(Socket socket) { connectToClient = socket; } public void run() { try { BufferedReader inMnt = new BufferedReader(new InputStreamReader(connectToClient.getInputStream())); // Nhan goi tin tu Client String inputData = inMnt.readLine(); System.out.print(inputData); if(inputData.equals("den Host C")^inputData.equals("den Host B")) { System.out.println(); } } catch(IOException e) { System.out.println(e); } } } Kết chạy thử chương trình Khởi động Monitoring, Router Host Học viên: Bùi Tấn Ngọc 24 Tiểu luận mơn học Lập trình mạng nâng cao Học viên: Bùi Tấn Ngọc 25 Tiểu luận mơn học Lập trình mạng nâng cao Các Host gởi thông tin cho Host B Học viên: Bùi Tấn Ngọc 26 Tiểu luận mơn học Lập trình mạng nâng cao Các Host gởi thông tin cho Host C Học viên: Bùi Tấn Ngọc 27 Tiểu luận mơn học Lập trình mạng nâng cao KẾT LUẬN Sau thời gian tìm hiểu, nghiên cứu đặc biệt nhờ hướng dẫn, bảo tận tình thầy giáo PGS.TS Lê Văn Sơn nên tiểu luận hoàn thành thời hạn Qua nghiên cứu đề tài này, kết đạt tiểu luận giới thiệu kiến thức chung bản: • Tìm hiểu vấn đề điều khiển tải định tuyến thông tin mạng TCP/IP • Cài đặt chương trình định tuyến thơng tin theo phương pháp tĩnh Monitoring giám sát đường gói tin mạng TCP/IP ngơn ngữ lập trình Java Tuy nhiên thời gian khả hạn chế nên đề tài dừng lại mức độ mô phỏng, chưa triển khai điều khiển tải hệ thống thực Xin chân thành cảm ơn ý kiến đóng góp thầy PGS TS.Lê Văn Sơn anh chị học viên đóng góp ý liến để đề tài hoàn thiện Học viên: Bùi Tấn Ngọc 28 Tiểu luận môn học Lập trình mạng nâng cao TÀI LIỆU THAM KHẢO [1] Hệ tin học phân tán -Tiến sĩ Lê Văn Sơn, Nhà xuất ĐHQG Tp HCM-2002 [2] Nguyễn Phương Lan- Hoàng Đức Hải, Java lâp trình mạng, Nhà xuất Giáo dục [3] Nguyễn Thúc Hải, Mạng máy tính hệ thống mở, Nhà xuất Giáo dục [4] Đoàn Văn Ban, Lập trình hướng đối tượng với Java, Nhà xuất Khoa học Kỹ thuật [5] Các viết tạp chí khoa học kỹ thuật hệ phân tán, lập trình mạng đăng tải mạng Internet [6] Darrel Ince & Adam Freemat, Programming the Internet with Java, AddisonWesley [7] Elliotte Rusty Harold, Java Network Programming [8] The Complete Java 2Reference Học viên: Bùi Tấn Ngọc 29 Tiểu luận mơn học Lập trình mạng nâng cao MỤC LỤC 2.2 Điều khiển tải phân tán CHƯƠNG .5 ĐỊNH TUYẾN THÔNG TIN TRONG MẠNG TCP/IP Tổng quan định tuyến Kỹ thuật định tuyến tập trung định tuyến phân tán .6 Kỹ thuật định tuyến tĩnh định tuyến động Quá trình định tuyến mạng TCP/IP Phương pháp thích nghi động (Adaptive Routing) 5.1 Nguyên lý hoạt động 5.4 Ví dụ minh họa 14 CHƯƠNG 19 XÂY DỰNG CHƯƠNG TRÌNH MONITORING .19 GIÁM SÁT ĐƯỜNG ĐI CỦA CÁC GÓI 19 Mô tả toán 19 Xây dựng chương trình tốn 20 Kết chạy thử chương trình .24 KẾT LUẬN 28 Học viên: Bùi Tấn Ngọc 30 ... Netmask Gateway Interface 19 2 .16 8 .1. 0 25 5 .25 5 .25 5.0 19 2 .16 8 .1. 1 19 2 .16 8 .1. 1 19 2 .16 8 .2. 0 25 5 .25 5 .25 5.0 10 .0 .1. 2 10 .0 .1. 1 19 2 .16 8.3.0 25 5 .25 5 .25 5.0 10 .0 .1. 2 10 .0 .1. 1 Để chọn lựa phương án triển khai... TIN TRONG MẠNG TCP/ IP VÀ CÁC THUẬT TOÁN PHÂN BỐ TẢI CỦA MẠNG IP TRONG QUÁ TRÌNH ĐỊNH TUYẾN CÁC GĨI THƠNG TIN Học viên: Bùi Tấn Ngọc Tiểu luận mơn học Lập trình mạng nâng cao Tổng quan định tuyến. .. Kỹ thuật định tuyến tập trung định tuyến phân tán .6 Kỹ thuật định tuyến tĩnh định tuyến động Quá trình định tuyến mạng TCP/ IP Phương pháp thích nghi động (Adaptive

Ngày đăng: 18/04/2021, 16:18

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan