Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 27

Tiểu luậ n mô n: Mạ ng Viễn Thô ng

TIỂU LUẬN MÔN: MẠNG VIỄN


THÔNG

Đề tài:

TÌM HIỂU CÁC CƠ CHẾ HÀNG ĐỢI TRONG


CHUYỂN MẠCH GÓI

Họ và Tên : NGUYỄN THANH BÌNH


Lớp : D12-KTDT
Khoa : ĐIỆN TỬ VIỄN THÔNG
Mã Sinh Viên : 1781510203

MSV: 1781510203 D12-KTDT


Tiểu luậ n mô n: Mạ ng Viễn Thô ng

Nộ i dung
LỜI MỞ ĐẦU...................................................................................4
I. CÁC PHƯƠNG PHÁP QUẢN LÝ HÀNG ĐỢI TRONG CHUYỂN MẠCH GÓI.....5
1.1 FIFO(First In First Out)...............................................................5
1.1.1 Phương pháp nhập trước xuất trước FIFO..............................5
1.1.2 Phương pháp FIFO thường được áp dụng cho những doanh nghiệp
như thế nào.................................................................................6
1.1.3 phương pháp FIFO so với các phương pháp định giá khác..........6
1.2 Priority Queue.........................................................................7
1.2.1 Priority Queue là gì?..............................................................7
1.2.2 Priority Queue ADT................................................................8
Các Operations phụ trợ trên Priority Queues......................................8
1.2.3 Ứng dụng của Priority Queue...................................................8
1.2.4 Triển khai Priority Queue........................................................9
1.3 Round Robin............................................................................10
1.3.1 Round Robin là gì?...............................................................10
1.3.2 Các đặc điểm của round robin...............................................11
1.3.3 Nguyên lý giải thuật toán Round Robin....................................11
1.3.4 Điều kiện giải thuật toán......................................................12
1.3.5 ưu nhược điểm của thuật toán..............................................13
1.3.6 Tăng giá trị lượng tử thời gian...............................................14
1.3.7 Giảm giá trị lượng tử thời gian...............................................15
1.3.8 Lập trình FCFS....................................................................15
1.3.9 Hiêu suất...........................................................................15
1.3.10 Thuật toán weights round robin............................................15
1.3.11 Thuật toán weights least connection......................................15
1.3.12 Thuật toán least response time.............................................16
2
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

1.4 Weighted Fair Queuing..............................................................16


1.4.1 Kỹ thuật hàng đợi Weighted Fair Queuing(WFQ)........................16
1.4.2 Định hướng và chính sách.....................................................18
II. ỨNG DỤNG CỦA CƠ CHẾ HÀNG ĐỢI TRONG CHUYỂN MẠCH GÓI..........19
2.2 Trong mạng Internet và hệ hống điện thoại di động.......................19
2.2.1 Truyền dữ liệu.....................................................................19
2.2.2 VoIP..................................................................................19
2.2.3 Video streaming..................................................................19
2.2.4 Truyền tải dữ liệu trực tuyến..................................................19
2.2.5 IoT....................................................................................20
2.2.6 ví dụ cụ thể........................................................................20
2.2.7 Các biến thể của queue.........................................................21
III KẾT LUẬN......................................................................................26
3.1 Tầm quan trọng của cơ chế hàng đợi trong chuyển mạch gói............26
3.2 Đề xuất các hướng phát triển trong việc quản lý hàng đợi trong chuyển
mạch gói......................................................................................27

3
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

LỜI MỞ ĐẦU

Mạng viễn thông là một lĩnh vực quan trọng và hấp dẫn trong ngành Công
nghệ thông tin và Truyền thông. Trong thời đại kỹ thuật số ngày nay, mạng
viễn thông đóng vai trò trung tâm trong việc kết nối và truyền tải thông tin
giữa các thiết bị, hệ thống và người dùng trên toàn cầu. Với sự phát triển
nhanh chóng của Internet, di động, và các ứng dụng truyền thông khác, mạng
viễn thông đã trở thành cột mốc quan trọng trong sự phát triển của xã hội
hiện đại.

Bài tiểu luận này nhằm tìm hiểu và phân tích các khía cạnh quan trọng của
mạng viễn thông nói chung và “cơ chế hàng đợi trong chuyển mạch gói” nói
riêng, từ cơ sở lý thuyết đến các công nghệ và ứng dụng thực tế. Tôi sẽ xem
xét các khái niệm cơ bản về mạng viễn thông, kiến trúc mạng, giao thức
truyền thông, bảo mật và quản lý mạng. Đồng thời, chúng tôi cũng sẽ khám
phá sự phát triển mới nhất và các xu hướng tiên tiến trong lĩnh vực này.

Bài tiểu luận sẽ bao gồm các kiến thức về chuyển mạch gói, một số giao thức
dùng kỹ thuật và cơ chế hàng đợi trong chuyển mạch gói. Tìm hiểu và phân
tích các cách thức xử lý hàng đợi hiện tại, đồng thời đề xuất các phương
pháp tối ưu hóa cơ chế hàng đợi trong mạng chuyển mạch gói để đảm bảo
hiệu suất và chất lượng dịch vụ.

Bằng cách tìm hiểu về chuyển mạch gói trong mạng viễn thông, tôi hy vọng
rằng bài tiểu luận này sẽ đóng góp vào việc nâng cao nhận thức và hiểu biết
về mạng viễn thông cũng như tầm quan trọng của nó trong cuộc sống hàng
ngày. Ngoài ra, bài tiểu luận cũng sẽ cung cấp một cái nhìn tổng quan về các
xu hướng và tiềm năng phát triển trong tương lai của mạng viễn thông.

4
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

I. CÁC PHƯƠNG PHÁP QUẢN LÝ HÀNG ĐỢI TRONG CHUYỂN


