Mạng máy tính - 5

Tiếp theo của Mạng máy tính  -  4
--------

1.3.1.2     Độ trễ tại hàng đợi và hiện tượng mất gói tin


Mỗi thiết bị chuyển mạch gói thường được nối với nhiều đường truyền, mỗi đường truyền sẽ có một bộ đệm đầu ra tương ứng, gọi là output buffer (hoặc output queue), bộ đệm này được sử dụng để chứa các gói tin chuẩn bị gửi đi. Bộ đệm đầu ra là một thành phần quan trọng trong một thiết bị chuyển mạch gói.

Trong trường hợp có gói tin cần được chuyển tiếp, nhưng đường truyền đi đang bận, thì gói tin sẽ phải nằm đợi tại bộ đệm đầu ra. Như vậy, ngoài độ trễ do quá trình store-and-forward, mỗi gói tin còn phải chịu thêm một độ trễ nữa là độ trễ hàng đợi (queuing delays). Độ trễ này không cố định mà nó phụ thuộc vào mức độ tắc nghẽn của hệ thống mạng. Vì kích thước của bộ đệm đầu ra là hữu hạn, nên sẽ có thời điểm không thể có đủ chỗ cho các gói tin mới đến. Trong trường hợp này, sẽ xảy ra tình trạng mất gói tin (packet loss), khi đó toàn bộ gói tin đang được lưu trên bộ đệm đầu ra và gói tin mới đến sẽ bị hủy bỏ (drop).





Hình 12 là một mạng chuyển mạch gói đơn giản. Các gói tin (packet) chính là các hình khối màu xanh. Do kích thước của các gói tin là bằng nhau, nên kích thước của các khối màu xanh cũng bằng nhau. Giả sử máy A và máy B muốn gửi gói tin tới máy C. Đầu tiên, máy A và máy B sẽ gửi các gói tin tới router qua đường truyền Ethernet có băng thông là 10 Mbps. Router sẽ chuyển tiếp các gói tin này tới đường truyền có băng thông là 1.5 Mbps. Tại một thời điểm nào đó, nếu tốc độ truyền các gói tới router vượt quá 1.5 Mbps, sẽ gây ra hiện tượng tắc nghẽn tại router, do các gói tin phải nằm chờ ở hàng đợi trước khi được truyền đi. Ví dụ, nếu cả máy A và B cùng lúc gửi đi năm gói tin liên tiếp nhau, khi đó hầu hết các gói tin này sẽ phải nằm chờ ở hàng đợi tại router. Tình huống này cũng hay gặp trong cuộc sống hàng ngày, ví dụ khi bạn phải xếp hàng chờ tại các máy rút tiền, các trạm thu phí giao thông.


1.3.1.3     Giao thức định tuyến và bảng chuyển tiếp


Như đã biết, router sẽ nhận gói tin ở đường truyền vào, và chuyển tiếp gói tin tới đường truyền ra. Tuy nhiên, thường có rất nhiều đường truyền ra. Vậy, router đã làm thế nào để biết đường nào là tốt nhất cho gói tin đi ra? Quá trình chuyển tiếp gói tin được thực hiện bằng rất nhiều cách khác nhau, tùy thuộc vào từng loại công nghệ mạng. Phần dưới đây chỉ mô tả vắn tắt quá trình chuyển tiếp gói tin của mạng Internet.

Trong mạng Internet, mỗi thiết bị cuối sẽ có một địa chỉ, gọi là địa chỉ IP. Khi một máy nguồn muốn gửi một gói tin tới máy đích, trong phần header của gói tin sẽ chứa địa chỉ IP của máy đích. Tương tự như địa chỉ trong lĩnh vực bưu chính (ví dụ: Lê Văn A, số 1, đường X, thành phố Y, Việt Nam), địa chỉ IP cũng có cấu trúc phân cấp. Khi có một gói tin đến, router sẽ kiểm tra địa chỉ IP của máy đích trong header của gói tin, sau đó sẽ chuyển tiếp gói tin tới router kế tiếp (liền kề). Cụ thể, mỗi router sẽ có một “bảng chuyển tiếp” (forwarding table), bảng này sẽ ánh xạ các địa chỉ IP đích (hoặc một phần của địa chỉ IP đích) với các đường ra tương ứng của router. Khi có gói tin đến, router sẽ xem xét địa chỉ IP đích, tìm kiếm trong “bảng chuyển tiếp” và tìm ra đường đi thích hợp cho gói tin. Sau đó router sẽ truyền gói tin đi.

