Các module trong OBS4NS

Một phần của tài liệu Mô phỏng mạng chuyển mạch quang chùm (optical burst switching) (Trang 86)

Phần mềm OBS4NS được xây dựng từ các module sau:

Module to node mng (ObsNode)

Các node trong mạng OBS bao gồm node biên và node lõi. Phần mềm này cũng xây dựng một module tạo các node này trong mạng, các node mạng trong phần mềm này là node unicast không hỗ trợ node multicast.

- Node biên

Ngõ vào của node biên là lưu lượng lấy từ module tạo lưu lượng. Các thông số của lưu lượng tuỳ thuộc vào lưu lượng đưa vào. Giá trị ngõ ra của node biên là các burst dữ liệu, gói điều khiển, thông tin về đường đi ngắn nhất, bước sóng cho gói điều khiền và burst dữ liệu.

Hình dưới đây mô tả kiến trúc của node biên và node lõi trong OBS4NS. Hình vẽ cho thấy những phần giống nhau trong khi xây dựng đối tượng mô phỏng là cả node biên và node lõi đều sử dụng chung thành phần tạo kết nối (Connector/ObsLink) và sử dụng biến entry_ để xác định lối vào. Phần khác nhau giữa node biên và node lõi là ở node biên có phần giao diện lớp MAC còn ở node lõi có chuyển mạch quang khối (Classifier/ObsSwitch)

Hình 4.7 Giao din lp MAC

Giao diện đến lớp MAC là thành phần cơ bản của node biên có nhiệm vụ

nhận lưu lượng từ khối tạo lưu lượng (lưu lượng được tạo ra bằng một số module trong NS-2). Nó phân loại gói đến theo đích đến (Classifier/Addr) và theo lớp dịch vụ (Classifier/CoS). Kếđến bộ đóng khối (Agent/Burstifier) có chức năng tập trung các gói tin lớp cao vào bộ đệm rồi tạo thành burst dữ liệu cùng với việc phát gói

điều khiển. Cuối cùng là bộ lập lịch kênh truyền (ChannelScheduler) chọn một bước sóng thích hợp cho burst dữ liệu ở ngõ ra. Node biên đích có bộ giải đóng khối (Agent/Deburstifier) tách các gói tin từ burst dữ liệu nhận được.

Thành phần quan trọng nhất của giao diện lớp MAC là bộ đóng khối (Agent/Burstifier). Các biến số cho bộđóng khối quyết định việc đóng khối như thế

nào:

MaxDBsize_ : đóng khối theo tiêu chuẩn về dung lượng tối đa.

Max_packets_ : đóng khối theo tiêu chuẩn về số lượng gói tối đa trong burst. Time_out_ : đóng khối theo tiêu chuẩn thời gian tối đa.

Np_ : số lượng gói trong một burst thực tếđược phát đi. Size_ : dung lượng thực tếđược phát đi.

Hình 4.8 Giao din lp MAC

Khi một burst dữ liệu được đưa vào mạng, một gói điều khiển được tạo ra cho burst này. Gói điều khiển này được gởi vào mạng ngay tức khắc còn burst dữ

liệu phải đợi trong bộđệm một khoảng thời gian bù mới được phát đi. Thời gian bù

được tính như sau: extra i Tx i offset switch BHPproc i offset T n T T T T T , =max( )( +1)+ +( ,−1 + ,−1)+

Với

n: số bước nhảy từ nguồn đến đích. i: mức ưu tiên dịch vụ.

)

