1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng giải thuật phân bố dữ liệu trên mạng internet

115 18 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 115
Dung lượng 1,5 MB

Nội dung

Đại Học Quốc Gia Thành Phố Hồ Chí Minh Trường Đại Học Bách Khoa NGUYỄN ANH TÚ XÂY DỰNG GIẢI THUẬT PHÂN BỐ DỮ LIỆU TRÊN MẠNG INTERNET Chuyên ngành: Khoa học Máy tính LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng 11 năm 2007 ĐẠI HỌC QUỐC GIA TP HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc Lập - Tự Do - Hạnh Phúc oOo Tp HCM, ngày 05 tháng 11 năm 2007 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên : Nguyễn Anh Tú Giới tính : Nam / Nữ Ngày, tháng, năm sinh : 22/05/1979 Nơi sinh : Bình Định Chuyên ngành : Khoa học Máy tính Khoá : 2005 1- TÊN ĐỀ TÀI : XÂY DỰNG GIẢI THUẬT PHÂN BỐ DỮ LIỆU TRÊN MẠNG INTERNET 2- NHIỆM VỤ LUẬN VĂN : 3- NGÀY GIAO NHIỆM VỤ : 4- NGÀY HOÀN THÀNH NHIỆM VỤ : 5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : TS Thoại Nam Nội dung đề cương Luận văn thạc sĩ Hội Đồng Chuyên Ngành thông qua CÁN BỘ HƯỚNG DẪN (Họ tên chữ ký) TS Thoại Nam CHỦ NHIỆM BỘ MÔN QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) TS Đinh Đức Anh Vũ CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH Cán hướng dẫn khoa học : TS Thoại Nam Cán chấm nhận xét : Cán chấm nhận xét : Luận văn thạc sĩ bảo vệ HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày tháng năm 2007 LỜI CAM ĐOAN Tôi cam đoan rằng, ngoại trừ kết tham khảo từ công trình khác ghi rõ luận văn, cơng việc trình bày luận văn tơi thực chưa có phần nội dung luận văn nộp để lấy cấp trường trường khác Ngày 05 tháng 11 năm 2007 Nguyễn Anh Tú LỜI CẢM ƠN Tôi xin gởi lời cảm ơn chân thành sâu sắc đến TS Thoại Nam, người Thầy tận tình hướng dẫn tơi suốt q trình từ đại học tới cao học tạo điều kiện để tơi hồn thành luận văn Tơi xin cảm ơn gia đình động viên tạo điều kiện tốt để tơi tiếp tục theo đuổi việc học tập nghiên cứu Tôi trân trọng dành tặng thành luận văn cho Cha Mẹ Nhờ công lao dưỡng dục Người mà chúng có thành ngày hơm Con xin hứa tiếp tục cố gắng phấn đấu để vươn cao MỤC LỤC Chương 1: GIỚI THIỆU 1 Đặt Vấn Đề Các Giải Pháp Hiện Hữu 2.1 Server-Based Solution 2.2 Complete-Graph-Based Solution 2.3 Tree/Mesh Multicast Solution 3 Sơ Lược Về Giải Pháp Kết Quả Chương 2: TỔNG QUAN VÀ CÁC GIẢI PHÁP LIÊN QUAN Multicast Protocols 1.1 Nice 1.2 Narada 10 1.3 PRISM 14 1.4 Yoid 14 1.5 ALMI 17 1.6 Host Multicast Tree Protocol 18 Kết Luận 20 Chương 3: SOLUTION: DYNAMIC NETWORK CONDITION ADAPTING MULTI-SOURCE MULTICAST PROTOCOL 22 Đặt Vấn Đề 22 Giải pháp 22 2.1 Mesh Building 22 2.2 Data Routing 22 2.2.1 Overview 22 2.2.2 Routing Version 24 2.2.3 Routing Table Organization 24 2.2.4 Routing Algorithm 27 2.3 Single-Source Multicast Protocol 28 2.3.1 Message Types 28 2.3.2 Data Structures 29 2.3.3 State Machine Diagram 31 2.3.4 Activity Diagrams 31 2.4 Multi-Source Multicast Protocol 36 2.4.1 Congested Detection 37 2.4.1.1 Overview 37 2.4.1.2 Congestion Types 37 2.4.1.3 Message Types 37 2.4.1.4 Data Structures 38 2.4.1.5 Congestion Level Control 41 2.4.1.6 End Point Relaxation 41 2.4.1.7 Congestion Detecting Algorithm 41 a Required Supports from TCP Layer 41 b Configuration Variables 42 c Message Queue Congestion Threshold 42 d Message Queue Congestion Threshold Delta 42 e Average Value of Sending Duartion 42 f Average Value of Receiving Duration 42 g Average Value of ACK Duration 42 h The Algorithm 43 2.4.2 Network Condition Adaption 50 2.4.2.1 Overview 50 2.4.2.2 Message Types 50 2.4.2.3 Data Structures 51 2.4.2.4 Parent Changing Protocol 52 Chương 4: MÔ PHỎNG ĐÁNH GIÁ 62 Test Case 62 Test Case 63 Test Case 64 Test Case 65 Test Case 67 Test Case 68 Test Case 69 Test Case 70 Test Case 71 10 Test Case 10 73 11 Test Case 11 74 KẾT LUẬN 76 THAM KHẢO 77 Phụ Lục Chương 3: SOLUTION: DYNAMIC NETWORK CONDITION ADAPTING MULTI-SOURCE MULTICAST PROTOCOL 78 Mesh Building 78 1.1 Node Management 78 1.1.1 Overview 78 1.1.2 Message Types 78 1.1.3 Data Structures 79 1.1.4 Ping Protocol 80 1.1.5 Group Joining Protocol 83 1.1.6 Group Leaving Protocol 83 1.1.7 Died Node Detection 83 1.2 Neighbor Management 84 1.2.1 Overview 84 1.2.2 Message Types 84 1.2.3 Data Structures 85 1.2.4 Neighbor Adding Protocol 86 1.2.5 Neighbor Removing Protocol 88 1.2.6 Neighbors List Improvement 91 1.2.7 Ping Protocol 92 Single-Source Multicast Protocol 93 2.1 Broadcast Cancellation 93 2.2 Neighbor Removing 93 Multi-Source Multicast Protocol 95 3.1 Converged Detection 95 3.1.1 Data Structures 95 3.1.2 Message Types 96 3.1.3 Configuration Variables 96 3.1.4 The Algorithm 97 3.2 Mesh Refinement 99 3.3 Died Node Processing 99 Phụ Lục Môi Trường Mô Phỏng: Network Simulator 101 Overview 101 Examples 101 2.1 OTcl Script 101 2.2 C++ Code 102 Phụ Lục Thuật Ngữ: CÁC THUẬT NGỮ 104 ALM 104 BOM 104 Broadcast 104 Broadcast Message 104 Control Message 104 Current Node 104 Data Message 104 DPC 104 End Point 104 10 FCP 104 11 Joined Node 104 12 Left Node 104 13 List Structure 105 14 Map structure 105 15 Member Node 105 16 SSMP 105 17 Multicast 105 18 Multicast Tree 105 19 Node 105 20 Overlay Link 105 21 Peer Node 105 22 Protocol Message 105 23 Rendezvous Point (RP) 105 24 Source Node 105 25 MSMP 105 26 VCA 106 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet CHƯƠNG GIỚI THIỆU Đặt Vấn Đề Với phát triển công nghệ ngày nay, tốc độ đường truyền liệu ngày nâng cao Điều làm cho chi phí truyền liệu qua internet ngày giảm ý tưởng hội nghị từ xa (video conference) trở nên khả thi ngày cao cho tổ chức, doanh nghiệp có nhu cầu hội họp điều kiện cách trở mặt địa lý Hội nghị từ xa có ưu tiết kiệm mặt thời gian tiền bạc chi phí lại so với kiểu hội nghi truyền thống Với xu này, hướng đề tài vào việc nghiên cứu giải thuật phân bố liệu internet đặc thù cho ứng dụng video conference Có ba hướng việc xây dựng ứng dụng video conference Hướng thứ dựa IP multicast, thành phần sở hạ tầng TCP/IP Hướng tiếp cận có ưu điểm có sẳn multicast protocol protocol chạy hiệu quả, chiếm băng thông (trong mạng LAN, router cần gửi gói liệu đủ để thực lệnh multicast đến nhóm computer mạng) Nhưng lại có số hạn chế sau: 1) IP multicast cần hỗ trợ từ phía hệ điều hành (OS), phần lớn OS hỗ trợ chức 2) Cần hỗ trợ cho IP multicast procol router Thông thường, router có hỗ trợ IP multicast, tính bị nhà quản trị mạng tắt hay nhiều lý 3) IP multicast có khơng gian địa nhỏ 27 bit Vấn đề giải với IPv6 4) vấn đề bảng routing kích thước lớn router tham gia vào trình multicast Mỗi router phải trì bảng routing cho nhóm IP multicast Hướng tiếp cận thứ hai Application Layer Multicast (ALM), hướng không phụ thuộc hỗ trợ multicast sở hạ tầng mạng không cần hỗ trợ mặt cấu hình từ nhà quản trị mạng Hướng sử dụng unicast để thực việc multicast liệu, khơng hiệu mặt băng thơng so với IP multicast Hướng thứ ba kết hợp IP multicast ALM Xem IP multicast-enabled island host đơn sử dụng ALM cho host Các Video conference Application (VCA) thường nhóm multicast có kích thước nhỏ nên việc sử dụng IP multicast khơng hiệu vấn đề quản lý nhiều nhóm multicast nhỏ router Giải pháp ALM lựa chọn khác cho VCA ALM sử dụng vài member nhóm multicast router, thay chức network router Các giải pháp ALM không phụ vào hỗ trợ network router, giúp VCA để triển khai Để ALM lựa chọn thay đủ tốt cho IP multicast nhóm nhỏ có nhiều source node (node phát data) ALM protocol cần phải có chế tận dụng tốt node có bandwidth lớn sử dụng node router node cho nhóm multicast Nhiệm vụ router node nhận data message từ source node forward data message đến node khác Số lượng node forward router node tùy thuộc vào lượng bandwidth dư thừa router node Như mục tiêu đề tài xây dựng ALM protocol cho VCA với đặc tính sau: - Có nhiều source node - Số source node nhỏ tổng số node - Các source node có data rate (tốc độ phát data) - Yêu cầu delay data message không xem xét Dynamic Network Condition Adapting Multi-Source Multicast Protocol Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet 1.2.7 Ping Protocol act Ping Protocol «ALMNeighbor» «ALMNeighbor» Current Node Peer Node WriteVariable alive-nodes=Nodes_ NEIGHBOR_PING_INIT WriteVariable left-nodes=LeftNodes_ this message contains variables: alive-nodes, left-nodes WriteVariable alive-nodes2=alive-nodes &alive-nodes=Nodes_ NEIGHBOR_PING_INIT WriteVariable left-nodes2=left-nodes &left-nodes=LeftNodes_ NEIGHBOR_PING_REPLY NEIGHBOR_PING_REPLY add nodes in list alive-nodes but not in member Nodes_ to member Nodes_ add nodes in list alive-nodes2 but not in member Nodes_ to member Nodes_ Find list X of nodes that are in both member Nodes_ and left-nodes Find list X of nodes that are in both member Nodes_ and left-nodes2 Remove nodes Y from member Nodes_ where Y in X Remove nodes Y from member Nodes_ where Y in X Append X to member LeftNodes_ Append X to member LeftNodes_ reset refresh timer of this neighbor reset refresh timer of this neighbor Hình 3.10 Protocol dùng để truyền refresh message hai node có quan hệ neighbor nhằm mục đích lan truyền thông tin new member, left member mesh đến tất member khác nhóm multicast Và detect trạng thái logic link (died or alive) hai node có quan hệ neighbor Dynamic Network Condition Adapting Multi-Source Multicast Protocol 92 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet Khi node gửi message NEIGHBOR_PING_INIT to peer node không nhận replied message từ peer node sau khoảng thời gian DurationTimeOut_ , bắt đầu kiểm tra trạng thái logic link hai node Logic link xác định chết timeout xảy node không nhận message từ logic link Trạng thái chết logic link bắt nguồn từ peer node khơng phải từ tình trạng network Do vậy, sau kiện node bắt đầu q trình kiểm tra peer node có bị chết hay không thông qua chế gửi message PING_ALIVE_INIT đợi replied message PING_ALIVE_REPLY kết nối (logic link) hồn tồn Phần trình bày kỹ phần Died Node Detection Single-Source Multicast Protocol 2.1 Broadcast Cancellation Khi trình broadcast diễn mesh, vài kiện xảy làm cho q trình broadcast khơng thể hồn tất thơng tin routing thu khơng xác Nên trình broadcast cần phải hủy bỏ kiện nghiêm trọng xảy như: overlay link neighbor bị chết, có node rời nhóm multicast Chỉ hủy bỏ trình broadcast kiện nghiêm trọng ảnh hưởng xác thông tin routing kết Sơ đồ hành vi bên hình 3.23 trình bày tiết kiện nghiêm trọng kích hoạt q trình hủy act Broadcast Cancellation Find a list Y of ALMBRSrcInfo objects so that every Z in Y satisfies Z.State_=BROADCAST and Z.MsgLastSent_NULL and Z has at least a SEND trace for neighbor K For each U in Y U.State_=FAILED and send message BROADCAST_RESTART_REQ to the neighbor that current node has first received message BROADCAST with msg-id=U.MsgLastSent_->MsgID from it the message BROADCAST_RESTART_REQ has msg-id, address-src, routing-version the same value as U.MsgLastSent_ Hình 3.23 2.2 Neighbor Removing Quá trình hủy mối quan hệ neighbor hai node có ảnh hưởng đến độ xác thơng tin routing kết q trình broadcast diễn Cho nên trình hủy mối quan hệ neighbor hai node phải kích hoạt thời điểm cho không ảnh hưởng đến protocol Tất quan hệ neighbor muốn hủy bỏ phải qua bước đánh dấu để xóa thời điểm thích hợp khác - thời điểm mà có Dynamic Network Condition Adapting Multi-Source Multicast Protocol 93 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet q trình broadcast hồn tất cục node Trong số trường hợp đặc biệt, quan hệ neighbor cần hủy hủy Hình 3.24 trình bày sơ đồ hành vi trình hủy quan hệ neighbor đánh dấu hủy Sau hủy xong quan hệ neighbor đánh dấu, node chuyển sàng trạng thái đợi để xử lý kiện UNBE_NEIGHBOR_DONE act Neighbor Removing ROUTING_TABLE_CHANGED this message contains variable "isFailed" Run Neighbor Removing Protocol for neighbors that have State_.Main_=MARKED_UNBE this message contains variables: is-left, unbe-neighbor UNBE_NEIGHBOR_DONE is-left Broadcast Cancellation [TRUE] [FALSE] Remove ALMRtEItem and ALMRtEItemRV objects involved to X from member RtTable_ Remove all ALMBRSrcMsgTrace objects of neighbor X X = unbe-neighbor Remove X from member Neighbors_ Hình 3.24 Dynamic Network Condition Adapting Multi-Source Multicast Protocol 94 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet Multi-Source Multicast Protocol 3.1 Converged Detection 3.1.1 Data Structures class Converged Detection «enumeration» ALMConvergeState ALMITimer ALMDataHandler NO = YES_P1 = YES_P2 = - DataRatio_: double -DataHandler_ +LastCVState_ -Owner_ ALMProcessState Process + + + ConvergeInfos_: map LastCVState_: ALMConvergeState Main_: ALMProcessStateMain Sub_: ALMProcessStateSub + + + DeleteConvergeInfo(int) : void IsMCastGroupConverged(ALMConvergeState, int) : BOOL UpdateConvergeInfo(int, ALMConvergeState) : void ALMProcess +State_ + + + + BaseNode_: NSNode DataHandler_: ALMDataHandler LastCRootTime_: double RoutingState_: ALMRoutingState State_: ALMProcessState +RoutingState_ «enumeration» ALMRoutingStateMain ALMRoutingState +Main_ + + NONE = NEW_VERSION FAILED Main_: ALMRoutingStateMain RoutingVersion_: int Hình 3.43 - ALMConvergeState + NO: không hội tụ + YES_P1: hội tụ data rate nhỏ giá trị yêu cầu + YES_P2: hội tụ giá trị data rate yêu cầu - ALMDataHandler Quản lý chức phát data source node (root node) + DataRatio_: giá trị phần trăm node phát data với tốc độ phần trăm so với giá trị data rate yêu cầu - ALMProcessState + ConvergeInfos_: Map Lưu thông tin trạng thái hội tụ source node mà node biết Một source node hội tụ multicast tree ổn định không thay đổi + LastCVState_: Lưu trạng thái hội tụ toàn nhóm multicast mà node Dynamic Network Condition Adapting Multi-Source Multicast Protocol 95 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet biết + void UpdateConvergeInfo(int Address_Src, ALMConvergeState CVState): Cập nhật trạng thái hội tụ cho source address + void DeleteConvergeInfo(int Address_Src): Remove trạng thái hội tụ source address khỏi member ConvergeInfos_ + BOOL IsMCastGroupConverged(ALMConvergeState CVState, int SrcCount): Trả vế giá trị TRUE tất SrcCount source node trạng thái CVState 3.1.2 Message Types - DATA_CONVERGED_NO Được dùng để gửi data message báo cho node cháu trạng thái multicast tree chưa hội tụ - DATA_CONVERGED_YES_P1 Được dùng để gửi data message báo cho node cháu trạng thái multicast tree giá trị YES_P1 - DATA_CONVERGED_YES_P2 Được dùng để gửi data message báo cho node cháu trạng thái multicast tree giá trị YES_P2 3.1.3 Configuration Variables - RatioData_: Hệ số phần trăm data rate Gọi X giá trị data rate yêu cầu Protocol chạy với data rate Y = RatioData_ * X Nếu hội tụ với data rate Y protocol chuyển sang chạy với data rate yêu cầu X Giá trị YES_P1 LastCVState_ protocol hội tụ data rate Y, Giá trị YES_P2 protocol hội tụ data rate X - DurationConverge_: khoảng thời gian mà multicast tree source node ổn định khơng có nghẽn suốt coi hội tụ với dara rate Dynamic Network Condition Adapting Multi-Source Multicast Protocol 96 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet 3.1.4 The Algorithm act Source Node Side A data message needed to be sent WriteVariable address-src = BaseNode_.Address_ Data messages contain variables: address-src, routing-version and are sent to children nodes of current node on current multicast tree WriteVariable routing-version = RoutingState_.RoutingVersion_ RoutingState_.Main_ [else] [Main_=NEW_VERSION] [Main_ = FAILED] DATA_RT_FAILED DATA_NEW_RTVER WriteVariable RoutingState_.Main_ = NONE [else] [current time - LastCRootTime_ > DurationConverge_] DataHandler_.DataRatio_ [DataRatio_ = 1] [else] DATA_CONVERGED_NO WriteVariable CVState = NO DATA_CONVERGED_YES_P1 WriteVariable CVState = YES_P1 DATA_CONVERGED_YES_P2 WriteVariable CVState = YES_P2 State_.UpdateConvergeInfo(address-src, CVState) (::) Hình 3.44 Dynamic Network Condition Adapting Multi-Source Multicast Protocol 97 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet act Member Node Side this message contains variables: address-src, routing-version DATA_CONVERGED_NO WriteVariable CVState=NO DATA_CONVERGED_YES_P1 WriteVariable CVState=YES_P1 DATA_CONVERGED_YES_P2 WriteVariable CVState=YES_P2 State_.UpdateConvergeInfo(address-src, CVState) (::) Forward the received data message to children nodes of current node on current multicast tree Hình 3.45 Hình 3.44 trình bày sơ đồ hành vi source node thuật toán detect hội tụ multicast tree Chỉ source node (root node) có đủ thơng tin để xác định multicast tree hội tụ hay chưa Root node gửi thông tin trạng thái hội tụ multicast tree đến tất node cháu thơng qua data message (đính kèm thơng tin trạng thái hội tụ vào data message) Như node mesh nhóm multicast biết trạng thái hội tụ tất source node Khi protocol bắt đầu chạy, giá trị biến DataHandler_.DataRatio_ định giá trị configuration variable RatioData_ Hình 3.45 trình bày sơ đồ hành vi node cháu source node thuật toán detect hội tụ multicast tree Hình 3.46 trình bày sơ đồ hành vi giải thuật điều chỉnh giá trị biến DataHandler_.DataRatio_ để protocol cuối hội tụ required data rate Giải thuật chạy định kỳ root node Sau multicast tree node hội tụ, timer giải thuật ngừng chạy kích hoạt để chạy lại có kiện CROOT_REPLY BROADCAST_DONE gửi đến node Dynamic Network Condition Adapting Multi-Source Multicast Protocol 98 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet act DataRatio Changing Timer expired Not converged yet CRootQueue_ [else] [CRootQueue_.size() = 0] WriteVariable SourceCount = DataHandler_.DataRatio_ [DataRatio_ < 1] [DataRatio_ = 1] [State_.IsMCastGroupConverged (YES_P1, SourceCount) = TRUE] [State_.IsMCastGroupConverged (YES_P2, SourceCount) = TRUE] WriteVariable DataHandler_.DataRatio_ = [else] Converged below required data rate [else] Converged at required data rate Not converged yet Hình 3.46 3.2 Mesh Refinement Sau protocol hội tụ, cấu trúc mesh nhóm multicast cần thu gọn lại để giảm số quan hệ neighbor (overlay link) không sử dụng trình truyền data message Số overlay link dư thừa bị loại bỏ dẫn đến số message NEIGHBOR_PING_INIT, NEIGHBOR_PING_REPLY sử dụng node giảm tăng độ ổn định multicast tree kết Khi cần thiết số overlay link dư thừa tái tạo trở lại để nâng cao khả hội tụ protocol 3.3 Died Node Processing Trình bày chế khắc phục tượng overlay link bị đứt node nhóm multicast bị chết Giải thuật kích hoạt chạy có overlay link bị đứt phát Sự kiện kết nối node neighbor bị đứt neighbor bị chết Đầu tiên, node thiết lập quan hệ neighbor với tất node nhóm multicast chưa neighbor Xóa tất SEND/RECV trace đối tượng BroadcastHandler_ add RECV trace cho tất neighbor nhằm đánh dầu node nhận message BROADCAST từ neighbor (nghĩa node nhận neighbor làm parent).Gọi X Dynamic Network Condition Adapting Multi-Source Multicast Protocol 99 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet neighbor mà overlay link node xác định bị đứt (do mạng thân X down) Nếu X parent node multicast tree T (T ứng với cặp {Address_SrcX, RoutingVersionX}) sử dụng mesh, node chọn source node Y có network address = Address_SrcX làm parent thay cho parent X đồng thời gửi đến Y message CROOT_REQ yêu cầu Y tiến hành trình thay đổi parent cho node ngữ cảnh multicast tree T Sau node hoàn tất việc chọn parent thay cho died parent (overlay link từ node đến died parent bị đứt, khơng gửi/nhận data được), trình “Died Node Processing” kết thúc Dynamic Network Condition Adapting Multi-Source Multicast Protocol 100 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet PHỤ LỤC MÔI TRƯỜNG MÔ PHỎNG Network Simulator Overview Network Simulator (NS) phần mềm mô môi trường mạng, dùng để kiểm tra tính chất network protocol routing multicast NS cung cấp sẳn tập phần tử phổ biến môi trường mạng Physical Node, Physical Link, Link Delay, Lost Packet Rate, Message Queue Management, TCP Connection, UDP Connection, LAN, Mobile Network, Satellite Network, Unicast Routing, Multicast Routing NS thực ngôn ngữ C++ cung cấp giao tiếp mô thơng qua ngơn ngữ OTcl Mã C++ gọi mã OTcl ngược lại Một chương trình mơ NS gồm hai thành phần: - OTcl script, dùng để điều khiển object NS - C++ code, dùng để mở rộng tập object class NS Các object class thường thực đặc điểm protocol cần thử nghiệm (mô phỏng) Phần khơng bắt buộc phải có NS hoạt động framework gồm library class viết ngơn ngữ C++ OTcl, người sử dụng kế thừa mở rộng tính class sẳn có nhằm thực mơ hình mơ hình mơ Examples 2.1 OTcl Script Hình 6.1 Sau OTcl script mơ network gồm hai node nối trực tiếp với thông qua physical link Node gửi message đến node sau 0.005 giây set ns [new Simulator] #Create two physical nodes and set n0 [$ns node] set n1 [$ns node] Dynamic Network Condition Adapting Multi-Source Multicast Protocol 101 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet #Create a physical link between node and node The link is symmatic and #runs at speed of 10Mbps with delay of 10ms $ns duplex-link $n0 $n1 1Mb 10ms DropTail #Create a UDP agent and attach it to node n0 This object plays role as the #first end point which sends UDP packets to the second end point set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 # Create a CBR traffic source and attach it to udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ 0.005 $cbr0 attach-agent $udp0 # Create the second end point which receives UDP packets from the first end #point set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 # Node start sending UDP packets to node at 0.5 second $ns at 0.5 "$cbr0 start" # Node stop sending UDP packets to node at 4.5 seconds $ns at 4.5 "$cbr0 stop" # Start the simuator $ns run 2.2 C++ Code class ECHO_Timer; //Agent belongs to NS framework and it corresponds to OTcl class “Agent” //We want to extend the function of Agent class by class ECHO_Agent OTcl name //of this new class is “Agent/ECHO” ECHO_Agent send a ECHO message to the //destination every “interval_” class ECHO_Agent : public Agent { public: ECHO_Agent(); int command(int argc, const char*const* argv); protected: void timeout(int); void sendit(); double interval_; ECHO_Timer echo_timer_; }; ECHO_Agent::ECHO_Agent() : Agent(PT_ECHO) { //make field “interval_” to be visible to OTcl with name as “interval_” bind_time("interval_", &interval_); //make field “size _” to be visible to OTcl with name as “packetSize _” bind("packetSize_", &size_); } //this method is called every “interval_” void ECHO_Agent::timeout(int) Dynamic Network Condition Adapting Multi-Source Multicast Protocol 102 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet { sendit(); echo_timer_.resched(interval_); } //this method send ECHO message to the destination void ECHO_Agent::sendit() { Packet* p = allocpkt(); ECHOHeader *eh = ECHOHeader::access(p->bits()); eh->timestamp() = Scheduler::instance().clock(); send(p, 0); // Connector::send() } //this method handles OTcl methods called from OTcl script int ECHO_Agent::command(int argc, const char*const* argv) { if (argc == 2) { //make “start” to be a method of class “Agent/ECHO” if (strcmp(argv[1], "start") == 0) { timeout(0); return (TCL_OK); } } return (Agent::command(argc, argv)); } // Linking the “ping” Agent with OTcl Here, a static object “class_echo” is //created It’s constructor (executed immediately when the simulator is //executed) places the class name “Agent/ECHO” into the OTcl name space static class ECHOClass : public TclClass { public: ECHOClass() : TclClass("Agent/ECHO") {} TclObject* create(int argc, const char*const* argv) { return (new ECHO_Agent()); } } class_echo; class ECHO_Timer : public TimerHandler { public: ECHO_Timer(ECHO_Agent *a) : TimerHandler() { a_ = a; } protected: ECHO_Agent *a_; virtual void expire(Event *e) { a_->timeout(0); } }; Dynamic Network Condition Adapting Multi-Source Multicast Protocol 103 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet PHỤ LỤC THUẬT NGỮ CÁC THUẬT NGỮ ALM Application Layer Multicast BOM Cơ chế broadcast mesh sử dụng protocol Broadcast Trong network, broadcast mang nghĩa gửi đến tất node khác network Trong ngữ cảnh protocol broadcast mang nghĩa gửi message đến tất node khác mesh nhóm multicast Broadcast Message Một protocol message dùng trình broadcast mesh (BOM) Control Message Cũng protocol message, sử dụng để gửi thông tin điều khiển protocol Current Node Là node xét, đứng vị trí nhìn node khác nhóm multicast Data Message Một protocol message dùng để gửi data DPC Cơ chế phát hiện, xử lý nghẽn sử dụng protocol End Point Mỗi overlay link có hai đầu ứng với hai node Mỗi node sử dụng đầu để gửi nhận message Đầu overlay link gọi end point 10 FCP Flow control protocol 11 Joined Node Một node vừa gia nhập vào nhóm multicast 12 Left Node Một node vừa rời vào nhóm multicast Dynamic Network Condition Adapting Multi-Source Multicast Protocol 104 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet 13 List Structure Cú pháp: list Quản lý danh sách item 14 Map structure Cú pháp: map Một cấu trúc từ điển, truy xuất item thơng qua giá trị Key Mỗi item có Key 15 Member Node Một node nhóm multicast 16 SSMP Single-source multicast protocol 17 Multicast Gửi message đến nhóm node khác 18 Multicast Tree Một cấu trúc mà node phát data nằm root tất node lại nhóm multicast cháu root node Cấu trúc dùng để multicast data root node quyền phát data Khi node cha nhận data message, gửi data message đến tất node Quá trình vậy, lan truyền data từ root node đến tất node cịn lại nhóm multicast 19 Node Một máy tính có kết nối mạng 20 Overlay Link Một logic link hai node hay nói cách khác network connection 21 Peer Node Được xét ngữ cảnh overlay link Quan hệ neighbor hai node hình thành overlay link, node đóng vai trị current node node cịn lại đóng vai trò peer node current node 22 Protocol Message Message sử dụng protocol 23 Rendezvous Point (RP) Một node mà tất node nhóm biết điểm khởi đầu để multicast protocol bắt đầu hoạt động Một node muốn join nhóm multicast phải contact với RP để có thơng tin thiết yếu nhóm multicast hoạt động 24 Source Node Một node nhóm multicast đóng vai trị nguồn phát data đến tất node lại 25 MSMP Multi-source multicast protocol Dynamic Network Condition Adapting Multi-Source Multicast Protocol 105 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet 26 VCA Video Conference Application Dynamic Network Condition Adapting Multi-Source Multicast Protocol 106 ... Protocol 19 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet Giải thuật join nhóm multicast Giải thuật sửa chữa bị phân hoạch Tóm lại, HMTP dùng cấu trúc tree để multicast liệu nên vấn... shared-tree để phân bố liệu đến IMEI nên vấn đề tối ưu bandwidth chưa giải Dynamic Network Condition Adapting Multi-Source Multicast Protocol 21 Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet. .. Multicast Protocol Xây Dựng Giải Thuật Phân Bố Dữ Liệu Trên Mạng Internet ví dụ chế multicast Trong hình trên, hình bên trái member phát liệu A7 hình bên phải member phát liệu C0 Ai thuộc layer

Ngày đăng: 08/03/2021, 23:54

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w