Tài liệu học tập Kỹ thuật mô phỏng

Mục tiêu

Trong một vài thập kỷ qua, nhiều công nghệ và kỹ thuật hỗ trợ truyền thông giữa

con người đã được phát triển. Từ hệ thống mạng điện thoại cố định đến mạng truyền

thanh, mạng truyền hình rồi mạng máy tính. Ban đầu khi mới ra đời, các hệ thống này

hoạt động độc lập với nhau và giờ đây con người mong muốn tích hợp chúng trong cùng

một hệ thống. Trên thực tế có thể xem mạng truyền thông máy tính là kết quả của sự hội

tụ này.

Chương này sẽ cung cấp cho bạn đọc một cách nhìn tổng quan về mạng truyền

thông máy tính và những vấn đề cơ bản để mô phỏng chúng. Mục 1.1. Giới thiệu về mạng

máy tính với mô hình tham chiếu mô tả kiến trúc của mạng truyền thông máy tính. Mục

1.2. Trình bày vắn tắt về phương pháp thiết kế và mô hình hóa các hệ thống mạng máy

tính phức tạp. Trong Mục 1.3. Các vấn đề cơ bản về mô phỏng mạng máy tính được đề

cập đến. Mục 1.4. Trình bày về các kỹ thuật phổ biến khi mô phỏng theo phương pháp mô

phỏng theo thời gian. Mục 1.5 đưa ra một ví dụ điển hình và Mục 1.6 sẽ tổng kết lại các

vấn đề của chương.

Mạng máy tính và kiến trúc phân tầng.

Một mạng máy tính được định nghĩa là một tập các máy tính có kết nối với nhau để

thu thập, xử lý và phân bố thông tin. Thuật ngữ máy tính được hiểu tương đối rộng bao

gồm các thiết bị như máy trạm, máy chủ, router, modem, các trạm cơ sở, các điểm mở

rộng truy cập không dây, . Các máy tính này được kết nối bởi các liên kết truyền thông

như cáp quang, cáp đồng, hay các liên kết sóng vi ba, sóng vệ tinh, sóng radio. Một mạng

máy tính có thể được xây dựng bên trong một mạng máy tính khác hoặc kết nối với một

mạng máy tính khác. Internet là một ví dụ điển hình về mạng máy tính. Trên thực tế,

Internet là mạng của các mạng.

1.1.1. Khái niệm phân tầng

Một mạng máy tính là một hệ thống rất phức tạp. Để đơn giản hóa trong việc thiết

kế và triển khai một hệ thống như vậy, người ta đưa ra khái niệm phân tầng. Sử dụng kiến

trúc phân tầng, các chức năng của một hệ thống mạng máy tính được tổ chức như là một

ngăn xếp các tầng. Mối quan hệ ngang hàng (hay liên kết ảo) diễn ra giữa 2 tầng đồng

mức của 2 nút truyền thông với nhau.

Luồng dữ liệu sẽ đi theo chiều dọc trong một tầng từ tầng cao nhất xuống tầng thấp

nhất bên nút gửi, tiếp theo sẽ đi qua đường truyền vật lý rồi đến tầng thấp nhất bên nút

nhận, sau đó đi ngược lên đến tầng cao nhất bên nút nhận. Mỗi tầng biểu diễn một phần

đặc trưng được định nghĩa trước của hệ thống và cung cấp một số dịch vụ nào đó cho

tầng phía trên. Tầng trên truy cập xuống tầng dưới thông qua giao tiếp tầng (interface).

Các dịch vụ thường định nghĩa những công việc sẽ được thực hiện theo thuật ngữ các- 10 -

hoạt động mạng hoặc các nguyên tắc nhưng đặc biệt lại không chỉ ra cách thực hiện

chúng như thế nào. Vì vậy một giao thức sẽ định nghĩa chi tiết về việc một dịch vụ được

thực hiện như thế nào. Ví dụ, mạch truyền tại máy tính nguồn có thể sử dụng một giao

thức riêng (chẳng hạn như một kỹ thuật mã hóa dữ liệu) tại tầng vật lý để truyền các bit