Quá trình tìm đường đi cho một gói tin từ máy nguồn tới máy đích cũng tương tự như quá trình tìm đường đi của một người lái xe, tuy nhiên người lái xe này không thích dùng bản đồ mà chỉ thích hỏi người hướng dẫn đường đi (tại các cây xăng) để đến được đích. Ví dụ, giả sử Joe muốn đi từ Philadelphia tới địa chỉ 156 Lakeside Drive, Orlando, Florida. Đầu tiên, Joe sẽ tới cây xăng cạnh nhà để đổ xăng, đồng thời hỏi người hướng dẫn, muốn đi tới địa chỉ 156 Lakeside Drive, Orlando, Florida thì đi đường nào? Người hướng dẫn chỉ quan tâm tới phần thông tin là Florida trong địa chỉ, và nói cho Joe biết là anh ta cần đi theo con đường ngay cạnh trạm xăng để vào xa lộ I-95 South, cứ đi theo xa lộ này sẽ tới được Florida, khi nào tời Florida thì hỏi tiếp. Theo chỉ dẫn, Joe đã tới được Florida, tại đây anh ta lại ghé vào một trạm xăng để hỏi đường. Người chỉ dẫn chỉ quan tâm tới phần thông tin là Orlando trong địa chỉ, và nói cứ đi theo con đường I-95, khi nào tới Daytona Beach thì dừng lại hỏi đường tiếp. Tại Daytona Beach, người chỉ dẫn nói: để đến được Orlando cần đi tiếp theo đường I-4. Joe đi theo đường I-4 và đã đến được Orlando, anh lại ghé vào một trạm xăng để hỏi đường, lần này người hướng dẫn chỉ quan tâm tới phần Lakeside Drive trong địa chỉ và chỉ cho Joe con đường cần phải đi để đến Lakeside Drive. Khi đến Lakeside Drive, Joe hỏi một cậu bé đang đi xe đạp, cậu bé chỉ quan tâm tới thông tin là số nhà 156, và chỉ Joe tới ngôi nhà này. Cuối cùng Joe đã đến được đích. Trong ví dụ này, người hướng dẫn tại các trạm xăng và cậu bé đi xe đạp đóng vai trò như là các router trong hệ thống mạng.

Như đã biết, router sẽ sử dụng địa chỉ đích trong một gói tin, dựa vào “bảng chuyển tiếp” để tìm được đường đi thích hợp cho gói tin. Vậy “bảng chuyển tiếp” được xây dựng như thế nào? Nó được cấu hình bằng tay cho mỗi router hay hệ thống Internet tự động tạo ra? Vấn đề này sẽ được trình bày chi tiết ở phần sau. Tuy nhiên, tạm thời chỉ cần biết là Internet có một số giao thức định tuyến (routing protocols) đặc biệt, các giao thức này sẽ tự động thiết lập các “bảng chuyển tiếp”. Ví dụ, một giao thức định tuyến có thể xác định được đường đi ngắn nhất từ một router tới một địa chỉ đích, sau đó sử dụng kết quả này để cấu hình “bảng chuyển tiếp” cho router.

Nếu muốn biết lộ trình của một gói tin trên Internet, vào trang web http://www.traceroute.eu/ chọn mục Traceroute. Nhập địa chỉ IP của bạn (trong mục Your IP is, ví dụ: 14.184.171.69) vào ô IP address or host name. Bấm nút Go để xem lộ trình mà gói tin đi từ server www.traceroute.eu tới máy của bạn. Lưu ý, ở đây đang sử dụng địa chỉ IP public. Cũng có thể mở cửa sổ dòng lệnh trên máy tính, nhập vào dòng lệnh tracert www.traceroute.eu để xem kết quả. Hai kết quả này không nhất thiết phải giống nhau.


1.3.2    Chuyển mạch kênh


Có hai cách tiếp cận cơ bản trong việc truyền dữ liệu trên hệ thống mạng liên kết và chuyển mạch là: chuyển mạch kênh (circuit switching) và chuyển mạch gói (packet switching). Phần trước đã trình bày về mạng chuyển mạch gói, phần này sẽ trình bày về mạng chuyển mạch kênh.

Trong mạng chuyển mạch kênh, khi đường truyền đã được thiết lập giữa hai thiết bị cuối thì trong suốt quá trình truyền thông, toàn bộ tài nguyên trên đường truyền (các bộ đệm, băng thông) được dành riêng cho phiên truyền đó. Trong mạng chuyển mạch gói, các tài nguyên trên đường truyền không bị độc chiếm bởi các phiên truyền. Các phiên truyền chỉ sử dụng tài nguyên đường truyền khi nào có nhu cầu, do vậy trong nhiều trường hợp các gói tin phải đợi tại các bộ đệm, trước khi có thể sử dụng đường truyền. Để dễ hiểu, hãy xem hai loại mạng chuyển mạch này cũng tương tự như hai nhà hàng, một nhà hàng luôn yêu cầu khách hàng phải đặt chỗ trước, và một nhà hàng thì không. Với nhà hàng có yêu cầu đặt chỗ, trước khi đến nhà hàng, khách hàng phải gọi điện để hỏi còn chỗ không, nếu còn sẽ đặt chỗ; đổi lại, khi khách hàng đến sẽ có chỗ ngồi được dọn sẵn và được phục vụ các món. Với nhà hàng không yêu cầu đặt chỗ trước, khách hàng có thể đến nhà hàng bất cứ lúc nào, mà không cần phải gọi điện trước; tuy nhiên, khi đến, khách hàng có thể phải chờ vì nhà hàng đã hết bàn trống, không thể phục vụ ngay được.

