Đánh dấu tất cả các gói tin đến hàng đợi Thuật toán 1.1 Thuật toán RED Trong đó: avg: kích thước trung bình của hàng đợi minth: ngưỡng tối thiểu maxth: ngưỡng tối đa pa: xác suấ
Trang 1MỤC LỤC
Chương 1 Mở đầu 4
1.1 Giới thiệu 4
1.1.1 Giới thiệu đề tài 4
1.1.2 Mục tiêu của đề tài 4
1.1.3 Phạm vi của đề tài 4
1.2 Tổng quan 5
1.2.1 Băng thông hiện hành 5
1.2.2 Băng thông thực tế 8
1.2.3 Các luồng dữ liệu 8
1.3 Các cơ chế hủy gói tin 9
1.3.1 Tắc nghẽn là gì? 9
1.3.2 Kiểm soát tắc nghẽn 10
1.3.3 Các cơ chế quản lý hàng đợi 11
Chương 2 Ước lượng băng thông hiện hành 23
2.1 Các vấn đề của ước lượng băng thông hiện hành 23
2.2 Các hướng tiếp cận chính 23
2.3 Các đóng góp tiểu biểu trong việc ước lượng băng thông hiện hành 26
2.4 Kỹ thuật Pathload 26
2.4.1 Khái quát: 26
2.4.2 Phương pháp xác định xu hướng tăng giảm của chuỗi giá trị OWDs: 29 2.4.3 Dự đoán xu hướng: 30
2.4.4 Xác định đoạn hội tụ: 30
Trang 22.5 Kỹ thuật PathChirp: 31
2.5.1 Khái quát: 31
2.5.2 Cách phân vùng 33
2.5.3 Tính toán trên vùng: 34
2.6 Kỹ thuật IGI 34
2.6.1 Khái quát: 34
2.6.2 Mô hình Single-hop: 37
2.7 Kỹ thuật Spruce: 39
2.7.1 Khái quát: 39
Chương 3 Giải pháp – Xây dựng công cụ 41
3.1 Mối liên hệ giữa việc hủy gói tin và tốc độ luồng dữ liệu 41
3.1.1 Giả thiết 41
3.1.2 Xác định và ước tính tốc độ của luồng 41
3.1.3 Hủy gói tin 42
3.1.4 Tốc độ đạt được (Gain rate) 43
3.2 Giải pháp đo băng thông thực tế 48
3.2.1 Luồng không phản hồi 48
3.2.2 Luồng không phản hồi nhỏ 51
3.2.3 Luồng phản hồi 52
3.3 Xây dựng công cụ đo băng thông thực tế 54
3.3.1 Môi trường thực hiện 54
3.3.2 Xây dựng công cụ 54
Chương 4 Thực nghiệm 56
4.1 Mô hình mạng 56
Trang 34.1.1 Mạng cục bộ (LAN) 56
4.1.2 Mạng Internet 58
4.2 Sử dụng công cụ 59
4.3 Thực nghiệm và Đánh giá 60
4.3.1 Thử nghiệm 1 60
4.3.1 Thử nghiệm 2 63
4.3.2 Thử nghiệm 3 65
4.3.3 Thử nghiệm 4 66
4.3.4 Thử nghiệm 5 67
4.3.5 Thử nghiệm 6 68
4.3.6 Thử nghiệm 7 68
4.3.7 Thử nghiệm 8 69
Chương 5 Kết luận 71
5.1 Các kết quả đạt được 71
5.2 Các kết quả chưa đạt được 71
5.3 Hướng phát triển 72
Trang 4DANH MỤC HÌNH VẼ
Hình 1.1 Băng thông hiện hành trong khoảng thời gian [0, T] là bằng băng thông
trừ đi lưu lượng hiện hành 6
Hình 1.2 Băng thông và băng thông hiện hành 7
Hình 1.3 Thuật toán đánh dấu gói tin của RED 13
Hình 1.4 Cơ chế RED-PD trong router 17
Hình 3.1 Tỉ lệ hủy gói tin 46
Hình 3.2 Tốc độ đạt được (Gain rate) 46
Hình 3.3 Mô hình thử nghiệm 47
Hình 3.4 Tốc độ đạt được của luồng UDP 48
Hình 3.5 Tốc độ đạt được của luồng TCP 48
Hình 3.6 Tỉ lệ hủy gói tin 50
Hình 3.7 Luồng tốc độ nhỏ 52
Hình 3.8 Tốc độ nhận bão hòa 53
Hình 4.1 Mô hình mạng LAN 57
Hình 4.2 Mô hình mạng Internet 1 58
Hình 4.3 Mô hình mạng Internet 2 59
Hình 4.4 Tỉ lệ hủy gói tin với lưu lượng nền 25% 61
Hình 4.5 Tỉ lệ hủy gói tin với lưu lượng nền 50% 62
Hình 4.6 Tỉ lệ hủy gói tin với lưu lượng nền 75% 62
Hình 4.7 Tỉ lệ hủy gói tin của luồng UDP 63
Trang 5DANH MỤC BẢNG BIỂU
Bảng 3.1 Băng thông hiện hành (AWB) - Tốc độ nhận bão hòa (SRR) - Tốc độ
khi có gói tin bị hủy (RFD) 54
Bảng 4.1 Dự đoán tốc độ luồng UDP 64
Bảng 4.2 Kết quả băng thông hiện hành 65
Bảng 4.3 Kết quả băng thông thực tế 66
Bảng 4.4 Kết quả băng thông đường tuyền Internet 1 67
Bảng 4.5 Kết quả băng thông hiện hành của đường truyền Internet 1 68
Bảng 4.6 Kết quả băng thông thực tế của đường truyền Internet 1 69
Bảng 4.7 Kết quả băng thông thực tế của đường truyền Internet 2 69
Trang 6CÁC CHỮ VIẾT TẮT
ADR Asymptotic Dispersion Range
AFD Approximate Fairness through Differential Dropping
AIMD Additive-Increase/Multiplicative-Decrease
CHOKe CHOose and Keep for responsive flows, CHOose and Kill for
unresponsive flows FIFO First In First Out
FRED Flow Random Early Drop
IGI Initial Gap Increasing
PTD Packet Train Dispersion
RED Random Early Detection
RED-PD RED with Preferential Dropping
Spruce Spread PaiR Unused Capacity Estimate
Trang 7TÓM TẮT
Đề tài trình bày về giải pháp ước lượng băng thông thực tế - là băng thông mà
một ứng dụng có thể truyền dữ liệu thành công Chúng tôi sẽ phân tích và tiến hành thực nghiệm để chứng tỏ băng thông hiện hành không phải là băng thông thực tế, nghĩa là khi lưu lượng băng thông đã đầy nhưng ứng dụng vẫn có thể truyền đi được thành công một luồng dữ liệu nhỏ Băng thông đạt được của các luồng phản hồi và không phản hồi là khác nhau, và tùy thuộc vào đặc tính của lưu lượng dữ liệu hiện tại băng thông đạt được cũng khác nhau Dựa trên ý tưởng sử dụng tỷ lệ hủy gói tin, chúng tôi tiến hành thực nghiệm và phân tích sau đó đưa ra giải pháp trong việc ước lượng băng thông thực tế Kết quả thực nghiệm cho thấy giải pháp mà chúng tôi đề xuất có độ chính xác khá cao, và rất cạnh tranh với những giải pháp nổi tiếng khác
Trang 8ABSTRACT
In this work, we study the problem of measuring the achievable bandwidth –
maximum throughput that a flow between two hosts can achieve in the presence of cross-traffic We use analysis and experiments to show that the achievable
bandwidth is not the unused bandwidth – the bandwidth remaining after subtracting
the cross-traffic The achievable bandwidth of a responsive flow is far different from these of an unresponsive flow, and the achievable bandwidth of a flow is highly depends on both the current cross traffic rate and its components Therefore, applying the existed available bandwidth measurement techniques, which based on the cross traffic, to this problem would not give good results In this work, we propose a simple but very powerful method to measure the achievable bandwidth Experiments show that our approach gives a high accuracy in measuring the achievable bandwidth
Trang 9LỜI CẢM ƠN Nhóm thực hiện đề tài xin chân thành cảm ơn ĐH Quốc Gia TpHCM đã tài trợ cho nghiên cứu này Chúng tôi nhân dịp này cảm ơn ban chủ nhiệm Khoa đã tạo điều kiện thuận lợi về thời gian và nhân lực để thực hiện nghiên cứu
Chúng tôi xin chân thành cảm ơn BM MMT&VT đã hỗ trợ cơ sở vật chất, phòng lab cũng như các điều kiện thuận lợi cho nhóm nghiên cứu Cảm ơn các Thầy Cô trong hội đồng bảo vệ cao học, và đại học của các sinh viên đã tốt nghiệp dựa trên nghiên cứu này, các Thầy Cô đã có những góp ý giúp cho đề tài được hoàn thiện tốt hơn Chúng tôi cũng muốn cảm ơn các đồng nghiệp ở nước ngoài đã đọc và nhận xét bài báo, đã đưa ra các góp ý quan trong cho chúng tôi hoàn thành nghiên cứu được hoàn chỉnh hơn
Cuối cùng, xin được cảm ơn gia đình và bạn bè đã dành cho chúng tôi nhiều thời gian cũng như tình cảm, luôn ủng hộ chúng tôi trong quá trình làm nghiên cứu này
Trang 10Chương 1 Mở đầu
1.1 Giới thiệu
1.1.1 Giới thiệu đề tài
Từ năm 1997, khi Việt Nam bắt đầu gia nhập mạng truyền thông Internet, thì tốc
độ phát triển Internet của Việt Nam tăng vũ bão, đến hiện nay đã có khoảng hơn 31 triệu1 người sử dụng Internet Cùng với tốc độ phát triển Internet nhanh như vậy thì hàng loạt các ứng dụng sử dụng mạng Internet ra đời
Cùng một lúc có rất nhiều ứng dụng sử dụng mạng trên cùng một đường truyền Làm thế nào để một ứng dụng mạng có thể ước lượng được băng thông hiện tại mà ứng dụng có thể sử dụng được là bao nhiêu để có thể cung cấp dịch vụ cho người dùng hiệu quả Để hỗ trợ cho việc kiểm định chất lượng đường truyền, trong đề tài này chúng tôi sẽ nghiên cứu giải pháp và xây dựng công cụ hỗ trợ việc ước lượng băng thông thực tế nhằm nâng cao chất lượng dịch vụ cho các ứng dụng thời gian thực
1.1.2 Mục tiêu của đề tài
Chúng tôi sẽ nghiên cứu về vấn đề băng thông thực tế – là tốc độ tối đa mà một
ứng dụng mạng có thể truyền dữ liệu thành công Chúng tôi sẽ phân tích và tiến
hành thực nghiệm để chứng tỏ rằng băng thông thực tế không phải là băng thông hiện hành Chúng tôi sẽ đưa ra giải pháp và xây dụng một công cụ đơn giản nhưng
hiệu quả để đo băng thông thực tế
1.1.3 Phạm vi của đề tài
Đề tài giới hạn vào bài toán ước lượng băng thông thực tế của mạng có dây Các gói tin trên đường được giả thiết tuân theo nguyên lý FIFO Các router trung gian sử
Trang 11dụng nguyên lý store-and-forward Chúng tôi tập trung vào nhóm băng thông phổ biến của mạng Internet ngày nay dao động trong khoảng 0-100Mbps
1.2 Tổng quan
1.2.1 Băng thông hiện hành
Gọi P là một đường truyền Internet (path) từ điểm nguồn đến điểm đích P được cấu thành bởi H đoạn mạng2 (link), mỗi đoạn sử dụng kỹ thuật store-and-forward
Chúng tôi giả thiết rằng P cố định và duy nhất (nghĩa là không có sự thay đổi quá
trình định tuyến trong khi đang ước lượng băng thông hiện hành của đường truyền
P, và giả sử truyền thông giữa một cặp nguồn-đích duy nhất chỉ thông qua một
đường truyền duy nhất)
Băng thông (capacity/ raw bandwidth) của một đoạn mạng là lượng dữ liệu tối đa
mà đoạn mạng này có thể truyền tải trong một đơn vị thời gian, được đo bằng số bit
trên giây Băng thông của đoạn mạng i được kí hiệu C i
C: băng thông của một đường truyền:
Lưu lượng (traffic) là khối lượng dữ liệu đang truyền trên đường truyền,
được tính bằng đơn vị bit trên giây
Giả thiết rằng đoạn mạng i đang truyền tải Ci u i bit trong khoảng thời gian T Trong đó u i là phần [trăm] băng thông đang được sử dụng trên đoạn mạng i
2 Đoạn mạng: một đoạn kết nối giữa hai điểm liền kề nhau trên mạng
Trang 12trong khoảng thời gian T, 0 ≤ u i ≤ 1 Băng thông hiện hành (available bandwidth) của đoạn mạng i:
Ai = Ci(1 − ui)
( 1.3 )
Băng thông hiện hành của một đoạn mạng là phần băng thông còn lại chưa sử
dụng của đoạn mạng, nó phụ thuộc vào lưu lượng truyền tải hiện hành trên đoạn mạng đó
Băng thông hiện hành A của một đường truyền P trong khoảng thời gian T là
băng thông hiện hành nhỏ nhất của các đoạn mạng cấu thành nên đường
truyền P trong khoảng thời gian T:
A = mini=1 H {Ci(1 − ui)} = mini =1 H Ai
( 1.4 )
Đoạn mạng chật (tight link/ bottleneck link) là đoạn mạng có băng thông
hiện hành nhỏ nhất trong đường truyền Nếu đoạn mạng chật là đoạn mạng j
Trang 13Ví dụ trong hình 1.2, C i là băng thông của đoạn mạng i và A i là băng thông hiện
hành của đoạn mạng i, chúng ta thấy rằng đoạn mạng chật và đoạn mạng hẹp hoàn
toàn có thể khác nhau Trong ví dụ này, đoạn mạng 3 là đoạn mạng hẹp, tuy nhiên đoạn mạng hai mới là đoạn mạng chật
Hình 1.2 Băng thông và băng thông hiện hành
Chúng tôi lưu ý rằng khái niệm băng thông và băng thông hiện hành là hai khái niệm hoàn toàn khác nhau
Tên thuật ngữ Tiếng Việt Đơn vị (nếu có) Giải thích
nguồn đến nút mạng đích qua các router trung gian Capacity
(Bandwidth)
Băng thông Bit per second (bps) Băng thông tối đa của
đường truyền cung cấp Available
Bandwidth
Băng thông hiện hành
Bit per second (bps) Băng thông còn trống của
một đường truyền, bằng băng thông trừ đi lượng dữ liệu hiện hành
dây hoặc không dây) giữa hai nút mạng liền kề
Trang 14nhỏ nhất trên đường truyền Dispersion Độ giãn Second (s) Khoảng thời gian giữa hai
gói tin thăm dò liên tiếp nhau
Tight link Đoạn mạng
chật
Đoạn mạng có băng thông hiện hành nhỏ nhất xét trên cùng một đường truyền
Bottleneck link Đoạn mạng
Bit per second (bps) Lưu lượng dữ liệu đang
truyền trên đường truyền Achievable
Bandwidth
Băng thông đạt được
Bit per second (bps) Lượng dữ diệu tối đa có
thể được truyền qua đường truyền
Gain rate Tỉ lệ chiếm
Băng thông thực tế (achieved bandwidth) là băng thông tối đa mà một ứng dụng
mạng có thể truyền dữ liệu thành công
Lưu ý, băng thông hiện hành và băng thông thực tế là khác nhau
1.2.3 Các luồng dữ liệu
Trong đề tài này chúng tôi sẽ đề cập đến hai loại luồng dữ liệu, đó là luồng dữ liệu không phản hồi và luồng dữ liệu phản hồi
Trang 151.2.3.1 Luồng dữ liệu không phản hồi
Luồng dữ liệu không phản hồi, tương tự như luồng UDP
UDP là một giao thức phổ biến trong mạng Đặc điểm là đơn giản nhưng không đảm bảo tính đúng đắn của dữ liệu truyền giữa các tiến trình gửi và nhận vì UDP không xác định được phía nhận đã nhận được gói tin từ phía gửi hay chưa UDP được dùng để truyền âm thanh, hình ảnh…
1.2.3.2 Luồng dữ liệu phản hồi
Luồng dữ liệu phản hồi, chủ yếu là TCP
TCP là một trong những giao thức chính trong mạng Phức tạp hơn UDP, vì nó vận chuyển bảo đảm, theo thứ tự và có thể kiểm tra lỗi giữa hai tiến trình gửi và
nhận Ngoài ra nó còn có các cơ chế như kiểm soát luồng dữ liệu (flow control): bên gửi không gửi quá nhanh, làm tràn dữ liệu bên nhận; kiểm soát tắc nghẽn
(congestion control): điều tiết tốc độ gửi dữ liệu khi mạng quá tải TCP được dùng
đề truyền tập tin, mail, web…
Ngoài ra trong tài liệu này chúng tôi còn gọi luồng dữ liệu không phản hồi là luồng “xấu” (misbehaving flow) và luồng dữ liệu phản hồi là luồng “tốt”
1.3 Các cơ chế hủy gói tin
1.3.1 Tắc nghẽn là gì?
Trong việc gửi gói tin, gói tin có thể đến đích nhanh hoặc chậm hoặc có thể chẳng bao giờ đến được đích Ví dụ như khi ta tải về một tập tin, hôm nay có thể sẽ lâu hơn gấp đôi hôm qua Đa số chúng ta đã quen với điều này
Có rất nhiều lý do khiến điều này xảy ra, và một trong những lý do đó là tắc nghẽn (congestion)
Tắc nghẽn xuất hiện khi nhu cầu tài nguyên vượt quá khả năng (capacity), nghĩa
là lượng dữ liệu được truyền đến một gateway vượt quá băng thông tại gateway đó Lúc này với những gói tin không thể được truyền, có hai khả năng mà thiết bị
Trang 16(router) tại nơi nghẽn có thể làm là: chứa trong bộ đệm hoặc hủy chúng Thông thường các router chứa những gói tin dư thừa trong bộ đệm, hoạt động như mô hình
xử lý FIFO và chỉ hủy gói tin khi hàng đợi này đầy
Khi hàng đợi lớn dần, thì mạng được coi là tắc nghẽn; điều này dẫn tới tăng độ trễ trong việc gửi gói tin, tệ hơn là mất gói tin
1.3.2 Kiểm soát tắc nghẽn
Mục đích của việc kiểm soát tắc nghẽn (congestion control) đơn giản là làm sao
cho việc sử dụng mạng càng hiệu quả càng tốt, tức là đạt thông lượng (throughput) cao nhất có thể được trong khi duy trì được tỉ lệ mất gói tin nhỏ và độ trễ thấp Tắc
nghẽn cần được tránh bởi vì nó sẽ làm cho hàng đợi lớn lên và dẫn tới việc tăng độ trễ và mất gói tin; do đó kiểm soát tắc nghẽn còn được gọi là tránh tắc nghẽn
(congestion avoidance)
Ngày nay, băng thông mạng được cung cấp rất lớn, và câu hỏi “làm cách nào loại
bỏ tắc nghẽn” được chuyển thành “làm sao để sử dụng hiệu quả nhất băng thông hiện hành”
Có hai cách chính để triển khai các cơ chế kiểm soát tắc nghẽn:
Thiết bị đầu cuối (end-host): cơ chế kiểm soát tắc nghẽn TCP, được triển khai tại thiết bị đầu cuối TCP dựa vào thông tin phản hồi để xác định về tình trạng gửi của gói tin có đến đích hay chưa và dựa vào gói tin bị hủy để xác định tắc nghẽn TCP kiểm soát tắc nghẽn bằng cách thay đổi kích thước window qua cơ chế additive-increase/multiplicative-decrease AIMD
Routers: có nhiều cơ chế có thể được triển khai trên router như:
o Các thuật toán sắp xếp độ ưu tiên (scheduling algorithms): FIFO, Round-robin/ Weighted round-robin, Weighted fair queuing
o Xác định thứ tự loại dịch vụ
o Các cơ chế quản lý hàng đợi
Trang 17Ở tài liệu này, về phần kiểm soát tắc nghẽn, chúng tôi chỉ trình bày một số cơ chế quản lý hàng đợi tại router
1.3.3 Các cơ chế quản lý hàng đợi
1.3.3.1 Drop Tail
Drop Tail là một cơ chế quản lý hàng đợi đơn giản nhất được sử dụng bởi các router trong mạng Internet để quyết định khi nào thì hủy gói tin Mỗi gói tin đều được xử lý như nhau Khi hàng đợi đầy, gói tin mới đến sẽ bị hủy (drop) cho đến khi nào hàng đợi có đủ chổ để có thể chấp nhận lưu lượng truy cập đến
Đối với TCP, khi hàng đợi đầy, Drop Tail sẽ hoạt động và các gói tin sẽ bị drop
từ nhiều luồng, và những luồng này sẽ tự động giảm kích thước window của nó cùng một lúc, dẫn đến việc giảm thông lượng của đường truyền Vấn đề này được
gọi là global synchronization
1.3.3.2 Random Early Detection (RED)
Trong mạng tốc độ cao cần có một cơ chế để quản lý hàng đợi, giảm độ trễ, giảm việc hủy gói tin và tránh được global synchronization như đã trình bày ở phần trên
Để thực hiện được những mục tiêu kể trên cho hàng đợi FIFO thì cơ chế Random Early Detection (RED) ra đời
Gateway xác định tắc nghẽn bằng cách tính kích thước trung bình của hàng đợi (average queue size) Gateway có thể cảnh báo các kết nối tắc nghẽn bằng cách hủy
gói tin đến hoặc đánh dấu gói tin đó (thiết lập CE = 1 trong IP header) Khi kích
thước trung bình của hàng đợi vượt qua ngưỡng đã được thiết lập trước, gateway sẽ hủy hoặc đánh dấu từng gói tin với một xác suất nhất định
Thuật toán:
1 for gói tin đến
2 Tính kích thước trung bình của hàng đợi avg
3 if min th ≤ avg ≤ max th
4 Tính xác suất p a
5 Với xác suất p a, đánh dấu các gói tin đến hàng đợi
Trang 186 else if max th ≤ avg
7 Đánh dấu tất cả các gói tin đến hàng đợi
Thuật toán 1.1 Thuật toán RED
Trong đó:
avg: kích thước trung bình của hàng đợi
minth: ngưỡng tối thiểu
maxth: ngưỡng tối đa
pa: xác suất để đánh dấu gói tin
Với mỗi gói tin đến router, thuật toán sẽ tính kích thước trung bình của hàng đợi
avg bằng công thức:
avg = (1 − wq)avg + wqq ( 1.6 )
q là kích thước hàng đợi tức thời và w q là tham số quyết định tốc độ cập nhật
trung bình chiều dài hàng đợi Sau đó kích thước trung bình của hàng đợi avg sẽ được so sánh với hai ngưỡng là min th và max th.Nếu avg nhỏ hơn ngưỡng tối thiểu min th thì sẽ không có gì xảy ra Còn nếu nó lớn hơn ngưỡng tối đa max th mỗi gói tin đến đều bị đánh dấu (hoặc hủy)
Khi kích thước trung bình của hàng đợi nằm trong khoảng min th và max th thì lúc này các gói tin sẽ có một xác suất bị hủy (hủy ngẫu nhiên) trong khoảng từ 0 đến
xác suất tối đa max p Nói cách khác, khi kích thước trung bình của hàng đợi tăng từ
min th , xác suất gói tin bị đánh dấu tăng tuyến tính từ 0 cho đến max p và khi kích
thước trung bình của hàng đợi tăng hơn max th thìtất cả các gói tin đều bị đánh dấu
Trang 19Hình 1.3 Thuật toán đánh dấu gói tin của RED
Kích thước trung bình của hàng đợi avg thay đổi trong khoảng min th và max th,
xác suất để đánh dấu gói tin p b tăng tuyến tính từ 0 đến max p:
wq: được xác định bằng kích thước và thời gian của burst (lượt truyền liên tục không gián đoạn) được phép truyền tại gateway Có giá trị từ 0 đến 1
Theo đề nghị thì w q = 0.002
minth, maxth: hai giá trị này phụ thuộc vào kích thước trung bình của hàng đợi mong muốn Đề nghị maxth nên ít nhất lơn hơn hai lần min th
Trang 20 maxp: tham số này nên nhỏ vì mục tiêu của RED là không phải để hủy nhiều
gói tin khi đã vượt qua ngưỡng min th Đề nghị max p = 0.1
1.3.3.3 Stabilized RED (SRED)
Cơ chế Stabilized RED (SRED) cũng được dùng để ổn định kích thước hàng đợi
Ý tưởng chính của cơ chế này là thực hiện so sánh Khi có một gói tin đến, gói tin này sẽ được so sánh với một gói tin bất kì đã có trong bộ đệm (buffer) Nếu hai gói
tin này thuộc cùng một luồng thì sẽ được gọi là “hit” Mục đích của hit là dùng để: Uớc lượng số luồng đang hoạt động và tìm luồng “xấu” (misbehaving flow)
Định nghĩa “hit”: là khi hai gói tin thuộc cùng một luồng, tức là cùng đỉa chỉ nguồn và đích, cùng port và có cùng giao thức Không nhất thiết phải kiểm tra “hit” cho từng gói tin, cũng có thể chọn ngẫu nhiên nhiều hơn một gói tin
để kiểm tra
Việc so sánh này được thực hiện như sau: với mỗi gói tin đến, định danh (địa chỉ nguồn/ đích) của luồng của các gói tin này được thêm vào một danh sách cùng với nhãn thời gian (thời gian gói tin đến) và “Count” (ban đầu được thiết lập bằng 0) cho đến khi danh sách này đầy; sau đó khi có một gói tin đến, nó sẽ được so sánh với một phần tử bất kì trong danh sách Và danh sách này được gọi là danh sách
“zombie” (zombie list)
Là “hit”: nếu luồng của gói tin đến trùng với “zombie” thì xác định đây là một “hit” “Count” tăng lên 1 và nhãn thời gian được thiết lập lại thành thời gian gói tin đến bộ đệm
Không là “hit”: Nếu hai gói tin không cùng một luồng, thì xác định đây
không phải là “hit” Trong trường hợp này, với xác suất p, định danh của
luồng của gói tin mới đến được ghi đè lên “zombie” được dùng để so sánh
“Count” được thiết lập bằng 0 và nhãn thời gian được thiết lập thành thời
gian gói tin đến bộ đệm Với xác suất 1 – p thì không có sự thay đổi trong
danh sách
Trang 21Số lượng luồng N được ước tính từ P(t), là tần số của “hit” trong khoảng M/p gói tin gần nhất trước gói tin thứ t
M: kích thước danh sách zombie
Số lượng các luồng N trong khoảng thời gian ngắn trước khi gói tin t đến được ước tính là P(t) -1
.Giả sử chỉ có TCP, thì xác suất hủy gói tin sẽ tỉ lệ với N 2
Qui tắc cuối cùng để tính xác suất hủy gói tin p sred như sau:
Trang 22có thể dùng “hit” để tính trực tiếp xác suất hủy gói tin Điều này dựa trên ý tưởng rằng các luồng “xấu” gần như gây ra nhiều “hit” hơn Bởi vì các luồng “xấu” được cho rằng có nhiều gói tin đến hơn các luồng khác vì thế nên sẽ tạo ra nhiều các so sánh Làm cho chúng xuất hiện nhiều trong danh sách “zombie”
Ta có công thức cho xác suất hủy gói tin như sau:
( 1.12 )
1.3.3.4 RED with Preferential Dropping (RED-PD)
RED-PD, một cơ chế bảo vệ các luồng “tốt” khỏi các luồng “xấu” bằng cách lưu giữ trạng thái của từng luồng có băng thông cao và kiểm soát thông lượng của chúng trong lúc tắc nghẽn
RED-PD xác định các luồng có băng thông cao bằng cách sử dụng lịch sử hủy gói tin của RED, tức là những luồng đã được gửi cảnh báo tắc nghẽn Những luồng
có băng thông cao hơn băng thông mục tiêu (target bandwidth) đã được thiết lập thì được gọi là những luồng được theo dõi (monitored) RED-PD điều chỉnh thông
lượng của các luồng được theo dõi bằng cách hủy các gói tin theo xác suất tại một
bộ lọc (pre-filter) trước khi vào hàng đợi
RED-PD dùng lịch sử drop gói tin của RED để xác định những luồng băng thông cao Bởi vì RED drop gói tin theo xác suất, không phải là do tràn bộ đệm Hơn nữa lịch sử drop gói tin còn cho thấy được những luồng đã gửi tín hiệu tắc nghẽn
Một luồng sẽ được xác định khi có băng thông cao hơn băng thông mục tiêu và
băng thông của nó được thu bởi TCP tham khảo (reference TCP) cùng với RTT mục
tiêu (target RTT) R và tỉ lệ drop gói tin hiện tại là p Cho f(r, p) là tốc độ gửi trung bình (theo gói tin/ giây) của một luồng TCP với RTT là r và tỉ lệ drop gói tin là p
Trang 23( 1.13 )
Mục tiêu của RED-PD là xác định những luồng nào gửi nhiều hơn f(R, p) là tốc
độ của luồng TCP tham khảo
Hình 1.4 Cơ chế RED-PD trong router
Việc hủy gói tin được bằng cách sử dụng bộ lọc trước hàng đợi Các gói tin từ những luồng được theo dõi bị hủy bởi bộ lọc với một xác suất phụ thuộc vào mức vượt của tốc độ gửi của luồng Các luồng không bị theo dõi sẽ được trực tiếp cho vào hàng đợi
Nhưng sẽ không tốt khi hàng đợi chưa đầy mà các gói tin lại bị hủy tại bộ lọc Để tránh điều này thì khi kích thước trung bình của hàng đợi (tính như RED) nhỏ thì các gói tin sẽ không bị drop tại bộ lọc, và sẽ được chuyển sang cơ chế RED
Cần phải lặp đi lặp lại việc tính toán xác suất hủy gói tin cần thiết để làm giảm
tốc độ của luồng đến f(R, p), băng thông mục tiêu
Một luồng sẽ được xác định lại nếu xác suất hủy gói tin của nó không đủ lớn để
giảm tốc độ đến hàng đợi nhỏ hơn f(R, p) Xác suất hủy gói tin sẽ tăng cho các
luồng này Nếu luồng tự cắt giảm tốc độc gửi và không có trong danh sách hủy gói
Trang 24tin mới thì xác suất hủy gói tin sẽ bị giảm Với việc tăng giảm được lặp đi lặp lại như thế này, RED-PD xác định được xác suất hủy gói tin cho luồng bị theo dõi Xác suất hủy gói tin sẽ không bị thay đổi sau một khoảng thời gian nhất định sau lần thay đổi gần nhất, để đảm bảo rằng các luồng có thời gian phản ứng với thay đổi mới nhất
1.3.3.5 Flow Random Early Drop (FRED)
Với RED, các gói tin của mỗi luồng đều có xác suất drop gói tin như nhau RED không kiểm soát được các luồng UDP vì UDP không phát hiện việc mất gói tin, UDP không bị giảm tốc độ truyền khi các gói tin của nó bị mất, và RED cũng đối
xử không công bằng với các luồng giống hệt nhau
Vì vậy cơ chế Flow Random Early Drop (FRED) được giới thiệu, được điều chỉnh từ RED để tăng mức độ công bằng với nhiều loại luồng dữ liệu khác nhau
FRED hoạt động giống RED, nhưng FRED sử dụng thêm hai biến là min q và
max q dùng để giới hạn tối thiểu và tối đa của số gói tin được cho phép chứa trong bộ
đệm Hơn nữa, FRED còn sử dụng thêm biến avgcq, là kích thước trung bình của
hàng đợi cho mỗi luồng (average per-flow queue length)
FRED đếm số lượng các luồng hoạt động và đếm những gói tin có trong mỗi
luồng FRED chỉ ảnh hưởng đến luồng nào có gói tin trong hàng đợi lớn hơn min q
Không một luồng nào được cho phép vượt qua max q Với các luồng có số lượng
gói tin trong hàng đợi nhiều hơn max q thì FRED sẽ drop tất cả các gói tin đến và
tăng biến strike của luồng đó Nếu luồng nào có strike lớn hơn 1 thì thì luồng đó
không được phép thêm vào hàng đợi nhiều hơn kích thước trung bình của hàng đợi của luồng đó
Kích thước trung bình của hàng đợi của một luồng avgcq được tính bằng cách chia kích thước trung bình của hàng đợi avg (tính như RED) cho số lượng luồng
đang hoạt động
Trang 25Với RED kích thước trung bình của hàng đợi avg chỉ được tính khi có gói tin đến Điều này làm cho avg có thể sai khi trong một thời gian dài không có gói tin nào đến và các gói tin trong hàng đợi bắt đầu được truyền đi, làm cho avg không được cập nhật Với FRED avg được tính khi có gói tin đến và cả khi gói tin được
truyền đi
1.3.3.6 CHOKe
RED không có tác dụng với các luồng không phản hồi (unresponsive flow) Để
cải thiện điều này thì có cơ chế FRED hoặc RED-DP Tuy nhiên RED-PD thì cần phải thu thập các thông tin về các luồng “không thân thiện” trong khi đó FRED cần
có các thông tin về các kết nối đang hoạt động Ngoài ra còn có cơ chế SRED, SRED ước tính các kết nối đang hoạt động và tìm ra các luồng “xấu” bằng cách sử dụng một cấu trúc dữ liệu gọi là danh sách “zombie” Nhưng việc triển khai SRED khá phức tạp
Giới thiệu CHOKe, một cơ chế tương tự như FRED nhưng không cần phải duy trì bất cứ thông tin nào
Ý tưởng cơ bản của CHOKe là sử dụng nội dung trong bộ đệm FIFO để tạo một thống kê đầy đủ về các lưu lượng đến và có thể dùng để xử lý các luồng “xấu” Khi gói tin đến router bị tắc nghẽn, CHOKe chọn bất kì một gói tin từ bộ đệm FIFO và
so sánh nó với gói tin đến vừa nhận được Nếu cả hai gói tin đó đều cùng một luồng, thì cả hai sẽ bị hủy, ngược lại gói tin được chọn ngẫu nhiên vẫn được giữ lại còn gói tin mới đến sẽ được đưa vào bộ đệm với một xác suất phụ thuộc vào mức
độ tắc nghẽn (xác suất này được tính giống như RED) Trong hàng đợi gần như chứa nhiều gói tin thuộc về luồng “xấu” hơn nên các gói tin này cũng được chọn ngẫu nhiên để so sánh nhiều hơn vì thế các gói tin của luồng “xấu” sẽ bị hủy nhiều hơn các gói tin của luồng “tốt”
Nếu kích thước trung bình của hàng đợi (được tính như RED) nhỏ hơn min th, thì các gói tin đến đều được cho vào hàng đợi Nếu kích thước trung bình của hàng đợi
lớn hơn max th thì các gói tin đến đều bị hủy Khi mà kích thước trung bình của hàng
Trang 26đợi lớn hơn min th, thì mỗi gói tin đến được so sánh với một gói tin được chọn ngẫu nhiên trong FIFO bộ đệm Nếu hai gói tin này có cùng luồng định danh thì cả hai sẽ
bị hủy Mặt khác, gói tin được chọn ngẫu nhiên vẫn được giữ lại trong bộ đệm và gói tin đến sẽ bị hủy tùy thuộc vào kích thước trung bình của hàng đợi với một xác suất (được tính như RED)
1.3.3.7 Active Queue Management for Flow Fairness and Stable Queue
Length
Hai mục tiêu chính trong quản lý hàng đợi: công bằng giữa các luồng và kích thước hàng đợi ổn định Trong cơ chế này, các luồng băng thông cao sẽ được xác định bằng kĩ thuật cache đa cấp (multilevel caching) Sau đó sẽ tính xác suất hủy gói tin để giải quyết tắc nghẽn, và áp dụng nó cho từng luồng riêng biệt phụ thuộc vào tốc độ gửi của chúng
Để chia sẻ các luồng công bằng thì có hai cách:
Sắp thứ tự gói tin (packet scheduling): bằng cách chọn gói tin thích hợp trong các gói tin đang trong hàng đợi
Hủy gói tin: hủy gói tin theo tỉ lệ phụ thuộc vào tốc độ gửi
Việc duy trì kích thước hàng đợi ổn định là rất quan trọng cho việc nâng cao chất lượng dịch vụ cũng như tăng khả năng sử dụng và giảm chi phí bộ đệm Với một hàng đợi ổn định, một luồng có thể có độ trễ cũng như tỉ lệ mất gói tin ổn định Có nhiều cơ chế Active Queue Management (AQM) để làm cho kích thước hàng đợi ổn định ví dụ như RED, Blue… tuy nhiên các cơ chế này không thực hiện kết hợp chia
sẽ công bằng giữa các luồng và duy trì kích thước hàng đợi ổn định cùng với nhau Giới thiệu cơ chế Fairness-enforcing AQM, kết hợp hiệu quả công bằng và xử lý tắc nghẽn Cơ chế này sẽ chỉ xác định và điều chỉnh các luồng băng thông cao Xác suất hủy gói tin của cơ chế này tập trung cho việc ổn định kích thước hàng đợi và được phân phối cho các luồng băng thông cao
Trang 27Cơ chế này được chia thành hai phần: một là xác định và ước tính tốc độ của các luồng băng thông cao, hai là tính xác suất hủy gói tin
Để xác định và ước tính tốc độ của luồng băng thông cao có một cách đơn giản là đếm tất cả các gói tin đến để tính tốc độ gửi, nhưng mà việc theo dõi tất cả các luồng như thế này tốn nhiều tài nguyên Hoặc có thể sử dụng phương pháp lấy mẫu ngẫu nhiên như RED-PD hay AFD để giảm độ phức tạp Ước tính tốc độ bằng cách lấy mẫu ngẫu nhiên là đủ để xác định các luồng băng thông cao Tuy nhiên việc này không đủ chính xác để thực hiện công bằng cho băng thông, vì dữ liệu lấy mẫu dễ
bị thiên vị
Đề xuất phương pháp lấy mẫu và giữ (sample-and-hold) Với mỗi gói tin được lấy mẫu ngẫu nhiên để xác định một luồng Sau đó tạo một bộ đếm gói tin của luồng, và cập nhật cho mỗi gói tin tiếp theo sau Vì cách này đếm tất cả các gói tin đến của luồng được xác định nên tính được chính xác tốc độ của luồng Không yêu cầu trạng thái của từng luồng
Xác suất mà một luồng được xác định tỉ lệ tuyến tính với tốc độ của luồng Không cần phải duy trì trạng thái của các luồng nhỏ nên có thể giảm xác suất xác định của các luồng này để giảm chi phí Cơ chế này chỉ thiên về các luồng băng thông cao Giảm xác suất của các luồng nhỏ bằng cách dùng xác suất “match-hit” với các gói tin được cache Xác suất “match-hit” có nghĩa là xác suất mà một gói tin đến và một gói tin được chọn ngẫu nhiên trong bộ các gói tin được cache cùng thuộc về một luồng
Cơ chế xác định luồng duy trì một cache bao gồm n cấp trong k bộ ghi song song (parallel register) chứa tổng cộng k * n gói tin Sau khi nhận một gói tin mới, với
mỗi cấp của cache, cơ chế cập nhật ngẫu nhiên bộ ghi được chọn với gói tin mới với xác suất nào đó Do đó có thể giả định rằng mỗi cấp của cache chứa tất cả các gói tin tỷ lệ với tốc độ luồng gửi Cơ chế xác định luồng băng thông cao như sau: khi một gói tin đến, nó được so sánh với cache với một xác suất được cho, và luồng này được xác định là luồng băng thông cao khi mỗi cấp của cache có ít nhất một gói tin
Trang 28từ luồng này Khi một luồng đã được xác định thì sẽ tạo một entry cho luồng này trong bảng hash, và đếm các gói tin từ luồng này để tính tốc độ gửi của nó
Sau đây là cách xác định xác suất hủy gói tin để chia sẻ băng thông công bằng
cho những luồng băng thông cao đã được xác định Ta có xác suất hủy gói tin P của
một luồng như sau:
( 1.14 )
Bf: băng thông chia sẻ công bằng
R0: tốc độ gửi trung bình của luồng
Phương pháp này được gọi là sending-rate-based drop, vì nó tính xác suất hủy gói tin trực tiếp từ tốc độ gửi Phương pháp này cho thấy rằng nó hiệu quả với các luồng không phản hồi Tuy nhiên, với các luồng phản hồi nó có thể gây ra những biến động nghiêm trọng cho tốc độ gửi do việc kiểm soát tắc nghẽn của TCP Với luồng phản hồi, xác suất hủy gói tin được dựa vào tỉ lệ hủy gói tin trung bình của
nó Phương pháp này được gọi là loss-rate-based drop Ta có xác suất hủy gói tin P
cho luồng phản hồi như sau:
( 1.15 )
P0: tỉ lệ hủy gói tin trung bình Đối với luồng mới thì P 0 được khởi tạo bằng tỉ lệ hủy gói tin của các luồng đã có trước đó
Trang 29Chương 2 Ước lượng băng thông hiện hành
2.1 Các vấn đề của ước lượng băng thông hiện hành
Lợi ích của việc xác định băng thông hiện hành rất lớn Tuy nhiên, câu hỏi đặt ra: liệu những công cụ đo băng thông hiện hành có đáp ứng chính xác và đầy đủ các yêu cầu của các ứng dụng mạng:
Ước lượng được băng thông trong khoảng thời gian cho phép theo yêu cầu của các ứng dụng khác nhau
Có thể ước lượng chính xác trong các môi trường mạng khác nhau:
- Băng thông nhỏ hẹp
- Mạng ad hoc di động không dây
- Mạng vệ tinh (satellite network)
- Mạng băng thông rộng với tốc độ cao (> 1Gbps)
- Mạng với nhiều thiết bị nối kết đa dạng (router, switch layer 2, …)
- Mạng với nhiều cơ chế hàng đợi khác nhau
Trong hướng bị động, các công cụ thông thường được đặt ở các thiết bị trung chuyển dữ liệu như router, switch nên không khả thi trong việc ứng dụng đầu cuối muốn thăm dò băng thông hiện hữu của đường truyền Trong phạm vi đề tài này,
Trang 30chúng tôi đặt mục tiêu thăm dò băng thông tại các máy tính đầu cuối, nên hướng tiếp cận của chúng tôi sẽ tập trung vào hướng chủ động
Các giải pháp để ước lượng băng thông hiện hành theo hướng chủ động có thể chia làm ba nhóm giải pháp chính: Packet Train Dispersion, Probe Gap Model, và Probe Rate Model
Packet Train Dispersion (PTD): PTD là phương pháp đơn giản nhất để ước lượng băng thông hiện hành Trong phương pháp này, bên gửi sẽ gửi
liên tục N gói tin (back-to-back packets) cùng kích thước L đến bên nhận
Để ước lượng được băng thông hiện hành, tốc độ gửi N gói tin này phải
lớn hơn băng thông hiện hành của đường truyền Khi các gói tin đến bên nhận, chúng ta có thể đo thông số độ giãn (dispersion: khoảng cách thời
gian) Δ(N) của chuỗi gói tin thăm dò Độ giãn là khoảng thời gian giữa lúc
nhận bit cuối cùng của gói tin thứ nhất và bit cuối cùng của gói tin cuối
cùng Với chuỗi gói tin thăm dò gồm N gói, thì ước lượng băng thông hiện
hành theo công thức sau:
( 2.1 )
cprobe [11] cài đặt theo phương pháp này Cprobe gửi một chuỗi các gói ICMP echo ngắn đến địa chỉ đích và giả thiết sẽ được trả lời bởi các gói ICMP Echo-reply Sau đó bên gửi đo độ giãn của các gói ICMP Reply Chú ý rằng, đường truyền ngược lại có thể là đường truyền khác, nếu vậy thì sẽ ảnh hưởng đến kết quả đo
Hạn chế của phương pháp Packet Train Dispersion: Dovrolis et al chỉ ra trong [12] công thức (2.1) tính toán đại lượng Asymptotic Dispersion Range (ADR) Đại lượng ADR có liên quan đến mức độ tận dụng tất cả đoạn mạng trên đường truyền Nếu không có lưu lượng lưu thông hiện tại
Trang 31thì ADR chính là băng thông của đường truyền (end-to-end capacity) Trong các trường hợp khác (có lưu lượng hiện hành) thì ADR không có liên hệ trực tiếp đến băng thông hiện hành và rất khó phân tích
Trước tiên, chúng ta xét trường hợp sử dụng hai gói tin gửi liên tiếp nhau Nếu có lưu lượng hiện hành trên mạng thì sẽ có thời gian chờ đợi ở hàng đợi Khi hai gói tin thăm dò đi ngang qua đoạn mạng chật, thì độ giãn của chúng là lớn nhất, nhưng nếu sau đó đến một nút mạng khác, gói tin thứ nhất đợi xử lý ở hàng đợi lâu, gói tin thứ hai đợi xử lý nhanh, như vậy độ giãn của hai gói tin lại bị giảm đi Chính hiệu ứng này làm cho độ giãn đo được ở đầu nhận không có liên quan đến băng thông hiện hành của đường truyền
Trong trường hợp sử dụng một chuỗi các gói tin thăm dò gửi liên tiếp nhau, như vậy độ giãn của chuỗi gói tin sẽ lớn hơn, và dễ dàng hơn trong việc ước lượng băng thông Tuy nhiên chúng ta có thể thấy rằng, khi càng nhiều gói tin được gửi thì sự nhiễu bởi lưu thông hiện tại sẽ lớn hơn Bởi
vì có nhiều khe hở giữa các gói tin thăm dò, không phải chỉ một như trong trường hợp sử dụng một cặp gói tin
Probe Gap Model: ở nhóm giải pháp này, các công cụ sử dụng khoảng cách giữa hai gói tin ở đầu gửi và đầu nhận để ước lượng băng thông, vì khoảng cách giữa hai gói tin liên tiếp nhau có liên hệ chặt chẽ với lưu lượng dữ liệu đang truyền trên các đoạn mạng chật Vì vậy, nếu lấy băng thông của đoạn mạng chật trừ đi lưu lượng hiện hành đang truyền qua nó
sẽ tìm ra băng thông hiện hành Để tìm băng thông (capacity) của một đường truyền, người sử dụng có thể dùng công cụ nổi tiếng và có độ chính xác cao Pathrate Các giải pháp tiêu biểu trong nhóm tiếp cận này là IGI, Spurce, Abing, Maryni và Davoli
Probe Rate Model: phương pháp này sử dụng kỹ thuật Self-induced Congestion Kỹ thuật này dựa trên heuristic đơn giản, nếu tốc độ thăm dò
Trang 32vượt quá băng thông hiện hành thì các gói tin thăm dò sẽ bị “xếp hàng” ở các hàng đợi xử lý và làm tăng thời gian gửi gói tin Ngược lại, nếu các gói tin thăm dò được truyền với tốc độ thấp hơn băng thông hiện hành, thì
sẽ không có sự chậm trễ trong việc truyền các gói tin Băng thông hiện hành có thể được ước lượng tại thời điểm bắt đầu có sự tắt nghẽn Từ đó
có thể ước lượng được băng thông hiện hành Pathload, Pathchirp, PTR, TOPP là các ví dụ sử dụng phương pháp tiếp cận này
2.3 Các đóng góp tiểu biểu trong việc ước lượng băng thông hiện hành
Chúng tôi sẽ lần lượt mô tả các kỹ thuật đo nổi bật trong hai nhóm phương pháp Probe Gap Model và Probe Rate Model Cả hai nhóm Probe Gap Model và Probe Rate Model sử dụng các giả định sau:
Hàng đợi tại tất cả các router đều sử dụng mô hình xử lý FIFO
Các gói tin của lưu lượng hiện hành (cross-traffic) có kích thước nhỏ
Tốc độ trung bình của thông lượng hiện hành thay đổi chậm và phải là hằng số trong mỗi lần đo
Mô hình Probe Gap giả sử đoạn mạng cổ chai (bottleneck link) là đoạn mạng hẹp đồng thời cũng là đoạn mạng chật
2.4 Kỹ thuật Pathload
2.4.1 Khái quát:
Đây là một kỹ thuật trong nhóm Probe Rate Model Pathload sử dụng phương thức ước lượng băng thông hiện hành Self-Loading Periodic Streams (SLoPS) SloPS dựa trên nguyên tắc Self-induced Congestion Ý tưởng chính của Pathload là bên gửi sẽ gửi một chuỗi gói tin, mỗi gói tin i được gán một nhãn thời gian ti, và đầu nhận sẽ ghi nhận chuỗi thời gian nhận, giả sử ai cho gói tin thứ i Sau đó pathload tính Di = ai – ti, chú ý nếu đồng hồ của hai bên gửi và nhận có khác nhau cũng không ảnh hưởng đến kết quả ước lượng, chỉ có trường hợp đồng hồ hai bên khác nhịp thì sẽ có ảnh hưởng Giá trị D được gọi là relative One-Way Delay
Trang 33(OWD) Nếu mỗi gói tin kích thước L, được gửi trong khoảng thời gian T thì tốc độ truyền là R = L/T
Khi tốc độ truyền R lớn hơn băng thông hiện hành A thì chuỗi gói tin thăm dò sẽ gây ra quá tải ở đoạn mạng chật, như vậy độ trễ của các gói tin này sẽ tăng lên Như vậy khi R > A thì relative OWDs { , ,…, } sẽ có dạng chuỗi các giá trị tăng dần (biểu đồ2.1) Ngược lại, nếu tốc độ truyền nhỏ hơn băng thông hiện hành thì chuỗi gói tin thăm dò sẽ không gây ra quá tải ở các đoạn mạng chật nên độ trễ của các gói tin ở đầu nhận sẽ không thay đổi đáng kể Nghĩa là khi R <A, thì relative OWDs { , ,…, } sẽ không là chuỗi giá trị tăng dần (biểu đồ2.2) Cuối cùng, khi R có giá trị xấp xỉ A (chênh lệch không quá lớn) thì relative OWDs { , ,…, } không có xu hướng tăng hay giảm rõ ràng (biểu đồ 2.3)
Biểu đồ 2.1 - Sự biến thiên của OWD khi R > A
Sau khi dự đoán được R < A, Pathload sẽ tăng giá trị R tại chuỗi gói tin kế tiếp Ngược lại, Pathload sẽ giảm giá trị R Quá trình được lặp lại cho đến khi R hội tụ về giá trị băng thông hiện hành A Trong kỹ thuật này, điểm mấu chốt nằm ở việc xác định dãy OWDs có xu hướng tăng dần hay không
Trang 34Biểu đồ 2.2 - Sự biến thiên của OWD khi R < A
Biểu đồ 2.3 - Sự biến thiên của OWD khi R ≈ A
Trang 352.4.2 Phương pháp xác định xu hướng tăng giảm của chuỗi giá trị
Xét trường hợp chuỗi OWD phân bố tăng giảm liên tục, lúc đó giá trị PCT cao sẽ dẫn đến ngộ nhận R > A, nhưng thực chất R vẫn nhỏ hơn A Do đó nhóm tác giả đã
đề xuất giá trị PDT để phân biệt trường hợp này
2.4.2.2 PDT:
PDT là giá trị chênh lệch của OWD cuối cùng trừ cho OWD đầu tiên chia cho tổng chênh lệch của tất cả các OWD kề nhau:
Công thức (2) cho -1 ≤ PDT ≤ 1 PDT loại bỏ trường hợp zic zac kể trên vì khi
đó PDT sẽ gần bằng 0 Cũng qua thực nghiệm, nhóm tác giả cho rằng PDT > 0.55 thì PDT có nhãn “tăng”, còn PDT < 0.45 thì PDT có nhãn “giảm”, và trong khoảng [0.45; 0.55] được gán nhãn “không rõ ràng”
Trang 36Biểu đồ 2.4 - Minh họa giá trị của PCT và PDT với R > A
2.4.3 Dự đoán xu hướng:
Với PCT tăng, PDT tăng hoặc không rõ ràng thì chuỗi OWDs được xem là tăng Một trong hai giá trị PCT hoặc PDT giảm, giá trị còn lại giảm hoặc không rõ ràng thì chuỗi OWD được xem là giảm Nếu cả hai giá trị PCT, PDT đều không rõ ràng, hoặc một giá trị tăng và một giá trị giảm, thì Pathload sẽ hủy kết quả tính toán đối với chuỗi OWD này Bảng 1 tóm tắt giá trị OWD dựa vào nhãn của PDT và PCT
2.4.4 Xác định đoạn hội tụ:
Sau khi xác định được tình trạng của chuỗi OWD, Pathload sẽ quyết định tăng hoặc giảm R cho chuỗi thăm dò tiếp theo Với OWD tăng, tức xảy ra sự tắc nghẽn thì Pathload sẽ điều chỉnh giảm R và ngược lại với OWD giảm Quá trình được lặp lại cho đến khi R hội tụ Ở mỗi lần đo, Pathload lưu giữ giá trị R của lần đo trước
đó, và cập
PCT
Rõ
Trang 37Tăng Tăng Hủy Tăng
Không rõ Tăng Giảm Hủy
Bảng 2.5: Tóm tắt xu hướng của chuỗi OWD
dựa vào nhãn của PDT và PCT
nhật giá trị đoạn Sau khi thì dừng thuật toán ( cho trước) và kết luận với giá trị R hiện tại Tuy nhiên với trường hợp hủy kết quả (PDT
và PCT không rõ ràng), Pathload vẫn sử dụng R để điều chỉnh một khoảng giá trị gọi là vùng xám (grey region) Do đó khi đoạn tiếp cận
, hay thì thuật toán cũng dừng lại, với kết luận băng thông hiện hành không thể xác định được
2.5 Kỹ thuật PathChirp:
2.5.1 Khái quát:
Pathchirp là một kỹ thuật thuộc phương pháp Probe Rate Model, nên ý tưởng chính cũng tương tự Pathload Tuy nhiên Pathchirp có nhiều cải tiến so với Pathload, nhất là cải tiến về thời gian trung bình để ước lượng băng thông hiện hành
và giảm tải xử lý của CPU Đặc trưng của pathchirp là khoảng cách của chuỗi gói tin thăm dò (chirp probing train) tăng theo hàm mũ
Hình 2.6 - Một chirp thăm dò của pathchirp
Trang 38Pathchirp ước lượng băng thông hiện hành bằng cách gửi một loạt chirp, mỗi chirp là một chuỗi N gói tin kích thước P bytes phân bố cách nhau theo quy luật hàm mũ giảm dần với công sai , rồi sẽ phân tích sự phân phối tại đầu nhận Pathchirp giả thiết các nút mạng sử dụng store-and-forward với tốc độ xử lý không đổi (constant service rate), mô hình hàng đợi là FIFO:
Trong đó Ci là băng thông tại đoạn mạng i, Ai[a,b] là lưu lượng truyền giữa thời điểm a và b, pi là thời gian tối thiểu để gói tin từ bên gửi có thể đến router i Khoảng thời gian pi là bao gồm tốc độ truyền (tốc độ ánh sáng) + thời gian xử lý ở các hàng đợi trung gian B[t-τ, t] là băng thông hiện hành trong khoảng thời gian t- τ , t Trong thực tế gói tin thăm dò trong khoảng [t- τ , t] có thể đến router i bên ngoài khoảng thời gian [t- τ +pi, t+pi], vì vậy không đo chính xác giá trị B[t- τ , t]
Gọi Rk là tốc độ gửi gói tin k, ∆k là khoảng thời gian giữa gói tin k và k+1 P là kích thước gói tin Thì Rk = P/∆k Gọi độ trễ (queuing delay), tức là thời điểm máy đích nhận gói tin k trừ đi thời điểm máy nguồn gửi gói tin k đi là qk Thì chúng ta có:
o 0 tức là mạng không tắc nghẽn: B[t k , t k+1 ] > R k
o qk> qk -1, ngược lại mạng tắc nghẽn : B[t k , t k+1 ] ≤ R k
Dựa trên đặc tính này chúng ta sẽ tìm được B[t k* , t k*+1 ] ≥ R k* , trong đó k* là gói tin mà độ trễ bắt đầu tăng Sau đó tính trung bình ước lượng của từng gói tin và rồi trung bình từng chirp để tìm ra giá trị ước lượng cuối cùng là D Tuy nhiên, theo thực tế q không phân bố theo đơn điệu tăng (biểu đồ 2.7) Do đó pathchirp sẽ tiến hành phân vùng (excursion), đối với mỗi vùng khác nhau Pathchirp sẽ có cách tính toán khác nhau
Trang 39Biểu đồ 2.7 - Phân bố thời gian trễ của gói tin trong kỹ thuật Pathchirp
2.5.2 Cách phân vùng
Dựa vào nguyên lý tắc nghẽn thì
o , tức hiện giờ tốc độ thăm dò lớn hơn băng thông hiện
Trang 40o bất kỳ sao cho
o với j<i sao cho với , tức là xấp xỉ bằng , coi nhƣ trở về lại giá trị đầu tiên
o Và đặc trƣng này phải có số packet nhiều hơn L packets
Do đó, theo cách tính trên thì biểu đồ 2.7 có hai vùng, trong đó vùng thứ nhất có điểm kết thúc, trong khi vùng thứ hai không tìm đƣợc điểm kết thúc Vùng này sẽ đƣợc tính toán riêng
Do đó nhằm có giá trị chính xác thì nên lấyPhần còn lại: Những phần không thuộc đoạn tăng liên tiếp của chuỗi đặc trƣng hoặc phần là những số thuộc đoạn giảm thì