Chuyển mạch gói

Tổng quan về chuyển mạch gói

Trong một ứng dụng mạng, các hệ thống đầu cuối trao đổi thông điệp với nhau. Tin nhắn có thể chứa bất cứ thứ gì mà nhà thiết kế ứng dụng muốn. Tin nhắn có thể thực hiện chức năng điều khiển (ví dụ như trong bài trước, tin nhắn “Chào” trong ví dụ bắt tay của chúng ta trong) hoặc có thể chứa dữ liệu, chẳng hạn như tin nhắn e-mail, hình ảnh JPEG hoặc tệp âm thanh MP3. Để gửi một thông điệp từ hệ thống cuối nguồn đến hệ thống cuối đích, nguồn sẽ chia các thông điệp dài thành các phần dữ liệu nhỏ hơn được gọi là các gói – packets. Giữa nguồn và đích, mỗi gói truyền đi thông qua các liên kết truyền thông và chuyển mạch gói (trong đó có hai loại chủ yếu, bộ định tuyến chuyển mạch lớp liên kết ). Các gói được truyền qua mỗi liên kết truyền thông với tốc độ bằng tốc độ truyền toàn bộ của liên kết. Vì vậy, nếu một hệ thống đầu cuối nguồn hoặc một bộ chuyển mạch gói đang gửi một gói L bit qua một liên kết với tốc độ truyền R bit / giây, thì thời gian để truyền gói là L / R giây.

 

Lưu trữ và chuyển tiếp

Hầu hết các thiết bị chuyển mạch gói sử dụng truyền lưu trữ và chuyển tiếp tại các đầu vào của các liên kết. Truyền lưu trữ và chuyển tiếp có nghĩa là bộ chuyển mạch gói phải nhận được toàn bộ gói trước khi nó có thể bắt đầu truyền bit đầu tiên của gói vào liên kết đi.

Bây giờ, chúng ta xem Hình 1.11 . Một bộ định tuyến thường sẽ có nhiều liên kết sự cố, vì công việc của nó là chuyển một gói đến thành một liên kết đi; trong ví dụ đơn giản này, bộ định tuyến có nhiệm vụ khá đơn giản là chuyển một gói từ một liên kết (đầu vào) đến một liên kết đính kèm duy nhất khác.

Trong ví dụ trên, nguồn có ba gói, mỗi gói gồm L bit, để gửi đến đích. Tại ảnh chụp nhanh về thời gian trong Hình 1.11 , nguồn đã truyền một số gói 1 và phần trước của gói 1 đã đến bộ định tuyến. Bởi vì bộ định tuyến sử dụng tính năng lưu trữ và chuyển tiếp, tại thời điểm này, bộ định tuyến không thể truyền các bit mà nó đã nhận được; thay vào đó, trước tiên nó phải lưu trữ các bit của gói tin. Chỉ sau khi bộ định tuyến đã nhận được tất cả các bit của gói, nó mới có thể bắt đầu truyền (tức là “chuyển tiếp”) gói đó đến liên kết gửi đi.

Nguồn bắt đầu truyền tại thời điểm 0; tại thời điểm L / R giây, nguồn đã truyền toàn bộ gói, và toàn bộ gói đã được nhận và lưu trữ tại bộ định tuyến. Tại thời điểm L / R giây, vì bộ định tuyến vừa nhận được toàn bộ gói tin, nên nó có thể bắt đầu truyền gói tin vào liên kết đi hướng đến đích; tại thời điểm 2 L / R , bộ định tuyến đã truyền toàn bộ gói tin và toàn bộ gói đã được nhận bởi đích. Như vậy, tổng độ trễ là 2 L / R. Nếu thay vào đó chuyển tiếp các bit được chuyển tiếp ngay khi chúng đến (không nhận toàn bộ gói trước), khi đó tổng độ trễ sẽ là L / R vì các bit không được lưu giữ tại bộ định tuyến

Chậm trễ xếp hàng và mất gói