MẠCH GÓI
1.1 FIFO(First In First Out)
1.1.1 Phương pháp nhập trước xuất trước FIFO

H1.1 phương pháp FIFO

Ở Việt Nam, chúng ta thường gọi FIFO là cách quản lý kho theo phương thức
xuất trước nhập trước. Theo đó những hàng hóa (lô) được nhập vào kho đầu
tiên sẽ là những hàng hóa đầu tiên đầu tiên được xuất ra khỏi kho đó. Những
hàng hóa còn tồn lại sẽ là những hàng hóa mới được nhập gần đầy nhất.

Ví dụ nếu 100 mặt hàng được mua với giá $10 và 100 mặt hàng khác được mua
tiếp theo với giá $15 , thì FIFO sẽ chỉ định chi phí cho mặt hàng đầu tiên được
bán lại là mặt hàng có giá $10. Sau khi 100 mặt hàng được bán, chi phí mới sẽ
trở thành mặt hàng có giá $15, dù có mua hàng tồn kho bổ sung nào thêm.

Phương pháp FIFO tuân theo logic rằng, để tránh lỗi thời, một công ty sẽ bán
các mặt hàng tồn kho ở trong kho lâu nhất trước tiên và duy trì các mặt hàng
mới nhất trong kho.
Mặc dù phương pháp định giá hàng tồn kho thực tế được sử dụng không cần
phải theo luồng hàng tồn kho thực tế, nhưng công ty phải có khả năng cho biết
lí do tại sao công ty chọn sử dụng phương pháp định giá hàng tồn kho đó.

5
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

1.1.2 Phương pháp FIFO thường được áp dụng cho những doanh nghiệp như
thế nào

H1.2 FIFO ứng dụng trong doanh nghiệp

Phương pháp FIFO thường được các doanh nghiệp sản xuất – kinh doanh
những mặt hàng có thời hạn sử dụng như: thực phẩm, các sản phẩm có vòng
đời ngắn như thời trang, đồ công nghệ, … Những hàng hóa được sản xuất và
nhập kho đầu tiên sẽ được xuất trước và đưa ra thị trường, đáp ứng nhanh
chóng xu hướng và thị hiếu đám đông, từ đó đảm bảo lợi nhuận cũng như
doanh thu cho tổ chức thu được là cao nhất.

Ngược lại nếu áp dụng LIFO với các sản phẩm nói trên, doanh nghiệp có thể
thua lỗ do những rủi ro hết hạn hay sự thay đổi đột ngột về nhu cầu hay xu
hướng của thị trường, …

I.1.3 phương pháp FIFO so với các phương pháp định giá khác
Phương pháp LIFO

6
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

Phương pháp định giá hàng tồn kho ngược lại với FIFO là LIFO, trong đó mặt
hàng cuối cùng được mua hay nhập kho là mặt hàng đầu tiên được xuất kho
trước. Trong các nền kinh tế lạm phát, điều này dẫn đến chi phí thu nhập
ròng giảm phát và số dư cuối kì hàng tồn kho thấp hơn khi so sánh với
phương pháp FIFO.

Phương pháp chi phí bình quân gia quyền


Phương pháp chi phí bình quân gia quyền chỉ định cùng một chi phí cho
từng mục. Phương pháp chi phí bình quân gia quyền được tính bằng cách
chia giá vốn hàng tồn kho cho tổng số mặt hàng có sẵn để bán. Điều này
dẫn đến thu nhập ròng và số dư hàng tồn kho cuối kì nằm giữa khoảng FIFO
và LIFO.

Phương pháp theo dõi hàng tồn kho cụ thể


Cuối cùng, phương pháp theo dõi hàng tồn kho cụ thể được sử dụng khi tất
cả các thành phần qui cho một thành phẩm đã biết. Nếu tất cả các phần
không được biết đến, việc sử dụng bất kì phương pháp nào trong số FIFO,
LIFO hoặc chi phí trung bình đều phù hợp.

I.2 Priority Queue


1.2.1 Priority Queue là gì?
Trong một số trường hợp, chúng ta có thể cần tìm phần tử tối thiểu/tối đa
trong một tập hợp các phần tử. chúng ta có thể làm điều này với sự trợ giúp
của Priority Queue ADT. Một priority queue ADT là một cấu trúc dữ liệu hỗ trợ
các thao tác Insert và DeleteMin (trả về và loại bỏ phần tử nhỏ nhất) hoặc
DeleteMax (trả về và loại bỏ phần tử lớn nhất).

Các thao tác này tương đương với thao tác EnQueue và DeQueue của một hàng
đợi. Sự khác biệt là, trong hàng đợi ưu tiên, thứ tự mà các phần tử vào hàng
đợi có thể không giống với thứ tự mà chúng được xử lý. Một ứng dụng ví dụ
của hàng đợi ưu tiên là job scheduling(bài toán lập lịch), được ưu tiên thay vì
phục vụ theo thứ tự đến trước phục vụ trước.

7
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

Tương tự, một hàng đợi ưu tiên được gọi là descending —priority queue(hàng
đợi ưu tiên giảm dần) nếu phần tử có key lớn nhất có mức ưu tiên cao nhất
(luôn xóa phần tử lớn nhất). Vì hai loại này đối xứng nên chúng ta sẽ tập trung
vào một trong số chúng: ascending-priority queue(hàng đợi ưu tiên tăng dần).

1.2.2 Priority Queue ADT

Các Operations chính trên Priority Queues Hàng đợi ưu tiên là một thùng chứa
các phần tử, mỗi phần tử có một key được liên kết.

 Insert (key, data): Thêm dữ liệu cùng key vào priority queue.
 DeleteMin/DeleteMax: Xóa và trả về phần tử có key nhỏ nhất/lớn nhất.
 GetMinimum/GetMaximum: Trả về phần tử có khóa nhỏ nhất/lớn nhất