max(TBHPproc : thời gian xử lý gói điều khiển tại mỗi node. Nếu chúng ta giả

sử rằng thời gian xử lý gói điều khiển cực đại tại mỗi node là bằng nhau kể cả node

nguồn thì tổng thời gian xử lý gói điều khiển là max(TBHPproc)

(n+1)

switch

T : thời gian chuyển mạch tại mỗi node trung gian

1 ,i

offset

T : thời gian offset time của burst có mức ưu tiên cao hơn.

1 ,i

Tx

T : thời gian truyền burst có mức ưu tiên cao hơn tối đa. Điều này tạo ra sự cách ly 100% giữa các lớp dịch vụ.

- Textra: là thời gian phát sinh do các tình huống khác và được tính như say:

δ + +

+

= BHPproc defl BHPqueue random

extra T n T T

T max( )

defl n

: là số lần chuyển hướng tối đa của một burst theo một phương thức chống loop.

BHPqueue T

: là thời gian gói điều khiển còn phải chứa trong hàng đợi.

δ : là khoảng thời gian rất nhỏ, là khoảng thời gian bảo vệ, cho phép chuyển mạch chuyển từ trạng thái hoạt động sang trạng thái cấu hình lại.

random

T : là khoảng thời gian được tạo ngẫu nhiên trong một khoảng nào đó

đóng vai trò một thông số ngẫu nhiên nào đó trong mạng.

Max_bhp_queue_time_: biến này cho phép cài đặt TBHPqueue

Extra_random_time_: biến này cho phép cài đặt Trandom

Extra_fixed_time_: biến này giới hạn sự biến đổi TrandomTTx,i−1

Equal_offset_: cho phép giá trị offset time của các lớp dịch vụ khác nhau bằng nhau.

Bhp_struct_map_: cho phép gói điều khiển có thể sửa lại khi thông tin về

burst trên đường truyền bị thay đổi (ví dụ như burst bị rớt một phần). Bhp_size_: biến thiết lập kích thước gói điều khiển.

Segmentation_: cho phép phân đoạn burst trong miền điện. Max_segmentation_: số lượng đoạn lớn nhất trong một burst. Min_segmentation_size_: kích thước tối thiểu của mỗi đoạn. Stats_ : cho phép gọi chức năng thống kê.

Hình 4.9 Thi gian offset

- Node lõi

Thành phần chủ yếu của node lõi là đơn vị điều khiển chuyển mạch SCU và ma trận chuyển mạch quang OXC.

SCU OXC BHP DB Ngõ ra (Classifier/ObsSwitch)

Hình 4.10 Node lõi trong OBS4NS

Chương trình xây dựng SCU với các biến số sau: Bhp_proc_time_: thời gian xử lý gói điều khiển. Channel_schedule_: chọn lựa loại lập lịch kênh truyền. Multipath_: cho phép chọn lựa nhiều đường đi hay không.

Deflection_ : cho phép SCU cấu hình cho OXC chuyển hướng burst trong việc giải quyết xung đột.

Segmentation_: cho phép SCU cấu hình cho OXC phân đoạn burst trong việc giải quyết xung đột.

Max_segmentation_size_: kích thước nhỏ nhất cho mỗi đoạn.

- Node kết hợp

Ngoài node biên và node lõi với các chức năng riêng biệt, phần mềm còn xây dựng một node kết hợp bao gồm cả chức năng node biên lẫn chức năng node lõi.

Giao diện kết nối đến lớp

MAC

Node lõi OBS

Agent Agent Agent Ngõ ra Ngõ ra Ngõ vào Node kết hợp (Connector/ObsLink) (Classifier/TypeSwitch) Giải đa hợp (Classifier/Port) IP OBS Hình 4.11 Node kết hp

Từ hình ta thấy node kết hợp có thể xử lý hai loại lưu lượng IP và burst dữ

liệu. Classifier/TypeSwitch có nhiệm vụ xét xem lưu lượng đến là IP hay là burst, từ đó đưa ra quyết định lưu lượng này xử lý ở phần nào (node lõi hay node biên).

Các thông số liên quan khác được cấu hình giống như cấu hình đối với node biên và cấu hình đối với node lõi.

Module to liên kết trong mng (Connector/ObsLink)

Do liên kết trong mạng OBS là các liên kết WDM nên trong xây dựng chương trình cũng có chức năng tạo liên kết WDM. Liên kết WDM trong chương trình tạo nên các biến số sau:

ndc_: số kênh dữ liệu. ncc_: số kênh điều khiển.

dc_bandwidth_: băng thông kênh dữ liệu. cc_bandwidth_: băng thông kênh điều khiển. delay_: độ trễ lan truyền trên mỗi liên kết.

Module đơn vị truyền dẫn trong mạng (ObsPacket)

Hai đơn vị truyền dẫn trong mạng là gói điều khiển OBS_BHP và burst dữ

liệu OBS_DB, burst dữ liệu trong OBS4NS không phải là một gói cụ thể như trong NS-2, chương trình mô phỏng chỉ xét hai giá trị vềđiểm bắt đầu DB_START và kết thúc DB_END của mỗi burst. Cụ thể trong chương trình hai giá trị này là hai biến NULL, điều này làm cho việc xử lý burst dữ liệu nhanh hơn và thích hợp cho việc xử lý của máy tính.

OBS_BHP: chương trình sẽ tạo ra gói điều khiển với các thông số sau: Id_: biến số nhận diện mỗi gói BHP.

Db_start_time_: thời điểm bắt đầu của burst. Db_end_time_: thời điểm kết thúc của burst. Channel_: gói BHP này sẽđưa đến kênh nào. Ttl_: thời gian sống của gói BHP.

Offset_obs_bhp_: thông số về thời gian bù. Stats_: biến gọi module thống kê.

Id_ Db_start_time_ Db_end_time_ Channel_ Ttl_ Offset_obs_bhp_ Stats_ OBS_DB: Chương trình tạo ra burst dữ liệu với các thông số sau:

Type_: cho biết là DB_START hay DB_END.

Id_: số nhận diện burst, cùng chỉ số với OBS_BHP tương ứng. Src_: địa chỉ node nguồn.

Dst_: địa chỉ node đích.

Channel_: burst này sẽđược đưa lên kênh nào. Stats_: biến gọi module thống kê.

Phần Dbpayload đại diện cho phần dữ liệu của burst được phát đi bao gồm 3 biến số liên quan:

Np_: số gói tin thực tế trong một burst. Size_: kích thước thực tế của burst

Number_DB_: số lượng đoạn trong một burst dữ liệu trong trường hợp đóng khối kiểu phân đoạn.

Module lp lch kênh truyn (ChannelScheduler)

Khi một burst dữ liệu được tạo ra hoặc khi nó đi qua các node trung gian, nó cần được sắp xếp đến một bước sóng nào đó ở ngõ ra. Ba phương thức lập lịch được nhiều nhà nghiên cứu quan tâm nhất được xây dựng trong OBS4NS đó là: FFUC, LAUC và LAUC-VF.

ChannelScheduler/FFUC: Thuật giải lập lịch kênh là FFUC.

ChannelScheduler/LAUC: Thuật giải lập lịch kênh truyền là LAUC. ChannelScheduler/LAU_VF: Thuật giải lập lịch kênh truyền là LAUC-VF. Module định tuyến (ObsRoute)

OBS4NS tính toán đường đi dựa trên giải thuật đường đi ngắn nhất SPF. Mỗi node mạng cùng với các liên kết tạo ra một topo mạng. Sau đó mỗi node mạng sẽ

lưu trữ một bảng các node lân cận của nó. Việc tính toán đường đi ngắn nhất từ

node này đến node kia ban đầu dựa vào số chặng để tìm đường đi ngắn nhất. Nếu như việc tìm đường đi dựa vào số bước nhảy tìm được nhiều hơn một con đường

đến đích thì con đường ngắn nhất được chọn chính là con đường có độ trễ lan truyền nhỏ nhất.

Trong phần mềm OBS4NS burst dữ liệu không phải là một gói cụ thể như

trong NS-2, chương trình chỉ mô phỏng hai giá trị thời điểm bắt đầu và kết thúc mỗi burst, do đó không thểđưa ra kết quả bằng file trace như NS-2. Phần mềm OBS4NS hỗ trợ việc theo dõi kết quả bằng một module thống kê. Các biến trong hàm thống kê này gồm:

Get-global-stats-collector: Dùng để thống kê tất cả các gói đi vào hệ thống. Get-flow-stats-collector:Dùng để thống kê tất cả các gói đi vào theo từng luồng riêng rẻ

4.5 Các trường hp thc hin mô phng.

TRƯỜNG HỢP 1: QoS dựa trên việc thay đổi các thông sốđóng gói. [20,1]: Việc thực hiện việc so sánh các thông số đóng gói khác nhau được thực hiện dưới tiêu chuẩn drop policy (DP) và phân mảnh để giải quyết xung đột (SDP). Hai tiêu chuẩn này được đề cập đến trong chương II.

Một ngưỡng với hai mức độ ưu tiên: Trong phần này chúng ta giả sử mạng mang hai lớp lưu lượng chạy trên hai lớp dịch vụ với hai mức độưu tiên khác nhau: lớp 1 có mức độ ưu tiên thấp, lớp 2 có mức độ ưu tiên cao, tốc độ gấp đôi lớp 1. Việc thiết lập một thông số ngưỡng cho tất cả các burst dữ liệu trong mạng lần lượt là:100, 150, 300 gói trong burst. Chúng ta sẽ đánh giá khả năng mất gói của các tải

đưa vào mạng với các thông số ngưỡng khác nhau.

TRƯỜNG HỢP 2: QoS dựa trên việc thay đổi các tiêu chuẩn xếp lịch kênh. [10]: Việc thực hiện mô phỏng đánh giá QoS dựa trên việc thay đổi các tiêu chuẩn xếp lịch kênh với sử dụng tiêu chuẩn drop policy và phân mảnh để giải quyết xung

đột với một ngưỡng đóng gói cốđịnh. Mạng OBS mô phỏng mang hai lớp dịch vụ. - Mô phỏng mạng OBS với tiêu chuẩn xếp lịch kênh LAUC.

- Mô phỏng mạng OBS với tiêu chuẩn xếp lịch kênh FFUC. - Mô phỏng mạng OBS với tiêu chuẩn xếp lịch kênh LAUCVF.

TRƯỜNG HỢP 3: QoS dựa trên việc giải quyết xung đột.[1]: trường hợp này sẽ thực hiện mô phỏng mạng OBS mang hai lớp traffic với hai mức ưu tiên khác nhau. Các tiêu chuẩn giải quyết xung đột được sử dụng là DP, SDP, DFSDP,

DFDP, SFDP. Chúng ta sẽ đánh giá kết quả dựa trên khả năng mất gói của lưu lượng đưa vào mạng với một ngưỡng đóng gói cốđịnh.

TRƯỜNG HỢP 4: QoS dựa trên tín hiệu ưu tiên: Việc mô phỏng sẽ thực hiện trên mạng OBS với hai tín hiệu được sử dụng là JET và JIT. Chúng ta cũng sẽ đánh giá kết quả dựa trên khả năng mất gói với các mức lưu lượng khác nhau.

TRƯỜNG HỢP 5: Trường hợp này đề cập đến độ trễ do chuyển mạch OBS gây ra. Trường hợp này xét đến 3 tình huống:

- Tình huống thứ nhất: mạng chuyển mạch quang chùm OBS có hai lớp dịch vụ, lớp dịch vụ thứ nhất có độưu tiên thấp hơn lớp thứ hai, lập lịch kênh truyền LAUCVF, giải quyết xung đột DP, ngưỡng 100.

- Tình huống thứ hai: mạng chuyển mạch quang chùm OBS có hai lớp dịch vụ, lớp dịch vụ thứ nhất có độưu tiên thấp thứ hai, lập lịch kênh truyền LAUCVF, giải quyết xung đột SDP, ngưỡng 100.

- Tình huống thứ ba: mạng chuyển mạch quang chùm OBS có hai lớp dịch vụ, lớp thứ nhất có độưu tiên thấp hơn lớp thứ hai, sử dụng giao thức báo hiệu JET, lập lịch kênh truyền LAUCVF, ngưỡng 100.

4.6 Xây dng kch bn mô phng.

Bắt đầu

Kết thúc

Lấy nguồn cho mô phỏng

Tạo mô hình mạng NSFNET

Thiết lập các thông số mạng

Khởi tạo các biến

Thiết lập các thông số SCU giải quyết xung đột

Đưa lưu lượng vào mạng trên mỗi cặp node Thu thập kết quả Kết thúc lưu lượng Số gói gửi <= 1000000 gói Đúng Sai Hình 4.12 Lưu đồ mô phng

4.6.2 Các bước thc hin mô phng.

Ly ngun

Phần mềm mô phỏng OBS4NS xây dựng tương đối đầy đủ các thư viện cần thiết cho việc mô phỏng một mạng quang, chúng ta gọi lại các nguồn cần thiết cho việc mô phỏng bằng cách trỏđường dẫn đến các thư viện như sau:

Source {đường dẫn đến thư mục obs4ns-3.4}/tcl/lib/ns-obs-lib.tcl Source {đường dẫn đến thư mục obs4ns-3.4}/tcl/lib/ns-obs-node.tcl Source {đường dẫn đến thư mục obs4ns-3.4}/tcl/lib/ns-obs-link.tcl Source {đường dẫn đến thư mục obs4ns-3.4}/tcl/lib/ns-obs-stats.tcl Source {đường dẫn đến thư mục obs4ns-3.4}/tcl/lib/ns-obs-defaults.tcl

Khi to các biến

Khai báo các biến đã được định nghĩa bên ngoài kịch bản mô phỏng để đưa tải vào mạng. Biến load thay đổi từ 0,1 (Erlang) đến 1 (Erlang). Đối với mỗi loại lưu lượng thời điểm phát gói đầu tiên phụ thuộc vào hàm ngẫu nhiên. Hàm ngẫu nhiên này tạo ra một số ngẫu nhiên dựa vào biến seed.

Set load [lindex $argv 0] // Đưa tải vào mạng

Set opt(seed) [lindex $argv] // Khởi tạo các số ngẫu nhiên.

To đối tượng mô phng mi.

Set ns [new Simulator]

To các node mng.

Nhưđã đề cập trong chương 2, một mạng OBS gồm có các node biên, node lõi và node kết hợp. Phần mềm OBS4NS-3.4 hỗ trợ việc xây dựng các node mạng như sau:

Set c($i) [$ns ObsCoreNode $ncc $ndc ChannelScheduler/$stype CoS] // Khởi tạo các node lõi

Set e($i) [$ns ObsEdgeNode $ncc $ndc ChannelScheduler/$stype CoS] // Khởi tạo node biên.

Set h($i) [$ns ObsHybridNode $ncc $ndc ChannelScheduler/$stype CoS] // Khởi tạo các node kết hợp

Trong đó:

ChannelScheduler/$stype: loại lập lịch kênh truyền. Ndc: số lượng kênh dữ liệu ở ngõ ra của mỗi node. Ncc: số kênh điều khiển ở ngõ ra của mỗi node. CoS: số mức dịch vụ.

To các liên kết trong mng.

Sau khi tạo các node mạng bước tiếp theo chúng ta sẽ xây dựng các liên kết trong mạng để tạo nên một topology mạng hoàn chỉnh. Câu lệnh tạo liên kết song hướng giữa hai node mạng có dạng như sau:

$ns duplex-obs-link $c($i) $c($j) $ncc $ndc $d ChannelScheduler/$stype Trong đó:

C($i): node thứ i C($j): node thứ j

d: khoảng cách giữa node thứ i và node thứ j, đơn vị km. duplex-obs-link: liên kết là song hướng.

Dùng lệnh $ns compile-obs để hoàn tất việc liên kết giữa các node mạng.

Thiết lp các thông s mng.

Để mô phỏng hoạt động của mạng OBS, chúng ta sẽ thiết lập các thông số

mạng theo các giả định ban đầu. Các thông số cần thiết lập là băng thông liên kết, các thông số đóng khối (burst assembly), các thông số bộ kết nối quang chéo OXC, các thông sốđiều khiển chuyển mạch SCU.

Connector/ObsLink dc_bandwidth // thiết lậpbăng thông kênh dữ liệu. Connector/ObsLink cc_bandwidth // thiết lập băng thông kênh điều khiển.

Agent/Burstifier set max_db_size_ [expr 1250*$number] // đóng khối theo kích thước tối đa với number là số lượng gói tin trong một burst.

Agent/Burstifer set timeout_ // đóng khối theo tiêu chuẩn thời gian. Agent/OXC switch_time // thiết lập thời gian chuyển mạch.

Agent/SCU max_bhp_proc_time // thiết lập thời gian xử lý gói điều khiển. Agent/Burstifier set max_segmentations_ // thiết lập số lượng đoạn tối

Một phần của tài liệu Mô phỏng mạng chuyển mạch quang chùm (optical burst switching) (Trang 86)