thông tin tới máy tính nhận. Mạch nhận sẽ sử dụng giao thức riêng này để giải mã thông

tin nhận được trên cơ sở các quy tắc của giao thức. Một trong các ưu điểm rất lớn của

khái niệm phân tầng này là tính độc lập của tầng. Điều này có nghĩa là một thay đổi trong

một giao thức của một tầng nào đó không ảnh hưởng tới toàn bộ hệ thống miễn là các

giao tiếp của tầng không thay đổi. Ở đây, ta chú ý vào các thuật ngữ dịch vụ, giao thức và

giao tiếp tầng để nhấn mạnh rằng sự tương tác giữa các thành phần này tạo nên khái niệm

phân tầng.

Tài liệu học tập Kỹ thuật mô phỏng trang 1

Trang 1

Tài liệu học tập Kỹ thuật mô phỏng trang 2

Trang 2

Tài liệu học tập Kỹ thuật mô phỏng trang 3

Trang 3

Tài liệu học tập Kỹ thuật mô phỏng trang 4

Trang 4

Tài liệu học tập Kỹ thuật mô phỏng trang 5

Trang 5

Tài liệu học tập Kỹ thuật mô phỏng trang 6

Trang 6

Tài liệu học tập Kỹ thuật mô phỏng trang 7

Trang 7

Tài liệu học tập Kỹ thuật mô phỏng trang 8

Trang 8

Tài liệu học tập Kỹ thuật mô phỏng trang 9

Trang 9

Tài liệu học tập Kỹ thuật mô phỏng trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 233 trang xuanhieu 7800
Bạn đang xem 10 trang mẫu của tài liệu "Tài liệu học tập Kỹ thuật mô phỏng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Tài liệu học tập Kỹ thuật mô phỏng

Tài liệu học tập Kỹ thuật mô phỏng
6, hàm stopO làm ngƣợc lại với hàm starto. Nó hủy bỏ bộ đếm 
thời gian đang hoạt động (nếu có) trong dòng 11 và thiết lập giá trị biến runnỉng_ bằng 0 
trong dòng 12. 
 Lớp TrafficGenerator còn định nghĩa thêm 3 hàm mới sau: 
(xxxiii) next_interval(size): Nhận kích thƣớc khối dữ liệu ―size‖ là đối số 
đầu vào và trả về giá trị là thời gian trễ sau khi một khối dữ liệu mới đƣợc sinh ra (dòng 
4). Hàm này là hàm ảo nguyên thủy do đó nó phải đƣợc triển khai trong các Lớp thừa kế 
từ lớp Traff ỉcGenerator. 
- 223 - 
(xxxiv) init(): Khởi động bộ sinh lƣu lƣợng dữ liệu 
(xxxv) timeout(): Gửi một khối dữ liệu ngƣời dùng tới ứng dụng đang gắn vào và 
khởi động lại timer_. Hàm này đƣợc gọi khi bộ đếm timer_ vƣợt ngƣỡng. 
 Chi tiết của hàm timeout() đƣợc đƣa ra trong các dòng 14-24 của Chƣơng trình 
11.6. Hàm này không thực hiện việc gì nếu nhƣ đối tƣợng TrafficGenerator không chạy 
(dòng 16-17). Ngƣợc lại, nó sẽ gửi ―size_‖ byte dữ liệu tới tác tử đang gắn vào bằng cách 
sử dụng hàm send(nbytes) (đƣợc định nghĩa trong Chƣơng trình 11.4). Sau đó, dòng 19 
sẽ tính toán giá tri của nextPkttime_. Nếu giá trị này lớn hơn 0, dòng 21 sẽ báo cho bộ 
đếm timer_ đạt giá trị vƣợt ngƣỡng sau một chu kỳ thời gian có giá trị bằng 
nextPkttime_. Ngƣợc lại, dòng 23 sẽ dừng đối tƣợng TrafficeGenerator đang chạy bằng 
cách thiết lập biến running_ bằng 0. 
• Cơ chế chính của Bộ sinh lƣu lƣợng 
 Hình 11.2 minh họa cơ chế hoạt động chính của một bộ sinh lƣu lƣợng. Cơ 
