Ở phần trước chúng ta đã tìm hiểu về mạng lõi của Internet. Để tiếp tục Series Nhập môn mạng máy tính, chúng ta sẽ tìm hiểu đến các hiện tượng xảy ra trong mạng chuyển mạch gói. Đó là hiện tượng trễ gói tin, mất gói tin và khái niệm về thông lượng mạng.
Phần trước đã nói rằng Internet có thể được coi như là cơ sở hạ tầng, nhằm cung cấp các dịch vụ cho các ứng dụng phân tán chạy trên các thiết bị đầu cuối. Chúng ta đều muốn các dịch vụ Internet có khả năng chuyển được càng nhiều dữ liệu giữa các thiết bị đầu cuối càng tốt, mà không hề có một sự mất mát dữ liệu nào.
Tuy nhiên, điều đó hầu như không thể nào đạt được trong thực tế. Mạng máy tính cần duy trì một thông lượng (throughtput) (lượng dữ liệu có thể vận chuyển trong một đơn vị thời gian) giữa hai thiết bị đầu cuối, dẫn đến sự xuất hiện độ trễ (delay) giữa hai thiết bị đầu cuối, và xuất hiện hiện tượng mất các gói tin.
Hiện tượng trễ gói tin là gì?
Lan truyền trong mạng là khi một gói tin khởi phát từ một thiết bị đầu cuối (nguồn), đi qua một chuỗi các bộ định tuyến và kết thúc việc di chuyển ở một thiết bị đầu cuối khác (đích). Khi một gói tin đi từ một nút (có thế là một thiết bị đầu cuối hay bộ định tuyến) đến một nút sau đó dọc theo các liên kết, gói tin này chịu nhiều độ trễ khác nhau tại mỗi nút nằm dọc trên tuyến đường. Những độ trễ quan trọng nhất là:
- Thời gian xử lý tại nút (nodal processing delay).
- Thời gian xếp hàng chờ (queuing delay).
- Thời gian đây gói tin lên đường truyền (transmission delay).
- Thời gian lan truyền (propagation delay).
Để có thể hiểu sâu về chuyển mạch gói và mạng máy tính, chúng ta cần hiểu được bản chất và tầm quan trọng của những độ trễ này.
Các loại độ trễ
Hãy khám phá những loại độ trễ này trong tình huống ví dụ ở hình sau. Xem một chặng di chuyển của gói tin giữa nguồn và đích, gói tin được gửi từ một nút nguồn, đi qua bộ định tuyến A, đến bộ định tuyến B.
Mục tiêu của chúng ta là xác định đặc điểm của thời gian xử lý tại nút ở tại bộ định tuyến A. Lưu ý rằng bộ định tuyến A có một đường truyền đi ra, dẫn đến bộ định tuyến B. Ở đầu đường truyền này có một hàng đợi (còn gọi là bộ đệm).
Khi gói tin từ nút đầu nguồn đến bộ định tuyến A, A sẽ xem nội dung của phần đầu (header) gói tin nhằm xác định đường truyền đi ra thích hợp với gói tin này, và kế tiếp là chuyển gói tin ra đường truyền đã xác định này. Trong ví dụ này, đường truyền đi ra chính là đường truyền dẫn đến bộ định tuyến B.
Một gói tin chỉ có thế được chuyển lên đường truyền nếu như không có gói tin nào khác hiện đang được chuyển lên đường truyền và cũng không có một gói tin nào khác nằm trước nó trong hàng đợi; nếu đường truyền hiện thời đang bận, hoặc nếu còn gói tin khác đang nằm xếp hàng trước, thì gói tin mới đến buộc phải nối vào hàng đợi.
Thời gian xử lý tại nút (nodal processing delay)
Thời gian cần để xem phần đầu (header) của gói tin và xác định cổng ra để chuyển gói tin là một phần của thời gian xử lý tại nút (nodal processing delay). Thời gian xử lý tại nút cũng có thể bao gồm các yếu tố khác, như thời gian cần để kiểm tra xem gói tin có bị lỗi bit trong quá trình truyền nhận. Trong các bộ định tuyến tốc độ cao, độ trễ loại này thường khoảng vài phần triệu giây hoặc ít hơn. Sau khi xử lý tại nút, bộ định tuyến chuyển gói tin đến hàng đợi tại cổng ra đường truyền dẫn đến bộ định tuyến B.
Thời gian xếp hàng chờ (queuing delay)
Tại hàng đợi, gói tin phải chịu một độ trễ do xếp hàng chờ (queuing delay), bởi vì nó phải chờ để đến lượt được chuyển lên đường truyền. Thời gian gian chờ đối với một gói tin nhất định là phụ thuộc vào số lượng gói tin đến trước đang nằm chờ tại hàng đợi. Nếu hàng đợi trống và không có gói tin nào khác đang chờ chuyển lên đường truyền, thì thời gian chờ là bằng không.
Nói cách khác, nếu lượng gói tin trên mạng là nhiều và có nhiều gói tin khác đang nằm chờ tại hàng đợi, thời gian chờ sẽ dài. Trong thực tế, thời gian chờ này rất nhỏ, cỡ vài phần nghìn giây.
Thời gian đây gói tin lên đường truyền (transmission delay)
Giả sử rằng các gói tin được đẩy lên đường truyền theo lối first come, first served, gói tin chỉ có thể được đẩy lên đường truyền sau khi tất cả các gói tin đến trước nó đã được đẩy lên.
Ký hiệu chiều dài của gói tin là L
bits, và tốc độ đẩy của đường truyền từ bộ định tuyến A đến bộ định tuyến B là R
bits/sec. Lấy ví dụ, với đường truyền Ethernet 10 Mbps, tốc độ đẩy của đường truyền này là R
=10 Mbps; còn với đường truyền Ethernet 100 Mbps, tốc độ đẩy là R
= 100 Mbps. Thời gian đây gói tin lên đường truyền (transmission delay) (còn gọi là store-and-forward delay như đã đề cập đến) là L/R
. Đây là thời gian cần để đẩy (gửi) toàn bộ các bit của gói tin lên đường truyền. Trong thực tế, độ trễ loại này cỡ phần triệu đến phần nghìn giây.
Thời gian lan truyền (propagation delay)
Mỗi khi một bit được đẩy lên đường truyền, nó cần lan truyền đến bộ định tuyến B. Thời gian cần để lan truyền từ đầu đường truyền đến bộ định tuyến B được gọi là thời gian lan truyền (propagation delay).
Và bit lan truyền theo tốc độ lan truyền của đường truyền (propagation speed). Tốc độ lan truyền phụ thuộc vào môi trường truyền dẫn của đường truyền (chẳng hạn cáp quang, cáp đồng xoắn cặp, …) và nằm trong khoảng từ 2.108 m/s đến 3.108 m/s, tức gần bằng tốc độ ánh sáng.
Thời gian lan truyền chính là bằng chiều dài đường truyền chia cho tốc độ lan truyền. Do đó, thời gian lan truyền bằng d/s
, trong đó d
là khoảng cách giữa hai bộ định tuyến A, B và s
là tốc độ lan truyền của đường truyền. Mỗi khi bit cuối cùng của gói tin lan truyền đến nút B, nó và toàn bộ các bit trước nó trong gói tin được lưu ở bộ định tuyến B. Sau đó B sẽ tiếp tục bằng việc chuyến gói tin ra cổng ra thích hợp .
So sánh thời gian đẩy gói tin lên đường truyền và thời gian lan truyền
Hai khái niệm về thời gian đẩy gói tin và thời gian lan truyền hơi khó phân biệt. Sự khác biệt này rất mong manh, nhưng lại quan trọng.
Thời gian đẩy gói tin lên đường truyền là thời gian mà bộ định tuyến cần để tống hết gói tin lên đường truyền cổng ra; nó là một hàm phụ thuộc vào chiều dài gói tin và tốc độ đẩy của đường truyền. Trong khi đó thời gian lan truyền lại là thời gian cần để một bit lan truyền từ đầu đường truyền này đến đầu đường truyền kia; nó là hàm phụ thuộc vào khoảng cách giữa hai bộ định tuyến và tốc độ lan truyên của môi trường truyền dẫn; nó hoàn toàn không liên quan gì đến chiều dài gói tin và tốc độ đẩy của đường truyền.
Nếu ký hiệu dproc, dqueue, dtrans và dprop là thời gian xử lý gói tin, thời gian xếp hàng chờ, thời gian đẩy gói tin lên đường truyền và thời gian lan truyền tín hiệu của gói tin, thì thời gian xử lý toàn bộ tại nút dnodal được tính bằng công thức:
dnodal = dproc + dqueue+ dtrans + dprop
Mức độ đáng kể của các thành phần độ trễ này vào dnodal là tùy vào tình huống. Chẳng hạn, dprop có thể không đáng kể (cỡ vài phần triệu giây) trong trường hợp đường truyền kết nối hai bộ định tuyển ở mạng trường đại học; tuy nhiên nó có thể lên đến vài phần mười giây trong trường hợp hai bộ định tuyến nối kết nhau qua đường truyền vệ tinh và trở thành yếu tố lấn át trong dnodal.
Tương tự, dtrans có thể biến động từ không đáng kể đến đáng kể. Như với đường mạng 10 Mbps hoặc nhanh hơn, nó rất bé và không đáng kể. Tuy nhiên, nó có thể lên đến hàng trăm mili-giây trong trường hợp gói tin có kích thước lớn lại được gửi qua mạng điện thoại quay số tốc độ thấp. Còn dproc thường là không đáng kể; tuy nhiên, nó ảnh hưởng rất lớn đến thông lượng tối đa của bộ định tuyến, là tốc độ lớn nhất mà router có thể chuyển gói tin.
Thời gian xếp hàng chờ và hiện tượng mất gói tin
Thời gian xếp hàng chờ của gói tin
Độ trễ phức tạp nhất và thú vị nhất là thời gian xếp hàng chờ, dqueue. Không giống như ba độ trễ dproc, dtrans và dprop, thời gian xếp hàng chờ là không giống nhau cho các gói tin.
Lấy ví dụ như có 10 gói tin đến một hàng đợi cùng lúc, gói đầu tiên đến thì được truyền ngay, không chờ gì cả. Nhưng gói cuối cùng thì phải chịu một độ trễ tương đối lớn (chờ 9 gói trước nó được đẩy hết lên đường truyền). Do đó, khi muốn mô tả đặc điểm của thời gian xếp hàng chờ, người ta thường dùng các độ đo thống kê, như thời gian xếp hàng chờ trung bình, phương sai của thời gian xếp hàng chờ, và xác suất thời gian xếp hàng chờ vượt quá một giá trị nhất định.
Khi nào thì thời gian chờ là đáng kể và khi nào thì không có ý nghĩa? Câu trả lời phụ thuộc vào mức độ lượng gói tin đến hàng đợi, tốc độ đẩy của đường truyền và cách các gói tin đến (đều đặn, hay bùng phát). Gọi a là mức độ gói tin đến hàng đợi trung bình (a được đo bằng đơn vị packets/s). Nhớ lại là R
là tốc độ đẩy gói tin; nghĩa là số bit được đẩy vào hàng đợi trong một giây. Để đơn giản, cũng giả định rằng tất cả các gói tin đều gồm L
bit.
Do đó, mức độ các bit đến hàng đợi trung bình là L.a
bits/s. Cuối cùng, cũng giả sử rằng kích thước hàng đợi là rất lớn, để nó có thể chứa được một số không giới hạn các bit. Tỷ số L.a/R
được gọi là mật độ lưu thông (traffic intensity), thường đóng một vai trò khá quan trọng trong việc ước lượng phạm vi thời gian xếp hàng chờ. Nếu L.a/R
> 1, thì mức độ các bit đến hàng đợi trung bình vượt quá mức độ mà các bit có thể được đẩy ra khỏi hàng đợi.
Trong tình trạng đáng tiếc này, hàng đợi sẽ gia tăng không giới hạn và thời gian xếp hàng chờ sẽ tiệm cận vô cùng. Do đó, một trong những quy tắc vàng trong công nghệ giao thông là: Hãy thiết kế hệ thống của bạn sao cho mật độ lưu thông không lớn hơn 1.
Hãy xem xét trường hợp L.a/R
< 1. Trong trường hợp này, cách các gói tin đến sẽ ảnh hưởng đến thời gian xếp hàng chờ. Lấy ví dụ, nếu gói tin đến đều đặn, tức từng gói tin đến sau mỗi L/R
giây, thì mọi gói tin sẽ đến vào thời điểm hàng đợi rỗng và do đó không phải chờ. Còn nếu gói tin đến từng chùm nhưng đều đặn, có thể có một thời gian xếp hàng chờ trung bình đáng kể.
Lấy ví dụ, giả sử có N gói tin cùng đến hàng đợi sau mỗi (L/R)N
giây, thì gói tin đầu tin không phải chờ, gói tin thứ hai phải chờ L/R
giây; và tổng quát hơn là gói tin thứ n thì chờ (n-1) L/R
giây.
Hai ví dụ trên giả định gói tin đến định kì vẫn còn một chút lý tưởng. Thông thường thì quá trình gói tin đến hàng đợi là ngẫu nhiên; nghĩa là các gói tin đến không theo bất kì một khuôn mẫu nào, các gói tin đến sau nhau một khoảng thời gian ngẫu nhiên. Trong tình huống thực tế hơn này, đại lượng L.a/R
là không đủ để mô tả một cách đầy đủ về thời gian xếp hàng chờ. Tuy nhiên, nó cũng có ích để giúp hiểu một cách trực quan về độ lớn của thời gian xếp hàng chờ.
Trường hơp đặc biệt, nếu mật độ lưu thông gần bằng không, nghĩa là các gói tin đến thưa thớt, thì thời gian xếp hàng chờ trung bình sẽ gần như bằng không. Mặt khác, khi mật độ lưu thông gần bằng 1, thì sẽ có lúc mức độ gói tin đến vượt quá khả năng đẩy gói tin ra (do sự biến động của mức độ gói tin đến), và hàng đợi sẽ hình thành trong khoảng thời gian này; còn khi mức độ gói tin đến thấp hơn khả năng đẩy gói tin ra, chiều dài của hàng đợi sẽ teo lại.
Khi mật độ lưu thông gần bằng 1, chiều dài hàng đợi trung bình sẽ càng lúc càng lớn. Sự phụ thuộc của thời gian xếp hàng chờ trung bình vào mật độ lưu thông được minh họa ở hình trên. Một khía cạnh quan trọng trong hình trên là khi mật độ lưu thông cận 1, thời gian xếp hàng chờ trung bình gia tăng rất nhanh. Một chút gia tăng mật độ lưu thông trong khoảng này sẽ dẫn đến sự gia tăng rất lớn của thời gian xếp hàng chờ trung bình.
Hiện tượng mất gói tin
Trong phần thảo luận ở trên, chúng ta đã giả định rằng hàng đợi có khả năng chứa vô tận. Trong thực tế thì khả năng chứa của hàng đợi là có giới hạn. Do đó, thời gian xếp hàng chờ của gói tin thực tế không phải tiến ra vô cùng khi mật độ lưu thông tiệm cận 1. Thay vào đó, khi gói tin đến và tình trạng là hàng đợi đang đầy, không còn chỗ chứa gói tin đó, bộ định tuyến sẽ vứt bỏ gói tin đó, và gói tin này xem như bị mất.
Từ góc nhìn của thiết bị đầu cuối, một gói tin bị mất cũng như là một gói tin được truyền trong mạng lõi nhưng không bao giờ xuất hiện ở mạng đích. Lượng gói tin bị mât gia tăng khi mật độ lưu thông gia tăng. Do đó, hiệu năng hoạt động tại một nút được đo lường không chỉ dựa vào độ trễ, mà còn dựa vào xác suất gói tin bị mất.
Trong phàn thảo luận ở trên, chúng ta đã giả định rằng hàng đợi có khả năng chứa vô tận. Trong thực tế thì khả năng chứa của hàng đợi là có giới hạn. Do đó, thời gian xếp hàng chờ của gói tin thực tế không phải tiến ra vô cùng khi mật độ lưu thông tiệm cận 1. Thay vào đó, khi gói tin đến và tình trạng là hàng đợi đang đầy, không còn chồ chứa gói tin đó, bộ định tuyến sẽ vứt bỏ gói tin đó, và gói tin này xem như bi mất.
Từ góc nhìn của hệ cuối, một gói tin bị mất cũng như là một gói tin được truyền trong mạng lõi nhưng không bao giờ xuất hiện ở mạng đích. Lượng gói tin bị mât gia tăng khi mật độ lưu thông gia tăng. Do đó, hiệu năng hoạt động tại một nút được đo lường không chỉ dựa vào độ trễ, mà còn dựa vào xác suất gói tin bị mất. Khi một gói tin bị mất sẽ dẫn đến việc truyền lại gói tin, nhằm đảm bảo khả năng dữ liệu được truyền từ nguồn đến đích.
Độ trễ giữa hai nút mạng
Cho đến nay, các thảo luận về độ trễ chỉ mới dừng lại ở một bộ định tuyến. Phần này sẽ xem xét về độ trễ giữa hai nút mạng.
Giả sử là có N-1
bộ định tuyến nằm giữa hai nút nguồn và đích. Cũng giả sử là mạng không ùn tắt (để thời gian xếp hàng chờ là không đáng kế), thời gian xử lý tại mỗi bộ định tuyến là tại nút nguồn đều là dproc, tốc độ đẩy gói tin ra khỏi thiết bị của mỗi bộ định tuyến và nút nguồn là R
bits/sec, và thời gian lan truyền của gói tin trên mồi đường truyền là dprop. Độ trễ giữa hai nút mạng chính là tổng độ trễ ở các nút mạng:
dend-end = N(dproc dtrans + dprop)
trong đó dtrans = L/R
, với L
là kích thước gói tin. Trường hợp tổng quát, độ trễ tại các bộ định tuyến không giống nhau, độ trễ giữa hai nút mạng được tính khác đi.
Traceroute
Để cảm nhận rõ hơn về độ trễ giữa hai nút mạng, có thể sử dụng chương trình Traceroute.
Traceroute là một chương trình có thể chạy trên bất kỳ thiết bị đầu cuối nào. Khi người sử dụng đưa vào địa chỉ máy đích, chương trình ở máy nguồn gửi nhiều gói tin đặc biệt tới máy đích đó. Khi các gói tin này di chuyển về phía máy đích, chúng sẽ đi qua một chuỗi các bộ định tuyến. Khi một bộ định tuyến nhận được một trong những gói tin đặc biệt này, chúng sẽ gửi lại cho máy nguồn một thông điệp ngắn chứa tên và địa chỉ của bộ định tuyến này.
Cụ thể hơn, giả sử có N-1 bộ định tuyến nằm giữa nguồn và đích. Phía nguồn sẽ gửi N gói tin đặc biệt lên mạng, mỗi gói tin được gán địa chỉ đích. N gói tin này được đánh số từ 1 đến N. Khi bộ định tuyến thứ n nhận đươc gói tin được đánh số n, bộ định tuyến sẽ không chuyển tiếp gói tin này về phía đích đến, mà sẽ gửi ngược một thông điệp về phía nguồn. Khi thiết bị đầu cuối phía đích nhận được gói tin thứ N, nó cũng gửi trả ngược một thông điệp về phía nguồn.
Phía nguồn ghi nhận thời gian từ lúc gửi gói tin đi đến lúc nhận lại được thông điệp tương ứng; nó cũng ghi nhận tên vào địa chỉ của bộ định tuyến (hoặc hệ cuối phía đích) có trả về thông điệp. Bằng cách này, phía nguồn có thể dựng lại tuyến đường mà các gói tin đi từ nguồn đến đích, và nguồn có thể xác định thời gian đi-về của gói tin đến tất cả các bộ định tuyến trung gian.
Thật ra Traceroute lặp lại việc đã mô tả đến ba lần, nghĩa là nó đã gửi đến 3xN gói tin về phía đích. Bạn có thể xem mô tả chi tiết về Traceroute trong RFC 1393. Cũng có nhiều chương trình phần mềm miễn phí cung cấp chức năng của Traceroute với giao diện đồ họa, chẳng hạn như PingPlotter.
$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
1 gateway (192.168.1.1) 4.466 ms 2.892 ms 2.353 ms
2 183.81.85.178 (183.81.85.178) 6.057 ms 6.339 ms 5.626 ms
3 42.118.124.31 (42.118.124.31) 7.524 ms
42.118.124.29 (42.118.124.29) 7.076 ms 42.087 ms
4 42.117.11.218 (42.117.11.218) 54.483 ms 65.800 ms
42.117.11.158 (42.117.11.158) 45.737 ms
5 42.117.11.219 (42.117.11.219) 9.785 ms 5.208 ms 6.162 ms
6 118.69.132.2 (118.69.132.2) 4.810 ms 16.613 ms 6.474 ms
7 42.112.149.132 (42.112.149.132) 44.239 ms *
74.125.119.188 (74.125.119.188) 44.408 ms
8 * 74.125.119.168 (74.125.119.168) 49.369 ms *
9 74.125.251.204 (74.125.251.204) 51.401 ms *
dns.google (8.8.8.8) 96.157 ms
Thiết bị đầu cuối, ứng dụng và các độ trễ khác
Ngoài các độ trễ đã đề cập: thời gian xử lý nút, thời gian đẩy gói tin lên đường truyền và thời gian lan truyền tín hiệu, cũng còn có một vài loại độ trễ khác cũng đáng kể ở các thiết bị đầu cuối.
Lấy ví dụ, các modem quay số có một độ trễ khác: thời gian điều chế (modulation) và mã hoá (encoding) tín hiệu. Loại độ trễ này ước khoảng hàng chục mili-giây (độ trễ này là không đáng kể và thường bị bỏ qua trong các công nghệ như Ethernet, modem, cáp, và DSL). Một thiết bị đầu cuối muốn truyền một gói tin lên môi trường truyền dẫn dùng chung (chẳng hạn WIFI hoặc Ethernet) cũng có thể quyết định trì hoãn có chủ đích việc đấy tín hiệu lên môi trường truyền như giao thức quy định.
Thông lượng mạng
Ngoài độ trễ và hiện tượng mất gói tin, một độ đo hiệu năng quan trọng khác trong lĩnh vực mạng máy tính là thông lượng (thoughput) giữa hai điểm. Để định nghĩa thông lượng, hãy xem tình huống truyền một tập tin kích thước lớn, đi từ Host A đến Host B. Tình huống này có thể là truyền một đoạn video lớn từ một máy tính đến một máy tính khác trong mạng chia sẻ tập tin P2P.
Thông lượng tức thời (instantaneous throughput) tại một thời điểm bất kỳ là số bit mà Host B nhận được trong một đơn vị thời gian, tại thời điểm đó, tính theo đơn vị là bits/sec. (Trong nhiều ứng dụng, kể cả trong các hệ thống chia sẻ tập tin P2P, thông lượng tức thời thường được hiện ra trên giao diện của ứng dụng). Nếu tập tin có F
bits, và Host B nhận được hết F
bits này trong T
giây, thì thông lượng trung bình (average throughput) của việc truyền tập tin này là F/T
bits/sec.
Một số ứng dụng, như điện thoại Internet, đòi hỏi phải có mức độ trễ thấp và thông lượng tức thời phải trên một ngưỡng nhất định (ví dụ, trên 24 kbps với các ứng dụng điện thoại Internet và trên 256 kbps với một số ứng dụng truyền hình thời gian thực). Với một số ứng dụng khác, bao gồm các ứng dụng liên quan đến việc truyền tập tin, độ trễ không phải là yếu tố sống còn, nhưng nó mong muốn có một thông lượng cao nhất có thể.
Để hiểu hơn về tầm quan trọng của khái niệm thông lượng, hãy xem một số ví dụ. Hình dưới đây (a) cho thấy hai hệ cuối, một là server và một là client, được nối kết bằng hai đường truyền và một bộ định tuyến.
Hãy xem xét thông lượng khi truyền tập tin từ server đến client. Ký hiệu Rs
(bps) là tốc độ của đường truyền giữa server và bộ định tuyến; Rc
(bps) là tốc độ của đường truyền giữa bộ định tuyến và client. Giả định rằng mạng chỉ có các bit được gửi từ server đến client mà thôi. Trong tình huống lý tưởng này, câu hỏi đặt ra là thông lượng giữa server và client bằng bao nhiêu?
Để trả lời câu hỏi này, chúng ta có thể quan niệm các bits như một dòng chất lỏng và đường truyền như đường ống. Rõ ràng là server không thể bơm các bits quá mức Rc
bps; và bộ định tuyến cũng không thể chuyến dòng bit nhanh vượt quá mức Rc
bps. Nếu Rs < Rc
, dòng bit được server bơm và sẽ “chảy” xuyên qua bộ định tuyến và đến client ở mức Rs
bps, cho một thông lượng Rs
bps.
Còn nếu Rs > Rc
, thì bộ định tuyến cũng không thể nào chuyển các bit nhanh như khi nó nhận được. Trong trường hợp này, dòng bit sẽ rời khỏi bộ định tuyến với tốc độ Rc
, và cho một thông lượng Rc
. (Cũng lưu ý rằng nếu các bit tiếp tục đến bộ định tuyến ở mức Rs
và tiếp tục rời khỏi bộ định tuyến ở mức thấp hơn Rc
, thì hàng đợi gói tin tại bộ định tuyến sẽ càng lúc càng lớn, và đây là tình huống không mong đợi).
Do đó, với mạng gồm hai đường truyền đơn giản như thế, thông lượng giữa server và client chính là min{Rs ;Rc}
, cũng chính là tốc độ truyền của đoạn mạng chậm nhất. Qua việc xác định thông lượng như trên, giờ đây chúng ta đã có thể xấp xỉ thời gian cần để truyền một tập tin F
bits từ server đến client là F/min{Rs ;Rc}
.
Lấy một ví dụ cụ thể, giả sử bạn đang tải một tập tin MP3 với kích thước F = 32 triệu bits, và server có tốc độ truyền là Rs = 2 Mbps, và đường truyền của mạng truy cập có tốc độ khả năng Rc = 1 Mbps. Do đó, thời gian cần để truyền tập tin này là 32 giây. Dĩ nhiên là những diễn tả này về thông lượng và thời gian truyền chỉ là xấp xỉ, bỏ qua các vấn đề liên quan đến gói tin và giao thức.
Hình trên (b) cho một mạng với N đường truyền R1, R2, R3, .., Rn. Vận dụng cách phân tích tương tự như trường hợp mạng gồm hai đường truyền, chúng ta sẽ thấy rằng thông lượng của việc truyền tập tin từ server đến client là min{R1, R2, R3, .., Rn}
, chính là tốc độ truyền của đường chậm nhất trong tuyến nằm giữa server và client.
Hãy xem một ví dụ khác lấy từ ý tưởng của mạng Internet hiện nay. Hình (a) cho thấy hai thiết bị đầu cuối, một server và một client, được kết nối đến một mạng máy tính.
Hãy xem thông lượng của việc truyền tập tin từ server đến client. Server được kết nối vào mạng bằng một mạng truy cập có tốc độ khả năng Rs
và client được kết nối vào mạng bằng một mạng truy cập có tốc độ khả năng Rc
. Giả sử rằng tất cả các đường truyền trong phần lõi của mạng truyền thông có tốc độ truyền rất cao, cao hơn nhiều so với Rs
, và Rc
.
Thực tế thì mạng lõi của Internet rất là hùng hậu với các đường truyền cao tốc ít khi tắt nghẽn. Cũng giả sử là chỉ có những bit được gửi trong toàn mạng là đến từ server gửi cho client. Trong ví dụ này, bởi vì lõi của mạng cũng như một đường ống lớn, các bit có thể chảy từ nguồn đến đích với tốc độ nhỏ nhất trong Rs
, và Rc
, nghĩa là thông lượng bằng min(Rs;Rc)
. Do đó yếu tố ràng buộc quyết định thông lượng của mạng Internet ngày nay thương là nằm ở cung truy cập mạng.
Lấy một ví dụ cuối cùng, xét hình (b), trong đó có 10 servers và 10 clients được kết nối đến phần lõi của mạng máy tính. Trong ví dụ này có 10 phiên tải dữ liệu đang diễn ra đồng thời, liên quan đến 10 cặp client-server. Giả sử rằng chỉ có 10 phiên tải dữ liệu này trên mạng thời điểm đang xét. Gọi R
là tốc độ của đường truyền chung.
Giả sử rằng tất cả các server truy cập đường truyền đều có cùng tôc độ Rs
, tất cả các đường truy cập đến client đều có cùng tốc độ Rc
, và tốc độ của tất cả các đường truyền trong mạng lõi – ngoại trừ một đường chung có tốc độ R
– là lớn hơn nhiều so với Rs, Rc
và R
. Với giả định như vậy thì thông lượng của các phiên tải dữ liệu này là bao nhiêu?
Rõ ràng nếu tốc độ của đường truyền chung R
, là lớn – chẳng hạn lớn gấp hàng trăm lần so với Rs, Rc
– thì thông lượng của mỗi phiên tải sẽ là min(Rs;Rc)
. Nhưng nếu tốc độ của đường truyền chung là cỡ Rs
,và Rc
, thì thông lượng sẽ băng bao nhiêu?
Xem một ví dụ cụ thể. Giả sử Rs
=2 Mbps, Rc
= 1 Mbps, R
= 5 Mbps, và đường truyền chung chia tốc độ khả năng thành 10 phần bằng nhau. Vậy thì điểm chậm nhất của mỗi phiên tải không còn nằm ở vùng truy cập mạng, mà là ở đường truyền dùng chung ở mạng lõi, vốn chỉ dành cho mỗi phiên tải thông lượng cỡ 500 kbps. Do đó, thông lượng hai đầu của mỗi phiên tải này giảm còn 500 kbps.
Ví dụ ở hình (a) đã cho thấy rằng thông lượng phụ thuộc vào khả năng truyền của những đường truyền mà dòng dữ liệu đi qua. Khi không có dòng dữ liệu nào xen vào, thông lượng có thể tính xấp xỉ như tốc độ truyền thấp nhất của các đường liên kết nằm trên đường nối từ nguồn đến đích.
Ví dụ ở hình (b) cho thấy điều tổng quát hơn rằng thông lượng không chỉ phụ thuộc vào tốc độ của các đường truyền dọc theo hai điểm, mà còn phụ thuộc vào luồng dữ liệu xen ngang. Đặc biệt, một đường truyền tốc độ cao vẫn có thể trở thành nghẽn cổ chai khi có quá nhiều dòng dữ liệu cũng đi qua đó.
Tổng kết
Ở bài này chúng ta đã tìm hiểu xong về các hiện tượng trễ gói tin và mất gói tin trong mạng chuyển mạch gói, song song đó là khái niệm về thông lượng và các ví dụ minh hoạ nhầm khái quát hơn các kiến thức về chúng.
Ở bài sau chúng ta sẽ tìm hiểu tiếp về sự phân tầng giao thức và các dịch vụ của chúng.