mà không xóa nó.
Các Operations phụ trợ trên Priority Queues

 kth – Smallest/kth – Largest: Trả về khóa thứ k – Nhỏ nhất/Lớn nhất


trong hàng đợi ưu tiên.
 Size: Trả về số phần tử trong hàng đợi ưu tiên.
 Heap Sort: Sắp xếp các phần tử trong hàng đợi ưu tiên dựa trên mức độ
ưu tiên (khóa).
1.2.3 Ứng dụng của Priority Queue
Hàng đợi ưu tiên có nhiều ứng dụng – mình sẽ liệu kê một vài trong số chúng:

 Nén dữ liệu: thuật toán Huffman Coding


 Thuật toán đường đi ngắn nhất: Thuật toán Dijkstra
 Thuật toán cây bao trùm tối thiểu: Thuật toán Prim
 Mô phỏng theo hướng sự kiện: khách hàng xếp hàng
 Bài toán lựa chọn: Tìm phần tử nhỏ thứ k

8
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

1.2.4 Triển khai Priority Queue

Triển khai Unordered Array(mảng không có thứ tự)

Các phần tử được chèn vào mảng mà không cần quan tâm đến thứ tự. Việc xóa
(DeleteMax) được thực hiện bằng cách tìm kiếm khóa và sau đó xóa.

Insertions complexity: O(1). DeleteMin complexity: O(n).

Triển khai Unordered List (List không có thứ tự)

Nó rất giống với triển khai mảng, nhưng thay vì sử dụng mảng, danh sách liên
kết được sử dụng.

Insertions complexity: O(1). DeleteMin complexity: O(n).

Triển khai Ordered Array(mảng có thứ tự)

Các phần tử được chèn vào mảng theo thứ tự được sắp xếp dựa trên trường
khóa. Việc xóa chỉ được thực hiện ở một đầu.

Insertions complexity: O(n). DeleteMin complexity: O(1).

Triển khai Ordered List(List có thứ tự)

Các phần tử được chèn vào danh sách theo thứ tự được sắp xếp dựa trên
trường key. Việc xóa chỉ được thực hiện ở một đầu, do đó duy trì trạng thái của
hàng đợi ưu tiên. Tất cả các chức năng khác được liên kết với linked list ADT
được thực hiện mà không cần sửa đổi.

Insertions complexity: O(n). DeleteMin complexity: O(1).

Triển khai Ordered List(List có thứ tự)

Các phần tử được chèn vào danh sách theo thứ tự được sắp xếp dựa trên
trường key. Việc xóa chỉ được thực hiện ở một đầu, do đó duy trì trạng thái của
hàng đợi ưu tiên. Tất cả các chức năng khác được liên kết với linked list ADT
được thực hiện mà không cần sửa đổi.

9
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

Insertions complexity: O(n). DeleteMin complexity: O(1).

Triển khai Binary Search Trees

Cả việc thêm và xóa đều lấy trung bình O(logn) nếu việc thêm vào là ngẫu nhiên
(các bạn có thể tham khảo các bài về Tree mình đã trình bày ở phần trước).

Triển khai Balanced Binary Search Trees

Cả thao tác thêm và xóa đều lấy O(logn) trong trường hợp xấu nhất.

Triển khai Binary Heap

Trong các phần tiếp theo, chúng ta sẽ thảo luận chi tiết về điều này. Hiện tại, giả
sử rằng việc triển khai heap nhị phân mang lại độ phức tạp O(logn) cho tìm
kiếm, chèn và xóa và O(1) để tìm phần tử lớn nhất hoặc nhỏ nhất.

1.3 Round Robin


1.3.1 Round Robin là gì?

H3.1 round robin được triển khai ở các hệ điều hành


10
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

Thuật toán lập trình Round Robin là giải thuật định thời CPU. Mỗi tiến trình sẽ
được gán một thời gian giữa CPU nhất định.

Round Robin được xuất phát từ nguyên tắc vòng tròn. Mỗi người lận lượt sẽ
nhận được một phần bằng nhau của một thứ gì đó. Giải thuật này có khả năng
thực thi các quy trình miễn phí.

1.3.2 Các đặc điểm của round robin


Round Robin là giải thuật ưu tiên, thuộc danh sách giải thuật mở đầu. Đây là
một trong những giải thuật đơn giản, tồn tại lâu đời và tiêu thức công bằng
nhất.

Khi giải trình Round Robin, khoảng thời gian cần phải đặt ở mức tối thiểu. Nó
sẽ gán cho một tác vụ công cụ cần để xử lý. Thế nhưng, chúng có thể khác
nhau hệ điều hành.

Được phát triển theo mô hình Hybrid và điều hành bằng đồng hồ trong tự
nhiên. Giải thuật sử dụng thời gian thực, khoản hồi sẽ được giới hạn trong một
khoảng thời gian nhất định. Đa phần, hệ điều hành truyền thống đều sử dụng
phương pháp lập lịch Round Robin.

1.3.3 Nguyên lý giải thuật toán Round Robin


Mỗi tiến trình Round Robin trước khi bắt đầu đưa vào CPU xử lý sẽ được cấp
cho một đơn vị thời gian chiếm dụng nhất định.

Dưới đây là nguyên lý giải thuật toán Round Robin:

 Đầu tiên, cần có một hàng đợi. Trong đó, các quy trình sẽ được sắp xếp
theo thứ tự đến trước xử lý trước.
 Một giá trị lượng tử được cấp phát để thực hiện một quá trình.
 Tiến trình đầu tiên được thực hiện đến khi kết thúc giá trị lượng tử. Tiếp