chế này phụ thuộc rất nhiều vào biến timer_thuộc lớp TraficTimer. Đây là lớp thừa kế từ 
lớp TimerHandler. 
 Lớp TimeHandler sẽ đƣợc đề cập một cách chi tiết trong Mục 12.1. Lớp này 
bao gồm ba trạng thái chính là TIMER_IDLE, TIMER_PENDING và 
TIMER_HANDLING. Mỗi trạng thái này đáp ứng một trong hai trạng thái của đối tƣợng 
TrafficGenerator là: rỗi (running_=0) và đang hoạt động (running_=l). Trong khi trạng 
thái TIMER_IDLE đáp ứng trạng thái rỗi của đối tƣợng TrafficGenerator thì hai trạng 
thái còn lại là các trạng thái thuộc trạng thái đang hoạt động của đối tƣợng này. 
- 224 - 
Hình 11.2. Cơ chế hoạt động của bộ sinh lƣu lƣợng 
 Bộ sinh lƣu lƣợng luôn bắt đầu từ trạng thái rỗi. Nó sẽ chuyển tới trạng thái 
hoạt động khi hàm starto đƣợc gọi. Ở đây trạng thái của timer_ sẽ đƣợc thiết lập là 
TIMER_PENDING. Tại thời điểm vƣợt ngƣỡng, timer_ sẽ chuyển tới trạng thái 
TIMER_HANDLING và gọi hàm timeout() của lớp TraffỉcGenerator. Sau khi thực hiện 
hàm timeout(), trạng thái của nó chuyển lại về TIMER_PENDING và quá trình này tiếp 
tục đƣợc lặp lại. Khi trạng thái của tỉmer_ là TIMER_PENDING hoặc 
TIMER_HANDLING, có thể dừng hoạt động của bộ sinh lƣu lƣợng bằng cách sử dụng 
hàm stop(). 
 Chƣơng trình 11.7 đƣa ra khai báo của lớp TraffỉcTỉmer. Đây là lớp thừa kế từ 
Lớp TimerHandler (xem Mục 12.1). Lớp Traffictimer có một biến thành viên chính là 
biến tgen_ là con trỏ trỏ tới đối tƣợng TrafficGenerator (dòng 6). Tại thời điểm bộ đếm 
vƣợt ngƣỡng, NS2 sẽ gọi hàm expire(e) của timer_ (dòng 8-11). Hàm này sau đó sẽ gọi 
đến hàm timeouto của đối tƣợng TraffỉcGenerator đang liên kết với đối tƣợng 
TrafficTimer qua biến *tgen_. 
 Kết nối hai chiều giữa đối tƣợng TrafficGenerator và TrafficTimer đƣợc tạo ra 
nhƣ sau: Lớp TrafficGenerator khai báo biến timer_ nhƣ là một con trỏ trỏ tới đối tƣợng 
TraffỉcTimer (dòng 17 trong Chƣơng trình 11.5). Đối tƣợng TrafficGenerator khởi tạo 
biến timer_ bằng cách đƣa con trỏ trỏ vào chính mình (con trỏ this) làm đối số đầu vào 
(dòng 12 trong Chƣơng trình 11.7). Hàm khởi tạo của biến timer_ sau đó sẽ gắn con trỏ 
đầu vào (con trỏ this) cho con trỏ của nó để trỏ vào đối tƣợng TrafficGenerator qua biến 
tgen_ (dòng 3 trong Chƣơng trình 11.7) nhằm tạo kết nối ngƣợc lại với đối tƣợng 
TraficTimer. 
- 225 - 
Các bộ sinh lƣu lƣợng trong Ns2. 
Constant Bit Rate (CBR) 
 Bộ sinh lƣu lƣợng CBR tạo ra từng khối dữ liệu có kích thƣớc cố định theo các 
