Việc xây dựng phần mềm

Một phần của tài liệu Mô phỏng ảnh hưởng của quá trình đóng khối trong mạng obs (Trang 37 - 45)

Chương III PHẦN MỀM MÔ PHỎNG MẠNG NETWORK SIMULATOR (NS2) VÀ PHẦN MÔ PHỎNG MẠNG OBS

3.2 Phần mềm mở rộng của NS2 OBS4NS ( OBS for NS) dùng để mô phỏng mạng OBS

3.2.3 Việc xây dựng phần mềm

Để có thể mô phỏng được mạng OBS, phần mềm OBS4NS được xây dựng từ các module : module tạo node mạng, module tạo liên kết, module tạo đơn vị truyền dẫn trong mạng, module định tuyến và module tạo lưu lượng.

Bảng tóm tắt

Mạng OBS thực tế Trong chương trình mô phỏng Node mạng

1. Node biên

+ Input: lưu lượng ngõ vào + Output: burst dữ liệu

2. Node lõi

+ Input: burst dữ liệu ở ngõ vào

+ Output: burst dữ liệu ở ngõ ra thích hợp cùng với nguyên tắc giải quyết xung đột

3. Node kết hợp

Kết hợp chức năng của 2 loại node trên.

Module tạo node 1. Node biên

+ Input: lưu lượng từ module tạo lưu lượng với các biến số về tốc độ trung bình và kích thước gói tin

+ Ouput: burst dữ liệu với các biến số liên quan là điểm bắt đầu và kết thúc của mỗi burst

2. Node lõi

+ Input: burst dữ liệu ngõ vào là các biến số lấy từ module tạo node biên cộng với biến số về thời gian lan truyền của burst.

+ Output: burst dữ liệu với các biến số về điểm bắt đầu và kết thúc tùy thuộc vào biến số liên quan đến nguyên tắc giải quyết xung đột.

3. Node kết hợp

Kết hợp biến số của 2 loại node trên.

Liên kết trong mạng

Tất cả các liên kết trong mạng đều là các

Module tạo liên kết trong mạng

Chương trình xây dựng liên kết trong mạng

liên kết ghép kênh theo bước sóng WDM gồm các biến số liên quan đến số kênh điều khiển, số kênh dữ liệu, băng thông mỗi kênh và chiều dài mỗi liên kết

Lưu lượng trong mạng OBS

Lưu lượng đưa vào mạng OBS được lấy từ mạng IP. Lưu lượng IP là lưu lượng phức tạp, có giá trị ngẫu nhiên.

Module tạo lưu lượng

+ Input: loại phân bố xác suất của lưu lượng cùng với các biến số về tốc độ trung bình và kích thước gói tin.

+ Output: số lượng ngẫu nhiên các gói tin có chiều dài cố định, sau đó được gởi tới node biên.

Đơn vị truyền dẫn trong mạng OBS + Burst dữ liệu

+ Gói điều khiển

Module tạo các gói tin

+ Input: kích thước gói tin, cách đóng khối.

+ Output: thời điểm bắt đầu và kết thúc của burst dữ liệu, thời gian offset time và gói điều khiển có kích thước cố định.

Định tuyến trong mạng OBS

Trong mạng OBS sử dụng cách chọn đường đi có phí tổn thấp nhất

Module định tuyến

+ Input: topo mạng với các node và các liên kết

+ Output: đường đi ngắn nhất dựa vào giải thuật Dijistra

3.2.3. a Module tạo node mạng (ObsNode)

Như đã đề cập phần trên, mạng OBS bao gồm các node biên và các node lõi. Phần mềm này cũng xây dựng một module cho việc tạo ra các node trong mạng với các chức năng cụ thể. Và cũng nói thêm rằng các node mạng trong phần mềm này chỉ là những node unicast không hỗ trợ các node multicast.

Node biên

Hình 3.3 mô tả kiến trúc của node biên và node lõi trong OBS4NS. Hai node này được vẽ ra trong cùng một hình không có nghĩa là trong node biên có node lõi mà 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 đến lớp MAC còn ở node lõi có chuyển mạch khối quang (Classifier/ObsSwitch).

Hình 3.3: Node biên và node lõi trong OBS4NS

Giao diện đến lớp MAC (hình 3.3) 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 NS2). 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. Và cuối cùng là một bộ lập lịch kênh truyền (Channel Scheduler) chọn một bước sóng thích hợp cho burst dữ liệu ở ngõ ra. Và ở node biên đích có bộ giải đóng khối (Agent/Deburstifier) phân 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 đến lớp MAC là bộ đóng khối (Agent/Burstifier). Việc xây dựng các biến số cho bộ đóng khối như sau: Đóng khối kiểu 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. Trường hợp trong mô phỏng kết thúc lưu lượng vào, trong khi burst dữ liệu chưa đủ điều kiện để tạo ra thì biến này cho phép tạo một burst nhỏ hơn.

- 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

Connector/ObsLink Ng õ

vào

Ngõ ra Giao diện MAC

Node biên

Node lõi

Chuyển mạch khối quang (Classifier/ObsSwitch)

Địa chỉ của từng hướng Liên kết bên trong

entry_

Hình 3.4: Giao diện đến lớp MAC

Chúng ta đã biết sau khi tạo được một burst dữ liệu, 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 là offset time mới được phát đi. Thời gian offset time được tính như sau:

