Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứuTrong việc phát chuyển nhiều điểm bằng unicast unicasting thì bên gửi sẽ gửi nhiều bản sao dữ liệu riêng biệt đến nơi những
Trang 1Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
MỤC LỤC
Lời cảm tạ 2
Giới thiệu đề tài 4
Phần lý thuyết 6
I Khái quát những kỹ thuật phát chuyển thông dụng 7
II IP MULTICAST – Đặc điểm và ứng dụng 15
Phần Ứng dụng 26
III Quá trình thuyết kế cài đặt ứng dụng 27
IV Giới thiệu và khai thác ứng dụng NETLOADING 41
V Kết luận và hướng phát triển 54
Tài liệu Tham Khảo 56
Trang 2Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
LỜI CẢM ƠN
Sau hơn 3 tháng thực hiện, đến nay đề tài luận văn tốt
nghiệp IP Multicast đã hoàn thành Song song với yếu tố thời gian
và sự phấn đấu của bản thân, sự giúp đỡ của quýThầy Cô là một yếu tố quan trọng, mang tính chất quyết định Do đó, trước khi trình bày phần nội dung của đề tài, em xin được gửi lời cảm ơn chân thành đến quý Thầy Cô, những người đã trực tiếp, gián tiếp giúp đỡ em trong quá trình thực hiện đề tài:
s Thầy Đinh Khắc Quyền, Trưởng bộ môn HTTT & TƯD , đã
chấp nhận và có lời đề nghị đến BCN Khoa chấp nhận cho
em được làm luận văn
s Thầy Nguyễn Phú Trường, cán bộ giảng dạy Khoa, đã có
nhã ý chấp nhận ra đề tài nếu em chưa chọn được đề tài nào khác
s Thầy Hồ Chí Việt, Cán bộ Trung tâm Thông tin KH&CN và dự án Ford Foundation đã tạo điều kiện cho em trong việc
thực hiện, cài đặt chương trình ứng dụng
s Thầy Nguyễn Trung Nghĩa cán bộ phòng HTMT, giáo viên
hướng dẫn đề tài, đã giúp em tìm tài liệu và có những lời đóng góp bổ ích
s Đặc biệt em gửi lời cám ơn chân thành và sâu sắc đến Cô
Trần Thượng Thu Giang, cán bộ phòng quản trị mạng, giáo
viên ra đề tài và hướng dẫn, Cô đã giúp đỡ và tạo mọi điều
kiện để Đề tài được thực hiện và hoàn thành.Cụ thể:
Trang 3Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
T Cô đã bỏ qua và thuyết phục Hội đồng Khoa học Khoa bỏ qua những khiếm khuyết về khả năng trình bày để
em được làm Luận văn
T Ở những bước đầu bỡ ngỡ, Cô đã không ngừng động viên, khích lệ tinh thần Đồng thời, cô cũng cung cấp
tài liệu và địa chỉ web cho em tham khảo
T Những lúc gặp phải khó khăn, Cô đã từng bước giải
thích, chỉ dẫn tháo gỡ thắc mắc
Nói chung, những gì mà đề tài Luận văn Tốt nghiệp này đạt được, phần lớn là nhờ vào sự gợi ý, chỉ dẫn, khuyến khích, động viên của Cô Một lần nữa, em xin chân thành cảm ơn Cô và chúc Cô luôn thành đạt
Cần Thơ, tháng 01 năm 2002 Sinh viên thực hiện
Trương Minh Sử Nhiên
Trang 4Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
GIỚI THIỆU ĐỀ TÀI
Ngày nay, thông tin liên lạc qua internet đã trở nên một thành phần cơ bản
của cuộc sống World Wide Web (WWW)là một thư viện khổng lồ chứa đựng vô
số thông tin, tài liệu về rất nhiều chủ đề, lĩnh vực Mọi người từ khắp nơi có thể
tải (download) các file chứa dữ liệu cần thiết từ WWW về máy của mình để để sử
dụng với mục đích riêng
Việc download bùng nổ trong những giờ cao điểm làm cho lưu thông trên internet bị tắt nghẽn Vấn đề này suy cho cùng không phải ở chỗ dữ liệu được truyền tải là gì, mà chính là cơ chế truyền tải như thế nào
Tình trạng này được xuất phát từ kỹ thuật phát chuyển được dùng trên Web đó là unicast Một kết nối TCP được thiết lập cho một máy gửi và mỗi máy nhận, sau đó máy gửi sẽ chuyển một bản sao dữ liệu đến một máy nhận thông qua kết nối Mỗi bản sao như vậy phải đi qua rất nhiều thiết bị nối kết Mà những thiết bị
này vốn đầy dẫy xung quanh máy gửi Vì vậy, sự tắt nghẽn (bottleneck) có thể
xãy ra bất cứ nơi nào nếu có thể xãy ra sự quá tải Ngoài ra, sự tắt nghẽn còn có thể xuất phát từ việc vận chuyển dữ liệu bị kéo dài do file có dung lượng lớn hoặc các phương tiện nối kết trì hoãn
Vấn đề trên có thể ngăn chặn bởi việc ứng dụng kỹ thuật phát chuyển multicast trong truyền file mà nội dung của đề tài luận văn này sẽ đề cập
Với tên gọi “Ứng dụng IP multicast trong truyền file trên hệ điều hành
Win32s” Đề tài này sẽ:
• Đi vào giới thiệu IP multicast, so sánh với hai kỹ thuật phát chuyển thông dụng là unicast và broadcast
• Phân tích việc ứng dụng của IP Multicast trong truyền file
• Giới thiệu Fcast, một giao thức truyền file kết hợp giữa FEC (Forward Error Correction) và việc vận chuyển IP Multicast có độ tin cậy
• Giới thiệu chương trình demo NetLoading ứng dụng giao thức truyền file Fcast để chia sẻ dữ liệu chạy trên hệ điều hành Win32s
Trang 5Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Mặc dù đề tài này được hướng dẫn tận tình và kiểm thử chu đáo Song, sai sót là một điều không thể tránh khỏi Kính mong quý thầy cô và các bạn bỏ qua cho hoặc có những đóng góp tích cực Chân thành cám ơn
Trang 6Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
PHAÀN LYÙ THUYEÁT
Trang 7Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
I KHÁI QUÁT NHỮNG KỸ THUẬT PHÁT CHUYỂN THÔNG DỤNG
Phương thức nền tảng cho việc truyền thông trên mạng là sự giao tiếp giữa hai máy chủ với nhau Những phiên làm việc 1-1(one-to-one or point to point) như vậy có nhiều thuận lợi cho việc điều khiển lưu thông dữ liệu giữa bên gửi và bên nhận như: cho phép thông báo nhận, yêu cầu truyền lại dữ liệu, thay đỗi tốc độ truyền…Chính vì thế mà mức độ an toàn dữ liệu được nâng cao
Nhưng nhiều ứng dụng Internet ngày nay thường yêu cầu các mô hình giao tiếp 1-n (one-to-many) hoặc n-n (many-to-many) để có khả năng đáp ứng việc truyền dữ liệu từ một nguồn (1-n) hoặc nhiều nguồn (n-n) đến những đích khác nhau Điều này có thể thực hiện bằng việc áp dụng các kỹ thuật phát chuyển:
máy nhận
Mặc dù, chỉ có một vài nơi thực sự có yêu cầu
máy chủ có yêu cầu
Chúng ta sẽ đi vào tìm hiểu từng kỹ thuật một
I.1 Khái quát về kỹ thuật unicast(Đơn phát)
Unicast là một chuẩn truyền thống của mô hình giao tiếp Client/Server Chuẩn cá biệt này dựa trên cơ sở những sự kết nối điểm-điểm (point-to-point) trong mạng định tuyến IP Mỗi kết nối trong kỹ thuật này, bất chấp đến nội dung dữ liệu là như thế nào, chúng đều dành riêng một phần băng thông để truyền dữ liệu trực tiếp đến máy nhận Điều này có nghĩa sẽ có nhiều bản sao chép của
cùng một dữ liệu được phát chuyển cùng lúc
Trang 8Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Trong việc phát chuyển nhiều điểm bằng unicast (unicasting) thì bên gửi sẽ
gửi nhiều bản sao dữ liệu riêng biệt đến nơi những máy nhận khác nhau Trong những trường hợp như vậy, thì số lượng máy nhận sẽ bị giới hạn bởi độ rộng băng thông máy gửi
Ví du:ï một ứng dụng mạng được cài đặt trên Ethernet 10 –Mbps và luồng dữ liệu cần đến 500 Kbps thì số lượng giao tiếp đồng thời sẽ không vượt quá 20
Việc truyền file từ FTP(File Transfer Protocol ) Server đến máy chúng ta là một ví dụ về unicast Dữ liệu file sẽ được chuyển khắp trên mạng và chỉ đến mỗi máy chúng ta thôi Nếu có 5 người khác nhau cùng lúc yêu cầu chép file này đến máy của họ bằng FTP Thì FTP Server phải gửi file này một cách riêng biệt đến 5 người và dĩ nhiên thì băng thông cũng bị hao phí gấp 5 lần cho việc phát chuyển cho một người
Unicasting tương thích với nhiều chương trình ứng dụng trên Internet ngày nay Bởi vì những ứng dụng này bao hàm những mối giao tiếp 1-1, đặc trưng của unicast Những cơ chế thuận lợi cho việc phát chuyển bằng unicast đó là: Cho phép bên gửi và bên nhận điều khiển lưu lượng phát chuyển, cung cấp cơ chế để bên nhận có thể thông báo rằng đã nhận được dữ liệu, hoặc yêu cầu truyền lại khi dữ liệu bị thất lạc…
Trang 9Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Ngay cả khi cùng dữ liệu phải được chuyển đến nhiều máy nhận, cùng thời điểm, unicasting vẫn làm việc tốt nếu như số lượng máy nhận là nhỏ Nhưng khi những giao thức unicast được sử dụng cho việc phân phối và phản hồi dữ liệu thì có những sự giới hạn cho việc đáp ứng những phiên làm việc song song trên thực thể server Dữ liệu phản hồi theo cách unicasting song song đến nhiều client đòi yêu cầu một khoảng phí khá lớn cho việc xử lý ở server và bộ đệm để duy trì trạng thái của những phiên làm việc Đồng thời, nó cũng phí phạm một cách quá
mức băng thông trên mạng [1]
I.2 Khái quát về kỹ thuật broadcast(Tổng phát)
Broadcast là một kỹ thuật phát chuyển một phiên bản thông điệp đến tất cả các nút mạng và để cho những nút này có quyết định cần thiết thông điệp hay không Một thuận lợi rõ ràng cho bên gửi là tác vụ nhân bản thông điệp là công
việc chung cho tất cả các máy chủ trên mạng [1]
Nhiều kỹ thuật phần cứng có bao gồm những cơ chế gửi gói tin đến nhiều đích cùng một lúc (hay gần như cùng một lúc) Với các kỹ thuật bus như Ethernet, việc phát chuyển có thể được thực hiện bằng một lần truyền gói tin Trên một số mạng có bao gồm thiết bị chuyển mạch với các kết nối điểm-nối- điểm, thì phần mềm phải cài đặt việc broadcast bằng cách chuyển đi các phiên bản của gói tin này qua từng kết nối đến khi tất cả các thiết bị chuyển mạch nhận được phiên bản này
Việc broadcasting trên WAN(Wide Area Network) phải phụ thuộc và các thiết bị mạng ở đó như là bộ định tuyến (router) để nhân bản và phân phát chúng trong mạng con kể cả WAN hay Internetwork Còn trên mạng LAN (Local Area Network) những hệ thống này tuỳ thuộc vào kỹ thuật broadcast trên LAN để phát
chuyển gói tin đến mỗi máy( như kỹ thuật Ethernet).[2]
Trang 10Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Việc broadcasting trên mạng WAN thường được sử dụng cho việc bảo trì hoặc việc nhận biết trạng thái của mạng Có hai loại kỹ thuật broadcast chính được sử dụng cho những chức năng này:
• Một là gửi những yêu cầu hỏi về trạng thái hoặc khả năng đáp ứng của các thành phần trong mạng.Ví dụ IP ARP (Address Resolution Protocol packets)
• Hai là truyền bá thông tin trên mạng
Việc lưu thông broadcast có thể nhanh chóng bùng nổ từ việc điều khiển ở những vùng lớn hơn (ví dụ lớn hơn 300 thiết bị mạng) làm giảm khả năng đáp ứng băng thông để phục vụ cho những nhiệm vụ nguy kịch trong ứng dụng, ngay cả việc lưu thông cho mục đích chung Ở những trường hợp xấu nhất, những cơn bão broadcast sẽ làm cho việc lưu thông trên mạng bị tắt nghẽn, bởi vì broadcast có thể độc quyền chiếm lĩnh tất cả những khả năng đáp ứng của băng thông
Thường thì, việc hạn chế truyền broadcast đến một mạng con như thế là cần thiết để ngăn chặn việc bùng nổ vô số các lưu thông khác tràn ngập trên toàn mạng Mặt khác, broadcasting đặt để một gánh nặng không cần thiết cho các trạm làm việc (Workstation) khi nhận được dữ liệu bằng việc broadcasting Bởi vì, ít nhiều một phần thông điệp cũng phải được xử lý để xem có cần thiết hay không Hơn nữa, nếu dữ liệu broadcast không được nơi nào chấp nhận thì tài nguyên trên
mạng sẽ bị tiêu tốn một cách vô ích.[1]
Trang 11Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Đối với hầu hết các kỹ thuật phần cứng, máy tính xác định việc phát chuyển broadcast bằng cách gửi đi một gói tin đến một địa chỉ đặc biệt, địa chỉ này được dành riêng hay còn được gọi là địa chỉ broadcast Lấy ví dụ: Địa chỉ phần cứng Ethernet bao gồm những định danh 48-bit, trong đó tất cả các bit là 1 được dùng cho broadcast Phần cứng trên mỗi máy nhận ra địa chỉ phần cứng của mỗi máy cũng như là địa chỉ broadcast, và chấp nhận gói tin gửi đến với địa chỉ
đích là một trong hai địa chỉ này.[2]
Việc giao trách nhiệm nhân bản gói tin cho máy nhận đã làm nhẹ đi công việc của nơi gởi Và đó cũng là một đặc trưng của broadcast Và đặc trưng này cũng tìm thấy ở multicast
I.3 Khái quát về kỹ thuật multicast (Đa phát)
Một số kỹ thuật phần cứng hỗ trợ cho một loại kỹ thuật thứ hai, ít thông dụng hơn của việc phát chuyển nhiều-điểm, gọi là multicast
Giống như broadcast, kỹ thuật multicast được hỗ trợ sẵn cho nhiều kỹ thuật mạng LAN Kỹ thuật Ethernet là một thí du Một loạt địa chỉ multicast được định nghĩa để cho trạm làm việc có thể giám sát và nhận dữ liệu, rất giống với sự giám sát địa chỉ broadcast
Trang 12Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Multicast chính là sự tổng quát của broadcast và unicast Không gửi dữ liệu đến một máy chủ duy nhất (unicasting), hay tất cả các máy chủ trên mạng (broadcasting), multicasting nhắm đến việc phát chuyển dữ liệu cho một nhóm các máy chủ chọn trước được gọi là host group Host group này được xác định bởi
địac chỉ multicast.[2]
Trong mạng LAN, giao diện mạng của mỗi máy chủ sẽ giám sát trên mạng và chấp nhận những gói tin gửi đến địa chỉ của nhóm mà máy này gia nhập Không giống như broadcasting, multicasting cho phép mỗi host chọn tham gia hay không và một host group
Việc multicasting trên mạng WAN tương tự như multicast trên mạng LAN Thực ra thì khái niệm host group trên hai mạng là như nhau Bởi vì, khái niệm này là nền tảng của việc phân loại Nhưng khi sang mạng WAN hay InternetWork, những thông tin về toàn thể thành viên liên quan đến host group sẽ được bảo lưu Thủ tục tham gia một nhóm và bảo lưu một hostgroup ở WAN sẽ khác với LAN vì các bộ định tuyến phải liên quan đến việc chuyển những thông
tin của nhóm với nhau để bảo lưu kết cấu multicast.[1]
Một khi host group được thiết lập và bên gửi bắt đầu phát chuyển gói tin đến địa chỉ nhóm, cơ sở hạ tầng mạng sẽ đảm nhiệm việc phân phát luồng dữ liệu cần thiết đến tất cả các thành viên trong nhóm Chỉ mỗi phiên bản thông điệp multicast sẽ được chuyển qua bất cứ thiết bị nối kết nào (ví dụ như bộ định tuyến) trên mạng Những bản sao chép của thông điệp chỉ phát sinh khi đường dẫn bị
phân nhánh ở bộ định tuyến có tác dụng bảo tồn băng thông [2]
I.4 So sánh các kỹ thuật phát chuyển unicast, broadcast và multicast
Như đã đề cập, unicast là một kỹ thuật phát chuyển theo mô hình giao tiếp 1-1, cơ sở cho việc truyền thông trên mạng, còn broadcast và multicast thì phát chuyển theo mô hình giao tiếp 1-n hoặc n-n Do đó, để có sự so sánh chặt chẽ giữa các kỹ thuật này, trước hết, chúng ta đi vào so sánh theo mô hình giao tiếp, hay so sánh giữa hai bên : một bên là unicast, một bên là broadcast và multicast, rồi sau đó mới so sánh sự khác biệt giữa multicast và broadcast
Trang 13Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
I.4.1 So sánh giữa unicast và tổ hợp broadcast, multicast
ü Phát chuyển đến duy nhất một máy
chủ
ü Mô hình giao tiếp 1-1 (one- to –one
hay point–to point) Mô hình giao tiếp
này là cơ sở cho việc truyền thông trên
mạng
ü Sẽ truyền nhiều bản sao dữ liệu khi
có nhiều yêu cầu phát chuyển cho
cùng một dữ liệu
ü Tác vụ nhân bản , và phát chuyển
dữ liệu là do máy gửi đảm trách
ü Giám sát được tiến trình phát
chuyển và có cơ chế bảo đãm cho việc
phát chuyển như: bên gửi và nhận có
thể điều khiển lưu lượng phát chuyển,
cơ chế thông báo nhận được hay phải
truyền lại khi bị thất lạc…
ü Phát chuyển đến nhiều máy chủ với một địa chỉ chung
ü Mô hình giao tiếp 1-n (one-to-many) hay n-n (many-to-many) Những mô hình này đáp ứng cho nhu cầu của các ứng dụng mạng ngày nay
ü Chỉ có một phiên bản dữ liệu trường truyền trên mạng (Không kể lúc rẽ nhánh)
ü Tác vụ nhân bản và phát chuyển dữ liệu máy gửi không đảm trách
ü Không giám sát được tiến trình phát chuyển Không có cơ chế đảm bảo cho việc phát chuyển dữ liệu
I.4.2 So sánh giữa broadcast và multicast
Trang 14Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
ü Phát chuyển dữ liệu đến tất cả các
máy chủ trên mạng và để cho các các
máy chủ này quyết định có nhận dữ
liệu hay không
ü Ngoài việc tiêu tốn n băng thông,
mỗi broadcast tiêu tốn tài nguyên trên
tất cả các máy cho việc tính toán
ü Những cơn bão broadcast khi phát
chuyển trên những mạng tương đối lớn
sẽ dẫn đến tắt nghẽn mạng
ü Phát chuyển dữ liệu đến một nhóm máy chủ được chọn để nhận dữ liệu
Các máy có quyền tham gia hay tách khỏi nhóm
ü Sự tiêu tốn băng thông và tài nguyên trên các máy thành viên không đáng kể
ü Khó có khả năng làm tắt nghẽn mạng
I.4.3 Nhận xét
Qua 2 bảng so sánh trên ta thấy rằng kỹ thuật phát chuyển một-nhiều nói chung và kỹ thuật multicast nói riêng có nhiều ưu điểm và giải quyết được phần
lớn các vấn đề tồn đọng trong vịêc lưu thông trên mạng so với các kỹ thuật còn
lại Mặc dù có vẻ tổng quát và ưu việt Song, multicast không thể phủ định được
các kỹ thuật thông thường bởi vì có một khác biệt cơ bản trong cơ chế cơ sở mà
cài đặt việc phát chuyển và gửi đi Các địa chỉ unicast, broadcast xác định một
máy tính hay một tập hợp máy tính được kết nối vào một đoạn vật lý (mạng) Vì
vậy, việc chuyển dữ liệu sẽ phụ thuộc vào sơ đồ cấu hình mạng Còn địa chỉ
multicast xác định một tập hợp máy bất kỳ, vì vậy cơ chế chuyển dữ liệu phải
nhân bản gói tin đến một phần của mạng Lấy ví dụ xét hai đoạn của mạng LAN
được nối nhau bởi thiết bị cầu nối (bridge) Một máy tính trên đoạn 1 chuyển một
khung dữ liệu (Frame) bằng unicast đến máy tính khác cũng trên đoạn này thì
bridge sẽ không chuyển frame đến đoạn 2 Nhưng bridge sẽ chuyển khi truyền
bằng multicast
Như vậy, ta có thể kết luận rằng: Mặc dầu sẽ dễ hiểu hơn khi chúng ta xem việc định địa chỉ multicast như là một sự tổng quát hóa, trong đó bao gồm
Trang 15Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
broadcast và unicast Song, cơ sở truyền dữ liệu và cơ chế phát chuyển sẽ làm cho multicast kém hiệu quả Tùy từng trường hợp cụ thể mà ta có sự ứng dụng các kỹ
thuật này một cách hợp lý và hiệu quả
II IP MULTICAST ĐẶC ĐIỂM VÀ ỨNG DỤNG
II.1 IP Multicast
II.1.1 Khái niệm
IP (Internet protocol) Multicast là một sự trừu tượng của multicast trong internet từ phần cứng Nó tuân theo mô hình mẫu cho khi cho phép việc truyền dữ liệu đến một tập con máy tính, nhưng tổng quát hóa khái niệm để cho phép các tập con này có thể trải ra trên những mạng vật lý bất kỳ thông qua internet Theo
thuật ngữ IP, tập con này được gọi là multicast group.[2]
II.1.2 Đặc điểm
IP Multicast có các đặt tính tổng quát sau:
thuộc lớp D Một vài địa chỉ IP Multicast được gán vĩnh bởi nhà quản lý Internet, tương ứng vơi những nhóm luôn luôn tồn tại ngay cả khi không có thành viên nào trong nhóm Các địa chỉ còn lại là tạm thời và được sử dụng vào việc riêng
4 bít đầu mặc định 1110) multicast group đồng thời Do vậy số lượng nhóm trong thực tế bị giới hạn bởi kích thước bảng định tuyến chứ không phải vì vấn đề địa chỉ
rút khỏi IP Multicast group bất kỳ lúc nào Hơn nữa một máy có thể cùng lúc là thành viên của nhiều nhóm bất kỳ
dụng multicast phần cứng để gửi IP Multicast Ngược lại nếu phần
Trang 16Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
cứng không hỗ trợ multicast thì IP sẽ sử dụng broadcast hoặc unicast để phát chuyển IP Multicast
group có thể gắn vào nhiều mạng vật lý, cần có những bộ định tuyến IP multicast đặc biệt để chuyển đi IP Multicast Nhưng thường thì khả năng này được thêm vào những bộ định tuyến thông thường
đa (best-effort) như cách phát chuyển IP datagram khác Điều này có nghĩa là các datagram gửi theo multicast có thể bị mất, bị trì hoãn, bị trùng lặp hoặc bị phát chuyển không theo thứ tự
Các thành viên và việc truyền Một máy bất kỳ có thể gửi datagram đến những multicastgroup bất kỳ; thành viên của nhóm chỉ được sử dụng để xác định
xem máy có nhận được các datagram đã gửi đến nhóm.[2]
II.1.3 Địa chỉ IP Multicast
Chúng ta đã biết rằng các địa chỉ IP Multicast chia làm 2 loại: những địa
chỉ được gán vĩnh viễn được gọi là well-known chúng được sử dụng cho những
dịch vụ chính yếu trên internet toàn cục cũng như cho việc bảo trì cơ sở hạ tầng Và các địa chỉ multicast khác tương ứng với các nhóm được tạo ra khi cần và hủy bỏ khi số lượng thành viên là 0
IP dành riêng các địa chỉ thuộc lớp D cho việc multicast Chúng có dạng như hình bên dưới:
Bốn bit đầu xác định đây là địa chỉ multicast Phần còn lại xác định địa chỉ multicast cụ thể Khi thể hiện dưới dấu chấm thập phân, miền địa chỉ multicast bao gồm từ: 224.0.0.0 đến 239.255.255.255
Tuy nhiên phần lớn các địa chỉ của không gian này được dành cho những mục đích đặc biệt
Các địa chỉ dành riêng:
0 1 2 3 31
1 1 1 0
Trang 17Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
thông điệp lỗi ICMP (Internet Control Message Protocol) cho các datagram
multicast (ví dụ không thể đến đích được, không có lời đáp trở lại, hoặc đã hết thời hạn) Như thế một lệnh ping gửi đến địa chỉ multicast sẽ không có lời đáp trả
về [2]
II.1.4 Phạm vi multicast
Phạm vi của một nhóm multicast dùng để chỉ vùng của các thành viên trong nhóm Nếu tất cả các thành viên trong nhóm đều ở trên cùng một mạng vật lý, ta nói rằng phạm vi của nhóm được giới hạn trên một mạng…
Cùng với phạm vi của nhóm, mỗi datagram multicast cũng cần có một phạm vi, được định nghĩa là tập hợp của các mạng mà trên đó datagram được nhân bản Một cách không chính thức, phạm vi datagram được xem như vùng của nó
IP sử dụng một kỹ thuật thông dụng nhất đó là kỹ thuật dựa vào trường thời gian sống (TTL-Time To Live) của datagram để kiểm soát vùng của nó Bằng cách thiết lập giá trị nhỏ cho TTL, máy tính sẽ giới hạn được khoảng cách mà datagram được chuyển đi Ví dụ hai chương trình chạy trên cùng một máy thì nên đặt TTL là 0 để cho datagram không vượt ra khỏi máy này Ở trên cùng một
mạng thì trị TTL nên đặt là 1.[2]
II.1.5 Phát triển phần mềm máy tính ứng dụng multicast
Để một máy tính gửi đi UP multicast, thì phần mềm phải cho phép chương trình ứng dụng xác định địa chỉ IP multicast như là địa chỉ IP đích Và phần mềm
Trang 18Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
giao tiếp mạng phải có thể ánh xạ một địa chỉ IP multicast thành địa chỉ phần cứng tương ứng
Việc phát triển phần mềm trên máy tính để nhận các datagram IP multicast phức tạp hơn Nó phải bao hàm những đặc điểm sau:
♦ Phần mềm IP trên máy tính phải có API (Application Programming
Interface) để cho phép một chương trình ứng dụng khai báo rằng
nó muốn tham gia hay rút ra khỏi một nhóm IP multicast cụ thể
♦ Nếu có nhiều chương trình ứng dụng tham gia một nhóm, phần mềm IP phải nhớ chuyển cho mỗi ứng dụng này một bản sao của những datagram gửi đến với chủ đích dành cho nhóm này
♦ Nếu tất cả các chương trình ứng dụng rút ra khỏi một nhóm, máy
tính phải nhớ rằng nó không còn tham gia trong nhóm này.[2]
II.2 IP multicast và những giao thức truyền file
Như đã đề cập, IP Multicast cung cấp những phương tiện khá mạnh mẽ và hiệu quả cho việc phát chuyển dữ liệu đến nhiều nhóm Với những tính năng đó,
IP Mulicast thích hợp cho việc truyền file trên mạng Tuy nhiên, việc truyền file bằng IP Multicast sử dụng giao thức tổng quát (IP và UDP) có một số vấn đề trở ngại đó là không có gì đảm bảo cho gói tin được truyền đến máy nhận và theo thứ tự gửi Do đó, các giao thức áp dụng trên kỹ thuật này phải được thiết kế sao cho việc phát chuyển có độ tin cậy, hay nói cách khác thông qua các giao thức này dữ liệu được đảm bảo sẽ đến máy nhận theo thứ tự mà chúng được gửi
II.2.1 Những giao thức vận chuyển IP Multicast có độ tin cậy (Reliable IP Multicast protocols)
Những giao thức này bảo đãm cho việc phát chuyển đến máy nhận và đúng theo thứ tự gửi Song, nó lại phát sinh ra một số vấn đề sau:
♦ Việc phản hồi hàng lọat từ máy nhận với những dạng nhận được (ACKs) hoặc thất lạc (NACKs) có thể dẫn đến tình trạng quá tải máy gửi hoặc các thiết bị nối kết với chúng (implosion)
Trang 19Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
♦ Làm thế nào để phục hồi được những gói tin bị mất Cách thông dụng nhất mà những giao thức này sử dụng là sẽ truyền lại những gói tin thất lạc bằng cách multicasting chúng đến nhóm Điều bất lợi của việc này là tất cả những máy nhận dù chúng có bị thất lạc gói tin hay không cũng đều phải nhận lại Mặc khác việc này sẽ làm giảm thiểu băng thông
♦ Những ứng dụng khác nhau có thể đặt ra những yêu cầu khác nhau Chính vì vậy, không lấy làm lạ khi rất nhiều giao thức này được đề xuất nhưng dường như chẳng có một giao thức nào đủ hoàn hảo để giải quyết mọi vấn đề
Có rất nhiều giao thức được đề xuất Tuy nhiên có ba giao thức thích hợp cho việc truyền file đó là AFDP-Adaptive Distribution Protocol, LGMP-Local
Group Multicast Protocol và MFTP-Multicast File Transfer Protocol [1]
II.2.2 Giao thức thích ứng việc truyền file AFDP (Adaptive File Distribution Protocol)
Đúng như tên gọi, AFDP cung cấp một khung sườn (framework) truyền file có độ tin cậy bằng multicast cho việc phát chuyển file Mặc dù giao thức này chủ đích là ứng dụng multicast Song, nó cũng có thể có thể mở rộng cho unicast và broadcast
Nhóm AFDP được tổ chức dựa trên ba thể hiện: những nhà xuất bản (publishers), những người mua (Subscribers) và một thư ký (Secretary) Là thành viên đặc biệt trong nhóm, Secretary có thể đáp ứng công việc quản lý các thành viên trong nhóm, ủy quyền cho publishers, quyết định nên chọn chế độ phát chuyển nào Mặc dù Secretary điều khiển toàn bộ thành viên trong nhóm Song,
Subscribers có thể tham gia hoặc tách khỏi nhóm bất kỳ lúc nào
Trang 20Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Mô hình liên lạc giữa các thành viên trong nhóm AFDP
Khả năng tin cậy của AFDP xuất phát từ việc Subscribers sử dụng NACKs để yêu cầu truyền lại gói tin thất lạc NACKs được phát sinh ở những lúc sữa chữa với độ trì hoãn khác nhau nhằm giảm thiểu tình trạng implosion xảy ra nơi
publishers.Publishers sẽ truyềnlại những gói tin thất lạc cho toàn nhóm
Cơ chế điều khiển lưu thông dựa trên cơ sở tốc độ được sử dụng để trì hoãn nơi publishers mỗi khi nhận được NACKs nhưng chúng có thể tăng tốc sau khi thành công
AFDP không chỉ định được giới hạn số lượng thành viên trong nhóm, nhưng giao thức này có thể đáp ứng khoảng 10 đến 1000 subcribers Điều này còn
tùy thuộc vào độ rộng băng thông và khả năng đáp ứng của trạm làm việc.[1]
Subcribers
Publishers
Tham gia hay tách khỏi Tìm Secretary Tìm
Secretary
Yêu cầu phát hành hoặc Cho phép phát hành hoặc Hoàn thành việc phát hành
Gửi hay hoặc truyền lại thông
điệp
Yêu cầu truyền lại
Giao thức:
UDP TCP Secretary
Trang 21Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
II.2.3 Giao thức Multicast nhóm địa phương LGMP( Local Group Multicast Protocol)
LGMP là một giao thức dựa trên khái niệm Local Group, một khái niệm cho phép những máy nhận tự do thiết lập thành một nhóm nhỏ gọi là nhóm địa phương (Local Group) và dùng một trưởng nhóm (group controller) bên trong chính nhóm này để sắp xếp sự truyền lại những gói tin thất lạc và xử lý những tường trình của nhóm
LGMP không đặt tả việc chọn nhóm trưởng như thế nào, mà nó lại được định nghĩa bởi một giao thức riêng biệt được gọi là Giao thức Cấu hình Động DCP-Dynamic Configuration Protocol
Những gói tin thất lạc được giám sát bởi máy nhận và những yêu cầu truyền lại được phát chuyển dưới dạng gói tin unicast Trước hết, những gói truyền lại được xử lý bên trong Local Group và những gói tin thất lạc chỉ đuợc yêu cầu từ hoặc là máy gửi, hoặc là trưởng nhóm nếu bản sao của gói tin không tồn tại trong nhóm này
Sự mô phỏng cho thấy LGMP có thể đáp ứng cho một Host group có đến 2000 thành viên
Trang 22Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Lưu đồ dữ liệu và điều khiển trong nhóm địa phương (Local Group).[1] II.2.4 Giao thức vận chuyển file bằng multicast MFTP (Multicast File Transfer Protocol)
MFTP được thiết kế cho một loại ứng dụng đó là multicasting file có dung lượng lớn cho nhiều máy nhận MFTP được thiết kế trên khái niệm khối (Blocks) Khối bao gồm hàn trăm hoặc ngàn khung dữ liệu (frame)và đa chuyển (multiple passes) Phần chuyển thứ nhất chứa toàn bộ file và những phần còn lại chỉ chứa đựng những frame bị thất lạc
Máy nhận thông báo ACK sau khi nhận mỗi một khối và sử dụng NACK để nói rằng những frame bên trong khối bị thất lạc hoặc bị lỗi Sau khi nhận xong một phần, máy gửi thống kê danh sách những frame thất lạc và bắt đầu những pass khác chỉ gồm những frame được thông báo NACKs Những pass khác có thể được bắt đầu lại nếu cần thiết cho đến khi tất cả máy nhận đều nhận đủ dữ liệu
MFTP bao gồm 2 giao thức con là: Giao thức điều khiển Multicast Multicast Control Protocol và Giao thức dữ liệu multicast MDP –Multicast Data
MCP-Máy nhận 1
Máy nhận 2
Máy nhận 4
Máy nhận 3 (nhóm trưởng)
Máy gửi
Nhóm địa phương
Dòng điều khiển Dòng dữ liệu
Trang 23Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Protocol MCP cho phép điều khiển động việc tham gia hoặc tách rời của máy nhận Trong khi MDP xử lý việc truyền tin cậy dữ liệu đến máy nhận (những máy đã tham gia vào Host group)
Máy gửi có trách nhiệm cho việc quản lý host group, khởi động sự vận chuyển file bất kỳ và việc điều khiển hoạt động vận chuyển Sự truyền tải dữ liệu sẽ được thông báo đến máy nhận bởi máy gửi Thông điệp Annouce chỉ định dữ liệu sẽ được truyền tải, kích thước và một số thông số khác như là địa chỉ riêng của nhóm Có 2 nhóm multicast khác nhau được định nghiã bởi MFTP đó là nhóm chung (public group) và nhóm riêng (private group) Địa chỉ nhóm chunglà nơi mà máy nhận có thể tham gia và lắng nghe thông báo được gửi từ máy gửi Tuy nhiên những máy nhận được ủy quyền bởi ứng dụng để nhận từ những cuộc truyền tải đặc thù mới có thể tham gia vào địa chỉ của private group
Máy nhận
Chiều dài tập tin Phần chuyển đầu tiên
Chiều dài tập tin Phần chuyển kế tiếp
Nguồn gửi
Khung
251 khối 1 Khung 288 khối 3 Khung 294 khối 3 Khung 101 khối 4 Khung 290 khối 4
Đa chuyển trong MFTP
Trang 24Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Với mô hình Open Groups, máy nhận sẽ không biết được máy gửi Điều này có nghĩa là máy gửi không thể thay đổi trên nhóm multicast bằng MCP Một máy nhận có thể hiện hành trong địa chỉ của các máy gửi mà nó quan tâm đến, bởi việc sử dụng thông điệp truy vấn nhóm(Group Query messages) MCP hoặc bởi việc sử dụng giao thức mô tả phiên làm việc bên ngoài
Thực nghiệm, MTFP mô hình Open Group đã áp dụng thành công cho
10.000 máy nhận.[1]
II.2.5 Nhận xét các giao thức trên
Qua phần trình bày, chúng ta nhận thấy dù các mô hình các kỹ thuật ứng dụng cho mỗi giao thức là khác nhau Song, chúng đều cố gắng hạn chế vấn đề implosion trong khi đãm bảo tin cậy cho việc phát chuyển bằng multicast
So với sự mô tả tổng quát, các giao thức trên có những ưu điểm rõ rệt và thích hợp cho việc ứng dụng truyền file Song, chúng chưa vượt qua được vấn đề tổng quát mà hầu hết các giao thức loại này đều phải gánh lấy Đó là việc phản hồi từ máy nhận vì những gói tin thất lạc, mặc dù đây không phải là giải pháp duy nhất để đãm bảo độ tin cậy Còn một giải pháp tiên tiến hơn để đãm bảo độ tin cậy rất thích hợp cho việc truyền file đó là kết hợp giữa FEC (Forward Error Correction) và truyền dữ liệu liên hoàn Giải pháp đó được ứng dụng trong giao thức Fcast, sẽ được trình bày bên dưới đây
II.2.6 Fcast- ứng dụng giao thức chuyển file bằng multicast với độ tin cậy
Có hai kỹ thuật sẽ được đề cập trong giao thức này:
-Data Carousel là một giao thức đơn giản nhằm tránh sự phản hồi từ máy
nhận Máy gửi sẽ lặp lại việc gửi dữ liệu đến máy nhận Máy nhận có hoàn chỉnh lại phần bị thất lạc trong file bằng cách đợi dữ liệu ở vòng lặp sau đó (chứ không yêu cầu truyền lại như các giao thức trên) Tuy nhiên nó phải đợi cả trọn một vòng lặp để phục hồi gói tin thất lạc
-Forward Error Correction (FEC) chẳng cần sự phản hồi từ máy nhận và
giảm thiểu thời gian đợi cho việc truyền lại bằng cách kết hợp một số gói tin sửa
Trang 25Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
lỗi trong dữ liệu Hầu hết FEC đều giải quyết việc sữa lỗi, nhận biết và sửa chữa những thất lạc và hõng hóc ở mức bit.Tuy nhiên, trong trường hợp IP Multicast thì những tầng thấp sẽ phát hiện ra được những gói tin hỏng và vứt bỏ chúng đi Vì vậy mà ứng dụng IP multicast không cần quan tâm đến sự hỏng hóc mà chỉ quan
tâm đến việc hiệu chỉnh thất lạc (EC-Erasure Correction).[3]
Được xây dựng trên sự phối hợp 2 kỹ thuật trên, Fcast có những ưu điểmmà các giao thức trên không hề có là:
• Không có sự phản hồi mà điều này tránh tuyệt đối vấn đề implosion
• Trong việc mã hóa và sửa lỗi FEC, Fcast đã chọn giá trị k tốt nhất (trong bộ mã (n,k)) để giảm tối thiều tổng phí truyền nhằm duy trì khả năng phục hồi sự thất lạc một cách tốt nhất
• Fcast đưa ra Việc truyền tải phân lớp trong Fcast nhằm điều khiển sự tắt nghẽn
• Không hề có chức năng kiểm tra trong Fcast nhằm tránh sự tắt nghẽn không cần thiết
• Fcast có API trên môi trường win32
Thực tế, Fcast đã được Microsoft sử dụng để phát chuyển thường xuyên các phiên bản cập nhật Windows 2000(336 MB)
Với những tính năng trên, đặc biệt Fcast được thiết kế cho việc truyền file
Vì vậy, giao thức này sẽ được chọn cho việc xây dựng ứng dụng của đề tài
Trang 26Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
PHẦN ỨNG DỤNG
Trang 27Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
III QUÁ TRÌNH THIẾT KẾ CÀI ĐẶT ỨNG DỤNG
III.1 Phân tích yêu cầu
Như tên gọi của đề tài “Ứng dụng IP multicast trong truyền file trên
Win32s” , chương trình ứng dụng sẽ cho phép người dùng thực hiện chia sẻ,
truyền tải dữ liệu giữa các người dùng trên mạng bằng kỹ thuật IP multicast và giao thức FCast
Vì ứng dụng kỹ thuật IP Multicast không cơ chế điều khiển, nên trong phần mềm ứng dụng phải có những tác vụ để cho các thành viên nhóm liên hệ chặt chẽ với nhau Các tác vụ đó là:
Nhóm Multicast
File F.dat
Chia sẻ dữ liệu (có F.dat)
Trang 28Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
• Hoạt động duy trì nhóm
• Một máy tham gia vào nhóm
• Một máy tách ra khỏi nhóm
• Chia sẻ và ngừng chia sẻ (share/ no share) dữ liệu
• Yêu cầu down load dữ liệu
• Mở một phiên truyền tải dữ liệu
• Thông báo đã nhận xong
• Cập nhật dữ liệu chia sẻ
• Một thành viên bị mất liên lạc (do có vấn đề nơi thiết bị mạng )
III.2 Đặc tả
III.2.1 Cấu trúc thông điệp tổng quát
Nội dung thông điệp tổng quát để giao tiếp giữa các thành viên có cấu trúc như sau:
LEAVE cho tác vụ tách nhóm.
III.2.2 Các kỹ thuật phát chuyển thông điệp
2 kỹ thuật phát chuyển được sử dụng cho việc thông báo giữa các thành viên trong nhóm Đó là:
• Mulicast: Dành cho việc thông báo đến toàn nhóm
• Unicast: Dành cho việc thông báo trả lời một cách riêng rẽ giữa các thành viên với giao thức TCP/IP
III.2.3 Các hoạt động nhóm trong ứng dụng
III.2.3.1 Duy trì nhóm
TỪ KHÓA ĐỐI SỐ 1 ĐỐI SỐ 2
…