khoảng thời gian cố định. Nhƣ ta thấy trong Chƣơng trình 11.8, NS2 triển khai bộ sinh 
lƣu lƣợng CBR bằng cách sử dụng lớp C++ CBR_Traffic. Lớp này đƣợc ánh xạ với lớp 
OTcl Application/Traffỉc/CBR. Các biến thành viên cùng giá trị mặc định của lớp OTcl 
này đƣợc trình bày trong Bảng 11.1 
 Cần chú ý rằng, khoảng thời gian giữa 2 lần truyền khối dữ liệu là khoảng thời 
gian giữa 2 thời điểm bắt đầu truyền của 2 khối dữ liệu. Khoảng thời gian này có thể tính 
đƣợc bằng cách chia kích thƣớc khối dữ liệu cho tốc độ truyền. Mặc định, khoảng thời 
gian này là 210 X 8/488.000 ** 3.44 ms. Cơ chế hoạt động chi tiết của Lớp CBR_Traffỉc 
sẽ đƣợc đề cập trong Mục 11.3.4. 
- 226 - 
Biến thành 
viên 
Giá trị mặc 
định 
Mô tả 
packetSize-_ 210 Kích thƣớc khối dữ liệu tính theo đơn vị byte 
Rate-_ 488x1o
3
 Tốc độ truyền tính theo đơn vị bps. 
Random-_ 0 (faise) 
Nếu bằng true sẽ sinh ra thơi gian ngẫu nhiên (có 
thể dƣơng hoặc âm) giữa 2 lần truyền khối dữ 
liệu. 
Maxpkts-_ 16
7
 Số lƣợng gói tin lớn nhất mà CBR có thể gửi. 
Bảng 11.1. Các biến thành viên của ỉớp CBR trong OTcl 
Exponential On/Off 
 Bộ sinh lƣu lƣợng Exponential On/Off hoạt động tƣơng tự nhƣ bộ sinh lƣu 
lƣợng CBR trong chu kỳ ON và không sinh ra lƣu lƣợng dữ liệu trong chu kỳ 0FF. Các 
chu kỳ ON và OFF đƣợc phân bố theo quy tắc lũy thừa. Chƣơng trình 11.9 cho ta thấy 
NS2 triển khai bộ sinh lƣu lƣợng này bằng cách sử dụng Lớp C++ EXPOO_Traffic. Lớp 
này đƣợc ánh xạ với Lớp OTcl Application/Traffic/- Exponential. Lớp OTcl này có các 
biến thành viên cùng giá trị mặc định đƣợc mô tả trong Bảng 11.2. 
Biến thành viên Giá trị mặc định Mô tả 
PacketSize_ 210 Kích thƣớc khối dữ 
liệu tính theo đơn vị byte 
Rate_ 64x10
3 Tốc độ truyền theo 
đơn bị bps trong chu kỳ ON 
Burst_time_ 0.5 Thòi gian trung bình 
chu kỳ ON tính bằng giây 
Id;e_time_ 0.5 Thời gian trung bình 
chu kỳ OFF tính bằng giây 
Bảng 11.2. Các biến thành viên của ỉớp Exponentiaỉ On/Ojf trong OTcl 
- 227 - 
Pareto On/Off 
 Bộ sinh lƣu lƣợng Pareto On/Off hoạt động tƣơng tự nhƣ bộ sinh lƣu lƣợng 