đến, mỗi ngắt sẽ được tạo ra và trạng thái được lưu.
 Từ CPU chuyển sang quy trình tiếp theo, phương pháp tương tự và được
thực hiện tuần hoàn.
 Các bước tương tự được lặp đi lặp lại đến khi quá trình kết thúc.

11
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

H3.2 nguyên lý giải thuật toán round robin

1.3.4 Điều kiện giải thuật toán

Để giải được thuật toán Round Robin cần đáp ứng những điều kiện:

 Thời gian hoàn thành: Là khoảng thời gian mà quá trình nào cũng cần
phải hoàn thành công việc phải thực hiện.
 Thời gian quay vòng: Dùng để phân biệt giữa thời gian đến với thời gian
hoàn thành.
Công thức tính: Thời gian vòng = Thời gian hoàn thành – Thời gian đến.

 Thời gian chờ: Phân biệt giữa thời gian liên tục với thời gian vòng.
Công thức tính: Thời gian chờ = Thời gian quay vòng – Thời gian nổ.

12
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

H3.4 điều kiện giải toán

1.3.5 ưu nhược điểm của thuật toán


Ưu điểm

 Thuật toán lập lịch Round Robin có những ưu điểm nổi trội sau:
 Giúp quá trình phân bổ công việc cho CPU diễn ra một cách hợp lý.
 Toàn bộ quy trình được xử lý, không có bất cứ ưu tiên nào.
 Trong giải thuật toán lập lịch không đối mặt với các vấn đề thiếu hụt hay
hiệu ứng bảo vệ.
 Thêm quy trình mới tạo vào cuối hàng đợi.
 Mang đến hiệu suất cao cho thời gian phản hồi trung bình.
 Không mang tính chu kỳ.
 Mỗi quá trình có cơ hội lên lịch sau một thời gian lượng tử nhất định.
 Trong quá trình thực hiện, một lượng tử thời gian cụ thể sẽ được phân
bổ đều cho những công việc khác nhau.

13
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

 Thông thường, thuật toán lập lịch thường sử dụng tính năng chia sẻ thời
gian. Điều này giúp cung cấp cho mỗi công việc một khe thời gian hay
lượng tử.

H3.5 ưu điểm của thuật toánn

Nhược điểm

 Hiệu suất phụ thuộc nhiều vào lượng tử thời gian.


 Khi thời gian ngắt của hệ điều hành ở mức thấp. Đầu ra của bộ xử lý sẽ bị
giảm thiểu đáng kể.
 Tiêu tốn nhiều thời gian cho việc chuyển đổi ngữ cảnh.
 Gặp không ít khó khăn trong việc tìm kiếm một lượng tử thời gian chính
xác.
 Khi lượng tử thời gian ở mức thấp có thể dẫn đến tình trạng quá trình
chuyển đổi ngữ cảnh trong hệ thống tăng cao.
 Khả năng hiểu bị suy giảm.
 Không đặt được mức độ ưu tiên.

1.3.6 Tăng giá trị lượng tử thời gian


Lượng tử thời gian ngày càng tăng đồng nghĩa với số lượng chuyển đổi ngữ
cảnh giảm đi. Từ đó, thời gian phản hồi sẽ tăng mạnh và tỷ lệ thiếu hụt cũng

14
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

tăng. Khi cao hơn về lượng tử thời gian, Round Robin sẽ tốt hơn về số lượng
chuyển đổi ngữ cảnh.

1.3.7 Giảm giá trị lượng tử thời gian


Khi giá trị thời gian giảm sẽ gây ra tình trạng số lượng chuyển đổi ngữ cảnh gia
tăng. Trong trường hợp này, thời gian phản hồi sẽ giảm, tỷ lệ thiếu hụt sẽ giảm
theo. Giá trị nhỏ hơn của lượng tử thời gian giúp cho Round Robin tốt hơn về
thời gian phản hồi.

1.3.8 Lập trình FCFS


Giá trị của lượng tử thời gian đang gia tăng. Tỷ lệ thuận theo đó mà Round
Robin có xu hướng chuyển đổi thành lập lịch FCFS.

1.3.9 Hiêu suất


Hiệu suất Round Robin phụ thuộc vào giá trị của lượng tử thời gian. Giá trị này
cần phải cân chỉnh sao cho không quá lớn và cũng không quá nhỏ.

1.3.10 Thuật toán weights round robin


Bản chất của thuật toán này giống như Round Robin. Thế nhưng, bạn có thể
cấu hình cho một máy chủ nào đó được sử dụng thường xuyên hơn.

1.3.11 Thuật toán weights least connection


Thuật toán này dựa vào số lượng kết nối để thực hiện cân bằng tải cho máy
chủ. Nó tự động lựa chọn máy chủ với số lượng kết nối đang hoạt động ở mức
nhỏ nhất.

H3.6 thuật toán

15
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

1.3.12 Thuật toán least response time


Là thuật toán sử dụng phương pháp thời gian đáp ứng ít nhất. Nó lựa chọn
dịch vụ máy chủ với thời gian đáp ứng thấp nhất. Ngoài ra còn có các thuật
toán cân bằng tải dựa vào phần mềm hoặc phần cứng được sử dụng.

1.4 Weighted Fair Queuing


1.4.1 Kỹ thuật hàng đợi Weighted Fair Queuing(WFQ)

+ WFQ không cho phép cấu hình phân loại. WFQ phân loại gói tin theo luồng
(flow), một luồng bao gồm tất cả các gói tin có cùng đích đến và cùng nguồn,
cùng port đích và port nguồn.
+ Tính năng lập lịch: WFQ dựa vào luồng, do vậy những luồng nào có độ ưu
tiên cao hơn thì sẽ được phát trước.
+ Mỗi luồng là một hàng đợi, vì vậy số hàng đợi trong WFQ có thể lên tới 4096
hàng đợi lớn hơn rất nhiều so với PQ hay FIFO.

