Bài tập lớn mạng máy tính mô phỏng hoạt động của giao thức CSMA Bài tập lớn mạng máy tính mô phỏng hoạt động của giao thức CSMA Bài tập lớn mạng máy tính mô phỏng hoạt động của giao thức CSMA Bài tập lớn mạng máy tính mô phỏng hoạt động của giao thức CSMA Bài tập lớn mạng máy tính mô phỏng hoạt động của giao thức CSMA Bài tập lớn mạng máy tính mô phỏng hoạt động của giao thức CSMA Bài tập lớn mạng máy tính mô phỏng hoạt động của giao thức CSMA Bài tập lớn mạng máy tính mô phỏng hoạt động của giao thức CSMA
Trang 1Đề Tài:Lập Trình Mô Phỏng Hoạt Động Giao Thức CSMA
GVHD:TS
Hà Nội, 11/2016
Hà Nội, 12 / 2017
Trang 2
Lời nói đầu
Mạng máy tính phát sinh từ nhu cầu muốn chia sẻ, dùng chung tài nguyên vàcho phép giao tiếp trực tuyến cũng như các ứng dụng đa phương tiện trên mạng.Giao tiếp trực tuyến bao gồm gửi và nhận thông điệp, thư điện tử… các ứng dụng
đa phuơng tiện có thể là phát thanh, truyền hình, điện thoại qua mang, hội thỏ trựctuyến, nghe nhạc, xem phim… Sự kết hợp của máy tính với các hệ thống truyềnthông đã tao ra cuộc cách mạng trong vấn đề tổ chức khai thác và sử dụng hệ thốngmáy tính Mô hình tập trung dựa trên máy tính lớn được thay thế bởi mô hình cácmáy tính đơn lẻ được kết nối lại để cùng thực hiện công việc, hình thành môi trườnglàm việc nhiều người sử dụng phân tán, cho phép nâng cao hiệu quả khai thác tàinguyên chung từ những vị trí địa lý khác nhau Các mô hình như thế được gọi làmạng máy tính Với sư phát triển của khoa học và kỹ thuật hiện nay, các hệ thốngmạng máy tính đã phát triển một cách nhanh chóng và đa dạng cả về quy mô, hệđiều hành và ứng dụng Do vậy, việc nghiên cứu để vận hành và khai thác chúngngày càng trở nên phức tạp Tuy nhiên, các mạng máy tính có cùng các điểm chung
và thông qua đó chúng ta có thể khảo sát, phân loại và đánh giá chúng Vì vậy, trongbáo cáo này chúng em thực hiện việc khảo sát, mô phỏng và đánh giá hệ thốngCSMA/CD được sử dụng mạnh mẽ trong mạng Lan công nghệ Ethernet hiện nay.Nhóm em xin chân thành cảm ơn thầy TS Trần Quang Vinh đã tạo cơ hội chochúng em làm bài tập lớn và đã nhiệt huyết giúp đỡ nhóm em vượt qua những khókhăn trong việc hoàn thiện bài tập lớn này Trong quá trình làm bài tập lớn khôngtránh khỏi những sai sót do thiếu kiến thức, kinh nhiệm và kỹ năng làm bài tập lớn
do đó nhóm em rất mong có thêm những nhận xét của thầy, chúng em xin chânthành cảm ơn
Trong bài báo cáo này nhóm em chia làm 4 phần chính, phần 1 nói kĩ về hệ
thống CSMA bao gồm lý thuyết cơ sở, các kiểu truy cập và tại sao phải sinh ra hệthống CSMA/CD đồng thời phân tích về giải thuật hệ thống CSMA/CD và đưa ra
hướng phân tích kết quả mô phỏng Phần 2 chúng em sẽ nói sơ lược về phần mềm
mô phỏng Omnet++(Omnetpp) được sử dụng để mô phỏng lại hệ thống Phần 3
chúng em sẽ phân tích hệ thống và đưa ra mô hình hóa, đồng thời sẽ đưa ra các khó
Trang 3khăn đã gặp và cách giải quyết như thế nào Phần 4 nhóm em hướng dẫn chi tiết về
cách để có thể mô phỏng được hệ thống từ project bất kì đã được viết trước và thựchiện việc build hệ thống Phần cuối cùng của báo cáo bao gồm các tài liệu đã thamkhảo thể hiện sự tôn trọng đối với những nhà nghiên cứu
Trang 4Mục lục
Trang 5Danh sách hình vẽ
Trang 6Danh sách bảng biểu
Danh sách các từ viết tắt
CSMA/CD Carrier-sense multiple access with collision
detection
Thời gian xử lý truyền gói tin Thời gian trễ kênh truyền
Trang 7Nội Dung
1 Mô hình giao thức CSMA/CD
2 Lý thuyết giao thức CSMA
CSMA (viết tắt của từ Carrier Sense Multiple Access) là giao thức đa truy nhập
cảm nhận sóng mang của Ethernet và hoạt động theo nguyên lý cơ bản “Nghe trướcnói sau” để tránh các va chạm khi truyền chung một kênh truyền Các nút trên mạngcục bộ của Ethernet được kết nối qua một kênh truyền quảng bá dùng chung, vì vậy,khi một trạm gửi đi một frame, tất cả các trạm trên LAN đều nhận được frame Khimột trạm có bản tin cần gửi nó sẽ lắng nghe kênh truyền nếu thấy có sóng mangnghĩa là kênh truyền đang bận nó sẽ đợi tới khi kênh truyền rảnh, ngược lại nó sẽtruyền ngay lập tức Tất cả các trạm đều sẽ nhận được bản tin, tuy nhiên sau khikiểm tra địa chỉ đích thấy không phải gửi cho mình bản tin sự tự động bị hủy
1.2 Các kiểu mô hình truy cập của CSMA
CSMA thường sử dụng 3 loại mô hình truy cập kênh truyền bao gồm 1-persistent CSMA, p-persistent CSMA và non-persistent CSMA.
1.2.1 1 - Persistent CSMA
Đối với mô hình này truy cập này, khi trạm có bản tin cần truyền nó sẽ lắngnghe kênh truyền, nếu kênh truyền không có sóng mang (không bận) thì nó sẽtruyền ngay lập tức Ngược lại, nó sẽ lại đợi và kiểm tra kênh truyền liên tục cho tớikhi kênh truyền rảnh Đây là mô hình được cài đặt trong hệ thống CSMA/CD baogồm cả Ethernet
Trang 8Hình 1 Lưu đồ giải thuật 1-Persistent CSMA
1.2.2 P - persistent
Đối với mô hình này truy cập này, khi trạm có bản tin cần truyền nó sẽ lắngnghe kênh truyền, nếu kênh truyền có sóng mang (kênh bận) thì hệ thống sẽ đợi tớikhi kênh truyền rảnh Ngược lại hệ thống tạo một số ngẫu nhiên I nằm trong khoảng
từ [0,1] nếu I nhỏ hơn một giá trị p cho trước thì trạm sẽ gửi bản tin, ngược lại nó sẽ
đợi 1 mini slot time sau đó sẽ bắt đầu truyền lại
Ở đây, giá trị mini slot time thường gấp đôi thời gian trễ kênh truyền bằng
Theo như khảo sát đồ thị tính cực trị để hiệu suất kênh truyền cao nhất thì giá trị pthường được lấy như sau:
1 n là số trạm trong mạng
2 p là xác suất để truy cập kênh
Trang 9Hình 2 Lưu đồ giải thuật p - persistent CSMA
1.2.3 None – Persistent
Mô hình này truy cập này khá giống với mô hình 1 – Persistent, khi trạm có bảntin cần truyền nó sẽ lắng nghe kênh truyền, nếu kênh truyền không có sóng mang(không bận) thì nó sẽ truyền ngay lập tức Ngược lại, hệ thống sẽ lại đợi với một sốngẫu nhiên nguyên lần mini slot time được định nghĩa ở trên, sau đó trạm tự độngbắt đầu thực hiện việc “nghe trước khi nói”
Trang 10Hình 3 Lưu đồ giải thuật none - persistent CSMA
1.3 Sự kế thừa CSMA/CD từ hệ thống CSMA
1.3.1 Lý thuyết CSMA/CD
Trong hệ thống CSMA thì sẽ chỉ có thể phát hiện ra xung đột, như thế sẽ khó
có thể làm tăng hiệu suất của kênh Do đó, hệ thống CSMA/CD ra đời có thêm cơchế xử lý xung đột
Về mặt nguyên lý truy cập kênh truyền không khác CSMA và trong khi truyền
hệ thống sẽ vẫn luôn nghe sóng mang để phát hiện xung đột Khi phát hiện thấy cósóng mang (bị xung đột), thì hệ thống sẽ thực hiện việc xử lý gói tin bằng cách gửibản tin thông báo đồng thời sẽ đợi một khoảng thời gian ngẫu nhiên, sau khi hếtthời gian đợi nó sẽ bắt đầu truyền lại bản tin đó Trường hợp bản tin sẽ bị hủy xảy rakhi bị xung đột quá nhiều
Trang 111.3.2 Giải thuật CSMA/CD
Hình 4 Lưu đồ giải thuật mô hình CSMA/CD [1]
Để có thể dễ dàng trình bày ta sẽ tách giải thuật ở hình trên thành 2 tiến trình chính
bao gồm tiến trình gửi tin và tiến trình xử lý xung đột.
1.3.3 Tiến trình gửi tin
Khi một trạm nhận được một gói tin và nó cần phải truyền đi thì nó sẽ thực hiệncác bước sau Các bước này sẽ hoàn thiện khi bản tin truyền thành công trên kênhtruyền hoặc là nó được xác định xung đột trên kênh truyền để đưa tới tiến trình xử
Bước 3 Bắt đầu truyền và đồng thời khởi tạo bộ giám sát nhận biết xung đột
khi truyền
Trang 12Bước 4 Có xung đột không? Nếu có thì chuyển sang tiến trình xử lý xung đột.
Bước 5 Khởi tạo lại bộ đếm chuẩn bị cho lần gửi tiếp theo và kết thúc gói tin.
1.3.4 Tiến trình xử lý xung đột
Khi có hiện tượng xung đột khi đang truyền thì hệ thống sẽ tự động xử lý như sau:
Bước 1 Tiếp tục truyền nhưng với bản tin Jam thường là 4-6 byte [1] nhằm
mục đích cảnh báo xung đột cho toàn bộ trạm khác (trong bài này chọn
4byte) Sau đó chuyển sang bước 2.
Bước 2 Tăng bộ đếm xung đột.
Bước 3 Kiểm tra bộ đếm xung đột đã tới giá trị tối đa Nếu tới thì hủy gói tin
và kết thúc, ngược lại chuyển sang bước 4.
Bước 4 Tính toán và đợi một khoảng thời gian ngẫu nhiên (backoff) Sau khi
đợi xong chuyển sang bước 5
Bước 5 Quay lại tiến trình gửi tin.
1.3.5 Thuật toán binary exponential backoff
Trong hệ thống CSMA/CD khi xảy ra xung đột các trạm đang truyền tin sẽcùng nhau đợi một khoảng thời gian Vậy câu hỏi ở đây là đợi như thế nào? Thuật
toán binary exponential backoff được sử dụng trong mạng Ethernet giải quyết vấn
đề này một cách hoàn hảo Khi xảy ra xung đột khi đang truyền và trong bộ counter
đã đếm xung đột lên lần collision thứ n, thì trạm truyền sẽ chọn ngẫu nhiên một giátrị K nguyên dương trong tập dữ liệu {0, 1, 2, …, } và giá trị lớn nhất của n là 10 và
số lần xung đột tối đa để hủy gói tin là 16 chuẩn Ieee 802.3 [2] Như vậy khi sốxung đột khi một frame bị truyền đi truyền lại càng nhiều, thì giá K có khả năngđược chọn càng lớn và khi hơn 10 thì phạm vi giá trị K sẽ được giữ cố định Trongmạng Ethernet sau khi chọn giá trị được giá trị K, thời gian của trạm cần đợi sẽ là(512 bit times là slot time đối với Ethernet [3] ) Ví dụ:
Giả thiết rằng một trạm cố gắng để truyền một frame cho lần đầu tiên và tronglúc đang truyền nó nhận thấy bị xung đột Lúc này thì giá trị K = 0 sẽ có xác xuất là0.5 và K = 1 cũng sẽ có xác suất là 0.5 Nếu giá trị K = 0 được chọn, nó sẽ không
Trang 13đợi và được chuẩn bị để gửi vào kênh truyền ngay lần tiếp theo Ngược lại, nếu giátrị K = 1 được chọn nó sẽ đợi 512 bit times (ví dụ: 0.01us cho mạng 100MbpsEthernet) trước khi bắt đầu truyền lại frame vào kênh truyền Sau lần thứ 2 xungđột, giá trị K sẽ được chọn trong tập {0, 1, 2, 3} Sau lần thứ 3 xung đột, K đượcchọn trong tập {0, 1, 2, 3, 4, 5, 6, 7}.Sau lần thứ 10 xung đột K được chọn trong {0,
1, 2, 3, …., 1023} Như vậy giá trị K có thể chọn được sẽ được tăng dần theo hàm
mũ với số lần xung đột và đây cũng là lý do nó có tên là binary exponential backoff
1.4 Đánh giá hiệu năng mô hình CSMA/CD
Khi một trạm cần chuyển một gói tin, trạm này nghiễm nhiên có thể truyền vớitốc độ lớn nhất của kênh truyền (Đối với mạng Ethernet có thể là 10Mbps,100Mbps thậm chí là 1Gbps) Tuy nhiên, nếu nhiều trạm đều có gói tin để chuyểnthì hiệu suất của kênh truyền sẽ tất nhiên bị giảm Chúng ta sẽ xác định hiệu suấtcủa mô hình CSMA/CD trong trường hợp tất cả các trạm đều có gói tin cần phảichuyển trong một thời gian đủ dài để có thể đánh giá Tuy nhiên trên lý thuyết ta có
công thức đánh giá hiệu suất của hệ thống như sau [4]
1 là trễ lan truyền vật lý giữa hai trạm xa nhau nhất (giả sử truyền trong500m, với vận tốc ánh sáng suy ra )
2 là thời gian để truyền một frame với độ dài tối đa vào kênh truyền màkhông bị xung đột (giả sử bản tin có kích thước 1500bit, truyền trong mạng
có tốc độ 10Mbps suy ra )
Như vậy, khi khoảng cách giữa các trạm càng xa hay nói cách khác càng tăng
thì sẽ làm cho xung đột xảy ra càng cao, đồng thời làm giảm hiệu năng kênh truyền
Đối với thời gian truyền của frame với độ dài tối đa càng lớn làm cho hiệu suất kênh truyền tiệm cận tới 1, tới một ngưỡng nào đó sẽ có thể coi bằng 0 Khi những bit đầu tiên truyền đi thành công, thì với càng lớn thì thời gian chiếm dụng kênh
truyền của nó càng cao, do đó kênh truyền sẽ được sử dụng một cách hiệu quả [4]
Trang 141.5 Một số công nghệ về công nghệ Ethernet trong mạng LAN
Ethernet là công nghệ mạng LAN cho phép truyền tín hiệu giữa các máy tính vớitốc độ 10Mb/s đến 10Gigabit/s Trong các kiểu Ethernet thì kiểu sử dụng cáp xoắnđôi là thông dụng nhất Hiện nay, có khoảng 85% mạng LAN sử dụng Ethernet
Năm 1980, Xẽo, tập đoàn Intel và tập đoàn Digital Equipment đưa ra tiêu chuẩnEthernet 10Mbps (tiêu chuẩn DIX) được cài đặt trên một sợi cable đồng trục dài tối
đa 500m Các trạm nối vào Ethernet segment bằng cách “mắc dây” (tab) nối vào nó.Các điểm đồi nối phải cách nhau ít nhất 2.5m Transceiver, một thiết bị nhỏ đượcgắn trực tiếp vào điểm đầu nối, làm nhiệm vụ
1.5.1 Các thông số của Ethernet
• Ethernet ban đầu
o Tốc độ truyền : 10Mbps
o Độ dài cực tiểu của khung 512bit = 64byte
o Thời gian của khe: 512bit/10 Mbps = 51.2us
o Chiều dài cực đại: 2500 + 4 trạm lặp
• Ethernet theo chuẩn 802.3(CSMA/CD)
o Thời gian của khe: 512 bit/lần
o Khoảng cách giữa các khung: 96us
o Giới hạn số lần thử: 16
o Giới hạn số lần quay lui: 10
o Độ dài cực đại của khung :1518 byte
o Độ dài cực tiểu của khung: 64 byte
1.5.2 Các công nghệ Ethernet
1 Công nghệ 10BASE2
Công nghệ 10BASE2 sử dụng cáp đồng trục gầy, hình thái bus Trong trườnghợp mạng có nhiều segments, các repeaters sẽ được sử dụng để nối kết cácsegments này lại Dưới đây sẽ trình bày đặc điểm của công nghệ 10BASE2
• Các thiết bị đầu và cuối phải có trở kháng 50 ohm
• Khoảng cách tối thiếu 0.5m
• Khoảng cách PC tới đầu nối 4cm
• Chiều dài tối đa 185m
• Dùng các bộ lặp nới rộng khoảng cách
Trang 15• Nhỏ hơn, nhẹ hơn và mềm hơn
• Chi phí thấp, không yêu cầu bộ tập trung(HUB) và không cần phảicấu hình hệ thống
• Mã hóa Manchester
• Đầu nối BNC hình T
• Chiều dài tối đa 185m, tối thiểu 0.5m
• Truyền bán song công, tốc độ truyền tối đa là 10Mbps
• Hỗ trợ tối đa 30 máy
2 Công nghệ 10BASE5
• Kết nối dạng BUS
• Tốc độ truyền 10Mbps trên bang cơ bản – baseband (không truyềnđược song công) Sử dụng mã hóa Manchester
• Chiều dài tối đa: 500m
• Hỗ trợ tối đa 101 đoạn mạng theo chuẩn Ethernet
• Tối đa có 1024 trạm nối vào mạng 10Base5
• Tối đa có 100 bộ thu phát nối vào một đoạn mạng chiều dài 500m
• Khoảng cách tối thiểu giữa hai bộ thu phát là 2.5m
• Cuối mỗi đoạn cáp cần có bộ đầu-cuối (50ohm) để dập tín hiệu
• Bộ lặp được sử dụng để mở rộng chiều dài mạng Sử dụng tối đa 2 bộlặp giữa các thiết bị
3 Công nghệ Ethernet 100 Mbps
• Mạng Ethernet 100Mbps được gồm 2 chuẩn : Fast Ethernet (IEEE802.3u) : 100Base-TX, 100Base-T4 và 100Base-FX
• 100BASE-TX và 100Base-FX sử dụng kỹ thuật mã hóa 4B/5B
• 100Base-T4 sử dụng kỹ thuật mã hóa 8B/6T
• Phương thức điều khuyển truy nhập CSMA/CD
• 100Base-T4 sử dụng phương thức hoạt động bán song công
• 100Base-TX sử dụng phương thức hoạt động song công
• 100Base-FX sử dụng cả phương thức bán song công và hoạt độngsong công
Trang 16phỏng hoạt động của mạng Mục đích chính của ứng dụng là mô phỏng hoạt độngmạng thông tin, tuy nhiên do tính phổ cập và linh hoạt của nó, OMNeT++ còn được
sử dụng trong nhiều lĩnh vực khác như mô phỏng các hệ thống thông tin phức tạp,các mạng kiểu hàng đợi (queueing networks) hay các kiến trúc phần cứng OMNeT++ cung cấp sẵn các thành phần tương ứng với các mô hình thực tế Cácthành phần này (còn được gọi là các module) được lập trình theo ngôn ngữ C++,sau
đó được tập hợp lại thành những thành phần hay những mô hình lớn hơn bằng mộtngôn ngữ bậc cao (NED) OMNeT++ hỗ trợ giao diện đồ hoạ, tương ứng với cácmô
hình cấu trúc của nó đồng thời phần nhân mô phỏng (simulation kernel) và cácmodule của OMNeT++ cũng rất dễ dàng nhúng vào trong các ứng dụng khác
2.2.2 Các thành phần chính của Omnet++
• Thư viện phần nhân mô phỏng (simulation kernel)
• Trình biên dịch cho ngôn ngữ mô tả hình trạng (topology
• Giao diện dòng lệnh thực hiện mô phỏng (Cmdenv)
• Công cụ (giao diện đồ hoạ) vẽ đồ thị kết quả vector ở đầu ra(Plove)
• Công cụ (giao diện đồ hoạ) mô tả kết quả vô hướng ở đầu ra(Scalars)
• Công cụ tài liệu hoá các mô hình
• Các tiện ích khác
• Các tài liệu hướng dẫn, các ví dụ mô phỏng
Trang 171 Mô hình trong Omnet++
Một mô hình trong OMNeT++ bao gồm các module lồng nhau cócấu trúc phân cấp Độ sâu của của các module lồng nhau là khônggiới hạn, điều này cho phép người sử dụng có thể biểu diễn cáccấu trúc logic của các hệ thống trong thực tế bằng các cấu trúc môhình Các module trao đổi thông tin với nhau thông qua việc gửicác message (message) Các message này có thể có cấu trúc phứctạp tuỳ ý Các module có thể gửi các message này theo hai cách,một là gửi trực tiếp tới địa chỉ nhận, hai là gửi đi theo một đườngdẫn được định sẵn, thông qua các cổng và các kết nối
Các module có thể có các tham số của riêng nó Các tham số này
có thể được sử dụng để chỉnh sửa các thuộc tính của module và đểbiểu diễn cho topology của mô hình
Các module ở mức thấp nhất trong cấu trúc phân cấp đóng gói
sử dụng trong các ứng dụng chủ yếu như:
1. Mô hình hoạt động của các mạng thông tin
2. Mô hình giao thức
3. Mô hình hoá các mạng kiểu hàng đợi
4. Mô hình hoá các hệ thống đa bộ vi xử lý (multiprocesser)
Trang 18phần cứng theo mô hình phân tán khác (distributed hardwaresystems)
5. Đánh giá kiến trúc phần cứng
6. Đánh giá hiệu quả hoạt động của các hệ thống phức tạp
2.3 Tổng quan
2.3.1 Mô hình của Omnet++
OMNeT++ cung cấp cho người sử dụng những công cụ hiệuquả để mô tả cấu trúc của các hệ thống thực tế
1. Các module lồng nhau có cấu trúc phân cấp
2. Các module là các đối tượng cụ thể của các kiểu module
3. Các module trao đổi thông tin bằng các message qua cáckênh
4. Các tham số của module linh hoạt
5. Ngôn ngữ mô tả Topology
Một mô hình OMNeT++ bao gồm những phần sau:
• Ngôn ngữ mô tả topology - NED (file có phần mở rộng ned):
của module với các tham số, các cổng Các file ned có thểđược viết bằng bất kỳ bộ soạn thảo hoặc sử dụng chươngtrình GNED có trong OMNeT++
• Định nghĩa cấu trúc của các message (các file có phần mở
Trang 19Hệ thống mô phỏng cung cấp cho ta các thành phần sau:
• Phần nhân mô phỏng Phần này chứa code để quản lý quá
nedtool )
Trang 20include/ các file header cho mô hình mô phỏng
tictoc-tutorial/ giới thiệu sử dụng OMNeT++
src/ mã nguồn của tài liệu
parsim/ các file dành cho việc thực hiện phântán
netbuilder/ các file dành cho việc đọc động các file
NED
tkenv/ giao diện người sử dụng dựa trên Tcl/tk
Các quá trình mô phỏng mẫu được chứa trong thư mục samples:
…
Thư mục contrib chứa các chương trình có thể kết hợp với OMNeT++:
contrib/
Trang 21octave / script của Octave dùng để xử lý kếtquả
Ngoài ra ta cũng có thể tìm thấy các thư mục khác như msvc/, chứa
các thành phần tích hợp cho Microsoft Visual C++
2.3.3 Cấu trúc phân cấp của các Module
Một mô hình trong OMNeT++ chứa các module lồng nhau cócấu trúc phân cấp, trao đổi thông tin với nhau bằng cách gửi cácmessage Mỗi mô hình này thường biểu diễn cho một hệ thốngmạng Module mức cao nhất trong cấu trúc phân cấp được gọi làmodule hệ thống Module này có thể chứa các module con, cácmodule con cũng có thể chứa các module con của riêng nó Độ sâuphân cấp đối với các module là không giới hạn, điều này cho phépngười sử dụng có thể dễ dàng biểu diễn một cấu trúc logic của một
hệ thống trong thực tế bằng cấu trúc phân cấp của OMNeT++
Cấu trúc của mô hình có thể được mô tả bằng ngôn ngữ NEDcủa OMNeT++
Hình 5 Ví dụ đơn giản về tổng hợp module [5]
Trang 22Các module có thể chứa nhiều module con và được gọi là module kết hợp Cácmodule đơn giản là các module có cấp thấp nhất trong cấu trúc phân cấp Cácmodule
đơn giản chứa các thuật toán của mô hình Người sử dụng triển khai các moduleđơn
giản bằng ngôn ngữ C++, sử dụng các thư viện mô phỏng của OMNeT++
Tất cả các module dù là đơn giản hay phức tạp đều là các đốitượng cụ thể của các kiểu module Trong khi mô tả các mô hình,người sử dụng định nghĩa ra các kiểu module, các đối tượng cụ thểcủa các kiểu module này được sử dụng như các thànhphần của các kiểu module phức tạp hơn Cuối cùng, người sử dụng
Kiểu module có thể được lưu trữ trong một file riêng rẽ Điềunày cho phép người sử dụng có thể nhóm các kiểu module lại vàtạo ra một thư viện thành phần
Trang 233 Mô hình hóa hệ thống CSMA/CD
Mô hình hóa là phương pháp nghiên cứu bằng thực nghiệm trên mô hìnhcủamột hiện tượng (quá trình, sự vật,…) thay vì nghiên cứu trực tiếp hiện tượng ấy ởdạng tự nhiên (thực địa) Quá trình mô hình hóabao gồm hai phầnlà chế tạomôhìnhvà tiến hành thực nghiệm trên mô hình ấy (nguồn: Wikipedia)
2 Phân tích và mô hình hóa hệ thống
Để có thể phân tích được mô hình ta cần ánh xạ sang hệ thống và giải thuật
CSMA/CD được phân tích tại Mô hình giao thức CSMA/CD để đưa ra những giải
pháp và đưa ra mô hình cụ thể Dưới đây nhóm em đưa ra những vấn đề cần giảiquyết
1 Mô hình hóa mô hình kênh truyền như thế nào? Làm thế nào để kiểm trađược kênh truyền, khi đang truyền?
2 Tính toán được thời gian truyền tin như thế nào để thể hiện được sự tươngquan giữa các trạm?
3 Quá trình gửi tin sẽ được xử lý như thế nào và dừng việc truyền tin khiphát hiện xung đột như thế nào?
3.2 Giải quyết vấn đề
3.2.1 Mô hình hóa các trạm
Trang 24Hình 6 Mô hình bus topology (nguồn: Internet)
Để giải quyết bài toán về vị trí trong thực tế, với mô hình bus ta nhận thấy chỉ cómột chiều Vì vậy ta sẽ lấy điểm cuối bên trái làm điểm gốc tọa độ và sinh số ngẫunhiên để tạo vị trí ngẫu nhiên trên kênh truyền, sau đó ta sẽ lấy thương của tọa độvới độ dài lan truyền để lấy ra thời gian lan truyền từ gốc tọa độ tới trạm
Hình 7 Code tạo vị trí ngẫu nhiên và tính khoảng cách tới điểm gốc
Sau khi ta tạo được vector khoảng cách của từng trạm đối với tọa độ gốc ta có thểcoi như đó là vector giá trị vị trí và thời gian lan truyền trong kênh là 1 đơn vị Saukhi có bảng vector vị trí của từng trạm, ta sẽ lập ma trận khoảng cách, ma trận này
sẽ tính toán khoảng cách từ một trạm bất kì tới trạm khác
Hình 8 Code lập bảng ma trận khoảng cách giữa các trạm
Trang 253.2.2 Kênh truyền
Do trình mô phỏng Omnet++ chỉ hỗ trợ điểm tới điểm vì thế chúng em dùng một
trạm gọi là Receiver để nhận hết toàn bộ gói tin của tất cả các trạm khác đồng thời
thực hiện việc quản lý kênh truyền Tất cả các trạm sẽ kiểm tra kênh truyền thông
qua trạm này Nghĩa là khi một trạm muốn gửi tin thì sẽ bản tin cho trạm Receiver này, sau đó trạm Receiver sẽ thực hiện việc kiểm tra kênh truyền và xử lý kênh
truyền
3.2.3 Mô hình hóa quá trình gửi tin và phát hiện va chạm
Để tiện theo dõi em sẽ xử lý từng giai đoạn trong lưu đồ giải thuật
Để có thể truyền được gói tin, mỗi trạm sẽ thiết lập lại cờ trạng thái và giá trịkhởi tạo, sau đó sẽ tạo ngẫu nhiên một trạm bất kì không trùng với nó và tính toánthời gian truyền cho công đoạn chuẩn bị Sau đó sẽ kiểm tra kênh truyền bằng cách
xem trạng thái kênh thông qua Receiver nếu kênh truyền rảnh thì sẽ gửi gói tin lên
Receiver ngay lập tức với thời gian trễ lan truyền đã tính ở phần chuẩn bị, ngược lại
hệ thống sẽ lập lịch để lấy mẫu kênh truyền được tính bằng 96 bit thời gian xử lýgói tin cho tới khi gửi được gói tin Khi truyền được bản tin, trạm sẽ tự động đợimột khoảng thời gian xử lý hết gói tin được tính toán phụ thuộc vào độ dài của gói