Các mơ phỏng đều có thể thay ựổi các tham số cấu hình mạng một cách dễ dàng qua file cấu hình mơ phỏng:
### Thiết lập seed cho các hàm lấy ngẫu nhiên sử dụng trong mô phỏng SEED 8789789465436
### Thời gian mô phỏng tối đa. Mô phỏng sẽ kết thúc khi tất cả các nút mạng đều nhận được dữ liệu hoặc thời gian chạy mô phỏng vượt quá giá trị thời gian tối đa này
CYCLE SIZE*CHUNKS*NEW_CHUNK_DELAY
### Tham số cho việc in thông báo ra màn hình tại các bước mơ phỏng chi tiết như thế nào DEBUG 0
### Số các nút mạng trong mô phỏng SIZE 1000
### Số các mảnh dữ liệu được truyền CHUNKS 500
### Kắch thước một mảnh dữ liệu CHUNK_SIZE 40000
### Thời gian nguồn phát sinh dữ liệu (miligiây) NEW_CHUNK_DELAY 300
### Kắch thước của contact list DEGREE 16
### Độ trễ thông báo: tối thiểu và tối đa MINDELAY 5
MAXDELAY 25
### Thời gian để bộ điều khiển Observer quan sát q trình mơ phỏng (ms) OBSERVER_STEP 10000
## Thời gian chuyển đổi giữa hai trạng thái kéo<->đẩy SWITCHTIME 4
### Số lần kéo và đẩy tối đa PUSHRETRY 1
PULLRETRY 1 ## Tốc độ rơi [0:1]
## Hiện tại,vì giao thức khơng cài đặt phương thức khôi phục thông báo nào ## nên sẽ xem như mạng luôn hoạt động tin cậy.
## Khơng có gói tin nào bị mất trên đường truyền DROP 0
## Số tối đa các kết nối active trong quá trình upload và download
## Kết nối active ở đây hiểu là các nút đang chủ động thực hiện kéo hoặc đẩy ## upload trong thao tác đẩy và download cho thao tác kéo.
ACT_UP 4 ACT_DW 4
## Kết nối Passive ở đây hiểu là nút hiện tại là nút đang tiếp nhận các yêu cầu kéo đẩy từ nút hàng xóm khác
## do đó nó sẽ tiếp nhận dữ liệu trong quá trình đẩy hoặc trả lại dữ liệu cho q trình kéo (của nút hàng xóm khác)
PAS_DW 4 PAS_UP 4
## Kắch thước cửa sổ trượt
## PUSH_WIN dành cho quá trình đẩy ## PULL_WIN dành cho quá trình kéo PUSH_WIN 10
PULL_WIN 10
#- - - - - - KHAI BÁO GIAO THỨC - - - - - -# #############Bộ tạo số ngẫu nhiên############# random p4s.util.RandomRLC random.seed SEED ##########Tham số mô phỏng######### network.size SIZE simulation.endtime CYCLE simulation.experiments 1 simulation.timebits 16 simulation.logtime OBSERVER-STEP simulation.stdout p4s.util.PrintLogs ## Định nghĩa mạng phủ protocol.link RandomizedNeighbor protocol.link.capacity DEGREE
## Định nghĩa giao thức dùng cho việc phân phối dữ liệu protocol.int Alternate protocol.int.linkable link protocol.int.transport urt ## Giao thức vận chuyển sử dụng protocol.urt UniformRandomTransportP4S protocol.urt.mindelay MINDELAY
protocol.urt.maxdelay MAXDELAY
## Giao thức quản lý băng thông
protocol.bwp bandwidth.BandwidthAwareProtocol #- - - - - - KHỞI TẠO - - - - - -# ## khởi tạo mạng phủ init.rndlink WireKOutUnd init.rndlink.k DEGREE init.rndlink.protocol link
## Khởi tạo giao thức quản lý băng thông init.bwi bandwidth.BandwidthAwareInitializer init.bwi.protocol bwp
init.bwi.debug DEBUG
## Định nghĩa các đăng thông upload và download tương ứng init.bwi.uploadBw 128000,180000,256000 init.bwi.downloadBw 640000,640000,640000 init.bwi.bandwidthPr 0.3,0.7,1 init.bwi.active_upload ACT_UP init.bwi.active_download ACT_DW init.bwi.passive_upload PAS_UP init.bwi.passive_download PAS_DW #init.bwi.srcup 128000 #init.bwi.srcdw 640000
## Khởi tạo giao thức phân bố các mảnh dữ liệu init.ii AlternateInitializer init.ii.protocol int init.ii.bandwidth bwp init.ii.chunks CHUNKS init.ii.chunk_size CHUNK_SIZE init.ii.push_retry PUSHRETRY init.ii.pull_retry PULLRETRY init.ii.switchtime SWITCHTIME init.ii.debug DEBUG
init.ii.pull_window PULL_WIN init.ii.degree DEGREE
## Khởi tạo thứ tự include.init rndlink bwi ii
#- - - - - - C O N T R O L S - - - - - -# ## Điều khiển nút nguồn phát sinh dữ liệu control.00 SourceObserver
control.00.protocol int
control.00.step NEW_CHUNK_DELAY
## Điều khiển cho phép thống kê các thao tác được thực hiện ## trong quá trình phân phối mảnh dữ liệu
control.04 OperationObserver control.04.protocol int control.04.step OBSERVER_STEP/5 control.04.size SIZE control.04.chunks CHUNKS control.04.FINAL control.04.debug DEBUG
## Điều khiển thống kê các hoạt động tiếp nhận dữ liệu tại các nút mạng control.08 ChunksObserver control.08.protocol int control.08.step OBSERVER_STEP control.08.size SIZE control.08.chunks CHUNKS control.08.FINAL control.08.debug DEBUG 4.4. Các kết quả mô phỏng
4.4.1. So sánh trực tiếp hiệu năng của các thuật toán
để có được cái nhìn rõ ràng nhất về các tác dụng của các ựề xuất dựa trên giao thức kéo ựẩy xen kẽ, tôi ựã tiến hành thực hiện mô phỏng cả ba giao thức trên cùng một cấu hình mạng với 1000 nút mạng, kắch thước contact list là 16 và số lượng mảnh dữ liệu là 500.
Các kết quả mô phỏng trả về theo các ựộ ựo về thời gian hồn thành, độ trễ vận chuyển dữ liệu và tỉ lệ thành công với các thao tác kéo ựẩy ựược ựồ thị hóa theo hàm phân bố xác suất CDF dựa trên công cụ vẽ ựồ thị gnuplot.
Hình 30. So sánh thời gian hồn thành giữa ba thuật tốn cài đặt
Qua ựồ thị, chúng ta có thể thấy tổng thời gian hoàn thành của thuật toán cải tiến số 1 tốt hơn hẳn so với hai thuật tốn cịn lại. Gần như 100% các nút kết thúc việc truyền nhận dữ liệu trong khoảng 76,8 chu kỳ. Thuật toán cải tiến số 2 cũng có thời gian hồn thành tốt hơn so với thuật toán kéo ựẩy xen kẽ nguyên gốc.
Thực tế thì trên bảng số liệu thu ựược, thời gian hồn thành trung bình của thuật tốn 1 là 76,79 chu kỳ; thời gian hồn thành trung bình của thuật tốn 2 là 77,57 chu kỳ và thời gian hoàn thành của giao thức kéo ựẩy xen kẽ nguyên bản là 77,83 chu kỳ. điều này là phù hợp với các dự ựoán của chúng ta do các thuật toán cải tiến ựều lựa chọn các hàng xóm có chọn lọc, thay vì lựa chọn một hàng xóm ngẫu nhiên như trong thuật tốn gốc; do đó xác suất kéo ựẩy mảnh dữ liệu tới các hàng xóm sẽ cao hơn thuật tốn gốc và từ ựó sẽ rút ngắn thời gian hồn thành hơn so với thuật tốn gốc.
Chúng ta cũng có thể giải thắch ựược việc thời gian hồn thành của thuật tốn 1 tốt hơn thời gian hồn thành của thuật tốn 2 một cách dễ dàng. Lý do bởi thuật toán 2 chúng ta lựa chọn các mảnh dữ liệu có số tuần tự nhỏ nhất mà nút hàng xóm khơng có dựa trên việc lựa chọn hàng xóm ngẫu nhiên trước. Việc lựa chọn hàng xóm ngẫu
nhiên trong thuật tốn 2 này vơ hình dung cũng mắc phải sai lầm tương tự thuật toán kéo ựẩy xen kẽ gốc.
Hình 31. So sánh độ trễ vận chuyển giữa ba thuật toán cài đặt
Kết quả ựồ thị so sánh ựộ trễ vận chuyển giữa ba thuật toán cài ựặt cho thấy thuật tốn 1 do có thời gian hồn thành tốt nhất nên ựộ trễ vận chuyển cũng khả quan hơn so với hai thuật tốn cịn lại. điều đó cũng cho thấy thuật tốn 2 dù có cải thiện hơn kết quả so với thuật toán kéo ựẩy xen kẽ gốc nhưng vẫn chưa có hiệu quả lắm trong việc làm giảm ựộ trễ vận chuyển dữ liệu. Nguyên nhân do với các mạng có kắch thước lớn, xác suất ựể lựa chọn ựúng ựược mảnh dữ liệu có số tuần tự nhỏ nhất mà nút hàng xóm chưa có, trong danh sách dữ liệu của nút hiện tại không cao. Dẫn tới xảy ra trường hợp bỏ trống chu kỳ. Vì vậy khơng chỉ tổng thời gian hoàn thành mà ngay cả ựộ trễ vận chuyển của thuật tốn 2 vẫn khơng tốt bằng thuật tốn 1.
Hình 32. So sánh tỉ lệ kéo đẩy thành cơng giữa ba thuật tốn cài đặt
Trong ba thuật toán cài ựặt, thuật tốn kéo đẩy xen kẽ nguyên gốc thể hiện kém hơn hẳn so với hai thuật toán cải tiến. Tỉ lệ tiếp nhận dữ liệu thành cơng của thuật tốn ngun gốc chỉ chủ yếu nằm trong khoảng 24,5% tới 35%. Trong khi với thuật toán cải tiến 1 và 2, tỉ lệ thành công cao hơn nhiều, nằm trong khoảng từ 27%-hơn 45%. Sự chênh lệch về tỉ lệ tiếp nhận dữ liệu thành cơng giữa hai thuật tốn 1 và 2 cho thấy sự ựúng hướng trong việc lựa chọn có chọn lọc các mảnh dữ liệu và hàng xóm thực hiện thao tác tại các chu kỳ kéo ựẩy. Việc lựa chọn có chọn lọc rõ ràng ựã giúp cho xác suất chuyển mảnh dữ liệu thành cơng (xác suất ựẩy ựúng mảnh mà nút hàng xóm chưa có hoặc kéo ựúng mảnh mà nút hàng xóm ựã có) cao hơn hẳn so với việc lựa chọn ngẫu nhiên của thuật toán nguyên gốc.
để chắc chắn cho các kết luận của mình, chúng tơi cũng ựã thực hiện mơ phỏng trên các cấu hình mạng khác nhau và kết quả thu ựược ựều tương tự với kết quả ở trên.
Hình 33. So sánh thời gian hồn thành giữa ba thuật tốn cài đặt với cấu hình mạng 5000 nút, kắch thước contact list là 24 và số lượng mảnh tin là 500
Hình 34. So sánh độ trễ vận chuyển giữa ba thuật tốn cài đặt với cấu hình mạng 5000 nút, kắch thước contact list là 24 và số lượng mảnh tin là 500
Hình 35. So sánh tỉ lệ tiếp nhận dữ liệu thành cơng giữa ba thuật tốn cài đặt với cấu hình mạng 5000 nút, kắch thước contact list là 24 và số lượng mảnh tin là 500
Bên cạnh việc thực hiện các mô phỏng ựể chứng tỏ hiệu quả hơn hẳn của các ựề xuất mới dựa trên thuật toán kéo ựẩy xen kẽ nguyên bản, chúng tôi cũng ựồng thời thực hiện các mô phỏng ựể xem xét sự ảnh hưởng của kắch thước mạng, kắch thước contact list và ựộ lớn dữ liệu (thể hiện bởi số lượng các chunk) tới các ựơn vị ựo hiệu suất như thời gian hoàn thành và ựộ trễ vận chuyển. Việc này nhằm giúp chúng tơi có được cái nhìn hồn thiện hơn hiệu quả của các thuật tốn được ựề xuất.
4.4.2. đánh giá biến thiên hiệu năng theo kắch thước mạng
Hình 36. Tổng thời gian hoàn thành trong trường hợp kắch thước mạng thay đổi (thuật tốn 1)
Hình 37. Tổng thời gian hồn thành trong trường hợp kắch thước mạng thay đổi (thuật tốn 2)
Hình 38. Tổng thời gian hồn thành trong trường hợp kắch thước mạng thay đổi (Thuật toán kéo đẩy xen kẽ nguyên gốc)
Hình 39. Độ trễ vận chuyển trong trường hợp kắch thước mạng thay đổi (Thuật tốn
Hình 40. Độ trễ vận chuyển trong trường hợp kắch thước mạng thay đổi (Thuật toán
2)
Hình 41. Độ trễ vận chuyển trong trường hợp kắch thước mạng thay đổi (Thuật toán
Qua các ựồ thị ựưa ra chúng ta có thể thấy kắch thước mạng có ảnh hưởng rõ rệt tới tổng thời gian hồn thành nhưng lại khơng có nhiều ảnh hưởng lắm tới ựộ trễ vận chuyển. Kắch thước mạng càng lớn thì thời gian ựể các nút mạng có thể tiếp nhận ựược tồn bộ các gói dữ liệu cũng lớn theo. Tuy nhiên ựộ trễ vận chuyển trên từng mảnh dữ liệu thì khơng bị ảnh hưởng nhiều. điều này cho thấy tắnh ổn ựịnh của cả 3 thuật tốn trong việc ựảm bảo chất lượng dịch vụ khơng phụ thuộc vào kắch thước mạng. Trong đó thuật tốn kéo ựẩy xen kẽ nguyên gốc do không sử dụng nhiều ràng buộc về quan hệ giữa các nút trong mạng nên có vẻ ựảm bảo tắnh ổn ựịnh này hơn cả. Kết quả này cũng hoàn toàn phù hợp với các kết quả ựược ựưa ra trong bởi bài báo [18].
4.4.3. đánh giá biến thiên hiệu năng theo kắch thước danh sách hàng
xóm
Hình 42. Tổng thời gian hoàn thành trong trường hợp contact list size thay đổi (thuật tốn 1)
Hình 43. Tổng thời gian hoàn thành trong trường hợp contact list size thay đổi (thuật tốn 2)
Hình 44. Tổng thời gian hoàn thành trong trường hợp contact list size thay đổi (thuật tốn kéo đẩy xen kẽ ngun gốc)
Hình 45. Độ trễ vận chuyển trong trường hợp contact list size thay đổi (thuật tốn 1)
Hình 47. Độ trễ vận chuyển trong trường hợp contact list size thay đổi (thuật toán kéo đẩy xen kẽ nguyên gốc)
Như chúng ta có thể dễ dàng nhận thấy qua các ựồ thị ựưa ra, với cả ba thuật toán ựược cài đặt, khi kắch thước contact list tăng thì tổng thời gian hồn thành cũng như ựộ trễ vận chuyển của mạng ựều giảm. điều này góp phần chỉ ra sức mạnh của mạng truyền thông ngang hàng trong việc phân bố dữ liệu trên diện rộng. Do trong mạng ngang hàng, dữ liệu ựược phân phối không chỉ bởi một nguồn phát duy nhất mà bởi tất cả các thành viên tham gia mạng. Vì vậy, một nút mạng có càng nhiều hàng xóm trong danh sách contact list thì khả năng để nó nhận ựược dữ liệu nhanh và ựầy ựủ càng cao.
4.4.4. đánh giá biến thiên hiệu năng theo số lượng mảnh dữ liệu
Hình 48. Tổng thời gian hoàn thành trong trường hợp số lượng mảnh tin thay đổi (thuật tốn 1)
Hình 49. Tổng thời gian hoàn thành trong trường hợp số lượng mảnh tin thay đổi (thuật tốn 2)
Hình 50. Tổng thời gian hoàn thành trong trường hợp số lượng mảnh tin thay đổi (thuật toán kéo đẩy xen kẽ nguyên gốc)
Một ựiều khá thú vị khi khảo sát ảnh hưởng của sự thay ựổi số lượng gói tin ựối với thời gian hồn thành là tắnh chất tuyến tắnh của kết quả. Thời gian hoàn thành tỉ lệ thuận với số lượng mảnh tin ựược sinh ra bởi nguồn phát với phân bố xác suất tương ựối ựồng ựều. điều này có thể giải thắch do giả thiết của mơ phỏng: nguồn phát với tốc ựộ khơng đổi rstr và các nút trong mạng cùng sử dụng một băng thông như nhau.
Hình 51. Độ trễ vận chuyển trong trường hợp số lượng mảnh tin thay đổi (thuật toán
1)
Hình 52. Độ trễ vận chuyển trong trường hợp số lượng mảnh tin thay đổi (thuật tốn
Hình 53. Độ trễ vận chuyển trong trường hợp số lượng mảnh tin thay đổi (thuật toán
kéo đẩy xen kẽ nguyên gốc)
Khi số lượng mảnh tin ựược phát ựi thay ựổi, chúng ta có thể thấy qua các ựồ thị, thuật toán 1 tỏ ra ổn ựịnh hơn cả trong việc ựảm bảo duy trì độ trễ vận chuyển trong khi đó thuật tốn kéo ựẩy xen kẽ lại khơng ổn ựịnh lắm. điều này là do khi số lượng mảnh tin tăng, xác suất ựể một thao tác kéo ựẩy ngẫu nhiên có thể thành cơng trong thuật tốn kéo ựẩy xen kẽ sẽ giảm nhanh hơn là các thao tác kéo đẩy có chọn lọc ựược cài ựặt trong thuật tốn cải tiến 1 và 2.
Như vậy, qua các kết quả mơ phỏng, chúng ta có thể thấy ựược các ựề xuất cải tiến trên cơ sở thuật toán và giao thức kéo ựẩy xen kẽ là hợp lý và hiệu quả. Không chỉ hiệu quả hơn giao thức gốc trong việc so sánh về tổng thời gian hồn thành, độ trễ vận chuyển, tỉ lệ chuyển phát thành công mà trong trường hợp số lượng mảnh tin thay ựổi hoặc kắch thước mạng và số lượng hàng xóm trong contact list thay ựổi.. các thuật toán mới cũng tỏ ra ổn ựịnh và tin cậy tương ựương, thậm chắ tốt hơn thuật toán gốc.
CHƯƠNG 5 Ờ KẾT LUẬN VÀ PHƯƠNG HƯỚNG TIẾP THEO
Khóa luận này là sự tổng hợp lại tồn bộ q trình thực hiện nghiên cứu của chúng tôi về truyền thông ựa phương tiện ngàng hàng theo phương thức kéo ựẩy và cụ thể là giao thức kéo ựẩy xen kẽ. Trong giao thức kéo ựẩy xen kẽ, các nút mạng liên hệ với các nút hàng xóm thơng qua việc lựa chọn ngẫu nhiên từ danh sách hàng xóm của nó ựể lần lượt kéo về các mảnh dữ liệu còn thiếu hoặc ựẩy ựi các mảnh dữ liệu nó đang sở hữu. Tận dụng nhược ựiểm có thể thấy ngay trong thiết kế thuật tốn kéo ựẩy xen kẽ ựó là các hàng xóm ựang ựược lựa chọn với phương thức ngẫu nhiên mà không có bất kỳ một cách thức chọn lọc nào khác; chúng tôi ựã cài ựặt bổ sung một thuộc tắnh cho các nút mạng tham gia giao thức. Dựa trên thuộc tắnh đó, chúng tơi ựã ựề xuất một phương pháp lựa chọn một cách có chọn lọc nút hàng xóm ựể kéo hoặc ựẩy dữ liệu; thay vì luôn lựa chọn một cách ngẫu nhiên như trong thuật tốn gốc. Với cách thức đó, chúng tơi đã giúp giảm thiểu sự lãng phắ chu kỳ và ựường truyền do ựảm bảo các dữ liệu ựược chuyển tới ựúng hàng xóm ựang cần; ựồng thời cũng làm tăng xác suất chuyển phát thành công, rút ngắn thời gian hồn thành và ựộ trễ truyền thơng của các mảnh dữ liệu Ờ một ựơn vị ựo hiệu suất hết sức quan trọng trong truyền thông ựa phương tiện thời gian thực.
để có thể phân tắch và bổ sung các ựóng góp của mình nhằm cải tiến giao thức kéo ựẩy xen kẽ áp dụng trong lĩnh vực phân bổ luồng truyền thông ựa phương tiện