H4.1 Hàng đợi WFQ

Khi gói tin vào interface, nó sẽ được phân loại thành các luồng theo các thông
số trong gói tin:
+ IP source.

16
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

+ IP destination.
+ Port source.
+ Port destination.
+ Giao thức lớp 4 nó sử dụng là gì (TCP hay UDP).
+ Giá trị precedence của gói tin IP.
Hai vấn đề quan trọng trong WFQ đó là :
- Đối xử công bằng với tất cả các luồng đang tồn tại: Giả sử ta có băng thông là
128 kbps và có 10 hàng đợi đang tồn tại, mỗi hàng đợi sẽ nhận được băng
thông là 12.8 kbps. Nếu số hàng đợi là 100 thì mỗi hàng đợi sẽ nhận băng
thông là 1.28 kbps. Một vấn đề tồn tại ở đây là sự quá công bằng của WFQ, giả
sử trong số 10 hàng đợi trên hàng đợi thứ 1 cần băng thông là 5 kbps và hàng
đợi thứ 2 cần băng thông là 30 kbps, nhưng vì WFQ chỉ cấp băng thông cho mỗi
hàng đợi là 12.8 kbps, như vậy hàng đợi thứ 1 dư băng thông nó sẽ luôn được
phục vụ tốt nhất, nghĩa là low delay, low jitter, low loss vì số gói tin trong hàng
đợi của nó lúc nào cũng rất ít. Với hàng đợi thứ 2 thiếu băng thông vì vậy
delay, jitter và loss của nó sẽ rất lớn.
- Cung cấp thêm băng thông cho những luồng có mức ưu tiên cao hơn (giá trị
IP precedence cao hơn hay DSCP cao hơn) : Vẫn với giả sử trên 128 kbps cho
10 luồng. Bây giờ giả sử có 5 luồng với IP precedence bằng 0, và 5 luồng với IP
precedence bằng 1. 5 luồng IP precedence 1 có mức ưu tiên cao hơn 5 luồng IP
precedence 0 theo đó tỉ số băng thông phân phối là 2:1. Luồng IP precedence 1
sẽ nhận băng thông là 17 kbps gấp đôi luồng IP precedence 0 là 8.5 kbps, cách
tính tỉ số này như sau:

Sau khi được phân loại gói tin sẽ được tính giá trị SN (Sequence number) như
sau: SN = SN (trước đó) + Weight*length
+ SN : Sequence number.
+ Weight : trọng số của gói tin , Weight = 32384 / (IP Precedence + 1).
+ Length : Chiều dài gói tin.
Sau đó quyết định có drop gói tin hay không dựa vào 2 thông số (còn gọi là Tail
drop):

17
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

- Hold-queue: Nếu gói tin là này là gói mà làm vượt mức hold-queue (tổng số
gói tin trong tất cả các hàng đơi) thì nó sẽ bị drop.
- CDT: (Congestion discard threshold) là số gói tin tối đa trong một hàng đợi,
giá trị này có thể cấu hình cho phép từ 1 đến 4096. Tiếp theo các gói tin nếu
không bị drop sẽ đưa vào hàng đợi và chờ phát đi.
Khi nằm trong hàng đợi các gói tin sẽ được lập lịch (scheduler logic). Quá trình
lập lịch dựa vào SN của gói tin, precedence và volume (Số gói tin đang có trong
một hàng đợi).
- Những gói tin có SN càng nhỏ, precedence càng lớn, và volume càng nhỏ sẽ
được chọn forward trước.
- Thứ tự ưu tiên như sau: Đầu tiên là SN, sau đó là precedence, và cuối cùng là
volume.

1.4.2 Định hướng và chính sách

Định hướng và các chính sách là một một phần không thể thiếu trong các kĩ
thuật QoS. Các chính sách sẽ giúp cho các gói tin có được các mức ưu tiên phù
hợp với đặc điểm của nó và sẽ drop gói tin khi tốc độ vượt quá mức so với cấu
hình. Chính sách do kĩ sư thiết kế cho các loại dữ liệu khác nhau, nó tùy thuộc
vào cảm tính của người kĩ sư và phụ thuộc vào thỏa thuận giữa nhà cung cấp
dịch vụ và khách hàng. Trong khi đó, định hướng sẽ giúp cho các gói tin nhận
được sự phục vụ đúng theo tốc độ đã định hình. Nó không drop gói tin mà chỉ
làm cho gói tin chậm lại để không bị vượt quá tốc độ cho phép.
Cả hai công cụ shaping và policing đều đo tốc độ truyền hoặc nhận dữ liệu.
Policing có khả năng loại bỏ những gói tin dư thừa để đảm bảo tốc độ truyền
không vượt quá tốc độ thoả thuận. Shaping sắp xếp các gói dư thừa này vào
hàng đợi, và rồi đi ra khỏi hàng đợi ở tốc độ định hình. Trong cả hai trường
hợp, cả hai công cụ đều ngăn lưu lượng không được vượt quá tốc độ bit được
định nghĩa bởi người quản trị. Một lý do cổ điển để lựa chọn shaping là khi
thiết bị ở đầu kia của đường truyền đang thực hiện policing.

18
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

II. ỨNG DỤNG CỦA CƠ CHẾ HÀNG ĐỢI TRONG CHUYỂN MẠCH
GÓI

2.2 Trong mạng Internet và hệ hống điện thoại di động


