3.2.1 Truyền thông trực tiếp giữa các tầng
Truyền thông trực tiếp giữa các tầng là cho phép thông tin trong thời gian chạy có thể chia sẻ giữa các tầng, có nghĩa là cho phép chúng giao tiếp lẫn nhau, như ở hình 3-2a. Nói cách khác, một biến thuộc một tầng nào đó mà các tầng khác có thể thấy được. Ngược lại, ở kiến trúc theo tầng chặt chẽ, mỗi tầng quản lý các biến của nó, và các biến của nó không bị truy cập bởi các tầng khác.
Có nhiều cách để các tầng có thể truyền thông với các tầng khác. Ví dụ, các header giao thức có thể được sử dụng để các dòng thông tin có thể di chuyển giữa các tầng. Một cách khác là có thể được xem các thông tin liên tầng phụ thêm như các gói tin nội bộ.
3.2.2 Một cơ sở dữ liệu chia sẻ giữa các tầng
Có một cơ sở dữ liệu chung mà tất cả các tầng có thể truy cập. Theo một cách nào đó một cơ sở dữ liệu giống như một tầng mới, cung cấp các dịch vụ lưu trữ/truy xuất thông tin cho tất cả các tầng.
Cách tiếp cận này đặc biệt thích hợp cho các xác định dọc thông qua các tầng. Một chương trình tối ưu có thể giao tiếp với các tầng khác nhau một lần thông qua cơ sở dữ liệu chia sẻ. Thách thức ở đây là việc thiết kế tương tác giữa các tầng khác nhau và cơ sở dữ liệu chia sẻ.
3.2.3 Các trừu tượng hoàn toàn mới
Ví dụ đề xuất [13] đã thể hiện một cách mới để tổ chức các giao thức: các giao thức được đặt trong các heap, chứ không phải trong các ngăn xếp như trong kiến trúc tầng thông thường.
Một cách tổ chức các giao thức theo cách mới lạ như vậy đã nhận được nhiều sự quan tâm của các nhà nghiên cứu vì chúng cho phép các tương tác sâu giữa các khốii giao thức. Vì vậy, chúng có tính mềm dẻo, ở cả thời gian thiết kế cũng như thời gian chạy. Tuy nhiên, chúng thay đổi các giao thức đã có và vì vậy có thể dẫn tới việc cài đặt lại hoàn toàn các giao thức ở mức hệ thống.
3.3 Các vấn đề của thiết kế liên tầng
Khi thiết kế môt kiến trúc liên tầng, các nhà thiết kế liên tầng cần xem xét một số vấn đề sau:
Các đề xuất thiết kế liên tầng khác nhau cùng tồn tại với các đề xuất khác như thế nào?
Ý tưởng thiết kế liên tầng này có thể ngăn cản sự đổi mới trong tương lai hay không?
Các thiết kế liên tầng như thế nào sẽ ảnh hưởng đáng kể lên hiệu năng của mạng và vì vậy nên tập trung nhiều vào các thiết kế liên tầng nào?
Trước khi đưa ra một đề xuất thiết kế mới, có tìm hiểu kỹ về ảnh hưởng của các tương tác giữa các tham số ở các tầng khác nhau đối với hiệu năng mạng hay không?
Dưới điều kiện môi trường và mạng nào thì đề xuất thiết kế liên tầng nào là thích hợp?
Các giao diện/kỹ thuật được sử dụng để chia sẻ thông tin giữa các tầng cần được chuẩn hóa hay không?
Vai trò của tầng vật lý trong các mạng không dây là gì?
Cái nhìn truyền thống về mạng là coi mạng là một tập các liên kết điểm- điểm có thích hợp cho các mạng không dây hay không?
3.4 Mã mạng tuyến tính
Trước đây mã hóa (coding) chỉ được sử dụng ở tầng vật lý của node nguồn. R. Ahlswede là người đầu tiên đưa ra khái niệm mã mạng (network coding). Kỹ thuật này sử dụng kỹ thuật mã hóa ở các tầng khác ở các node trung gian. Ý tưởng chính của kỹ thuật này là dữ liệu được trộn lại ở node trung gian trước khi gửi đi. Ahlswede đã chứng minh rằng, không để đạt được thông lượng multicast tối ưu với kỹ thuật routing truyền thống, trong khi đó sử dụng kỹ thuật mã mạng có thể đạt được thông lượng tối ưu này. Kỹ thuật routing có thể được xem như trường hợp đặc biệt của mã mạng khi các đầu ra của một node là hoán vị của các đầu vào.
Bài toán multicast là cho một node nguồn và một tập các node đích (sink). Tìm đường đi để truyền dữ liệu từ một node nguồn tới một tập các node đích một cách nhanh nhất.
Trong chương này, luận văn đưa ra các khái niệm cơ bản, đặc biệt là khái niệm multicast mã-tuyến tính (linear-code multicast - LCM). Với một “generic” LCM,
mỗi node có thể đồng thời nhận thông tin từ nguồn với tốc độ bằng với cận trên luồng- cực đại. Luận văn mô tả cách cài đặt vật lý của một LCM khi mạng là acyclic, sau đó với mạng là cyclic. Tiếp theo, luận văn mô tả một thuật toán tham lam để xây dựng một generic LCM cho một mạng acyclic. Cùng một thuật toán này được áp dụng cho mạng cyclic bằng cách mở rộng mạng thành một mạng acyclic.
Mô hình mạng
Dùng một đồ thị G liên thông G=(V,E) để mô hình một mạng máy tính, với E
là tập các cạnh của đồ thị, V là tập các node của mạng. Chỉ một node trong mạng được gọi là node nguồn s, một tập các node t1, t2, …tL được gọi là node đích (sink). Cho một giá trị xác định L, vấn đề sẽ ở đây là vấn đề 1-nguồn L-đích.
3.4.1 Các khái niệm cơ bản
Trong phần này này, luận văn giới thiệu một số khái niệm và thuật ngữ trong lý thuyết đồ thị sẽ được sử dụng luận văn. Sau đó luận văn sẽ giới thiệu khái niệm của một LCM [23]- một mô tả đại số của mã hóa tuyến tính trên một mạng truyền thông.
Qui ước: Kí hiệu một node không phải nguồn là T,U,W,X,Y hoặc Z. Kí hiệu
một kênh từ X tới Y là XY.
Định nghĩa: Trên một mạng truyền thông, một luồng từ một nguồn S tới một
node không phải nguồn T là một tập các kênh, các kênh này được gọi là các kênh “bận” trong luồng, trong đó:
1. Tập con mạng định nghĩa bởi các kênh bận là acyclic, nghĩa là, các kênh bận không hình thành nên các vòng liên thông;
2. Đối với bất kỳ node nào khác S và T, số các kênh bận đi vào bằng số các kênh bận đi ra;
3. Số các kênh bận đi ra từ S bằng số các kênh bận đi vào T
Nói cách khác, một luồng là một tập các kênh acyclic tuân theo định luật luồng thông tin. Số các kênh bận đi ra từ S được gọi là dung tích (volume) của luồng. Node T được gọi là sink (đích) của luồng. Tất cả các kênh truyền thông không bận của một luồng được gọi là các kênh rỗi của luồng đó.
Định đề 3.1: Các kênh bận trong một luồng với dung tích f có thể được chia thành f đường đơn giản từ nguồn tới đích.
Kí hiệu: Với mỗi node không phải nguồn T trên một mạng (G, S), dung tích lớn nhất của một luồng từ nguồn tới T được kí hiệu là maxflowG(T), hoặc đơn giản là
maxflow(T) khi không có sự nhập nhằng.
Định nghĩa: Một nhát cắt trên một mạng truyền thông (G, S) giữa nguồn và node T không phải nguồn là một tập các node C bao gồm S nhưng không bao gồm T. Một kênh XY được nói là ở “trong” nhát cắt C nếu X C và Y C. Số các kênh trong một nhát cắt được gọi là “giá trị” của nhát cắt.
Lý thuyết Max-Flow Min-Cut: Đối với mỗi node không phải nguồn T, giá trị nhỏ nhất của một nhát cắt giữa nguồn và một node T bằng với maxflow(T).
Kí hiệu: Gọi d là giá trị lớn nhất của maxflow(T) trên tất cả các node T. Gọi
là không gian vector d-chiều cố định trên một trường cơ sở đủ lớn.
Qui ước: Đơn vị thông tin được xem như một kí tự trong trường cơ sở. Nói cách khác, một kí tự trong trường cơ sở có thể được truyền trên một kênh trong một đơn vị thời gian.
Bây giờ chúng ta đã sẵn sàng cho việc định nghĩa một multicast mã tuyến tính (LCM – Linear Coding Multicast).
Định nghĩa: Một multicast mã tuyến tính (LCM) v trên một mạng truyền thông
(G, S) là một phép gán không gian vector v(X) tới mỗi node X và vector v(XY) tới mỗi kênh XY mà
1) v(S) =;
2) v(XY) v(X) với mỗi kênh XY;
3) đối với bất kỳ tập các node không phải nguồn trên mạng thì 4) {v(T):T } {v(XY): X},Y . Kí tự thể hiện việc nối tuyến tính (linear span)
Điều kiện 2) và 3) chỉ ra rằng một LCM tuân theo định luật luồng thông tin. Vector v(XY) được gán cho mỗi kênh XY có thể được xem như một vector “cột” d- chiều trên trường cơ sở .
Áp dụng điều kiện 3) cho một tập các node không phải nguồn đơn T, không gian v(T) là mở rộng tuyến tính của các vector v(XT) trên tất cả các kênh đi vào XT tới
T. Điều này chỉ ra rằng một LCM trên một mạng truyền thông được xác định hoàn toàn bởi các vector nó gán cho các kênh. Cùng với điều kiện 2) chúng ta có
5) Vector gán cho một kênh đi ra từ T phải là tổ hợp tuyến tính của các vector gán cho các kênh đi vào T.
Điều kiện 4) được xem như “định luật về luồng thông tin trên một node.” Tuy nhiên, không giống như lý thuyết luồng mạng, định luật về luồng thông tin cho mỗi node đơn không nhất thiết có nghĩa là nó đúng đổi với bất kỳ tập các node nào của một mạng bất kỳ (đặc biệt là mạng có chứa một vòng liên thông).
Một LCM v xác định một kỹ thuật di chuyển dữ liệu trên mạng như sau. Chúng ta mã hóa thông tin chuyển từ S như một vector hàng d-chiều mà chúng ta sẽ gọi là vector thông tin. Dưới kỹ thuật mô tả bởi LCM v, luồng thông tin trên một kênh
XY sẽ là tích ma trận của vector (hàng) thông tin với vector (cột) v(XY). Theo cách này, vector v(XY) hoạt động như một hạt nhân trong việc mã hóa tuyển tính kênh XY. Từ định nghĩa của một LCM, ta có vector được gán cho một kênh đi ra từ node X là một tổ hợp tuyến tính của các vector được gán cho các kênh đi vào X. Kết quả là, dữ liệu được gửi trên một kênh ra từ X là tổ hợp tuyến tính của dữ liệu gửi trên các kênh vào
X.
Dưới kỹ thuật này, số lượng thông tin đến X sẽ bằng với chiều của không gian vector v(T) khi sử dụng LCM v.
Ví dụ 3.1: Xét trường hợp multicast hai bit b1 và b2 từ S tới Y và X trong mạng truyền thông trong hình 1-1b. Điều này đạt được với LCM v xác định bởi
v(ST) = v(TW) = v(TY) = 10
v(SU) = v(UW) = v(UZ) = 1 0 v(WX) = v(XY) = v(XZ) = 11
Dữ liệu gửi trên một kênh là tích ma trận của vector hàng (b1 b2) với vector cột mà v gán cho kênh đó. Ví dụ dữ liệu gửi trên kênh WX là b1+b2. Chú ý rằng, trong trường hợp đặc biệt khi trường cơ sở của là GF(2), vector b1+b2 sẽ đơn giản là phép toán exclusive-OR b1b2.
dim(v(T)) maxflow(T)
Như vậy, maxflow(T) là cận trên của số lượng thông tin T nhận được khi sử dụng LCM v.
3.4.2 Đạt được cận max-flow thông qua một generic LCM
Trong phần này, luận văn đưa ra một điều kiện đủ cho một LCM v để đạt được cận max-flow trên dim(v(T)) trong Định đề 3.2
Định nghĩa: Một LCM v trên một mạng truyền thông được gọi là generic nếu điều kiện sau thỏa mãn đối với bất kỳ tập kênh X1Y1, X2Y2, …, XmYm với 1 m d; (*) v(Xk) {v(XjYj): jk} với 1 k m khi và chỉ khi các vector v(X1Y1), v(X2Y2), …., v(XmYm) là độc lập tuyến tính.
Nếu v(X1Y1), v(X2Y2), …., v(XmYm) là độc lập tuyến tính, thì v(Xk)
{v(XjYj): j k} vì v(X1Y1) v(Xk). Một LCM yêu cầu rằng điều ngược lại cũng đúng. Theo ý nghĩa này, một generic LCM gán các vector là độc lập tuyến tính nhất có thể cho các kênh.
Ví dụ 3.2: Với với truyền thông trong hình 1-1b, LCM v trong ví dụ 3.1 là một generic LCM. Tuy nhiên LCM u định nghĩa bởi:
u(ST) = u(TW) = u(TY) = 10
u(SU) =u(UW) = u(UZ) = 1 0
u(WX) = u(XY) = u(XZ) = 0 1
thì không phải là generic. Điều này có thể thấy được bằng cách xét một tập các kênh {ST, WX} mà u(S) = u(W) = ,10
0 1
. Lúc đó u(S) u(WX) và
u(W) u(ST) nhưng u(ST) và u(WX) không độc lập tuyến tính. Vì vậy, u
không phải là generic.
Bổ đề 3.1: Gọi v là một generic LCM. Bất kỳ tập các kênh XY1, XY2, … XYm từ một node X với m dim (v(X)) phải được v gán các vector độc lập tuyến tính.
Định lý: Nếu v là một generic LCM trên một kênh truyền thông thì đối với tất cả các node T ta có:
dim(v(T)) = maxflow(T).
Một LCM trong đó dim(v(T)) = maxflow(T) đối với tất cả T cung cấp một cách quảng bá một thông điệp phát sinh từ node nguồn S, trong đó mỗi node không phải nguồn T sẽ nhận thông điệp ở tốc độ bằng với maxflow(T). Điều này được minh họa bởi ví dụ sau, dựa trên giả sử rằng trường cơ sở của là một trường vô hạn hoặc trường hữu hạn đủ lớn. Trong ví dụ này, chúng ta triển khai một kỹ thuật được chứng minh bởi bổ đề sau:
Bổ đề 3.2: Gọi X, Y và Z là các node mà maxflow(X) = i, maxflow(Y) = j và
maxflow(Z) = k, với i j và i > k. Bằng cách loại bỏ bất kỳ cạnh UX nào trong đồ thị,
maxflow(X) và maxflow(Y) bị giảm nhiều nhất là 1 và maxflow(Z) vẫn giữ nguyên. Ví dụ 3.3: Xét một mạng truyền thông trong đó maxflow(T) = 4,3 hoặc 1 đối với tất cả các node T trong mạng. Node nguồn S phải quảng bá 12 ký tự a1, .., a12. Các ký tự này được lấy từ trường cơ sở F đủ lớn. (Chú ý rằng 12 là bội số chung nhỏ nhất của 4,3 và 1). Định nghĩa tập
i
={T:maxflow(T)=i}, với i = 4, 3, 1
Để đơn giản, chúng ta sử dụng giây như là đơn vị thời gian. Chúng ta sẽ mô tả cách a1, …, a12 có thể được quảng bá tới các node trong 4, 3, 1 trong giây thứ 3, 4 và 12 tương ứng, giả sử rằng tồn tại một LCM trên mạng đối với d = 4, 3, 1.
Chúng ta sẽ đưa ra tóm tắt của lược đồ phía trên. Trong giây thứ i đối với i = 1, 2,3, thông qua generic LCM v1, mỗi node trong 4 nhận cả 4 chiều của i, mỗi node trong 3 nhận ba chiều của i, và mỗi node trong 1nhận một chiều của i. Trong giây thứ tư, thông qua generic LCM v2, mỗi node trong 3 nhận vector , vector này cung cấp 3 chiều còn thiếu của 1, 2 và 3 (1 chiều cho mỗi cái) trong suốt 3s đầu tiên trong việc multicast bởi v1. Trong cùng thời gian đó, mỗi node trong
1
nhận một chiều của . Bây giờ, để khôi phục lại , mỗi node trong 1 cần nhận hai chiều còn thiếu của trong suốt giây thứ tư. Điều này đạt được bằng LCM v3 trong giây thứ năm và thứ sáu. Mỗi node trong 1 nhận được một chiều của i cho i = 1,2,3 từ thông qua v2 và v3 trong suốt từ giây thứ tư đến giây thứ sáu. Vì vậy, nó
duy trì việc cung cấp sáu chiều còn thiếu của 1, 2 và 3 (mỗi cái 2 chiều) cho mỗi node trong 1, và điều này đạt được trong giây thứ 7 đến thứ 12 thông qua generic
LCM v3.
Nhận xét: Lược đồ trong ví dụ 3.3 có thể dễ dàng được tổng quát hóa tới một tập các giá trị luồng-cực đại bất kỳ.
Trong lược đồ ví dụ 3.3, ở cuối giây thứ 12, mỗi node nhận được một thông điệp của 12 kí tự. Vì vậy, tốc độ thông tin đến mỗi node trung bình trên toàn bộ quá trình là 1 kí tự/s. Kết quả trong [1] xác nhận rằng có thể đạt được tốc độ này – giá trị nhỏ nhất của cận luồng-cực đại của tất cả các node. Tuy nhiên, trong lược đồ của bài báo này các node trong 4, 3, 1 có thể thực sự nhận được toàn bộ thông điệp ở tốc độ bằng với cận luồng-cực đại của chúng. Vì vậy, kết quả của bài báo phần nào mạnh hơn trong [1]. Tuy nhiên, không có nghĩa là thông tin có thể được multicast liên