Exponential On/Off nhƣng chu kỳ ON và OFF đƣợc phân bố theo quy tắc Pareto. 
Chƣơng trình 11.10 cho thấy NS2 triển khai bộ sinh lƣu lƣợng này bằng cách sử dụng lớp 
C++ POO_Traffic đƣợc ánh xạ với lớp Otcl Application/Traffic/Pareto. Lớp OTcl này có 
các biến thành viên cùng giá tri mặc định đƣợc mô tả trong Bảng 11.3. 
Biến thành 
viên 
Giá trị mặc 
định 
Mô tả 
Packetsize_ 210 Kích thƣớc khối dữ liệu tính theo 
đơn vị byte 
Rate_ 64x10
3 
Tốc độ truyền theo đơn vị bps trong 
chu kỳ ON 
Burst_time_ 0.5 Thời gian trung bình chu kỳ ON tính 
theo giây 
Idle_time_ 0.5 Thời gian trung bình chu kỳ OFF 
tính theo giây 
Shape_ 1.5 Tham số ―shape‖ trong luận phân bố 
Pareto 
Bảng 11.3. Các biến thành viên của lớp Pareto On/Off trong OTclTraffic Trace 
Bộ sinh lƣu lƣợng Traffic Trace sinh ra các khối dữ liệu theo một file trace cho 
trƣớc. Trong Chƣơng trinh 11.11, ta thấy rằng NS2 triển khai bộ sinh lƣu lƣợng này bằng 
các sử dụng lớp C++ TrafficTrace liên kết với Lớp OTcl Ầpplication/TraffỈc/Trace. 
Không giống nhƣ các bộ sinh lƣu lƣợng khác đã mô tả ở trên, với bộ sinh lƣu lƣợng này 
ta cần xây dựng file lƣu lƣợng trace và chỉ định file này trong miền OTcl bằng lệnh 
attach-tracefỉle của Lớp Ầpplỉcation/Traffic/Trace (xem Ví dụ 11.2) 
- 228 - 
Ví dụ 11.2: Bộ sinh lƣu lƣợng CBR trong Ví dụ 9.1 có thể đƣợc thay thế bằng bộ 
sinh lƣu lƣợng TraíTic Trace bằng các thay thế các dòng 10-12 trong Chƣơng trinh 9.2 
bằng các dòng sau: 
File sinh lƣu lƣợng trace thực sự là một file nhị phân. Mỗi từ mã trong file này bao 
gồm 2 trƣờng 32 bit. Trƣờng thứ nhất chỉ định khoảng cách thời gian giữa 2 khối dữ liệu 
truyền tính theo đơn vị micro giây. Trƣờng thứ hai là kích thƣớc khối dữ liệu tính theo 
đơn vị byte (xem ví dụ qua Ẽle ~ns/tcl/ex/example-trace). 
11.4. Lớp CBR Traffic: Một ví dụ về bộ sinh lƣu lƣợng 
Trong phần này, ta sẽ tìm hiểu về Lớp C++ CBR_Traffỉc. Đây là lớp thừa kết từ 
Lớp TrafficGenerator. Nó bao gồm các biến chính sau: 
rate_: Tốc độ truyền tính theo đơn vị bps ỉnterval_: Thời gian truyền gói tin tính 
theo đơn vị giây 
(xxxvi) random_: Nếu có giá trị bằng true thì thời gian truyền sẽ là ngẫu 
nhiên 
(xxxvii) seqno_: số thứ tự CBR 
(xxxviii) maxpkts_: Cận trên của số thứ tự 
 Theo cơ chế đã đƣợc thảo luận trong Mục 11.3.2, NS2 kích hoạt bộ sinh lƣu 
lƣợng này bằng cách gọi hàm starto. Khi đã đƣợc kích hoạt, bộ sinh lƣu lƣợng này gọi 
hàm tỉmeouto của nó theo định kỳ để sinh ra. các khối dữ liệu. Khoảng thời gian giữa hai 
lần gọi hàm timeouto đƣợc xác định bằng hàm next_interval(size). Lời gọi hàm timeout() 
đƣợc thực hiện lặp lại cho đến khi bộ sinh lƣu lƣợng bị vô hiệu hóa (bằng cách gọi hàm 
close()). 
- 229 - 
 Nhƣ ta thấy trong Chƣơng trình 11.12, hàm starto gọi hàm init() (dòng 17) để 
khởi tạo bộ sinh lƣu lƣợng, thiết lập biến running_ =1 (dòng 18) và gọi hàm timeouto 
(dòng 19). Chi tiết của hàm init() đƣợc đƣa ra trong các dòng 21-28. Dòng 23 thực hiện 
việc tính toán khoảng thời gian truyền bằng cách lấy kích thƣớc khối dữ liệu đổi ra đơn vị 
bit (size_«3) chia cho tốc độ truyền (rate_). Hàm init() sẽ thiết lập kiểu gói tin là 
PT_CBR nếu kiểu gói tin hiện tại trƣớc đó chƣa đƣợc thiết lập là PT_TCP hoặc 
PT_TFRC (dòng 25-26). 
 Từ Chƣơng trình 11.6, hàm timeout() sẽ gửi đi ―size_‖ byte dữ liệu (dòng 8) 