2.2.1 Truyền dữ liệu
Chuyển mạch gói được sử dụng để truyền dữ liệu qua mạng internet từ
nguồn đến đích một cách nhanh chóng và hiệu quả. Dữ liệu được chia
thành các gói nhỏ và được chuyển tiếp qua các đường truyền khác nhau,
giúp tối ưu hóa tốc độ truyền dữ liệu.

Internet sử dụng giao thức TCP/IP dựa trên Packet Switching để truyền tải
dữ liệu giữa các thiết bị và máy chủ trên toàn cầu. Việc chia nhỏ dữ liệu
thành các gói nhỏ và truyền chúng qua các đường dẫn khác nhau giúp tối
ưu tài nguyên mạng, cung cấp kết nối linh hoạt và đáng tin cậy.

2.2.2 VoIP
Chuyển mạch gói cũng được sử dụng để truyền giọng nói qua internet thông
qua các ứng dụng VoIP như Skype, Zoom, Google Meet, v.v. Giúp tiết kiệm chi
phí và tối ưu hóa việc truyền tải âm thanh.

2.2.3 Video streaming


Chuyển mạch gói cũng được sử dụng trong việc truyền tải video qua internet
thông qua các dịch vụ streaming như Netflix, Youtube, Amazon Prime Video,
v.v. Giúp người dùng xem video một cách mượt mà và không bị gián đoạn.

2.2.4 Truyền tải dữ liệu trực tuyến


Công nghệ chuyển mạch gói cũng được sử dụng trong việc truyền tải dữ liệu
trực tuyến như truyền tải tập tin, email, tin nhắn, v.v. giữa các thiết bị kết nối
với internet.

19
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

H2.2.1 ứng dụng của chuyển mạch gói qua email

2.2.5 IoT
Chuyển mạch gói cũng chơi một vai trò quan trọng trong việc kết nối và truyền
tải dữ liệu giữa các thiết bị IoT kết nối với internet như smart home, smart city,
v.v.

2.2.6 ví dụ cụ thể

Để thấy được vai trò của cấu trúc dữ liệu queue cũng như hiểu hơn về nó.
Chúng ta sẽ đi vào một bài toán cụ thể như sau:

Bạn có một chuỗi ký tự. Hãy lấy ký tự ở đầu của chuỗi và thêm nó vào cuối
chuỗi. Hãy cho tôi thấy sự thay đỗi của chuỗi sau khi thực hiện hành động trên
N lần.
#include <iostream>
#include <cstdio>
using namespace std;
void Enqueue(char queue[], char element, int& rear, int arraySize) {
if(rear == arraySize) // Queue is full
printf(“OverFlow\n”);
else {
queue[rear] = element; // Add the element to the back
rear++;
}
}
void Dequeue(char queue[], int& front, int rear) {

20
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

if(front == rear) // Queue is empty


printf(“UnderFlow\n”);
else {
queue[front] = 0; // Delete the front element
front++;
}
}
char Front(char queue[], int front) {
return queue[front];
}
int main() {
char queue[20] = {‘a’, ‘b’, ‘c’, ‘d’};
int front = 0, rear = 4;
int arraySize = 20; // Size of the array
int N = 3; // Number of steps
char ch;
for(int i = 0;i < N;++i) {
ch = Front(queue, front);
Enqueue(queue, ch, rear, arraySize);
Dequeue(queue, front, rear);
}
for(int i = front;i < rear;++i)
printf(“%c”, queue[i]);
printf(“\n”);
return 0;
}

2.2.7 Các biến thể của queue


Hàng đợi 2 đầu

Trong hàng đợi tiêu chuẩn phía trên, dữ liệu được thêm ở cuối và xóa đi ở đầu
của hàng đợi. Nhưng với Double-ended queue, dữ liệu có thể thêm hoặc xóa ở
cả đầu(front) và cuối(rear) của hàng đợi.

Nào, hãy cùng tôi đi cài đặt các hàm cho các chức năng của queue 2 đầu nào.

Thêm dữ liệu vào cuối queue


void InsertAtBack(int queue[], int element, int &rear, int array_size){
if(rear == array_size)
printf(“Overflow\n”);
else{
queue[rear] = element;
rear = rear + 1;
}
}

21
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

Xóa dữ liệu ở cuối queue


void DeleteFromBack(int queue[], int &rear, int front){
if(front == rear)
printf(“Underflow\n”);
else{
rear = rear – 1;
queue[rear] = 0;
}
}

Thêm dữ liệu vào đầu queue


void InsertAtFront(int queue[], int &rear, int &front, int element, int array_size){
if(rear == array_size)
printf(“Overflow\n”);
else{
for(int i=rear; i>front; i—)
queue[i] = queue[i–1];
queue[front] = element;
rear = rear+1;
}
}

Xóa dữ liệu ở đầu queue


void DeleteAtFront(int queue[], int &front, int &rear){
if(front == rear)
printf(“Underflow\n”);
else{
queue[front] = 0;
front = front + 1;
}
}

Lấy giá trị ở đầu queue


int GetFront(int queue[], int front){
return queue[front];
}

22
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

Lấy giá trị ở cuối queue


int GetRear(int queue[], int rear){
return queue[rear–1];
}

Hàng đợi vòng

Hàng đợi vòng là một cải tiến của hàng đợi tiêu chuẩn. Trong hàng đợi tiêu
chuẩn, khi một phần tử bị xóa khỏi hàng đợi, các vị trí bị xóa đó sẽ không được
tái sử dụng. Hàng đợi vòng sinh ra để khắc phục sự lãng phí này .
Trong khi thêm phần tử vào hàng đợi vòng, nếu chỉ số rear đã ở vị trí cuối của
mảng, khi đó bạn vẫn có thể thêm vào hàng đợi bằng cách thêm vào phía đầu
của mảng(đó là các vị trí ở đầu mảng đã bị xóa đi và chưa được dùng).
Để cài đặt hàng đợi vòng, ngoài các biến sử dụng trong hàng đợi tiêu chuẩn,
chúng ta cần thêm một biến khác nữa để lưu số lượng phần tử đang có trong
hàng đợi, đặt nó là count
Enqueue
void Enqueue(int queue[], int element, int& rear, int arraySize, int& count) {
if(count == arraySize) // Queue is full
printf(“OverFlow\n”);
else{
queue[rear] = element;
rear = (rear + 1)%arraySize;
count = count + 1;
}
}