Mạng điện thoại truyền thống (telephone) chính là một ví dụ của mạng chuyển mạch kênh. Hãy xem điều gì sẽ xảy ra khi một người muốn gửi thông tin (thoại hoặc fax) tới một người khác thông qua mạng điện thoại. Trước khi người gửi gửi thông tin, mạng điện thoại phải thiết lập một kết nối giữa người gửi và người nhận. Đây là một kết nối thật sự (bona fide), trong đó các thiết bị chuyển mạch tạo nên kết nối giữa người gửi và người nhận luôn duy trì ở trạng thái sẵn sàng, và được dành riêng cho kết nối này, cho tới khi việc truyền tin kết thúc. Trong lĩnh vực điện thoại, người ta gọi kết nối này là một kênh truyền (circuit). Khi hệ thống mạng điện thoại thiết lập một kênh truyền, nó cũng dàng riêng cho kênh truyền này một băng thông cố định. Kết quả là, người dùng luôn được đảm bảo một đường truyền dữ liệu ổn định, với băng thông không đổi.


Hình 13 là minh họa cho một mạng chuyển mạch kênh. Trong hệ thống mạng này, bốn thiết bị chuyển mạch được nối với nhau bằng bốn đường truyền. Mỗi đường truyền có bốn kênh truyền, như vậy mỗi đường truyền có thể cung cấp bốn kênh kết nối cùng lúc. Các host (ví dụ máy tính) được kết nối trực tiếp vào thiết bị chuyển mạch. Khi hai host muốn truyền dữ liệu, hệ thống mạng sẽ thiết lập một kết nối điểm-tới-điểm dành riêng cho hai host. Như trong hình minh họa, giả sử để host A truyền dữ liệu tới host B, hệ thống cần dành riêng một kênh trên mỗi đường truyền. Cụ thể, hệ thống đã dành kênh thứ hai trong chặng kết nối đầu tiên, và kênh thứ tư trong chặng kế tiếp. Vì mỗi đường truyền gồm bốn kênh, nên băng thông của mỗi kênh sẽ là một phần tư tổng băng thông của đường truyền, băng thông này được duy trì cố định trong suốt quá trình truyền. Ví dụ, nếu đường truyền có băng thông là 1 Mbps thì, mỗi kênh truyền sẽ có băng thông là 250 kbps.

Bây giờ, hãy xem xét chuyện gì sẽ xảy ra, khi một host muốn gửi một gói tin tới một host khác trên hệ thống mạng chuyển mạch gói, cụ thể là mạng Internet. Cũng như trong hệ thống mạng chuyển mạch kênh, gói tin cũng được gửi qua từng chặng trước khi tới được đích. Nhưng điểm khác biệt ở đây là, gói tin được gửi vào hệ thống mạng mà chưa có bất kì sự chuẩn bị trước nào về đường truyền. Nếu một chặng nào đó bị tắc nghẽn do đang phải truyền các gói tin khác, thì gói tin sẽ phải đợi tại bộ đệm của thiết bị, và phải chấp nhận một khoảng thời gian trễ (delay). Hệ thống Internet sẽ cố gắng để truyền gói tin tới đích trong thời gian sớm nhất, nhưng nó không đảm bảo được là mọi gói tin đều có thể đến đích kịp thời theo yêu cầu.


1.3.2.1    Ghép kênh trong mạng chuyển mạch kênh


Ghép kênh là quá trình ghép nhiều tín hiệu (hoặc chuỗi dữ liệu) thành một tín hiệu (hoặc chuỗi dữ liệu) để truyền đi xa, nhằm tiết kiệm tài nguyên[1].

Có hai kĩ thuật ghép kênh cơ bản là ghép kênh phân chia tần số (FDM: frequency-division multiplexing) và ghép kênh phân chia thời gian (TDM: time-division multiplexing).

Với kĩ thuật FDM, phổ tần số (frequency spectrum) của một đường truyền được phân chia cho các kênh. Cụ thể, mỗi kết nối sẽ sử dụng một kênh truyền và có một băng tần riêng. Trong mạng điện thoại, độ rộng của mỗi băng tần thường là 4 kHz. Độ rộng của băng tần được gọi là băng thông (bandwidth). Các đài phát thanh sóng FM cũng sử dụng kĩ thuật FDM để chia sẻ phổ tần số từ 88 MHz đến 108 MHz, mỗi đài phát sẽ được cấp cho một băng tần cụ thể.