tính toán giá trị biến nextPkttime_ là giá tri trả về của hàm next_interval(size_) (dòng 19) 
và lập lịch cho bộ đếm timer_ sẽ vƣợt ngƣỡng tại thời điểm nextPkttime_ giây (dòng 21). 
cần nhắc lại là hàm next_interval(size_) là hàm ảo nguyên thủy nên nó phải đƣợc xây 
dựng trong các Lớp thừa kết từ lớp TrafficGenerator. Lớp CBR_Traffic đã xây dựng hàm 
này (Chƣơng trình 11.13) bằng cách trả về thời gian truyền gói tin đƣợc tính toán từ kích 
cỡ khối dữ liệu ―size_‖ và tốc độ truyền CBR ―rate_‖ (dòng 3 và 9). Dòng 6 đƣa ra tùy 
chọn để có thể cộng hoặc trừ một giá trị ngẫu nhiên vào khoảng thời gian truyền đã đƣợc 
tính toán nếu biến random_ đƣợc thiết lập là true. Ngoài ra, nếu kích thƣớc khối dữ liệu 
lớn hơn giá trị maxpkts_, dòng 11 sẽ trả về giá trị -1 thay vì việc tính toán thời gian 
truyền. 
- 230 - 
11.5. Ứng dụng mô phỏng 
Không giống nhƣ các bộ sinh lƣu lƣợng, một ứng dụng mô phỏng không có lịch 
định trƣớc dành cho việc sinh dữ liệu. Thay vào đó, nó hoạt động nhƣ một ứng dụng thực 
sự khi đang chạy. NS2 cung cấp hai ứng dụng mô phỏng là FTP và Telnet 
11.5.1. (File Transfer Protocol) 
 FTP là một giao thức thực hiện việc chia một file thành các phần nhỏ và truyền 
chúng tới đích. Tuy nhiên NS2 không mô phỏng FTP giống nhƣ các ứng dụng truyền file 
trong thực tế. FTP module trong NS2 không cần file đầu vào. Nó chỉ đơn giản báo cho 
tác tử tầng giao vậnđang gắn vào nó việc truyền một file có kích thƣớc tính theo đon vị 
byte. Khi nhận đƣợc yêu cầu này, tác tử gửi tầng giao vậnsẽ tạo ra các gói tin để mô 
phỏng việc vận chuvển file này và chuyển tiếp chúng tói tác tử nhận tầng giao vậnmà nó 
đã kết nối qua mạng phía dƣới. Module FTP trong NS2 cũng không cần chỉ định nút đích 
bởi vì nút đích sẽ do tác tử nhận tầng giao vậnxác định (qua thủ tục connect{src dst}). 
 Để đảm bảo tính đon giản, module FTP chỉ đƣợc triển khai trong miền OTcl. 
Nó đƣợc định nghĩa trong Lớp Application/FTP thừa kế từ lớp Application. Các lệnh và 
thủ tục chính của nó trong miền OTcl bao gồm: 
(xxxix) attach-agent{agent}: Đáng ký ―agent‖ đầu vào làm tác tử gắn với 
FTP. 
(xl) start{}: Báo cho tác tử gắn vào FTP một yêu cầu truyền một file có kích 
thƣớc vô hạn bằng cách thực hiện lệnh ―send -1‖ 
(xli) stop{}: Dừng phiên truyền file hiện tại. 
(xlii) sendlnbytes{}: Gửi một file có kích thƣớc ―nbytes‖ byte tới tác tử gắn vào 
FTP bằng cách gọi hàm sendmsg(nbytes). 
(xliii) produce{nbytes}: Báo cho tác tử gắn vào FTP thực hiện việc truyền cho 
đến khi số thứ tự đạt tới giá trị tối thiểu của ―nbytes‖ và ―maxseq_‖. 
- 231 - 
(xliv) producemore{nbytes}: Báo cho tác tử gắn vào FTP truyền thêm các gói tin 
với kích thƣớc ―nbytes‖. 
11.5.2. Telnet 
 Telnet là một ứng dụng tƣơng tác client-server theo giao diện text. Một telnet 
