Chuyển mạch gói – Nguyên lý Dữ liệu được truyền theo gói nhỏ Thông thường là 1000 octet / gói Các thông điệp lớn hơn được chia thành một chuỗi các gói nhỏ Mỗi gói chứa một phần dữ
Trang 1CHƯƠNG 7
MẠNG CHUYỂN MẠCH GÓI
(Packet Switching
Network)
anhph@cse.hcmut.edu.vn
Trang 3Chuyển mạch gói
Chuyển mạch mạch được thiết kế để truyền thoại
Các tài nguyên được dành riêng cho cuộc gọi
Hầu hết thời gian là kết nối dữ liệu rảnh
Tốc độ dữ liệu cố định
Thiết bị cả 2 đầu phải chạy cùng tốc độ
⇒ Công nghệ chuyển mạch gói
Ứng dụng
Các ứng dụng dữ liệu
Các ứng dụng tiếng nói
Packetized Voice Network
Trang 4Chuyển mạch gói – Nguyên lý
Dữ liệu được truyền theo gói nhỏ
Thông thường là 1000 octet / gói
Các thông điệp lớn hơn được chia thành một chuỗi các gói nhỏ
Mỗi gói chứa một phần dữ liệu của người dùng và các thông tin điều khiển
Thông tin điều khiển
Chứa thông tin cho việc tìm đường (địa chỉ)
Các gói được nhận, lưu tạm thời (đệm) và chuyển cho node kế tiếp
Lưu và chuyển (store and forward)
Trang 5Chuyển mạch gói – Ưu điểm
Hiệu quả sử dụng đường truyền
Liên kết đơn node-node có thể dùng chung bởi nhiều gói
Các gói được xếp hàng và truyền đi nhanh nhất có thể
Chuyển đổi tốc độ dữ liệu
Mỗi trạm kết nối với node cục bộ với tốc độ của nó
Các node đệm dữ liệu nếu cần thiết để cân bằng tốc độ
Các gói được chấp nhận ngay khi mạng đang bận
Việc phát có thể chậm lại
Thông báo có thể có các độ ưu tiên khác nhau
Trang 6Chuyển mạch gói – Kỹ thuật
Trạm chia thông báo dài thành nhiều gói nhỏ
Các gói được gởi lần lượt vào mạng
Các gói được xử lý theo 2 cách
Datagram
Virtual circuit
Trang 7Chuyển mạch gói – Kỹ thuật
Datagram
Mỗi gói được xử lý độc lập
Các gói có thể đi theo bất cứ đường thích hợp nào
Các gói có thể đến đích không theo thứ tự gởi
Các gói có thể thất lạc trên đường đi
Nhiệm vụ của bên nhận là sắp xếp lại các gói mất trật tự và khôi phục các gói thất lạc
Trang 8Chuyển mạch gói - Datagram
Trang 9Chuyển mạch gói - Datagram
Trang 10Chuyển mạch gói – Kỹ thuật
Virtual circuit
Đường đi định sẵn đã được tạo trước khi gởi các gói đi
Các gói yêu cầu cuộc gọi và chấp nhận cuộc gọi được dùng
để tạo kết nối (handshake)
Mỗi gói chứa thông tin về đường đi “ảo” thay vì thông tin địa chỉ đích
Không cần quyết định tìm đường cho các gói
Yêu cầu xóa để hủy kết nối
Không phải là một đường dành riêng
Mỗi đường ảo được gán một mã số riêng (Virtual Circuit
Trang 11Chuyển mạch gói – Virtual Circuit
Trang 12Chuyển mạch gói – Virtual Circuit
Trang 13Virtual Circuit vs Datagram
Virtual circuit
Mạng có thể cung cấp sự tuần tự và điều khiển lỗi
Các gói được chuyển nhanh hơn
Không cần các quyết định tìm đường
Độ tin cậy kém hơn
node đó
Datagram
Không cần giai đoạn thiết lập kết nối
Tốt hơn nếu số gói nhỏ
Linh động hơn
Đường đi được quyết định sao cho tránh các phần mạng đang nghẽn kẹt
Trang 14Kích thước gói
Trang 15Circuit vs Packet Switching
Circuit Switching Datagram Packets Virtual Circuit Packets
Đường truyền dẫn dành riêng Đường truyền dẫn không
dành riêng Đường truyền dẫn không dành riêng
Dữ liệu truyền liên tục Dữ liệu truyền theo gói Dữ liệu truyền theo gói
Đủ nhanh cho ứng dụng
tương tác Đủ nhanh cho ứng dụng tương tác Đủ nhanh cho ứng dụng tương tác
Thông báo không được lưu trữ Thông báo có thể được lưu trữ
cho đến khi đến phân phát
Thông báo được lưu trữ cho đến khi đến phân phát
Đường truyền dẫn được thiết
lập cho toàn bộ quá trình trao
Tín hiệu bận nếu bên nhận
không sẵn sàng Người gởi có thể được thông báo nếu các gói không được
phân phát
Người gởi được thông báo nếu các gói không được phân phát
Trang 16Circuit vs Packet Switching (tt)
Circuit Switching Datagram Packets Virtual Circuit Packets
Quá tải sẽ khóa việc thiết
lập; không trễ khi đường
truyền đã được thiết lập
Quá tải sẽ tăng thời gian trễ của gói Quá tải có thể khóa việc thiết lập; tăng thời gian trễ
của gói
Chuyển mạch cơ điện hoặc
được điều khiển bởi máy
tính
Node chuyển mạch nhỏ Node chuyển mạch nhỏ
User chịu trách nhiệm khi
các thông báo bị thất lạc Mạng có thể sẽ chịu trách nhiệm cho các gói đơn lẻ Mạng có thể sẽ chịu trách nhiệm cho chuỗi các gói
Thường không cần chuyển
đổi tốc độ và bảng mã Chuyển đổi tốc độ và bảng mã Chuyển đổi tốc độ và bảng mã
Truyền dẫn băng thông cố
định Linh động sử dụng băng thông Linh động sử dụng băng thông
Không tốn chi phí dữ liệu
sau khi thiết lập Tốn kém dữ liệu cho mỗi gói Tốn kém dữ liệu cho mỗi gói
Trang 17 Số chặng đường (hop) là tối thiểu
Chi phí (cost) tối thiểu
Trang 18Chi phí các đường đi
Trang 19Yếu tố quyết định chiến thuật tìm đường
Thời điểm quyết định
Trên cơ sở mạch ảo hoặc gói
Nơi quyết định
Phân tán (Distributed)
Được thực hiện tại các node
Tập trung (Centralized)
Tại nguồn gởi (Source)
Nguồn thông tin mạng và thời điểm cập nhật thông tin
Quyết định tìm đường thông thường (không phải luôn luôn) được
dựa trên các thông tin về mạng
Tìm đường phân tán (Distributed routing)
Node sử dụng các thông tin cục bộ
Có thể thu thập thông tin từ các node kế cận
Có thể thu thập thông tin từ các node trên đường tiềm năng
Tìm đường tập trung (Central routing)
Thu thập thông tin từ tất cả các node
Trang 20Chiến thuật tìm đường
Chiến thuật (Routing Strategies)
Fixed routing
Flooding routing
Random routing
Adaptive routing
Trang 21Fixed Routing
Một lộ trình cố định cho
mỗi đường đi từ nguồn đến
đích
Tất cả các đường đi qua
mạng đều đã được thiết
lập từ trước và không cập
nhật theo các biến đổi về
các điều kiện tải, … trong
mạng
Đường đi được xác định
dùng giải thuật chi phí tối
thiểu
Đường cố định ít ra cho
đến khi có sự thay đổi cấu
hình mạng
Trang 22Flooding Routing
Không cần thông tin mạng
Node gởi các gói tới mỗi node kề (láng giềng)
Các gói nhận được sẽ được truyền trên tất cả các kết nối ngoại trừ kết nối đến
Cuối cùng sẽ có một số copy của gói sẽ đến đích
Mỗi gói được đánh số duy nhất sao cho các copy
trùng nhau sẽ bị loại bỏ
Node có thể ghi nhớ các gói đã đi qua, giúp cho
mạng không quá tải nhiều
Có thể chứa số chặng đường (hop) trong các gói,
được dùng để giới hạn hay kết thúc quá trình truyền
Trang 23 Có thể được dùng để thiết lập đường mạch ảo
Tất cả các node đều được
tới
Dùng để phân tán thông tin (tìm đường)
Trang 24 Không cần thông tin mạng
Lộ trình tìm được thông thường không phải là đường
có chi phí tối thiểu hoặc số chặng nhỏ nhất
R R P
Trang 26Adaptive Routing
Ưu điểm
Hiệu suất được cải thiện
Trợ giúp điều khiển nghẽn mạng
Chi tiết nếu có thời gian
Trang 27Isolated Adaptive Routing
Mỗi node trong mạng tự cập nhật bảng tìm đường của mình
dựa vào các thông tin về mạng mà node đó học hỏi được,
không trao đổi thông tin routing với các node khác
Gởi các gói trên các liên kết ra có hàng đợi ngắn nhất
Có thể thêm các độ ưu tiên (bias) cho các đích
Một trong những phương pháp đơn giản nhất của tìm đường
động, phù hợp với các mạng có kích thước nhỏ và hoạt động
tương đối ổn định
Ít dùng (không dùng thông tin có sẵn)
Trang 28Adaptive Routing
Distributed Adaptive Routing
Trong phương pháp này, thông tin về tình trạng hoạt động hiện hành của mạng sẽ được định kỳ trao đổi, cập nhật giữa các node trong toàn mạng Sau đó thông tin này sẽ được phân bố về lại các node trong mạng hay một số node trong mạng làm nhiệm vụ tìm đường để các node này cập nhật lại bảng routing
Phương pháp này đáp ứng được với những thay đổi trạng
thái của mạng, nhưng đồng thời cũng làm tăng lưu lượng thông tin trong mạng
Centralized Adaptive Routing
Trong phương pháp này, thông tin về tình trạng hoạt động hiện hành của mạng sẽ được định kỳ trao đổi, cập nhật giữa các node trong toàn mạng Sau đó thông tin này sẽ được tập trung về một máy chủ trong mạng làm nhiệm vụ routing
Tuy đáp ứng được với những thay đổi tức thời trong mạng
nhưng phương pháp này có nhược điểm là thông tin routing
Trang 29Giải thuật tìm đường ngắn nhất
Bài toán
Cho mạng các node được nối bởi các liên kết 2 chiều, mỗi
chiều có giá trị chi phí riêng
Chi phí của đường đi giữa 2 node trong mạng là tổng các giá trị chi phí của các liên kết đi qua
Xác định đường đi ngắn nhất (chi phí thấp nhất) giữa 2 node
Tiêu chuẩn đường ngắn nhất
Số chặng đường đi
Giá trị mỗi liên kết là 1
Giá trị liên kết
Tỉ lệ nghịch tốc độ liên kết
Tỉ lệ thuận tải trên liên kết
Giải thuật
Forward-search (Dijkstra)
Trang 30Giải thuật Dijkstra
Đồ thị G(V, E) trong đó V là tập đỉnh, E là tập cạnh có trọng số không âm
M: tập các đỉnh đã xét tại bước chạy hiện hành của giải thuật
dij : trọng số trên cạnh nối từ node i đến node j
Trang 31Giải thuật Dijkstra
Giải thuật
Bước 1: khởi động
D i = d SI
Bước 2: cập nhật đường đi ngắn nhất
Chọn đỉnh N ∈ V sao cho: DN = min {Di} ∀i ∈ V\M
M = M ∪ {N}
Dj = min {Dj, DN + dNj } ∀j ∈ V\M
Bước 3: lặp lại bước 2 cho đến khi M=V
Kết quả Di sẽ là đường đi ngắn nhất từ node nguồn
S đến node i
Trang 32Giải thuật Dijkstra
Tìm đường đi ngắn nhất từ node nguồn 1 đến tất cả các
node còn lại
Trang 33Giải thuật Dijkstra
Trang 34Giải thuật Bellman - Ford
Đồ thị G(V, E) trong đó V là tập đỉnh, E là tập cạnh có trọng số
Đỉnh nguồn S: S ∈ V
Đồ thị có chu trình âm → không tồn tại đường đi ngắn nhất
Đường đi ngắn nhất từ đỉnh nguồn S đến tất cả các đỉnh còn lại
D(h)i : đường đi ngắn nhất từ node nguồn S đến node i có tối
đa h đoạn (link)
dij: trọng số trên cạnh nối từ node i đến node j
dij = 0 nếu i trùng j
Trang 35Giải thuật Bellman – Ford
Bước 3: lặp lại bước 2 cho đến khi không có đường đi mới
nào ngắn hơn được tìm thấy thì dừng
Kết quả D(h)N sẽ là đường đi ngắn nhất từ node nguồn S đến node N
Trang 36Giải thuật Bellman – Ford
Tìm đường đi ngắn nhất từ node nguồn 1 đến tất cả các
node còn lại
Trang 37Giải thuật Bellman – Ford
Trang 38Bài tập
Tìm đường ngắn nhất từ node 1
Theo giải thuật Dijkstra
Theo giải thuật Bellman – Ford
3
4 3
Trang 39Bài tập
Tìm đường ngắn nhất từ node 1
Theo giải thuật Dijkstra
Theo giải thuật Bellman – Ford
1
1 1
4 5
Trang 40Dijkstra vs Bellman–Ford
Bellman-Ford
Việc tính toán cho node n phải biết các thông tin về chi phí liên kết của các node kề và chi phí tổng cộng từ node s đến các node kề của node n
Mỗi node cần lưu trữ tập các chi phí và các đường đi tương ứng đến các node khác
Có thể trao đổi thông tin với các node kề trực tiếp
Có thể cập nhật thông tin về chi phí và đường đi dựa trên
các thông tin trao đổi với các node kề và các thông tin về chi phí liên kết
Dijkstra
Mỗi node cần biết topology toàn bộ mạng
Phải biết chi phí liên kết của tất cả các liên kết trong mạng
Phải trao đổi thông tin với tất cả các node khác trong mạng
Trang 41Đánh giá
Phụ thuộc vào thời gian xử lý của các giải thuật
Phụ thuộc vào lượng thông tin yêu cầu từ các node khác
Phụ thuộc vào việc hiện thực
Cùng hội tụ về một lời giải dưới điều kiện topology
tĩnh và chi phí không thay đổi
Nếu chi phí liên kết thay đổi, các giải thuật sẽ tính lại
để theo kịp sự thay đổi
Nếu chi phí liên kết thay đổi theo lưu thông, lưu
thông lại thay đổi theo đường đi được chọn
Phản hồi
Có thể rơi vào trạng thái không ổn định
Trang 42 Dùng giải thuật tìm đường Bellman-Ford
Các node trao đổi thông tin (các vector thời gian trễ) với các node kề
Cập nhật bảng tìm đường dựa trên thông tin đến
Không quan tâm đến tốc độ đường truyền, chỉ quan tâm
chiều dài hàng đợi tại các node
Chiều dài hàng đợi không phải là cách đo chính xác của thời gian trễ
Đáp ứng chậm với nghẽn mạch
Trang 43ARPANET – Tìm đường
Thế hệ thứ 2
1979
Dùng thời gian trễ làm tiêu chuẩn đánh giá hiệu quả
Thời gian trễ được đo trực tiếp
Dùng giải thuật tìm đường Dijkstra
Thích hợp cho mạng có tải trung bình hoặc nhẹ
Khi mạng tải nặng, có ít tương quan giữa thời gian trễ đo
được và thời gian trễ gặp phải
Thế hệ thứ 3
1987
Việc tính toán chi phí của liên kết đã được thay đổi
Thời gian trễ trung bình được đo trong 10 giây cuối
Bình thường hóa dựa trên giá trị hiện tại và kết quả trước đó
Trang 45 Cung cấp việc truyền dữ
liệu tin cậy thông qua liên
External virtual circuits
Kết nối luận lý (virtual
circuits) giữa các thuê bao
Trang 46X.25 – Virtual Circuit
Dịch vụ mạch ảo
Virtual Call (SVC – Switched Virtual Circuit)
Permanent virtual circuit
Virtual circuit được gán trước cố định
Fast Select call
thông báo/lệnh nhỏ (<128 octet) trong quá trình thiết lập/xóa kết nối
Trang 47X.25 – Định dạng gói
Trang 48X.25 – Gói dữ liệu
Số VC (12 bits) – 4 bit logical group number + 8 bit logical channel
number
Thông thường 2 trường này được xem như một
Dùng để chỉ thị loại kết nối hoặc kênh giữa các DTE
Các loại kết nối khác nhau cho phép nhiều phiên giao dịch giữa cùng một cặp DTE
Có thể lên đến 4095 kênh luận lý trên cùng một đường giao tiếp vật lý
Q bit (Qualifier bit) – không được định nghĩa trong chuẩn, thường phân biệt các gói chứa dữ liệu (i.e user information Q=0) và các gói chứa
thông tin điều khiển (Q=1)
M bit (More bit) – chỉ thị nhiều gói sẽ tiếp theo
Mạng chuyển gói công cộng có kích thước giới hạn cho các gói (thông
báo sẽ được phân thành nhiều gói
Ngoại trừ gói cuối cùng, các gói sẽ có bit M được bật (M=1)
D bit – bằng 0 khi gói này là một phần của gói bị phân mảnh, bằng 1 khi gói được tái hợp
Cũng được dùng để điều khiển dòng
Khi D=0, điều khiển dòng được thực hiện cục bộ (giữa DTE và cục bộ DCE)
Khi D=1, điều khiển dòng được thực hiện giữa DTE và DTE ở xa
Trang 49X.25 – Gói điều khiển
6 nhóm: thiết lập kết nối, điều khiển dòng, giám sát, xác nhận, chuẩn đoán, ngắt quãng
Gói thiết lập kết nối
4 loại: Call Request, Incoming Call, Call Accepted, và Call Connected
Được dùng trong giai đoạn thiết lập mạch ảo
Gói điều khiển dòng
3 loại: Receive Ready (RR), Receive Not Ready (RNR), và Reject (REJ)
Được dùng trong giai đoạn truyền dữ liệu (các gói đều chứa P(R))
Xem thêm HDLC
Gói giám sát
Bao gồm: Restart Request/Indication, Clear Request/Indication,
Reset Request/Indication
Restart Request được dùng trong tình huống xấu (host crash) để xóa
VC do DTE này đang giữ
Clear Request dùng để xóa VC (được chỉ ra trong VC number)
Reset Request được dùng để reset chỉ số nhận/gởi tuần tự về 0 trong chế độ truyền dữ liệu
Trang 50X.25 – Gói điều khiển
Gói xác nhận
Dùng để xác nhận các yêu cầu trước đó (cho Restart, Clear, Reset, và Interrupt)
Gói chuẩn đoán
Do mạng tạo ra cho mục đích chuẩn đoán lỗi
Gói ngắt quãng
Được truyền trong quá trình truyền dữ liệu, và không chứa chỉ số gởi/nhận tuần tự Nghĩa là gói ngắt quãng không là đối tượng của quá trình điều khiển dòng (điều khiển dòng được bỏ qua và các gói ngắt quãng được truyền tới DTE đích với độ ưu tiên cao hơn các gói dữ liệu)
Trang 52X.25 – Set và Reset
Reset
Khởi tạo lại virtual circuit
Số tuần tự được đặt bằng 0
Các gói đang quá cảnh bị mất
Tùy vào các protocol cấp cao để khôi phục lại các gói bị mất
Kích hoạt bởi việc mất các gói, sai số tuần tự, nghẽn mạch, mất internal virtual circuit
Restart
Tương đương với yêu cầu xóa tất cả các virtual circuit
E.g mất tạm thời việc truy cập mạng
Trang 53X.25 – Thủ tục thiết lập kết nối
DTEa ⇔ DCEa ⇔ PSN ⇔ DCEb ⇔ DTEb (DTEa muốn kết nối với DTEb)
DTEa nhận một virtual circuit number (VCN)
DTEa gởi gói call-request cho DTEb (chứa VCN, địa chỉ DTEa, địa chỉ DTEb)
DCEa tìm đường đi băng qua mạng PSN cho gói này đến
Trang 54X.25 – Thủ tục giải phóng kết nối
DTEa ⇔ DCEa ⇔ PSN ⇔ DCEb ⇔ DTEb (DTEa muốn xóa kết nối với DTEb)
DTEa gởi gói clear-request tới DCEa
DCEa gởi gói clear-indication tới DTEb (thông qua DCEb)
DTEb gởi clear-indication tới DTEa (thông qua các DCEb và DCEa)