Mỗi chuyển mạch gói có nhiều liên kết được gắn vào nó. Đối với mỗi liên kết được đính kèm, bộ chuyển mạch gói có một bộ đệm đầu ra (còn được gọi là hàng đợi đầu ra ), lưu trữ các gói mà bộ định tuyến sắp gửi vào liên kết đó. Các bộ đệm đầu ra đóng một vai trò quan trọng trong chuyển mạch gói. Nếu một gói tin đến cần được truyền vào một liên kết nhưng lại thấy liên kết đó bận với việc truyền một gói tin khác, thì gói tin đến phải đợi trong bộ đệm đầu ra. Do đó, ngoài sự chậm trễ lưu trữ và chuyển tiếp, các gói còn phải chịu sự chậm trễ xếp hàng bộ đệm đầu ra . Những độ trễ này có thể thay đổi và phụ thuộc vào mức độ tắc nghẽn trong mạng.

Hình 1.12 minh họa một mạng chuyển mạch gói đơn giản

Chúng ta để ý trong Hình 1.11 , các gói được biểu diễn bằng các phiến ba chiều. Chiều rộng của một phiến biểu thị số lượng bit trong gói tin. Trong hình 1.12 này, tất cả các gói có cùng chiều rộng và do đó có cùng chiều dài. Giả sử các Máy chủ A và B đang gửi các gói đến Máy chủ E. Các Máy chủ A và B trước tiên gửi các gói của chúng dọc theo các liên kết Ethernet 100 Mbps đến bộ định tuyến đầu tiên. Sau đó, bộ định tuyến sẽ chuyển hướng các gói này đến liên kết 15 Mbps. Nếu, trong một khoảng thời gian ngắn, tốc độ đến của các gói đến bộ định tuyến (khi được chuyển đổi thành bit trên giây) vượt quá 15 Mbps, tắc nghẽn sẽ xảy ra tại bộ định tuyến khi các gói xếp hàng trong bộ đệm đầu ra của liên kết trước khi được truyền vào liên kết. Ví dụ, nếu Máy chủ A và B gửi một loạt năm gói tin liên tục vào nhau cùng một lúc, thì hầu hết các gói tin này sẽ dành một khoảng thời gian để chờ đợi trong hàng đợi. Trên thực tế, tình huống này hoàn toàn tương tự với nhiều tình huống thường ngày — ví dụ, khi chúng ta xếp hàng đợi giao dịch viên ngân hàng hoặc đợi trước một trạm thu phí.

Bảng chuyển tiếp và giao thức định tuyến

Chúng ta có câu hỏi là làm thế nào để bộ định tuyến xác định liên kết nào mà nó sẽ chuyển tiếp gói tin đến? Chuyển tiếp gói thực sự được thực hiện theo nhiều cách khác nhau trong các loại mạng máy tính khác nhau.

Trong Internet, mọi hệ thống đầu cuối đều có một địa chỉ được gọi là địa chỉ IP. Khi hệ thống cuối nguồn muốn gửi một gói đến hệ thống cuối đích, nguồn sẽ bao gồm địa chỉ IP của đích trong tiêu đề của gói. Cũng như địa chỉ bưu điện, địa chỉ này có cấu trúc phân cấp. Khi một gói đến một bộ định tuyến trong mạng, bộ định tuyến sẽ kiểm tra một phần địa chỉ đích của gói và chuyển tiếp gói đó đến một bộ định tuyến liền kề. Cụ thể hơn, mỗi bộ định tuyến có một bảng chuyển tiếp ánh xạ địa chỉ đích (hoặc các phần của địa chỉ đích) tới các liên kết đi của bộ định tuyến đó. Khi một gói tin đến một bộ định tuyến, bộ định tuyến sẽ kiểm tra địa chỉ và tìm kiếm bảng chuyển tiếp của nó, sử dụng địa chỉ đích này, để tìm liên kết đi thích hợp. Sau đó, bộ định tuyến sẽ chuyển hướng gói tin đến liên kết gửi đi này.

Làm thế nào để các bảng chuyển tiếp được thiết lập? Chúng được cấu hình thủ công trong từng bộ định tuyến hay Internet sử dụng quy trình tự động hơn?

Chúng ta nhớ rằng Internet có một số giao thức định tuyến đặc biệt được sử dụng để 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 đường đi ngắn nhất từ mỗi bộ định tuyến đến mỗi đích và sử dụng kết quả đường dẫn ngắn nhất để định cấu hình các bảng chuyển tiếp trong bộ định tuyến.

Tài liệu tham khảo

James F. Kurose and Keith W. Ross (2017) 7nd ed. Computer networking: a top-down approach. James F. Kurose, University of Massachusetts, Amherst, Keith W. Ross, NYU and NYU Shanghai.