Mình giải thích tại sao lại là (rear + 1)%arraySize : Giả sử khi rear = arraySize - 1,
khi đó với hàng đợi tiêu chuẩn bạn sẽ không thể thêm nữa. Nhưng với hàng
đợi vòng, ta sẽ thêm chừng nào count != arraySize. arraySize là số phần tử tối
đa có thể có, do vậy, count != arraySize nghĩa là còn ô trống để insert vào
queue. Chỉ số được insert vào queue như sau(giả sử arraySize = 3 nhé):
 Nếu rear = 0, giá trị rear thực là (0 + 1) % 3 = 1

 Nếu rear = 1, giá trị rear thực là (1 + 1) % 3 = 2

 Nếu rear = 2, giá trị rear thực là (2 + 1) % 3 = 0

Các bạn nên nhớ: rear là chỉ số của phần tử sẽ được insert ở lần tiếp theo. Mỗi
khi dequeue, count sẽ phải giảm đi 1. Ngược lại, nếu enqueue thành
công, count sẽ tăng lên 1.
23
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

Giải thích này cũng đúng với front trong hàm dequeue dưới đây.
Dequeue
void Dequeue(int queue[], int& front, int rear, int& count) {
if(count == 0) // Queue is empty
printf(“UnderFlow\n”);
else {
queue[front] = 0; // Delete the front element
front = (front + 1)%arraySize;
count = count – 1;
}
}

Font
int Front(int queue[], int front) {
return queue[front];
}

Size
int Size(int count) {
return count;
}

2.2.8 Ứng dụng trong Amazon wep services

Amazon Web Services hay AWS là nền tảng dịch vụ công nghệ thông tin điện
toán đám mây toàn diện với các dịch vụ cho thuê máy chủ, lưu trữ cơ sở dữ
liệu, hạ tầng mạng, phân phối nội dung và nhiều giải pháp phần mềm khác giúp
nhà phát triển phần mềm cũng như doanh nghiệp triển khai và mở rộng hệ
thống thông tin dễ dàng và nhanh chóng.

Các dịch vụ AWS đưa đưa ra vào năm 2006 với mục đích ban đầu để quản lý và
điều hành hoạt động bán hàng online của website Amazon.com. Sau đó, AWS
chính là công ty đầu tiên tiên phong dịch vụ điện toán đám mấy với khái niệm
pay-as-you-go trên nền tảng AWS này, tức là doanh nghiệp chỉ trả chi phí thực
sự với nhu cầu bạn sử dụng, giúp doanh nghiệp dễ dàng đầu tư cũng như mở
rộng hạ tầng công nghệ thông tin với máy tính, dịch vụ lưu trữ dữ liệu với chi
phí phù hợp và hiệu quả nhất

Trong phần này, mình sẽ không phân tích chi tiết mà chỉ nêu khái quát về vai trò
của stack và queue trong 2 dịch vụ của AWS, đó là AWS CloudFormation và
Amazon Simple Queue Service.

24
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

AWS CloudFormation

AWS CloudFormation là một dịch vụ hỗ trợ việc thiết lập các tài nguyên của
Amazon Web Service, nhờ đó bạn chỉ cần bỏ ra ít thời gian để quản lý các tài
nguyên đó và có thể tập trung vào phát triển ứng dụng chạy trên AWS. Bạn tạo
ra một template (thường là các đoạn mã Json hoặc Yaml) để mô tả tài nguyên
AWS mà bạn muốn (như là Amazon EC2 innstance hoặc Amazon RDS DB
instance), và AWS CloudFormation xử lý việc cung cấp và thiết lập các tài
nguyên đó giúp bạn. Bạn không cần thiết phải tạo, thiết lập từng tài nguyên
một, cũng không cần phải quan tâm phần nào phụ thuộc vào phần nào, AWS
CloudFormation sẽ làm giúp bạn.
Khi sử dụng AWS CloudFormation, các lệnh sẽ được thực hiện theo nội dung
mà template mô tả. Ví dụ như khi cần tạo tài nguyên mới, bạn sẽ viết nội dung
này vào template. AWS CloudFormation cung cấp và thiết lập các tài nguyên
bằng cách gọi tới các AWS service được mô tả trong template. Sau khi tất cả các
tài nguyên đã được tạo, AWS CloudFormation truyền tín hiệu thông báo stack
đã được tạo thành công. Sau đó bạn có thể sử dụng tất cả các tài nguyên trong
stack. Nếu gặp lỗi trong việc tạo ra stack, AWS CloudFormation sẽ roll-back tất
cả các thay đổi và xóa mọi tài nguyên vừa được tạo ra.
Vai trò của stack được thể hiện rõ ràng nhất trong bước roll-back này. Khi tạo
các tài nguyên, các lệnh sẽ được đưa vào một stack. Nếu có lỗi xảy ra thì cần lần
lượt xóa bỏ các tài nguyên vừa tạo, dựa vào thứ tự lệnh trong stack và quy tắc
vào trước ra sau, các tài nguyên sẽ được xóa bỏ một cách an toàn nhất

Cơ chế hoạt động của Amazon SQS

 Thành phần 1 gửi thông điệp A tới một hàng đợi. Hàng đợi này sẽ lưu trữ