Client đăng nhập vào một telnet server, gửi các thông điệp dạng text tới server. Sau đó 
server thực thi thông diệp nhận đƣợc và gửi trả lại kết quả dạng text tới Client. Rõ ràng, 
dữ liệu của Telnet không thể triển khai dƣới dạng lập lịch truyền dữ liệu từ trƣớc bởi vì 
dữ liệu của nó đƣợc tạo ra trên co sở yêu cầu của ngƣời dùng. Tuy nhiên, NS2 đã mô 
hình hóa ứng dụng Telnet theo cùng cách nó thực hiện đối vói các bộ sinh lƣu lƣợng. Đó 
là gửi gói tin có kích thƣớc cố định theo các khoảng thời gian ngẫu nhiên. 
 NS2 định nghĩa ứng dụng Telnet trong Lớp C++ TelnetApp và lớp OTcl 
Application/Telnet. Lớp OTcl này đƣợc thừa kế từ lớp Application. Nó sử dụng giá trị 
đƣợc lƣu trữ trong biến size_ của tác tử nó gắn vào là kích thƣớc của mỗi gói tin Telnet 
và tính toán thòi gian truyền giữa các gói nhƣ sau: 
(xlv) Trƣờng hợp I: Nếu interval_ khác 0, thời gian truyền giữa các gói đƣợc 
chọn từ phân bố hàm lũy thừa với giá trị kỳ vọng là interval_. 
(xlvi) Trƣờng hợp II: Nếu interval_ bằng 0, thời gian truyền giữa các gói đƣợc 
xác định từ thực nghiệm phân bố tcplib đƣợc định nghĩa trong file '"ns/tcp/tcplib-
telnet.cc. 
Telnet chỉ có một biến có thể cấu hình là interval_. Cũng giống nhƣ các đối tƣợng 
Application khác, có thể khởi động và dừng nó bằng cách sử dụng các lệnh tƣơng ứng là 
start{} và stop{}. 
- 232 - 
TÀI LIỆU THAM KHẢO 
[1] Kavin Fall, Kannan Varadhan. ―The ns Manual‖. The VINT Project, A 
Collaboration between researchers at UC Berkeley, LBL, USC/ISI, and Xerox PARC. 
December 13, 2008.  
[2] Paul Meeneghan and Declan Delaney. ―An Introduction to NS, Nam and 
OTcl Scripting‖. National University of Ireland, Maynooth, Co. Kildare, Ireland 
DEPARTMENT OF COMPUTER SCIENCE. April 2009 
[3] Enrique Campos-Nanez. ―Nscript Version 1.0a User‘s Manual‖. 
Department of Systems Engineering, University of Virginia. March 13, 2011 
[4] Eitan Altman and Tania Jiménez. ―NS Simulator for beginers‖. Univ de 
Los Andes, Mérida, Venezuela and ESSI, Sophia-Antipolis, France. December 4, 
2008. 
[5] Jae Chung and Mark Claypool. ―NS by example‖. 
[6] Peng Zhang, Raimo Kantola, Zhansong Ma. ―Design and Implement of a 
new routing Simulator‖. Laboratory of Telecommunication Technology, Helsinki 
University of Technology, Findland. 
[7] Xipeng Xiao and Linoel M. Ni. ―Internet QoS: A big Picture‖. 
Departurement of Computer Science, 3115 Engineering Building, Michigan State 
University. 
[8] Johanna Antila. ―TCP Performace Simulations Using Ns2‖. 
[9] Carey Williamson. ―Internet Traffic Measurement‖. Department of 
Computer Science, University of Calgary. November 24, 2011. 
[10]  TCL homepage 
[11]  NAM Network Animator 
[12]  XGRAPH homepage 
[13]  TRACEGRAPH homepage 
[14]  NSCRIPT NS-2 
scripting tool 
[15]  Marc Greis‘ 
Tutorial for the Network Simulation ns 

File đính kèm:

  • pdftai_lieu_hoc_tap_ky_thuat_mo_phong.pdf