Toffset, i = max(TBHPproc)(n+1) + Tswitch + (Toffset,i-1 + TTx,i-1)+ Textra - Với n là số số bước nhảy từ nguồn đến đích, i là mức ưu tiên dịch vụ, max(TBHPproc) là 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à maxTBHPproc(n+1); Tswitch là thời gian chuyển mạch tại mỗi node trung gian; Toffset, i-1 là thời gian offset time của burst có mức ưu tiên cao hơn, TTx, i-1 là 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ư sau Textra = max(TBHPproc)ndefl + TBHPqueue + Trandom + δ

+ ndefl 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.

+ TBHPqueue là thời gian gói điều khiển còn phải chứa trong hàng đợi để chờ xử lý

+ δ Là 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.

Lập lịch knh truyền

(ChannelScheduler) (Classifier/Addr)

CoS CoS CoS

Phân loại theo đích đến

Ngõ vào ở miền điện

(Classifier/CoS)

Phục hồi

(Agent/Deburstifier) (Agent/Burstifier)

- Trandom là một 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 của TrandomTTx,i-1

Hình 3.5: Thời gian offset Ngoài các biến số được xây dựng trên còn có biến số sau:

- equal_offset_: cho phép giá trị offset time của các lớp dịch vụ khác nhau bằng nhau. Biến số liên quan đến gói điều khiển:

- struct_map_: cho phép gói điều khiển gởi đi hay không gửi đi thông tin về kiến trúc của burst.

Thời gian xử lý gói điều khiển

Thời gian chuyển mạch ST

Thời gian truyền burst Thời điểm phát

gói điều khiển

Thời điểm phát gói dữ liệu

Thời gian offset

Burst dữ liệu

Thời gian

Node vào

Node 1 Node 2 Node ra

- bhp_struct_map_: cho phép gói điều khiển có thể được sữa lại khi thông tin về burst trên đường truyền bị thay đổi (thí 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. Biến số liên quan đến việc phân đoạn burst:

- segmentation_ : cho phép việc phân đoạn burst trong miền điện - max_segmentations_: số lượng đoạn lớn nhất trong một burst

- min_segmentable_size_: kích thước tối thiểu của mỗi đoạn. Và cuối cùng là

- stats_:cho phép gọi chức năng thống kê 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. Các thành phần này thuộc lớp Classifier/ObsSwitch.

Hình 3.6: 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_: có 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

Đồng thời cũng thiết lập các thông số liên quan khi dùng phân đoạn burst để giải quyết xung đột tại node lõi:

- 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_segmentations_: số lượng đoạn tối đa cho mỗi burst

Classifier/ObsSwitch

Ngõ ra

SCU

OXC BHP

DB

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

Chương trình xây dựng OXC với biến số sau:

- switch_time_: thời gian chuyển mạch của ma trận chuyển mạch quang 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.

Hình 3.7: Node kết hợp trong OBS4NS

Từ hình 3.7 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 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.

3.2.3. b Module tạo liên kết trong mạng (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 các liên kết WDM. Liên kết WDM trong chương trình tạo nên từ 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

(Connector/ObsLink)

Agent Agent Agent

Ngõ ra Ngõ ra Node lõi OBS

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

Giải đa hợp (Classifier/Port) (Classifier/TypeSwitch)

Node kết hợp

IP

OBS Ngõ vào

Trong phần mềm khi xây dựng kịch bản mô phỏng, ta không phải nhập thông số về độ trễ lan truyền trên mỗi liên kết mà chỉ cần nhập khoảng cách theo km, chương trình sẽ tự tính ra độ trễ lan truyền với vận tốc ánh sáng là 200000km/s.

3.2.3. c 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. Nói thêm rằng trong OBS4NS, burst dữ liệu không phải là một gói cụ thể như trong NS2. Mà chương trình mô phỏng chỉ bảo trì hai giá trị về thời đ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ử burst dữ liệu nhanh hơn và không gây áp lực lên hệ thống 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_: một biến kiểu unsigned long int làm 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 lên kênh nào - ttl_: thời gian sống của gói BHP

- offset_obs_bhp_: thông số về offset time - stats_: biến gọi module thống kê

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ê

id_ db_start_time_ db_end_time_ channel_ ttl_ offset_obs_bhp_ stats_

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

3.2.3. d Module lập lịch kênh truyền (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 phải được sắp xếp đến một bước sóng nào đó ở ngõ ra. Nhiều nhà nghiên cứu đã đưa ra nhiều phương thức sắp xếp khác nhau. Ba phương thức lập lịch được nhiều người quan tâm nhất được xây dựng trong OBS4NS đó là : FFUC, LAUC và LAUC-VF

- channelScheduler/FFUC: Giải thuật lập lập lịch kênh là FFUC - channelScheduler/LAUC: Giải thuật lập lịch kênh truyền là LAUC - channelScheduler/LAUC_VF: Giải thuật lập lịch kênh truyền là

LAUC-VF. Với các thông số liên quan như sau : 3.2.3. e Module định tuyến (ObsRoute)

OBS4NS tính toán đường đi dựa trên giả 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 láng giềng 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ố bước nhảy hay hop count để 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.

Một phần của tài liệu Mô phỏng ảnh hưởng của quá trình đóng khối trong mạng obs (Trang 37 - 45)

Tải bản đầy đủ (PDF)

(68 trang)