thông điệp này.
 Khi thành phần nào đó trong hệ thống (ở đây là thành phần 2) sẵn sàng
xử lý thông điệp thì nó sẽ gọi tới hàng đợi, lúc này, một thông điệp sẽ
được trả lại (ở đây giải sử là thông điệp A).
 Sau khi thành phần 2 xử lý xong thông điệp A, nó sẽ xóa A khỏi hàng đợi
để tránh các thành phần sau sẽ gọi tới thông điệp này.

Ở đây, có thể thấy rõ vai trò của hàng đợi là rất quan trọng. Nó giúp sắp xếp và
tổ chức các thông điệp bài bản, có trật tự, làm cho các thông điệp được xử lý
theo thứ tự, thông điệp nào được gửi trước thì sẽ được xử lý trước và ngược
lại. Từ đó không có thông điệp nào phải chờ quá lâu.

25
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

III KẾT LUẬN


3.1 Tầm quan trọng của cơ chế hàng đợi trong chuyển mạch gói

Cơ chế hàng đợi trong mạng chuyển mạch gói đóng vai trò quan trọng trong
việc quản lý và điều phối lưu lượng dữ liệu giữa các thiết bị trong mạng. Dưới
đây là một số tầm quan trọng của cơ chế hàng đợi trong mạng chuyển mạch
gói:

 Đảm bảo hiệu suất và độ tin cậy: Cơ chế hàng đợi giúp kiểm soát lưu
lượng dữ liệu đến và đi ra khỏi các thiết bị mạng, đảm bảo rằng tín hiệu
được xử lý một cách đúng đắn và không bị mất dữ liệu. Nó cũng giúp
tránh tình trạng quá tải hệ thống, đảm bảo hiệu suất và độ tin cậy của
mạng.
 Ưu tiên lưu lượng dữ liệu: Cơ chế hàng đợi cho phép ưu tiên lưu lượng
dữ liệu dựa trên các tiêu chí như độ ưu tiên, loại dịch vụ, hoặc độ trễ.
Điều này giúp tối ưu hóa việc truyền thông trong mạng và đảm bảo rằng
các tín hiệu quan trọng được ưu tiên xử lý trước.
 Kiểm soát và quản lý lưu lượng: Cơ chế hàng đợi cung cấp các công cụ
và chức năng để kiểm soát và quản lý lưu lượng dữ liệu trong mạng. Việc
này giúp hạn chế sự cố quá tải hệ thống, tối ưu hóa việc phân phối tài
nguyên mạng, và cải thiện hiệu suất tổng thể của mạng.
 Xử lý đồng thời nhiều yêu cầu: Cơ chế hàng đợi cho phép xử lý nhiều
yêu cầu từ các nguồn khác nhau đồng thời, giúp tăng cường khả năng
chịu tải cho hệ thống mạng. Điều này đặc biệt quan trọng trong môi
trường mạng có lượng lưu lượng dữ liệu lớn và đa dạng.

Tóm lại, cơ chế hàng đợi đóng vai trò quan trọng trong việc quản lý và điều
phối lưu lượng dữ liệu trong mạng chuyển mạch gói. Nó giúp cải thiện hiệu
suất, độ tin cậy, và khả năng chịu tải của hệ thống mạng, đồng thời tối ưu
hóa quản lý tài nguyên và ưu tiên xử lý các tín hiệu quan trọng.

26
MSV: 1781510203 D12-KTDT
Tiểu luậ n mô n: Mạ ng Viễn Thô ng

3.2 Đề xuất các hướng phát triển trong việc quản lý hàng đợi trong chuyển
mạch gói.
Sau khi tìm hiểu về cơ chế hàng đợi trong mạng chuyển mạch gói em đã nắm
bắt được cơ bản những phương thức hoạt động, thuật toán, quy tắc vận hành
đồng thời cũng nhận thức về tầm quan trọng của nó đối với cuộc sống. Song
trong thời gian tìm hiểu cũng gặp nhiều khó khăn, vậy nên em có đưa ra vài
biện pháp tiềm năng và hướng phát triển của mạng chuyển mạch gói như sau:

 Sử dụng các thuật toán quản lý hàng đợi hiệu quả: Cần nghiên cứu và áp
dụng các thuật toán như độ ưu tiên, phân bổ tài nguyên, quản lý băng
thông để tối ưu hóa việc xử lý hàng đợi trong chuyển mạch gói.
 Tối ưu hóa cấu trúc mạng và hệ thống: Để giảm thiểu thời gian xử lý
hàng đợi và tăng hiệu suất chuyển mạch gói, cần đầu tư vào việc tối ưu
hóa cấu trúc mạng và hệ thống thông tin, sử dụng các công nghệ mới
như software-defined networking (SDN) và network function
virtualization (NFV).
 Phát triển công nghệ và thiết bị: Để giải quyết các vấn đề phức tạp trong
quản lý hàng đợi trong chuyển mạch gói, cần phát triển công nghệ và
thiết bị mới, có khả năng xử lý hàng đợi một cách hiệu quả và nhanh
chóng.
 Tạo ra các chiến lược quản lý hàng đợi linh hoạt: Cần xác định và áp
dụng các chiến lược quản lý hàng đợi linh hoạt, có khả năng điều chỉnh
tùy theo tình hình mạng và nhu cầu sử dụng dịch vụ.
 Đào tạo và nâng cao năng lực cho nhân viên: Để thực hiện các phương
án quản lý hàng đợi hiệu quả, cần đào tạo và nâng cao năng lực cho
nhân viên, giúp họ hiểu rõ về quy trình và công nghệ quản lý hàng đợi
trong chuyển mạch gói.

27
MSV: 1781510203 D12-KTDT

You might also like