Đối với đường truyền sử dụng kĩ thuật TDM, thời gian sẽ được chia thành các khoảng bằng nhau gọi là khung (frame), mỗi khung lại được chia tiếp thành các khoảng bằng nhau gọi là khe (slot). Khi hệ thống mạng thiết lập kết nối trên đường truyền, mỗi slot trong frame sẽ được dành riêng cho một kết nối. Kết nối này sẽ sử dụng slot đã được cấp để truyền dữ liệu cho tới khi kết nối bị ngắt.


Hình 14 minh họa cho việc sử dụng hai kĩ thuật FDM và TDM, giả sử đường mạng có bốn kênh truyền. Với kĩ thuật FDM, dải tần của đường truyền được chia thành bốn băng tần, mỗi băng tần có độ rộng (băng thông) là 4 kHz. Với kĩ thuật TDM, thời gian của đường truyền được chia thành các frame, mỗi frame gồm bốn slot. Mỗi kênh truyền sẽ được gán cho một slot cố định trong mỗi frame. Tốc độ truyền của một kênh được tính bằng tốc độ truyền frame nhân với số bit chứa trong mỗi slot. Ví dụ, nếu tốc độ truyền frame là 8000 frame/giây, và mỗi slot chứa được 8 bit, khi đó tốc độ truyền của một kênh sẽ là 8000 x 8 = 64 kbps.

Những người ủng hộ mạng chuyển mạch gói cho rằng, mạng chuyển mạch kênh là lãng phí, vì kênh truyền sẽ không được tận dụng trong khoảng thời gian rảnh rỗi (silent period). Ví dụ, khi một người đang nói chuyện điện thoại mà ngưng không nói nữa, thì toàn bộ tài nguyên của kênh truyền (băng tần hoặc slot) sẽ ở trạng thái rảnh rỗi, tuy nhiên các kênh truyền khác sẽ không thể tận dụng được các tài nguyên này. Một ví dụ khác cũng cho thấy sự lãng phí của mạng chuyển mạch kênh là, một bác sĩ sử dụng máy tính ở xa (dùng mạng chuyển mạch kênh), kết nối trực tiếp tới máy chụp x-quang, tải hình ảnh từ máy x-quang về máy tính, xem hình ảnh để chuẩn đoán bệnh, sau đó lại tải tiếp hình ảnh mới. Như vậy trong suốt khoảng thời gian bác sĩ xem hình ảnh để chuẩn đoán bệnh, toàn bộ tài nguyên mạng của kênh truyền sẽ không được sử dụng. Ngoài ra còn một hạn chế nữa của mạng chuyển mạch kênh là việc thiết lập một kênh truyền, cũng như việc duy trì một tốc độ truyền cố định cho một kết nối điểm-tới-điểm là một công việc khó khăn, đồng thời cũng đòi hỏi phải có các phần mềm xử lý tín hiệu phức tạp trên các thiết bị chuyển mạch.

Trước khi kết thúc phần thảo luận về mạng chuyển mạch kênh, hãy cùng làm một vài tính toán đơn giản để hiểu thêm về nó. Giả sử cần gửi một tập tin có dung lượng 640 000 bit từ máy A tới máy B, sử dụng mạng chuyển mạch kênh. Giả sử tất cả các chặng trên đường truyền đều là mạng chuyển mạch kênh, sử dụng kĩ thuật TDM, mỗi frame có 24 slot, tốc độ truyền frame là 1,536 Mbps. Giả sử thời gian để thiết lập kênh truyền từ máy A tới máy B là 500 ms (mili giây). Vậy hết bao lâu để gửi tập tin trên tới đích? Ta có, tốc độ của mỗi kênh truyền là (1,536 Mbps)/24 = 64 kpbs, vậy thời gian cần thiết để gửi tập tin là (640 000 bit)/(64 kbps) = 10 giây. Cộng thêm thời gian thiết lập kênh truyền 0,5 giây, ta có tổng thời gian để gửi tập tin tới đích là 10,5 giây. Chú ý là thời gian gửi tập tin không phụ thuộc vào số lượng các chặng trên đường truyền, dù đường truyền gồm một chặng hay một trăm chặng thì thời gian truyền vẫn là 10 giây.



[1] https://vi.wikipedia.org/wiki/Gh%C3%A9p_k%C3%AAnh
----------------
lược dịch
James F. Kurose, Keith W. Ross, Computer Networking – A Top-Down Approach, Pearson, 2013
------------
Cập nhật 2016/6/23
------------

Xem thêm: Mạng máy tính  - 6