Danh mục

Chương 6 LẬP TRÌNH MULTICAST

Số trang: 22      Loại file: pdf      Dung lượng: 142.14 KB      Lượt xem: 21      Lượt tải: 0    
Thư viện của tui

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chương 6LẬP TRÌNH MULTICAST1Nội dung Khái niệm lập trình Multicast Địa chỉ Multicast Lập trình Multicast với winsock Lập trình Multicast với Java2Khái niệm lập trình MuticastMột máy có thể gửi message cho nhiều máy theo một địa chỉ (Multicast group) nào đó.Chỉ cần gửi 1 packet, nhiều địa chỉ có thể nhận được Lợi ích:Xử lý thông tin nhanh Giảm lưu lượng dữ liệu trên đường truyền Giải quyết bài toán quan hệ 1-nhiều và nhiều nhiều trên mạng3Khái niệm Multicast GroupMulticast group:là một địa chỉ, tương tự như địa chỉ của một Host. nhận diện như...
Nội dung trích xuất từ tài liệu:
Chương 6 LẬP TRÌNH MULTICAST Chương 6 LẬP TRÌNH MULTICAST 1Nội dung Khái niệm lập trình Multicast Địa chỉ Multicast Lập trình Multicast với winsock Lập trình Multicast với Java 2Khái niệm lập trình Muticast Một máy có thể gửi message cho nhiều máy theo một địa chỉ (Multicast group) nào đó.  Chỉ cần gửi 1 packet, nhiều địa chỉ có thể nhận được Lợi ích:  Xử lý thông tin nhanh  Giảm lưu lượng dữ liệu trên đường truyền  Giải quyết bài toán quan hệ 1-nhiều và nhiều nhiều trên mạng 3Khái niệm Multicast Group Multicast group:  là một địa chỉ, tương tự như địa chỉ của một Host.  nhận diện như địa chỉ máy đích một cách logic, hoặc một nhóm (group) Các hosts (thuộc hay không thuộc nhóm) có thể gửi dữ liệu cho nhóm, tham gia hay rời bỏ nhóm. 4Ví dụ Multicast 5Các lớp hiện thực Multicast Level 0: Không hỗ trợ cho Multicast Level 1: Hỗ trợ nhận Multicast packet nhưng không hỗ trợ gửi  Các host có thể nhận một số phần dịch vụ của Multicast như định vị tài nguyên và nhận báo cáo  Các host không thể tham gia Multicast group Level 2: hỗ trợ gửi nhận Multicast packet  Cho phép các host tham gia và rời bỏ các Multicast group 6Địa chỉ Multicast Miêu tả trong RFC 1112 Sử dụng IGMP (Internet Group Multicasting Protocol) Sử dụng lớp D của địa chỉ IP: từ 224.0.0.0 đến 239.255.255.255 Mỗi địa chỉ IP trong khoảng này biểu diễn cho một nhóm multicast Một địa chỉ IP trong nhóm multicast được sử dụng chung cho tất cả các thành viên của nhóm để gửi và nhận dữ liệu. 7Lập trình Multicast Phải sử dụng giao thức UDP Các bước lập trình multicast:  Tạo một UDP socket  Tham gia một nhóm multicast chỉ ra bởi một địa chỉ IP lớp D  Nhận các packet gửi đến cho nhóm đó  Gửi các packet đến các máy trong nhóm thông qua địa chỉ IP của nhóm.  Rời bỏ khỏi nhóm multicast  Đóng socket 8Một số vấn đề của multicast Nhóm động: các host có thể tham gia và rời bỏ nhóm bất kỳ thời điểm nào Một host có thể tham gia một nhóm multicast bằng cách gừi một IGMP messgae Một nhóm có số thành viên không giới hạn Một máy có thể gửi một message cho một nhóm mà không cần tham gia vào nhóm đó. 9Time-To-Live (TTL) TTL là thời gian sống của multicast packet tính từ khi nó được gửi đi đến khi được hủy bởi các router. TTL=0 : packet không được gửi TTL=1 (mặc định) : packet chỉ gửi trong mạng cục bộ. TTL>1: packet có thể gửi qua nhiều mạng khác nhau 10Lập trình Multicast với Winsock Winsock hỗ trợ lập trình Multicast trên hai phiên bản giao thức IGMP:  IGMPv2: phiên bản này cho phép các host có tham gia và rời bỏ group được nhận diện bởi địa chỉ IP multicast trên một interface. Nhược điểm của phiên bản này là một host có thể “flooding” group làm cho group không thể nhận dữ liệu từ các host khác. Phiên bản này không cho phép một host có thể lựa chọn nhận dữ liệu từ nguồn cụ thể nào , và không có khả năng “block” host đang “flooding”.  IGMPv3: phiên bản này cho phép lựa chọn nguồn dữ liệu để nhận và cho phép ứng dụng “block” quá trình gửi dữ liệu của host nào đó. 11Socket option IGMPv2  IP_ADD_MEMBERSHIP  IP_DROP_MEMBERSHIP  IPV6_ADD_MEMBERSHIP  IPV6_DROP_MEMBERSHIP IGMPv3  IP_ADD_SOURCE_MEMBERSHIP  IP_DROP_SOURCE_MEMBERSHIP  IP_BLOCK_SOURCE  IP_UNBLOCK_SOURCE 12Lập trình Multicast với Winsock Sử dụng Socket với kiểu SOCK_DGRAM Sử dụng cấu trúc ip_mreq để định địa chỉ nhóm: struct ip_mreq{ struct in_addr irm_multiaddr; struct in_addr irm_interface; } Sử dụng hàm setsockopt tác động lên Socket 13Lập trình Multicast với Winsock –Tham gia nhóm#define MULTICAST_ADDR “225.1.1.1”...Socket multiSocket;...struct ip_mreq_source imr;imr.imr_multiaddr.s_addr = inet_addr(MULTICAST_ADDR);imr.imr_interface.s_addr = INADDR_ANY;err= setsockopt(multiSocket,IPPROTO_IP,IP_ADD_MEMBERSHIP, (char *)&imr, sizeof(imr)); 14Lập trình Multicast với Winsock –Rời bỏ nhóm...struct ip_mrep imr;...err= setsockopt(multiSocket,IPPROTO_IP, IP_DROP_MEMBERSHIP, (char *)&imr, sizeof(imr)); 15Lập trình Multicast với Winsock-Giá ...

Tài liệu được xem nhiều: