SlideShare a Scribd company logo
1 of 33
ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
----------
BÁO CÁO BÀI TẬP LỚN
CƠ SỞ TRUYỀN SỐ LIỆU
Bài 2: Đánh giá hiệu năng mạng Ethernet
Giảng viên HD: PGS.TS. Nguyễn Hữu Thanh
Nhóm sinh viên thực hiện: Nhóm 37
Nguyễn Đức Quý 20112019
Đỗ Trung Thanh 20112269
Hà Nội, 11/2014
1
MỤC LỤC
PHẦN
MỤC LỤC.......................................................................................................................................2
PHẦN 1 – PHÂN TÍCH YÊU CẦU BÀI TẬP LỚN......................................................................2
1 .Mục đích bài tập lớn :..............................................................................................................4
2. Tìm hiểu sơlược về mạng Ethernet :........................................................................................4
PHẦN 2 – PHÂN CÔNG CÔNG VIỆC..........................................................................................9
1.Phân công chung : cả nhóm tìm hiểu và làm quen với công cụ mô phỏng OMNET++ qua các
tài liệu Thầy giáo đã cho..............................................................................................................9
2. Phân công cụ thể thực hiện đề tài :..........................................................................................9
PHẦN 3 -THỰC HIỆN ĐỀ TÀI....................................................................................................10
PHẦN 1 – PHÂN TÍCH YÊU CẦU BÀI TẬP LỚN
2
Mạng Ethernet với tốc độ 10Mbit/s, sử dụng cấu hình kênh truyền bus (coaxial cable).Trễ
truyền dẫn 100ms.Biết rằng card mạng của máy tính đều liên tục có các gói được gửi đến
với tốc độ như nhau λ =200 gói/s,tuân theo phân bố Poisson.Độ dài của gói Ethernet tuân
theo phân bố Poisson với chiều dài trung bình là 1500bytes (hình vẽ).
2.1. Chạy mô phỏng dùng Omnet trong khoảng thời gian 30s.Đánh giá và vẽ đồ thị tổng
dung lượng băng thông chiếm trên bus khi truyền gói b(t) và tốc độ mất gói e(t) (tính
bằng gói/s) khi số máy tính nối mạng là:
• 3 máy
• 5 máy
• 10 máy
Giả thiết mỗi máy x sẽ phát gói đến mộtđích là máy y bất kỳ (do sinh viên tự chọn)
2.2. Lặp lại mô phỏng trên trong trường hợp trễ truyền dẫn là 1s.Có nhận xét gì so với
trường hợp đầu tiên ?
3
2.3. Lặp lại mô phỏng cho 10 máy, trễ truyền dẫn 100ms cho trường hợp độ dài gói thay
đổi. Đánh giá kết quả.
1 .Mục đích bài tập lớn :
Trong môn cơ sở mạng thông tin sinh viên đã làm quen với phương pháp đánh giá
hoạt động của một hệ thống thông tin bằng phương pháp toán học, đặc biệt là mô hình liên
quan đến hàng đợi đơn, mạng hàng đợi, cơ sở cho các cơ chế điều khiển luồng và định tuyến
trong mạng. Trong phần bài tập lớn, sinh viên sẽ được làm quen với một phương pháp khác
để đánh giá hiệu năng, đó là phương pháp mô phỏng.Bài tập lớn này có một số mục đích
sau:
* Kiểm nghiệm các kết quả phân tích, đánh giá hệ thống khi dùng phương pháp
phân tích toán học và phương pháp mô phỏng.
* Làm quen với công cụ mô phỏng OMNET++ – công cụ mô phỏng mạng
thông dụng nhất hiện nay.
* Phát triển kỹ năng làm việc theo nhóm.
* Phát triển kỹ năng làm việc độc lập.
2. Tìm hiểu sơlược về mạng Ethernet :
Ethernet là mạng cục bộ do các công ty Xerox, Intel và Digital equipment xây dựng
và phát triển. Ethernet là mạng thông dụng nhất đối với các mạng nhỏ hiện nay. Ethernet
LAN được xây dựng theo chuẩn 7 lớp trong cấu trúc mạng của ISO, mạng truyền số liệu
Ethernet cho phép đưa vào mạng các loại máy tính khác nhau kể cả máy tính mini. Ethernet
có các đặc tính kỹ thuật chủ yếu sau đây:
• Có cấu trúc dạng tuyến phân đoạn, đường truyền dùng cáp đồng trục, tín hiệu
truyền trên mạng được mã hoá theo kiểu đồng bộ (Manchester), tốc độ truyền dữ liệu là 10
Mb/s.
4
• Chiều dài tối đa của một đoạn cáp tuyến là 500m, các đoạn tuyến này có thể được
kết nối lại bằng cách dùng các bộ chuyển tiếp và khoảng cách lớn nhất cho phép giữa 2 nút
là 2,8 km.
• Sử dụng tín hiệu bǎng tần cơ bản, truy xuất tuyến (bus access) hoặc tuyến token
(token bus), giao thức là CSMA/CD, dữ liệu chuyển đi trong các gói. Gói (packet) thông tin
dùng trong mạng có độ dài từ 64 đến 1518 byte.
2.1. Hệ thống Ethernet
- Ethernet là 1 công nghệ mạng cục bộ (LAN) nhằm chuyển thông tin giữa các máy tính
với tốc độ từ 10 đến 100 triệu bít một giây (Mbps) . Hiện thời công nghệ Ethernet thường
được sử dụng nhất là công nghệ sử dụng cáp đôi xoắn 10-Mbps.
- Công nghệ truyền thông 10-Mbps sử dụng hệ thống cáp đồng trục cỡ lớn , hoặc cáp đôi,
cáp sợi quang . Tốc độ chuẩn cho hệ thống Ethernet hiện nay là 100-Mbps .
2.2.Các thành phần của Ethernet
Hệ thống Ethernet bao gồm 3 thành phần cơ bản :
• Hệ thống trung gian truyền tín hiệu Ethernet giữa các máy tính.
• Các nhóm thiết bị trung gian đóng vai trò giao diện Ethernet làm cho nhiều máy
tính có thể kết nối tới cùng 1 kênh Ethernet.
• Các khung Ethernet đóng vai trò làm các bit chuẩn để luân chuyển dữ liệu trên
Ethernet.
Phần tiếp sau đây sẽ miêu tả quy tắc thiết lập cho các thành phần đầu tiên, các mảng truyền
thông vật lí , thiết lập quy tắc truy cập trung gian cho Ethernet và các khung Ethernet.
2.3.Hoạt động của Ethernet
Mỗi máy Ethernet, hay còn gọi là máy trạm , hoạt động độc lập với tất cả các trạm khác trên
mạng , không có một trạm điều khiển trung tâm.Mọi trạm đều kết nối với Ethernet thông qua
5
một đường truyền tín hiệu chung còn gọi là đuờng trung gian. Tín hiệu Ethernet được gửi
theo chuỗi , từng bit một , qua đường trung gian tới tất cả các trạm thành viên. Để gửi dữ
liệu trước tiên trạm cần lắng nghe xem kênh có rỗi không , nếu rỗi thì mới gửi đi các gói ( dữ
liệu).
Cơ hội để tham gia vào truyền là bằng nhau đối với mỗi trạm . Tức là không có sự ưu tiên .
Sự thâm nhập vào kênh chung được quyết dịnh bởi nhóm điều khiển truy nhập trung gian
( Medium Access Control-MAC) được đặt trong mỗi trạm . MAC thực thi dựa trên cơ sở sự
phát hiện va chạm sóng mang ( CSMA/CD).
- Giao thức CSMA/CD .
- Xung đột
- Truyền dữ liệu
2.3.1.Giao thức CSMA/CD.
Để truyền thông tin, mỗi giao tiếp mạng phải lắng nghe cho tới khi không có tín hiệu
trong kênh chung , lúc này nó mới có thể truyền thông tin . Nếu một giao tiếp mạng thực
hiện truyền thông tin trong kênh thì gọi là sóng và các trạm khác phải chờ đợi cho tới khi sự
truyền dẫn này kết thúc . Quá trình này gọi là phát hiện sóng mang. Mọi giao tiếp Ethernet
đều có cơ hội ngang nhau trong việc truyền thông tin trong mạng (Đa truy nhập ) . Trong
quá trình truyền từ đầu này tới đầu kia của Ethernet , những bít đầu tiên của khung cần phải
đi tới mọi vùng của mạng . Tức là có thể có 2 giao tiếp mạng cùng thấy mạng rỗi và gửi đi
cùng 1 lúc. Khi đó Ethernet phát hiện sự “ va chạm “ và dừng việc truyền và gửi lại các
khung . ĐÓ là quá trình phát hiện va chạm.
Giao thức CSMA/CD được thiết kế nhằm cung cấp cơ hội ngang bằng truy nhập kênh chung
cho mọi trạm trong mạng . Sau khi gói tin được gửi đi mỗi trạm trong mạng sẽ sủ dụng giao
thức CSMA/CD để xem trạm nào sẽ được gửi tiếp sau.
2.3.2.Va chạm
Nếu có có hơn 1 trạm cùng gửi thông tin cùng lúc thì tín hiệu được nói rằng đang va
chạm , Các trạm sẽ nhận ra biến cố này và dừng việc truyền bằng thuật toán backoff . Sau đó
mỗi trạm sẽ chọn 1 thời gian ngẫu nhiên sau đó để truyền tiếp .
6
Thông thường khoảng thời gian trễ này là rất ngắn chỉ khoảng phần nghìn hoặc phần
triệu của giây . Nếu như sau đó lại có va chạm thì lại phải truyền lại . Nếu sau một số lần liên
tiếp nào đó va chạm thì hệ thống sẽ thôi truyền gói tin này nữa , thường Ethernet chọn 16 lần
để hảy bỏ truyền gói tin. Nếu mạng càng lớn và càng nhiều trạm thì khả năng huỷ bỏ càng
lớn .
2.3.3.Truyền dữ liệu
Cũng như các mạng LAN khác , Ethernet luôn tìm cách truyền dữ liệu tốt nhất , Tuy
nhiên ngay cả với những mạng Ethernet đắt tiền nhất và được thiết kế tốt nhất thì dữ liệu
truyền đi vẫn không hoàn hảo.
Nhiễu điện có thể xuất hiện mọi lúc trên hệ thống cable và làm dữ liêu bị hỏng . Trong
trường hợp kênh LAN bị tắc nghẽn làm cho số lần va chạm vượt quá 16 làm cho các khung
bị mất . Không thể có mạng LAN nào hoàn hảo , vì thế những phần mềm ở lớp giao thức
mạng cao hơn được thiết kế để cứu dữ liệu khỏi lỗi.
Cần thiết phải nâng lên các giao thức mạng mức cao để chắc chắn dữ liệu nhận được
là chính xác .Các giao thức bậc cao làm được điều nàu nhờ phương thức truyền đáng tin cậy
và sự xác nhận chuỗi thông tin truyền qua mạng .
2.4.Khung và địa chỉ Ethernet
Quả tim của Ethernet là là khung , khung được sử dụng để truyền dữ liệu giữa các
máy tính ,Khung gồm các bit được chia thành các trường . Các trường này bao gồm trường
địa chỉ , trường dữ liệu chứa từ 46 tới 15000 byte dữ liệu , và 1 trường kiểm tra lỗi để kiểm
tra các bit nhận được có giống với các bit được truyền đi không.
Trường đầu tiên mang 48 bit địa chỉ , gọi là địa chỉ nhận và địa chỉ gửi, IEEE quản lí
các địa chỉ bởi trường địa chỉ. IEEE cung cấp 24 bit nhận dạng gọi là “ định danh tổ chức
duy nhất “ (OUI) , mỗi tổ chức tham gia vào Ethernet sẽ được cung cấp 1 định danh duy
nhất .Tổ chức sẽ tạo ra 48 bit địa chỉ sử dụng OUI của 24 bit địa chỉ đầu tiên . 48 bit này
được biết đến như là địa chỉ vật lí , phần cứng hoặc địa chỉ MAC. 48 bít địa chỉ là dấu hiệu
nhận biết chung cho mỗi giao tiếp Ethernet khi nó được tạo ra , nhờ đó mà làm đơn giản hơn
cấu trúc của Ethernet. Với cách định danh này bạn có thể nhóm nhiều tổ chức Ethernet vì thế
7
dễ dàng hơn trong việc quản lí Ethernet.
Mỗi khung Ethernet được gửi tới 1 kênh chung , khi đó mỗi giao tiếp mạng sẽ xem xét
trường 48 bit đầu tiên có chứa địa chỉ , giao tiếp mạng sẽ so sánh địa chỉ của chính nó với
địa chỉ này . Giao tiếp mạng có địa chỉ trùng với địa chỉ nhận sẽ đọc toàn bộ khung và gửi
những dữ liệu này tới phần mềm trong máy . Mọi giao tiếp mạng sẽ ngừng đọc thông tin
trong khung sau khi chúng phát hiện địa chỉ của chúng không trùng với địa chỉ nhận.
2.5.Địa chỉ Multicast and Broadcast
Một địa chỉ multicast cho phép một khung đơn có thể nhận được một nhóm trạm.Phần
mềm mạng có thể cho phép giao tiếp mạng lắng nghe những địa chỉ multicast chỉ định. Điều
này cho phép một nhóm trạm có thể được nhận biết bởi một nhóm multicast đã được gán cho
địa chỉ multicast riêng. Một gói đơn gởi tới 1 địa chỉ multicast sẽ được nhận bởi mọi trạm
trong nhóm này. Có một trường hợp đặc biệt của multicast là broadcast , đó là 48 bit địa chỉ
của mỗi phần tử. Mọi giao tiếp Ethernet nếu thấy 1 khung với địa chỉ đến kiểu này sẽ đọc
khung và gửi nó đến hần mềm trong trạm.
8
PHẦN 2 – PHÂN CÔNG CÔNG VIỆC
1. Phân công chung : cả nhóm tìm hiểu và làm quen với công cụ mô phỏng
OMNET++ qua các tài liệu Thầy giáo đã cho.
Cài đặt gói INET Framework tham khảo.
2. Phân công cụ thể thực hiện đề tài :
- Nguyễn Đức Quý: Tạo mô hình mô phỏng mạng và cài đặt các thông số mô phỏng.
- Đỗ Trung Thanh: Viết lại thuật toán tính toán tổng dung lượng băng thông bị chiếm và
tốc độ mất gói.
- Đỗ Trung Thanh: Dựa vào kết quả mô phỏng từ OMNET++ vẽ đồ thị tổng dung lượng
băng thông bị chiếm khi truyền gói và tốc độ mất gói.
9
PHẦN 3 -THỰC HIỆN ĐỀ TÀI
1.Thực hiện mô phỏng với trễ truyền dẫn 100ms, độ dài gói 1500bytes
1.1. Mô phỏng với 3 máy tính kết nối
- Tạo mô hình mô phỏng mạng:
network ethernet
{
submodules:
hostA: EtherHost {
parameters:
@display("p=100,150");
}
hostB: EtherHost {
parameters:
@display("p=200,150");
}
hostC: EtherHost {
parameters:
@display("p=300,150");
}
bus: EtherBus {
parameters:
positions = "0 10 20";
propagationSpeed = 2e8 mps;
@display("p=250,100;b=400,6;o=#408060");
gates:
ethg[3];
}
10
connections:
bus.ethg[0] <--> hostA.ethg;
bus.ethg[1] <--> hostB.ethg;
bus.ethg[2] <--> hostC.ethg;
}
- Cài đặt các thông số mô phỏng:
[General]
network = ethernet
sim-time-limit = 30s
tkenv-plugin-path = ../../../etc/plugins
**.vector-recording = true
[Config ethernet]
**.mac.address = "auto"
**.mac.txrate = 0# autoconfig
**.mac.txQueueLimit = 100000
**.hostA.cli.destAddress = ""
**.cli.destAddress = "hostA"
**.cli.waitTime = exponential(0.005s)
**.cli.reqLength = 1500B
**.cli.respLength = truncnormal(1000B,1000B)
Trong đó, các thông số đề bài đưa ra được thiết lập như sau:
- Thời gian mô phỏng 30s: sim-time-limit = 30s
- Các gói được gửi đi với tốc độ λ=200 gói/s, tuân theo phân bố Poisson:
**.cli.waitTime = exponential(0.005s)
- Độ dài của gói Ethernet 1500 bytes: **.cli.reqLength = 1500B
11
- Trễ truyền dẫn 100ms và tốc độ mạng Ethernet 10Mbps được thiết lập trong
file EtherBus.cc:
voidEtherBus::initialize()
{
numMessages = 0;
WATCH(numMessages);
propagationSpeed = par("propagationSpeed").doubleValue();
// initialize the positions where the hosts connects to the bus
taps = gateSize("ethg");
// read positions and check if positions are defined in order (we're
lazy to sort...)
std::vector<double> pos;
tokenize(par("positions").stringValue(), pos);
int numPos = pos.size();
if (numPos>taps)
EV <<"Note: `positions' parameter contains more values ("<<
numPos <<") than "
"the number of taps ("<<taps<<"), ignoring excess values.n";
elseif (numPos<taps&& numPos>=2)
EV <<"Note: `positions' parameter contains less values ("<<
numPos <<") than "
"the number of taps ("<<taps<<"), repeating distance between last 2
positions.n";
elseif (numPos<taps&& numPos<2)
EV <<"Note: `positions' parameter contains too few values,
using 5m distances.n";
12
tap = new BusTap[taps];
int i;
double distance = numPos>=2 ? pos[numPos-1]-pos[numPos-2] : 5;
for (i=0; i<taps; i++)
{
tap[i].id = i;
tap[i].position = i<numPos ? pos[i] : i==0 ? 5 : tap[i-
1].position+distance;
}
for (i=0; i<taps-1; i++)
{
if (tap[i].position>tap[i+1].position)
error("Tap positions must be ordered in ascending fashion, modify
'positions' parameter and rerunn");
}
// Calculate propagation of delays between tap points on the bus
for (i=0; i<taps; i++)
{
tap[i].propagationDelay[UPSTREAM] = 0;
tap[i].propagationDelay[DOWNSTREAM] = 0.1;
}
// Prints out data of parameters for parameter checking...
EV <<"Parameters of ("<<getClassName() <<") "<<getFullPath() <<"n";
EV <<"propagationSpeed: "<<propagationSpeed<<"n";
for (i=0; i<taps; i++)
{
13
EV <<"tap["<< i <<"] pos: "<<tap[i].position<<
" upstream delay: "<<tap[i].propagationDelay[UPSTREAM] <<
" downstream delay: "<<tap[i].propagationDelay[DOWNSTREAM] << endl;
}
EV <<"n";
// autoconfig: tell everyone that bus supports only 10Mb half-duplex
EV <<"Autoconfig: advertising that we only support 10Mb half-duplex
operationn";
for (i=0; i<taps; i++)
{
EtherAutoconfig *autoconf = new EtherAutoconfig("autoconf-10Mb-
halfduplex");
autoconf->setHalfDuplex(true);
autoconf->setTxrate(10000000); // 10Mb
send(autoconf,"ethg$o",i);
}
}
- Tính toán tổng dung lượng băng thông bị chiếm và tốc độ mất gói:
• Để tính tổng dung lượng băng thông bị chiếm ta tính tổng dung lượng lưu lượng
mỗi máy đích nhận được chia cho khoảng thời gian truyền .rồi cộng tổng lại để ra
băng thông bị chiếm trên bus.
• Để tính tốc độ mất gói ta lấy số gói bị mất của mỗi máy chia cho khoảng thời gian
mất số gói này, đưa số liệu ra rồi cộng lại để tính tốc độ mất gói trên bus.
Ta tính toán dựa vào các hàm trong file EtherMacBase.cc:
14
Số gói bị mất sau mỗi khoảng thời gian 0.1s:
boolEtherMACBase::checkDestinationAddress(EtherFrame *frame)
{
// If not set to promiscuous = on, then checks if received frame
contains destination MAC address
// matching port's MAC address, also checks if broadcast bit is set
if (!promiscuous&& !frame->getDest().isBroadcast() && !frame-
>getDest().equals(address))
{
EV <<"Frame `"<< frame->getName() <<"' not destined to us,
discardingn";
numDroppedNotForUs++;
delete frame;
timer=simTime();
if(timer>moc1){
numDroppedNotForUsVector.record(numDroppedNotForUs/timer);
moc1+=0.1;
}
returnfalse;
}
returntrue;
}
Lưu lượng mỗi máy nhận được sau mỗi khoảng thời gian 0.1s:
voidEtherMACBase::processReceivedDataFrame(EtherFrame *frame)
{
// bit errors
if (frame->hasBitError())
{
numDroppedBitError++;
numDroppedBitErrorVector.record(numDroppedBitError);
delete frame;
return;
}
// strip preamble and SFD
frame->addByteLength(-PREAMBLE_BYTES-SFD_BYTES);
// statistics
numFramesReceivedOK++;
numBytesReceivedOK += frame->getByteLength();
numFramesReceivedOKVector.record(numFramesReceivedOK);
timer=simTime();
if(timer>moc){
numBytesReceivedOKVector.record(numBytesReceivedOK*8/timer/1000000);
moc+=0.1;
}
if (!checkDestinationAddress(frame))
15
return;
numFramesPassedToHL++;
numFramesPassedToHLVector.record(numFramesPassedToHL);
// pass up to upper layer
send(frame, "upperLayerOut");
}
- Vẽ đồ thị tổng dung lượng bị chiếm trên bus và tốc độ mất gói
Sau khi thực hiện mô phỏng thành công, ta thu được giá trị các thông số cần tính
toán theo dạng vector ghi lại các kết quả ứng với mỗi khoảng thời gian 0.1s:
Lưu lượng mỗi máy nhận được: numBytesReceivedOKVector
Số gói bị mất: numDroppedNotForUsVector
Dựa vào các kết quả thu được, ta xuất dữ liệu các thông số này ra MATLAB và
thực hiện tính toán và vẽ đồ thị dựa vào phần mềm MATLAB.
- Kết quả mô phỏng thu được:
16
Hình 1.2 – Tốc độ mất gói
1.2. Mô phỏng với 5 máy tính kết nối
Để mô phỏng với số máy nhiều hơn, ta chỉ cần tạo mô hình mạng với 5 máy. Các
thông số mô phỏng cũng như việc tính toán các thông số đã được trình bày ở phần
trên.
network ethernet
{
submodules:
17
hostA: EtherHost {
parameters:
@display("p=100,150");
}
hostB: EtherHost {
parameters:
@display("p=200,150");
}
hostC: EtherHost {
parameters:
@display("p=300,150");
}
hostD: EtherHost {
@display("p=131,37");
}
hostE: EtherHost {
@display("p=238,34");
}
bus: EtherBus {
parameters:
positions = "0 10 20 30 40";
propagationSpeed = 2e8 mps;
@display("p=250,100;b=400,6;o=#408060");
gates:
ethg[5];
}
connections:
bus.ethg[0] <--> hostA.ethg;
bus.ethg[1] <--> hostB.ethg;
bus.ethg[2] <--> hostC.ethg;
bus.ethg[3] <--> hostD.ethg;
bus.ethg[4] <--> hostE.ethg;
}
Kết quả mô phỏng:
18
Hình 2.1 – Đồ thị tổng dung lượng bị chiếm trên bus khi truyền gói
Hình 2.2 – Tốc độ mất gói
1.3. Mô phỏng với 10 máy tính kết nối
network ethernet
{
@display("bgb=564,311");
submodules:
hostA: EtherHost {
parameters:
@display("p=102,253");
}
hostB: EtherHost {
19
parameters:
@display("p=214,253");
}
hostC: EtherHost {
parameters:
@display("p=316,261");
}
hostD: EtherHost {
@display("p=402,261");
}
hostE: EtherHost {
@display("p=485,261");
}
hostA1: EtherHost {
@display("p=92,43");
}
hostB1: EtherHost {
@display("p=214,42");
}
hostC1: EtherHost {
@display("p=303,42");
}
hostD1: EtherHost {
@display("p=402,43");
}
hostE1: EtherHost {
@display("p=485,43");
}
bus: EtherBus {
parameters:
positions = "0 10 20 30 40 50 60 70 80 90";
propagationSpeed = 2e8 mps;
@display("p=266,164;b=400,6;o=#408060");
gates:
ethg[10];
}
connections:
bus.ethg[0] <--> hostA.ethg;
bus.ethg[1] <--> hostB.ethg;
bus.ethg[2] <--> hostC.ethg;
bus.ethg[3] <--> hostD.ethg;
bus.ethg[4] <--> hostE.ethg;
bus.ethg[5] <--> hostA1.ethg;
bus.ethg[6] <--> hostB1.ethg;
bus.ethg[7] <--> hostC1.ethg;
bus.ethg[8] <--> hostD1.ethg;
bus.ethg[9] <--> hostE1.ethg;
}
Kết quả mô phỏng:
20
Hình 3.1 – Đồ thị tổng dung lượng bị chiếm trên bus khi truyền gói
Hình 3.2 – Tốc độ mất gói
21
2.Thực hiện mô phỏng với trễ truyền dẫn 1s, độ dài gói 1500bytes
Trong phần này ta thực hiện mô phỏng với trễ truyền dẫn 1s. Các thông số khác
vẫn được giữ nguyên so với phần trên. Để thiết lập trễ truyền dẫn ta thực hiện tương tự
như trên với file EtherBus.cc:
voidEtherBus::initialize()
{
numMessages = 0;
WATCH(numMessages);
propagationSpeed = par("propagationSpeed").doubleValue();
// initialize the positions where the hosts connects to the bus
taps = gateSize("ethg");
// read positions and check if positions are defined in order (we're
lazy to sort...)
std::vector<double> pos;
tokenize(par("positions").stringValue(), pos);
22
int numPos = pos.size();
if (numPos>taps)
EV <<"Note: `positions' parameter contains more values ("<<
numPos <<") than "
"the number of taps ("<<taps<<"), ignoring excess values.n";
elseif (numPos<taps&& numPos>=2)
EV <<"Note: `positions' parameter contains less values ("<<
numPos <<") than "
"the number of taps ("<<taps<<"), repeating distance between last 2
positions.n";
elseif (numPos<taps&& numPos<2)
EV <<"Note: `positions' parameter contains too few values,
using 5m distances.n";
tap = new BusTap[taps];
int i;
double distance = numPos>=2 ? pos[numPos-1]-pos[numPos-2] : 5;
for (i=0; i<taps; i++)
{
tap[i].id = i;
tap[i].position = i<numPos ? pos[i] : i==0 ? 5 : tap[i-
1].position+distance;
}
for (i=0; i<taps-1; i++)
{
if (tap[i].position>tap[i+1].position)
error("Tap positions must be ordered in ascending fashion, modify
'positions' parameter and rerunn");
}
23
// Calculate propagation of delays between tap points on the bus
for (i=0; i<taps; i++)
{
tap[i].propagationDelay[UPSTREAM] = 0;
tap[i].propagationDelay[DOWNSTREAM] = 1;
}
// Prints out data of parameters for parameter checking...
EV <<"Parameters of ("<<getClassName() <<") "<<getFullPath() <<"n";
EV <<"propagationSpeed: "<<propagationSpeed<<"n";
for (i=0; i<taps; i++)
{
EV <<"tap["<< i <<"] pos: "<<tap[i].position<<
" upstream delay: "<<tap[i].propagationDelay[UPSTREAM] <<
" downstream delay: "<<tap[i].propagationDelay[DOWNSTREAM] << endl;
}
EV <<"n";
// autoconfig: tell everyone that bus supports only 10Mb half-duplex
EV <<"Autoconfig: advertising that we only support 10Mb half-duplex
operationn";
for (i=0; i<taps; i++)
{
EtherAutoconfig *autoconf = new EtherAutoconfig("autoconf-10Mb-
halfduplex");
autoconf->setHalfDuplex(true);
autoconf->setTxrate(10000000); // 10Mb
send(autoconf,"ethg$o",i);
}
24
}
Kết quả mô phỏng với 3 máy tính kết nối:
Hình 4.1 – Đồ thị tổng dung lượng bị chiếm trên bus khi truyền gói
Hình 4.2 – Tốc độ mất gói
Kết quả mô phỏng với 5 máy tính kết nối:
25
Hình 5.1 – Đồ thị tổng dung lượng bị chiếm trên bus khi truyền gói
Hình 5.2 – Tốc độ mất gói
Kết quả mô phỏng với 10 máy tính kết nối:
26
Hình 6.1 – Đồ thị tổng dung lượng bị chiếm trên bus khi truyền gói
Hình 6.2 – Tốc độ mất gói
27
3.Thực hiện mô phỏng với 10 máy, trễ truyền dẫn 100ms, độ dài gói thay đổi
Trong phần này ta thực hiện mô phỏng với 10 máy và trễ truyền dẫn 100ms với độ dài
gói Ethernet thay đổi. Ta thực hiện mô phỏng với 2 trường hợp độ dài gói bằng 1000
bytes và 3000 bytes. Để thay đổi độ dài gói Ethernet ta thiết lập như sau:
- Mô phỏng với độ dài gói 1000 bytes:
[General]
network = ethernet
sim-time-limit = 30s
tkenv-plugin-path = ../../../etc/plugins
**.vector-recording = true
[Config ethernet]
**.mac.address = "auto"
**.mac.txrate = 0# autoconfig
**.mac.txQueueLimit = 100000
28
**.hostA.cli.destAddress = ""
**.cli.destAddress = "hostA"
**.cli.waitTime = exponential(0.005s)
**.cli.reqLength = 1000B
**.cli.respLength = truncnormal(3000B,3000B)
Kết quả mô phỏng:
Hình 7.1 – Đồ thị tổng dung lượng bị chiếm trên bus khi truyền gói
29
Hình 7.2 – Tốc độ mất gói
- Mô phỏng với độ dài gói 3000 bytes:
[General]
network = ethernet
sim-time-limit = 30s
tkenv-plugin-path = ../../../etc/plugins
**.vector-recording = true
[Config ethernet]
**.mac.address = "auto"
**.mac.txrate = 0# autoconfig
**.mac.txQueueLimit = 100000
**.hostA.cli.destAddress = ""
**.cli.destAddress = "hostA"
30
**.cli.waitTime = exponential(0.005s)
**.cli.reqLength = 1000B
**.cli.respLength = truncnormal(3000B,3000B)
Kết quả mô phỏng:
Hình 7.1 – Đồ thị tổng dung lượng bị chiếm trên bus khi truyền gói
31
Hình 7.2 – Tốc độ mất gói
PHẦN 4 – KẾT LUẬN
-Trong mạng ethernet, khi số máy trong mạng tăng lên thì tổng dung lượng
băng thông bị chiếm trên bus khi các máy thực hiện trao đổi dữ liệu tại một thời
điểm sẽ tăng lên.
Đồng thời với tăng tổng dung lượng băng thông thì tốc độ mất gói của mạng
cũng sẽ tăng khi số máy trong mạng tăng.
-Với cùng số máy tham gia trong mạng lan,khi kích thước gói Ethernet tăng
sẽ làm cho băng thong bị chiếm trên bus giảm , đồng thời tốc độ mất gói cũng
giảm theo.
32
Như vậy các thông số kĩ thuật và tài nguyên mạng cho trước ta cần phải tính
toán để có được một mạng hoạt động hiệu quả .Việc phân tích chính xác Ethernet
rất phức tạp do giải thuật Truncated Binary Exponential Backoff. Do đó ta sử dụng
phương pháp xác định hiệu năng tối đa của phương pháp CSMA-CD thông
thường.
33

More Related Content

What's hot

TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...nataliej4
 
Giải nh mvt
Giải nh mvtGiải nh mvt
Giải nh mvtbuzzbb37
 
tim-hieu-ky-thuat-ofdm-fbmc-va-mo-phong-fbmc-co-code-ben-duoi
tim-hieu-ky-thuat-ofdm-fbmc-va-mo-phong-fbmc-co-code-ben-duoitim-hieu-ky-thuat-ofdm-fbmc-va-mo-phong-fbmc-co-code-ben-duoi
tim-hieu-ky-thuat-ofdm-fbmc-va-mo-phong-fbmc-co-code-ben-duoiHuynh MVT
 
Dieu khien thiet bi tcpip
Dieu khien thiet bi tcpipDieu khien thiet bi tcpip
Dieu khien thiet bi tcpipNguyen Thang
 
Giao thuc ip
Giao thuc ipGiao thuc ip
Giao thuc ipĐăng DC
 
Đề cương ôn tập mạng máy tính
Đề cương ôn tập mạng máy tínhĐề cương ôn tập mạng máy tính
Đề cương ôn tập mạng máy tínhHưởng Nguyễn
 
Chapter8 application layer
Chapter8 application layerChapter8 application layer
Chapter8 application layerNghia Simon
 
Mang May Tinh
Mang May TinhMang May Tinh
Mang May Tinhbstuananh
 
[123doc.vn] thiet ke mang lan cho truong hoc copy
[123doc.vn]   thiet ke mang lan cho truong hoc copy[123doc.vn]   thiet ke mang lan cho truong hoc copy
[123doc.vn] thiet ke mang lan cho truong hoc copynenohap
 
Ex 1 chapter04-transport-layer-tony_chen - tieng viet
Ex 1 chapter04-transport-layer-tony_chen - tieng vietEx 1 chapter04-transport-layer-tony_chen - tieng viet
Ex 1 chapter04-transport-layer-tony_chen - tieng vietĐô GiẢn
 
Câu hỏi mạng máy tính
Câu hỏi mạng máy tínhCâu hỏi mạng máy tính
Câu hỏi mạng máy tínhHưởng Nguyễn
 
Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng Python
Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng PythonBeezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng Python
Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng PythonBeezo
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhJojo Kim
 
Lập trình phân tích bắt gói tin mạng bằng Python
Lập trình phân tích bắt gói tin mạng bằng PythonLập trình phân tích bắt gói tin mạng bằng Python
Lập trình phân tích bắt gói tin mạng bằng PythonPhạm Trung Đức
 
Mo hinh osi compatibility mode
Mo hinh osi compatibility modeMo hinh osi compatibility mode
Mo hinh osi compatibility mode24071983
 
[Báo cáo] Bài tập lớn Tổ chức quy hoạch mạng viễn thông: Mentor
[Báo cáo] Bài tập lớn Tổ chức quy hoạch mạng viễn thông: Mentor[Báo cáo] Bài tập lớn Tổ chức quy hoạch mạng viễn thông: Mentor
[Báo cáo] Bài tập lớn Tổ chức quy hoạch mạng viễn thông: MentorThe Nguyen Manh
 

What's hot (20)

Mạng máy tính
Mạng máy tínhMạng máy tính
Mạng máy tính
 
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
 
Giải nh mvt
Giải nh mvtGiải nh mvt
Giải nh mvt
 
tim-hieu-ky-thuat-ofdm-fbmc-va-mo-phong-fbmc-co-code-ben-duoi
tim-hieu-ky-thuat-ofdm-fbmc-va-mo-phong-fbmc-co-code-ben-duoitim-hieu-ky-thuat-ofdm-fbmc-va-mo-phong-fbmc-co-code-ben-duoi
tim-hieu-ky-thuat-ofdm-fbmc-va-mo-phong-fbmc-co-code-ben-duoi
 
Dieu khien thiet bi tcpip
Dieu khien thiet bi tcpipDieu khien thiet bi tcpip
Dieu khien thiet bi tcpip
 
Chap5
Chap5Chap5
Chap5
 
Giao thuc ip
Giao thuc ipGiao thuc ip
Giao thuc ip
 
Đề cương ôn tập mạng máy tính
Đề cương ôn tập mạng máy tínhĐề cương ôn tập mạng máy tính
Đề cương ôn tập mạng máy tính
 
Chapter8 application layer
Chapter8 application layerChapter8 application layer
Chapter8 application layer
 
Mang May Tinh
Mang May TinhMang May Tinh
Mang May Tinh
 
[123doc.vn] thiet ke mang lan cho truong hoc copy
[123doc.vn]   thiet ke mang lan cho truong hoc copy[123doc.vn]   thiet ke mang lan cho truong hoc copy
[123doc.vn] thiet ke mang lan cho truong hoc copy
 
Ex 1 chapter04-transport-layer-tony_chen - tieng viet
Ex 1 chapter04-transport-layer-tony_chen - tieng vietEx 1 chapter04-transport-layer-tony_chen - tieng viet
Ex 1 chapter04-transport-layer-tony_chen - tieng viet
 
Câu hỏi mạng máy tính
Câu hỏi mạng máy tínhCâu hỏi mạng máy tính
Câu hỏi mạng máy tính
 
Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng Python
Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng PythonBeezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng Python
Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng Python
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tính
 
Lập trình phân tích bắt gói tin mạng bằng Python
Lập trình phân tích bắt gói tin mạng bằng PythonLập trình phân tích bắt gói tin mạng bằng Python
Lập trình phân tích bắt gói tin mạng bằng Python
 
Mang co ban
Mang co banMang co ban
Mang co ban
 
Mo hinh osi compatibility mode
Mo hinh osi compatibility modeMo hinh osi compatibility mode
Mo hinh osi compatibility mode
 
[Báo cáo] Bài tập lớn Tổ chức quy hoạch mạng viễn thông: Mentor
[Báo cáo] Bài tập lớn Tổ chức quy hoạch mạng viễn thông: Mentor[Báo cáo] Bài tập lớn Tổ chức quy hoạch mạng viễn thông: Mentor
[Báo cáo] Bài tập lớn Tổ chức quy hoạch mạng viễn thông: Mentor
 
Đề tài: Hệ thống xác định chính xác vị trí của động cơ tuyến tính
Đề tài: Hệ thống xác định chính xác vị trí của động cơ tuyến tínhĐề tài: Hệ thống xác định chính xác vị trí của động cơ tuyến tính
Đề tài: Hệ thống xác định chính xác vị trí của động cơ tuyến tính
 

Similar to Báo Cáo Cơ Sở Truyền Số Liệu

Cong nghe erthenet
Cong nghe erthenetCong nghe erthenet
Cong nghe erthenetHang Vu
 
Đề tài Tìm hiểu mô hình mạng văn phòng, công ty, mạng khu vực và mạng thương ...
Đề tài Tìm hiểu mô hình mạng văn phòng, công ty, mạng khu vực và mạng thương ...Đề tài Tìm hiểu mô hình mạng văn phòng, công ty, mạng khu vực và mạng thương ...
Đề tài Tìm hiểu mô hình mạng văn phòng, công ty, mạng khu vực và mạng thương ...Jazmyne Padberg
 
Mcsa 2012 mạng căn bản phần 5
Mcsa 2012 mạng căn bản phần 5Mcsa 2012 mạng căn bản phần 5
Mcsa 2012 mạng căn bản phần 5laonap166
 
Giao trinh mang may tinh
Giao trinh mang may tinhGiao trinh mang may tinh
Giao trinh mang may tinhChuong Nguyen
 
Các giao thức sử dụng trong các lớp của mô hình osi
Các giao thức sử dụng trong các lớp của mô hình osiCác giao thức sử dụng trong các lớp của mô hình osi
Các giao thức sử dụng trong các lớp của mô hình osiUDCNTT
 
Chương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPT
Chương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPTChương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPT
Chương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPTMasterCode.vn
 
Chuong 12 mang_cua_bo_8534
Chuong 12 mang_cua_bo_8534Chuong 12 mang_cua_bo_8534
Chuong 12 mang_cua_bo_8534ducanhskv
 
Báo cáo thực tập athena lê chương
Báo cáo thực tập athena   lê chươngBáo cáo thực tập athena   lê chương
Báo cáo thực tập athena lê chươngLe Chuong
 
BaiBaoCaoTNTSL_bai1.pdf
BaiBaoCaoTNTSL_bai1.pdfBaiBaoCaoTNTSL_bai1.pdf
BaiBaoCaoTNTSL_bai1.pdfssuser98b66b1
 
Chapter5 lan mac
Chapter5 lan macChapter5 lan mac
Chapter5 lan macNghia Simon
 
đồ áN thiết kế mạng lan cho công ty tin học
đồ áN thiết kế mạng lan cho công ty tin họcđồ áN thiết kế mạng lan cho công ty tin học
đồ áN thiết kế mạng lan cho công ty tin họcnataliej4
 
Lập trình chương trình chat room sử dụng giao thức tcp socket
Lập trình chương trình chat room sử dụng giao thức tcp socketLập trình chương trình chat room sử dụng giao thức tcp socket
Lập trình chương trình chat room sử dụng giao thức tcp socketjackjohn45
 
Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...
Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...
Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...jackjohn45
 
Chuong 12 mang cuc bo
Chuong 12  mang cuc boChuong 12  mang cuc bo
Chuong 12 mang cuc bohnda
 
Bai giang mon_mang_may_tinh_can_ban_7045
Bai giang mon_mang_may_tinh_can_ban_7045Bai giang mon_mang_may_tinh_can_ban_7045
Bai giang mon_mang_may_tinh_can_ban_7045ssuser6f354d
 

Similar to Báo Cáo Cơ Sở Truyền Số Liệu (20)

Cong nghe erthenet
Cong nghe erthenetCong nghe erthenet
Cong nghe erthenet
 
2-mt_tb.ppt
2-mt_tb.ppt2-mt_tb.ppt
2-mt_tb.ppt
 
Đề tài Tìm hiểu mô hình mạng văn phòng, công ty, mạng khu vực và mạng thương ...
Đề tài Tìm hiểu mô hình mạng văn phòng, công ty, mạng khu vực và mạng thương ...Đề tài Tìm hiểu mô hình mạng văn phòng, công ty, mạng khu vực và mạng thương ...
Đề tài Tìm hiểu mô hình mạng văn phòng, công ty, mạng khu vực và mạng thương ...
 
Duy
DuyDuy
Duy
 
Mang may tinh
Mang may tinhMang may tinh
Mang may tinh
 
Mcsa 2012 mạng căn bản phần 5
Mcsa 2012 mạng căn bản phần 5Mcsa 2012 mạng căn bản phần 5
Mcsa 2012 mạng căn bản phần 5
 
Giao trinh mang may tinh
Giao trinh mang may tinhGiao trinh mang may tinh
Giao trinh mang may tinh
 
Các giao thức sử dụng trong các lớp của mô hình osi
Các giao thức sử dụng trong các lớp của mô hình osiCác giao thức sử dụng trong các lớp của mô hình osi
Các giao thức sử dụng trong các lớp của mô hình osi
 
Chương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPT
Chương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPTChương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPT
Chương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPT
 
Giaotrinh mang
Giaotrinh mangGiaotrinh mang
Giaotrinh mang
 
Chuong 12 mang_cua_bo_8534
Chuong 12 mang_cua_bo_8534Chuong 12 mang_cua_bo_8534
Chuong 12 mang_cua_bo_8534
 
Báo cáo thực tập athena lê chương
Báo cáo thực tập athena   lê chươngBáo cáo thực tập athena   lê chương
Báo cáo thực tập athena lê chương
 
BaiBaoCaoTNTSL_bai1.pdf
BaiBaoCaoTNTSL_bai1.pdfBaiBaoCaoTNTSL_bai1.pdf
BaiBaoCaoTNTSL_bai1.pdf
 
Chapter5 lan mac
Chapter5 lan macChapter5 lan mac
Chapter5 lan mac
 
đồ áN thiết kế mạng lan cho công ty tin học
đồ áN thiết kế mạng lan cho công ty tin họcđồ áN thiết kế mạng lan cho công ty tin học
đồ áN thiết kế mạng lan cho công ty tin học
 
Mang lan
Mang lanMang lan
Mang lan
 
Lập trình chương trình chat room sử dụng giao thức tcp socket
Lập trình chương trình chat room sử dụng giao thức tcp socketLập trình chương trình chat room sử dụng giao thức tcp socket
Lập trình chương trình chat room sử dụng giao thức tcp socket
 
Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...
Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...
Khoa công nghệ thông tin và truyền thôngbáo cáođồ án cơ sở 4đề tài lập trình ...
 
Chuong 12 mang cuc bo
Chuong 12  mang cuc boChuong 12  mang cuc bo
Chuong 12 mang cuc bo
 
Bai giang mon_mang_may_tinh_can_ban_7045
Bai giang mon_mang_may_tinh_can_ban_7045Bai giang mon_mang_may_tinh_can_ban_7045
Bai giang mon_mang_may_tinh_can_ban_7045
 

Báo Cáo Cơ Sở Truyền Số Liệu

  • 1. ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG ---------- BÁO CÁO BÀI TẬP LỚN CƠ SỞ TRUYỀN SỐ LIỆU Bài 2: Đánh giá hiệu năng mạng Ethernet Giảng viên HD: PGS.TS. Nguyễn Hữu Thanh Nhóm sinh viên thực hiện: Nhóm 37 Nguyễn Đức Quý 20112019 Đỗ Trung Thanh 20112269 Hà Nội, 11/2014 1
  • 2. MỤC LỤC PHẦN MỤC LỤC.......................................................................................................................................2 PHẦN 1 – PHÂN TÍCH YÊU CẦU BÀI TẬP LỚN......................................................................2 1 .Mục đích bài tập lớn :..............................................................................................................4 2. Tìm hiểu sơlược về mạng Ethernet :........................................................................................4 PHẦN 2 – PHÂN CÔNG CÔNG VIỆC..........................................................................................9 1.Phân công chung : cả nhóm tìm hiểu và làm quen với công cụ mô phỏng OMNET++ qua các tài liệu Thầy giáo đã cho..............................................................................................................9 2. Phân công cụ thể thực hiện đề tài :..........................................................................................9 PHẦN 3 -THỰC HIỆN ĐỀ TÀI....................................................................................................10 PHẦN 1 – PHÂN TÍCH YÊU CẦU BÀI TẬP LỚN 2
  • 3. Mạng Ethernet với tốc độ 10Mbit/s, sử dụng cấu hình kênh truyền bus (coaxial cable).Trễ truyền dẫn 100ms.Biết rằng card mạng của máy tính đều liên tục có các gói được gửi đến với tốc độ như nhau λ =200 gói/s,tuân theo phân bố Poisson.Độ dài của gói Ethernet tuân theo phân bố Poisson với chiều dài trung bình là 1500bytes (hình vẽ). 2.1. Chạy mô phỏng dùng Omnet trong khoảng thời gian 30s.Đánh giá và vẽ đồ thị tổng dung lượng băng thông chiếm trên bus khi truyền gói b(t) và tốc độ mất gói e(t) (tính bằng gói/s) khi số máy tính nối mạng là: • 3 máy • 5 máy • 10 máy Giả thiết mỗi máy x sẽ phát gói đến mộtđích là máy y bất kỳ (do sinh viên tự chọn) 2.2. Lặp lại mô phỏng trên trong trường hợp trễ truyền dẫn là 1s.Có nhận xét gì so với trường hợp đầu tiên ? 3
  • 4. 2.3. Lặp lại mô phỏng cho 10 máy, trễ truyền dẫn 100ms cho trường hợp độ dài gói thay đổi. Đánh giá kết quả. 1 .Mục đích bài tập lớn : Trong môn cơ sở mạng thông tin sinh viên đã làm quen với phương pháp đánh giá hoạt động của một hệ thống thông tin bằng phương pháp toán học, đặc biệt là mô hình liên quan đến hàng đợi đơn, mạng hàng đợi, cơ sở cho các cơ chế điều khiển luồng và định tuyến trong mạng. Trong phần bài tập lớn, sinh viên sẽ được làm quen với một phương pháp khác để đánh giá hiệu năng, đó là phương pháp mô phỏng.Bài tập lớn này có một số mục đích sau: * Kiểm nghiệm các kết quả phân tích, đánh giá hệ thống khi dùng phương pháp phân tích toán học và phương pháp mô phỏng. * Làm quen với công cụ mô phỏng OMNET++ – công cụ mô phỏng mạng thông dụng nhất hiện nay. * Phát triển kỹ năng làm việc theo nhóm. * Phát triển kỹ năng làm việc độc lập. 2. Tìm hiểu sơlược về mạng Ethernet : Ethernet là mạng cục bộ do các công ty Xerox, Intel và Digital equipment xây dựng và phát triển. Ethernet là mạng thông dụng nhất đối với các mạng nhỏ hiện nay. Ethernet LAN được xây dựng theo chuẩn 7 lớp trong cấu trúc mạng của ISO, mạng truyền số liệu Ethernet cho phép đưa vào mạng các loại máy tính khác nhau kể cả máy tính mini. Ethernet có các đặc tính kỹ thuật chủ yếu sau đây: • Có cấu trúc dạng tuyến phân đoạn, đường truyền dùng cáp đồng trục, tín hiệu truyền trên mạng được mã hoá theo kiểu đồng bộ (Manchester), tốc độ truyền dữ liệu là 10 Mb/s. 4
  • 5. • Chiều dài tối đa của một đoạn cáp tuyến là 500m, các đoạn tuyến này có thể được kết nối lại bằng cách dùng các bộ chuyển tiếp và khoảng cách lớn nhất cho phép giữa 2 nút là 2,8 km. • Sử dụng tín hiệu bǎng tần cơ bản, truy xuất tuyến (bus access) hoặc tuyến token (token bus), giao thức là CSMA/CD, dữ liệu chuyển đi trong các gói. Gói (packet) thông tin dùng trong mạng có độ dài từ 64 đến 1518 byte. 2.1. Hệ thống Ethernet - Ethernet là 1 công nghệ mạng cục bộ (LAN) nhằm chuyển thông tin giữa các máy tính với tốc độ từ 10 đến 100 triệu bít một giây (Mbps) . Hiện thời công nghệ Ethernet thường được sử dụng nhất là công nghệ sử dụng cáp đôi xoắn 10-Mbps. - Công nghệ truyền thông 10-Mbps sử dụng hệ thống cáp đồng trục cỡ lớn , hoặc cáp đôi, cáp sợi quang . Tốc độ chuẩn cho hệ thống Ethernet hiện nay là 100-Mbps . 2.2.Các thành phần của Ethernet Hệ thống Ethernet bao gồm 3 thành phần cơ bản : • Hệ thống trung gian truyền tín hiệu Ethernet giữa các máy tính. • Các nhóm thiết bị trung gian đóng vai trò giao diện Ethernet làm cho nhiều máy tính có thể kết nối tới cùng 1 kênh Ethernet. • Các khung Ethernet đóng vai trò làm các bit chuẩn để luân chuyển dữ liệu trên Ethernet. Phần tiếp sau đây sẽ miêu tả quy tắc thiết lập cho các thành phần đầu tiên, các mảng truyền thông vật lí , thiết lập quy tắc truy cập trung gian cho Ethernet và các khung Ethernet. 2.3.Hoạt động của Ethernet Mỗi máy Ethernet, hay còn gọi là máy trạm , hoạt động độc lập với tất cả các trạm khác trên mạng , không có một trạm điều khiển trung tâm.Mọi trạm đều kết nối với Ethernet thông qua 5
  • 6. một đường truyền tín hiệu chung còn gọi là đuờng trung gian. Tín hiệu Ethernet được gửi theo chuỗi , từng bit một , qua đường trung gian tới tất cả các trạm thành viên. Để gửi dữ liệu trước tiên trạm cần lắng nghe xem kênh có rỗi không , nếu rỗi thì mới gửi đi các gói ( dữ liệu). Cơ hội để tham gia vào truyền là bằng nhau đối với mỗi trạm . Tức là không có sự ưu tiên . Sự thâm nhập vào kênh chung được quyết dịnh bởi nhóm điều khiển truy nhập trung gian ( Medium Access Control-MAC) được đặt trong mỗi trạm . MAC thực thi dựa trên cơ sở sự phát hiện va chạm sóng mang ( CSMA/CD). - Giao thức CSMA/CD . - Xung đột - Truyền dữ liệu 2.3.1.Giao thức CSMA/CD. Để truyền thông tin, mỗi giao tiếp mạng phải lắng nghe cho tới khi không có tín hiệu trong kênh chung , lúc này nó mới có thể truyền thông tin . Nếu một giao tiếp mạng thực hiện truyền thông tin trong kênh thì gọi là sóng và các trạm khác phải chờ đợi cho tới khi sự truyền dẫn này kết thúc . Quá trình này gọi là phát hiện sóng mang. Mọi giao tiếp Ethernet đều có cơ hội ngang nhau trong việc truyền thông tin trong mạng (Đa truy nhập ) . Trong quá trình truyền từ đầu này tới đầu kia của Ethernet , những bít đầu tiên của khung cần phải đi tới mọi vùng của mạng . Tức là có thể có 2 giao tiếp mạng cùng thấy mạng rỗi và gửi đi cùng 1 lúc. Khi đó Ethernet phát hiện sự “ va chạm “ và dừng việc truyền và gửi lại các khung . ĐÓ là quá trình phát hiện va chạm. Giao thức CSMA/CD được thiết kế nhằm cung cấp cơ hội ngang bằng truy nhập kênh chung cho mọi trạm trong mạng . Sau khi gói tin được gửi đi mỗi trạm trong mạng sẽ sủ dụng giao thức CSMA/CD để xem trạm nào sẽ được gửi tiếp sau. 2.3.2.Va chạm Nếu có có hơn 1 trạm cùng gửi thông tin cùng lúc thì tín hiệu được nói rằng đang va chạm , Các trạm sẽ nhận ra biến cố này và dừng việc truyền bằng thuật toán backoff . Sau đó mỗi trạm sẽ chọn 1 thời gian ngẫu nhiên sau đó để truyền tiếp . 6
  • 7. Thông thường khoảng thời gian trễ này là rất ngắn chỉ khoảng phần nghìn hoặc phần triệu của giây . Nếu như sau đó lại có va chạm thì lại phải truyền lại . Nếu sau một số lần liên tiếp nào đó va chạm thì hệ thống sẽ thôi truyền gói tin này nữa , thường Ethernet chọn 16 lần để hảy bỏ truyền gói tin. Nếu mạng càng lớn và càng nhiều trạm thì khả năng huỷ bỏ càng lớn . 2.3.3.Truyền dữ liệu Cũng như các mạng LAN khác , Ethernet luôn tìm cách truyền dữ liệu tốt nhất , Tuy nhiên ngay cả với những mạng Ethernet đắt tiền nhất và được thiết kế tốt nhất thì dữ liệu truyền đi vẫn không hoàn hảo. Nhiễu điện có thể xuất hiện mọi lúc trên hệ thống cable và làm dữ liêu bị hỏng . Trong trường hợp kênh LAN bị tắc nghẽn làm cho số lần va chạm vượt quá 16 làm cho các khung bị mất . Không thể có mạng LAN nào hoàn hảo , vì thế những phần mềm ở lớp giao thức mạng cao hơn được thiết kế để cứu dữ liệu khỏi lỗi. Cần thiết phải nâng lên các giao thức mạng mức cao để chắc chắn dữ liệu nhận được là chính xác .Các giao thức bậc cao làm được điều nàu nhờ phương thức truyền đáng tin cậy và sự xác nhận chuỗi thông tin truyền qua mạng . 2.4.Khung và địa chỉ Ethernet Quả tim của Ethernet là là khung , khung được sử dụng để truyền dữ liệu giữa các máy tính ,Khung gồm các bit được chia thành các trường . Các trường này bao gồm trường địa chỉ , trường dữ liệu chứa từ 46 tới 15000 byte dữ liệu , và 1 trường kiểm tra lỗi để kiểm tra các bit nhận được có giống với các bit được truyền đi không. Trường đầu tiên mang 48 bit địa chỉ , gọi là địa chỉ nhận và địa chỉ gửi, IEEE quản lí các địa chỉ bởi trường địa chỉ. IEEE cung cấp 24 bit nhận dạng gọi là “ định danh tổ chức duy nhất “ (OUI) , mỗi tổ chức tham gia vào Ethernet sẽ được cung cấp 1 định danh duy nhất .Tổ chức sẽ tạo ra 48 bit địa chỉ sử dụng OUI của 24 bit địa chỉ đầu tiên . 48 bit này được biết đến như là địa chỉ vật lí , phần cứng hoặc địa chỉ MAC. 48 bít địa chỉ là dấu hiệu nhận biết chung cho mỗi giao tiếp Ethernet khi nó được tạo ra , nhờ đó mà làm đơn giản hơn cấu trúc của Ethernet. Với cách định danh này bạn có thể nhóm nhiều tổ chức Ethernet vì thế 7
  • 8. dễ dàng hơn trong việc quản lí Ethernet. Mỗi khung Ethernet được gửi tới 1 kênh chung , khi đó mỗi giao tiếp mạng sẽ xem xét trường 48 bit đầu tiên có chứa địa chỉ , giao tiếp mạng sẽ so sánh địa chỉ của chính nó với địa chỉ này . Giao tiếp mạng có địa chỉ trùng với địa chỉ nhận sẽ đọc toàn bộ khung và gửi những dữ liệu này tới phần mềm trong máy . Mọi giao tiếp mạng sẽ ngừng đọc thông tin trong khung sau khi chúng phát hiện địa chỉ của chúng không trùng với địa chỉ nhận. 2.5.Địa chỉ Multicast and Broadcast Một địa chỉ multicast cho phép một khung đơn có thể nhận được một nhóm trạm.Phần mềm mạng có thể cho phép giao tiếp mạng lắng nghe những địa chỉ multicast chỉ định. Điều này cho phép một nhóm trạm có thể được nhận biết bởi một nhóm multicast đã được gán cho địa chỉ multicast riêng. Một gói đơn gởi tới 1 địa chỉ multicast sẽ được nhận bởi mọi trạm trong nhóm này. Có một trường hợp đặc biệt của multicast là broadcast , đó là 48 bit địa chỉ của mỗi phần tử. Mọi giao tiếp Ethernet nếu thấy 1 khung với địa chỉ đến kiểu này sẽ đọc khung và gửi nó đến hần mềm trong trạm. 8
  • 9. PHẦN 2 – PHÂN CÔNG CÔNG VIỆC 1. Phân công chung : cả nhóm tìm hiểu và làm quen với công cụ mô phỏng OMNET++ qua các tài liệu Thầy giáo đã cho. Cài đặt gói INET Framework tham khảo. 2. Phân công cụ thể thực hiện đề tài : - Nguyễn Đức Quý: Tạo mô hình mô phỏng mạng và cài đặt các thông số mô phỏng. - Đỗ Trung Thanh: Viết lại thuật toán tính toán tổng dung lượng băng thông bị chiếm và tốc độ mất gói. - Đỗ Trung Thanh: Dựa vào kết quả mô phỏng từ OMNET++ vẽ đồ thị tổng dung lượng băng thông bị chiếm khi truyền gói và tốc độ mất gói. 9
  • 10. PHẦN 3 -THỰC HIỆN ĐỀ TÀI 1.Thực hiện mô phỏng với trễ truyền dẫn 100ms, độ dài gói 1500bytes 1.1. Mô phỏng với 3 máy tính kết nối - Tạo mô hình mô phỏng mạng: network ethernet { submodules: hostA: EtherHost { parameters: @display("p=100,150"); } hostB: EtherHost { parameters: @display("p=200,150"); } hostC: EtherHost { parameters: @display("p=300,150"); } bus: EtherBus { parameters: positions = "0 10 20"; propagationSpeed = 2e8 mps; @display("p=250,100;b=400,6;o=#408060"); gates: ethg[3]; } 10
  • 11. connections: bus.ethg[0] <--> hostA.ethg; bus.ethg[1] <--> hostB.ethg; bus.ethg[2] <--> hostC.ethg; } - Cài đặt các thông số mô phỏng: [General] network = ethernet sim-time-limit = 30s tkenv-plugin-path = ../../../etc/plugins **.vector-recording = true [Config ethernet] **.mac.address = "auto" **.mac.txrate = 0# autoconfig **.mac.txQueueLimit = 100000 **.hostA.cli.destAddress = "" **.cli.destAddress = "hostA" **.cli.waitTime = exponential(0.005s) **.cli.reqLength = 1500B **.cli.respLength = truncnormal(1000B,1000B) Trong đó, các thông số đề bài đưa ra được thiết lập như sau: - Thời gian mô phỏng 30s: sim-time-limit = 30s - Các gói được gửi đi với tốc độ λ=200 gói/s, tuân theo phân bố Poisson: **.cli.waitTime = exponential(0.005s) - Độ dài của gói Ethernet 1500 bytes: **.cli.reqLength = 1500B 11
  • 12. - Trễ truyền dẫn 100ms và tốc độ mạng Ethernet 10Mbps được thiết lập trong file EtherBus.cc: voidEtherBus::initialize() { numMessages = 0; WATCH(numMessages); propagationSpeed = par("propagationSpeed").doubleValue(); // initialize the positions where the hosts connects to the bus taps = gateSize("ethg"); // read positions and check if positions are defined in order (we're lazy to sort...) std::vector<double> pos; tokenize(par("positions").stringValue(), pos); int numPos = pos.size(); if (numPos>taps) EV <<"Note: `positions' parameter contains more values ("<< numPos <<") than " "the number of taps ("<<taps<<"), ignoring excess values.n"; elseif (numPos<taps&& numPos>=2) EV <<"Note: `positions' parameter contains less values ("<< numPos <<") than " "the number of taps ("<<taps<<"), repeating distance between last 2 positions.n"; elseif (numPos<taps&& numPos<2) EV <<"Note: `positions' parameter contains too few values, using 5m distances.n"; 12
  • 13. tap = new BusTap[taps]; int i; double distance = numPos>=2 ? pos[numPos-1]-pos[numPos-2] : 5; for (i=0; i<taps; i++) { tap[i].id = i; tap[i].position = i<numPos ? pos[i] : i==0 ? 5 : tap[i- 1].position+distance; } for (i=0; i<taps-1; i++) { if (tap[i].position>tap[i+1].position) error("Tap positions must be ordered in ascending fashion, modify 'positions' parameter and rerunn"); } // Calculate propagation of delays between tap points on the bus for (i=0; i<taps; i++) { tap[i].propagationDelay[UPSTREAM] = 0; tap[i].propagationDelay[DOWNSTREAM] = 0.1; } // Prints out data of parameters for parameter checking... EV <<"Parameters of ("<<getClassName() <<") "<<getFullPath() <<"n"; EV <<"propagationSpeed: "<<propagationSpeed<<"n"; for (i=0; i<taps; i++) { 13
  • 14. EV <<"tap["<< i <<"] pos: "<<tap[i].position<< " upstream delay: "<<tap[i].propagationDelay[UPSTREAM] << " downstream delay: "<<tap[i].propagationDelay[DOWNSTREAM] << endl; } EV <<"n"; // autoconfig: tell everyone that bus supports only 10Mb half-duplex EV <<"Autoconfig: advertising that we only support 10Mb half-duplex operationn"; for (i=0; i<taps; i++) { EtherAutoconfig *autoconf = new EtherAutoconfig("autoconf-10Mb- halfduplex"); autoconf->setHalfDuplex(true); autoconf->setTxrate(10000000); // 10Mb send(autoconf,"ethg$o",i); } } - Tính toán tổng dung lượng băng thông bị chiếm và tốc độ mất gói: • Để tính tổng dung lượng băng thông bị chiếm ta tính tổng dung lượng lưu lượng mỗi máy đích nhận được chia cho khoảng thời gian truyền .rồi cộng tổng lại để ra băng thông bị chiếm trên bus. • Để tính tốc độ mất gói ta lấy số gói bị mất của mỗi máy chia cho khoảng thời gian mất số gói này, đưa số liệu ra rồi cộng lại để tính tốc độ mất gói trên bus. Ta tính toán dựa vào các hàm trong file EtherMacBase.cc: 14
  • 15. Số gói bị mất sau mỗi khoảng thời gian 0.1s: boolEtherMACBase::checkDestinationAddress(EtherFrame *frame) { // If not set to promiscuous = on, then checks if received frame contains destination MAC address // matching port's MAC address, also checks if broadcast bit is set if (!promiscuous&& !frame->getDest().isBroadcast() && !frame- >getDest().equals(address)) { EV <<"Frame `"<< frame->getName() <<"' not destined to us, discardingn"; numDroppedNotForUs++; delete frame; timer=simTime(); if(timer>moc1){ numDroppedNotForUsVector.record(numDroppedNotForUs/timer); moc1+=0.1; } returnfalse; } returntrue; } Lưu lượng mỗi máy nhận được sau mỗi khoảng thời gian 0.1s: voidEtherMACBase::processReceivedDataFrame(EtherFrame *frame) { // bit errors if (frame->hasBitError()) { numDroppedBitError++; numDroppedBitErrorVector.record(numDroppedBitError); delete frame; return; } // strip preamble and SFD frame->addByteLength(-PREAMBLE_BYTES-SFD_BYTES); // statistics numFramesReceivedOK++; numBytesReceivedOK += frame->getByteLength(); numFramesReceivedOKVector.record(numFramesReceivedOK); timer=simTime(); if(timer>moc){ numBytesReceivedOKVector.record(numBytesReceivedOK*8/timer/1000000); moc+=0.1; } if (!checkDestinationAddress(frame)) 15
  • 16. return; numFramesPassedToHL++; numFramesPassedToHLVector.record(numFramesPassedToHL); // pass up to upper layer send(frame, "upperLayerOut"); } - Vẽ đồ thị tổng dung lượng bị chiếm trên bus và tốc độ mất gói Sau khi thực hiện mô phỏng thành công, ta thu được giá trị các thông số cần tính toán theo dạng vector ghi lại các kết quả ứng với mỗi khoảng thời gian 0.1s: Lưu lượng mỗi máy nhận được: numBytesReceivedOKVector Số gói bị mất: numDroppedNotForUsVector Dựa vào các kết quả thu được, ta xuất dữ liệu các thông số này ra MATLAB và thực hiện tính toán và vẽ đồ thị dựa vào phần mềm MATLAB. - Kết quả mô phỏng thu được: 16
  • 17. Hình 1.2 – Tốc độ mất gói 1.2. Mô phỏng với 5 máy tính kết nối Để mô phỏng với số máy nhiều hơn, ta chỉ cần tạo mô hình mạng với 5 máy. Các thông số mô phỏng cũng như việc tính toán các thông số đã được trình bày ở phần trên. network ethernet { submodules: 17
  • 18. hostA: EtherHost { parameters: @display("p=100,150"); } hostB: EtherHost { parameters: @display("p=200,150"); } hostC: EtherHost { parameters: @display("p=300,150"); } hostD: EtherHost { @display("p=131,37"); } hostE: EtherHost { @display("p=238,34"); } bus: EtherBus { parameters: positions = "0 10 20 30 40"; propagationSpeed = 2e8 mps; @display("p=250,100;b=400,6;o=#408060"); gates: ethg[5]; } connections: bus.ethg[0] <--> hostA.ethg; bus.ethg[1] <--> hostB.ethg; bus.ethg[2] <--> hostC.ethg; bus.ethg[3] <--> hostD.ethg; bus.ethg[4] <--> hostE.ethg; } Kết quả mô phỏng: 18
  • 19. Hình 2.1 – Đồ thị tổng dung lượng bị chiếm trên bus khi truyền gói Hình 2.2 – Tốc độ mất gói 1.3. Mô phỏng với 10 máy tính kết nối network ethernet { @display("bgb=564,311"); submodules: hostA: EtherHost { parameters: @display("p=102,253"); } hostB: EtherHost { 19
  • 20. parameters: @display("p=214,253"); } hostC: EtherHost { parameters: @display("p=316,261"); } hostD: EtherHost { @display("p=402,261"); } hostE: EtherHost { @display("p=485,261"); } hostA1: EtherHost { @display("p=92,43"); } hostB1: EtherHost { @display("p=214,42"); } hostC1: EtherHost { @display("p=303,42"); } hostD1: EtherHost { @display("p=402,43"); } hostE1: EtherHost { @display("p=485,43"); } bus: EtherBus { parameters: positions = "0 10 20 30 40 50 60 70 80 90"; propagationSpeed = 2e8 mps; @display("p=266,164;b=400,6;o=#408060"); gates: ethg[10]; } connections: bus.ethg[0] <--> hostA.ethg; bus.ethg[1] <--> hostB.ethg; bus.ethg[2] <--> hostC.ethg; bus.ethg[3] <--> hostD.ethg; bus.ethg[4] <--> hostE.ethg; bus.ethg[5] <--> hostA1.ethg; bus.ethg[6] <--> hostB1.ethg; bus.ethg[7] <--> hostC1.ethg; bus.ethg[8] <--> hostD1.ethg; bus.ethg[9] <--> hostE1.ethg; } Kết quả mô phỏng: 20
  • 21. Hình 3.1 – Đồ thị tổng dung lượng bị chiếm trên bus khi truyền gói Hình 3.2 – Tốc độ mất gói 21
  • 22. 2.Thực hiện mô phỏng với trễ truyền dẫn 1s, độ dài gói 1500bytes Trong phần này ta thực hiện mô phỏng với trễ truyền dẫn 1s. Các thông số khác vẫn được giữ nguyên so với phần trên. Để thiết lập trễ truyền dẫn ta thực hiện tương tự như trên với file EtherBus.cc: voidEtherBus::initialize() { numMessages = 0; WATCH(numMessages); propagationSpeed = par("propagationSpeed").doubleValue(); // initialize the positions where the hosts connects to the bus taps = gateSize("ethg"); // read positions and check if positions are defined in order (we're lazy to sort...) std::vector<double> pos; tokenize(par("positions").stringValue(), pos); 22
  • 23. int numPos = pos.size(); if (numPos>taps) EV <<"Note: `positions' parameter contains more values ("<< numPos <<") than " "the number of taps ("<<taps<<"), ignoring excess values.n"; elseif (numPos<taps&& numPos>=2) EV <<"Note: `positions' parameter contains less values ("<< numPos <<") than " "the number of taps ("<<taps<<"), repeating distance between last 2 positions.n"; elseif (numPos<taps&& numPos<2) EV <<"Note: `positions' parameter contains too few values, using 5m distances.n"; tap = new BusTap[taps]; int i; double distance = numPos>=2 ? pos[numPos-1]-pos[numPos-2] : 5; for (i=0; i<taps; i++) { tap[i].id = i; tap[i].position = i<numPos ? pos[i] : i==0 ? 5 : tap[i- 1].position+distance; } for (i=0; i<taps-1; i++) { if (tap[i].position>tap[i+1].position) error("Tap positions must be ordered in ascending fashion, modify 'positions' parameter and rerunn"); } 23
  • 24. // Calculate propagation of delays between tap points on the bus for (i=0; i<taps; i++) { tap[i].propagationDelay[UPSTREAM] = 0; tap[i].propagationDelay[DOWNSTREAM] = 1; } // Prints out data of parameters for parameter checking... EV <<"Parameters of ("<<getClassName() <<") "<<getFullPath() <<"n"; EV <<"propagationSpeed: "<<propagationSpeed<<"n"; for (i=0; i<taps; i++) { EV <<"tap["<< i <<"] pos: "<<tap[i].position<< " upstream delay: "<<tap[i].propagationDelay[UPSTREAM] << " downstream delay: "<<tap[i].propagationDelay[DOWNSTREAM] << endl; } EV <<"n"; // autoconfig: tell everyone that bus supports only 10Mb half-duplex EV <<"Autoconfig: advertising that we only support 10Mb half-duplex operationn"; for (i=0; i<taps; i++) { EtherAutoconfig *autoconf = new EtherAutoconfig("autoconf-10Mb- halfduplex"); autoconf->setHalfDuplex(true); autoconf->setTxrate(10000000); // 10Mb send(autoconf,"ethg$o",i); } 24
  • 25. } Kết quả mô phỏng với 3 máy tính kết nối: Hình 4.1 – Đồ thị tổng dung lượng bị chiếm trên bus khi truyền gói Hình 4.2 – Tốc độ mất gói Kết quả mô phỏng với 5 máy tính kết nối: 25
  • 26. Hình 5.1 – Đồ thị tổng dung lượng bị chiếm trên bus khi truyền gói Hình 5.2 – Tốc độ mất gói Kết quả mô phỏng với 10 máy tính kết nối: 26
  • 27. Hình 6.1 – Đồ thị tổng dung lượng bị chiếm trên bus khi truyền gói Hình 6.2 – Tốc độ mất gói 27
  • 28. 3.Thực hiện mô phỏng với 10 máy, trễ truyền dẫn 100ms, độ dài gói thay đổi Trong phần này ta thực hiện mô phỏng với 10 máy và trễ truyền dẫn 100ms với độ dài gói Ethernet thay đổi. Ta thực hiện mô phỏng với 2 trường hợp độ dài gói bằng 1000 bytes và 3000 bytes. Để thay đổi độ dài gói Ethernet ta thiết lập như sau: - Mô phỏng với độ dài gói 1000 bytes: [General] network = ethernet sim-time-limit = 30s tkenv-plugin-path = ../../../etc/plugins **.vector-recording = true [Config ethernet] **.mac.address = "auto" **.mac.txrate = 0# autoconfig **.mac.txQueueLimit = 100000 28
  • 29. **.hostA.cli.destAddress = "" **.cli.destAddress = "hostA" **.cli.waitTime = exponential(0.005s) **.cli.reqLength = 1000B **.cli.respLength = truncnormal(3000B,3000B) Kết quả mô phỏng: Hình 7.1 – Đồ thị tổng dung lượng bị chiếm trên bus khi truyền gói 29
  • 30. Hình 7.2 – Tốc độ mất gói - Mô phỏng với độ dài gói 3000 bytes: [General] network = ethernet sim-time-limit = 30s tkenv-plugin-path = ../../../etc/plugins **.vector-recording = true [Config ethernet] **.mac.address = "auto" **.mac.txrate = 0# autoconfig **.mac.txQueueLimit = 100000 **.hostA.cli.destAddress = "" **.cli.destAddress = "hostA" 30
  • 31. **.cli.waitTime = exponential(0.005s) **.cli.reqLength = 1000B **.cli.respLength = truncnormal(3000B,3000B) Kết quả mô phỏng: Hình 7.1 – Đồ thị tổng dung lượng bị chiếm trên bus khi truyền gói 31
  • 32. Hình 7.2 – Tốc độ mất gói PHẦN 4 – KẾT LUẬN -Trong mạng ethernet, khi số máy trong mạng tăng lên thì tổng dung lượng băng thông bị chiếm trên bus khi các máy thực hiện trao đổi dữ liệu tại một thời điểm sẽ tăng lên. Đồng thời với tăng tổng dung lượng băng thông thì tốc độ mất gói của mạng cũng sẽ tăng khi số máy trong mạng tăng. -Với cùng số máy tham gia trong mạng lan,khi kích thước gói Ethernet tăng sẽ làm cho băng thong bị chiếm trên bus giảm , đồng thời tốc độ mất gói cũng giảm theo. 32
  • 33. Như vậy các thông số kĩ thuật và tài nguyên mạng cho trước ta cần phải tính toán để có được một mạng hoạt động hiệu quả .Việc phân tích chính xác Ethernet rất phức tạp do giải thuật Truncated Binary Exponential Backoff. Do đó ta sử dụng phương pháp xác định hiệu năng tối đa của phương pháp CSMA-CD thông thường. 33