Tải bản đầy đủ (.docx) (16 trang)

Bài tập lớn cơ sở truyền số liệu (bài 4)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.54 MB, 16 trang )

ĐẠ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 số 4
Giảng viên hướng dẫn: TS. Phạm Văn Tiến
Nhóm sinh viên thực hiện:
Lê Ngọc Tuấn ĐTTT2 – K56 20112425
Lê Thị Thúy CNĐTTT1 – K57 20146907
Nguyễn Đăng Việt CNĐTTT2 – K57 20125871
Hoàng Văn Tùng ĐTTT2 – K56 20112134
Đàm Minh Tiến CNĐTTT1 – K57 20146908
Hà Nội, 11-2014
Mục lục
Danh mục hình ảnh
I. Đề bài và yêu cầu
Cho mạng thông tin có cấu hình như bên dưới. Nút s1 và s2 tương ứng tạo ra các
nguồn lưu lượng tcp1và udp2 gửi gói tin đến nút d dựa trên giao thức truyền tương
ứng là TCP và UDP. Các gói được phát sinh gói tại các nguồn này một cách đều đặn
với tốc độ tương ứng là 400 và 600 gói/s, chiều dài gói là 1200byte. Nút s3 có nguồn
lưu lượng UDP phát ra các gói gửi tới nút d3 với chiều dài là 1024byte, số lượng gói
tuân theo phân bố Poisson, tốc độ 500 gói/s. Các hàng đợi gắn với các liên kết sử
dụng cơ chế SFQ. Biết rằng nguồn s3 cả 3 nguồn cùng được kích hoạt từ đầu, nhưng
nguồn s3 cứ hoạt động được 10s thì lại ngừng nghỉ 5s rồi lại hoạt động trở lại.
1. Viết kịch bản và chạy mô phỏng hệ thống thông tin nói trên trong khoảng thời gian
không ngắn hơn 4 phút.
2. Thu thập và vẽ đồ thị trễ xếp hàng các gói trên các hàng đợi của các nút mạng. Chu
kỳ thu thập số liệu không dài hơn 10s.
3. Trong một phiên mô phỏng, giả thiết ban đầu bộ đệm của các nút là 50 gói, cứ sau
20 giây tham số này lại giảm đi 20% giá trị. Hãy vẽ đồ thị biểu diễn tỉ lệ mất gói tại


các nút.
4. Thay đổi tốc độ phát sinh gói của luồng TCP rồi làm lại các thao tác trong Mục 2.
Nhận xét kết quả thu được.
II. Phân công công việc
STT Họ tên sinh viên Công việc thực hiện
1 Lê Ngọc Tuấn Tìm hiểu công cụ awk, xgraph, cơ chế SFQ và
thực hiện câu 3
2 Lê Thị Thúy Tìm hiểu giao thức UDP, TCP và thực hiện câu
1
3 Hoàng Văn Tùng Tìm hiểu tổng quan NS2 và thực hiện câu 1
4 Đàm Minh Tiến Tìm hiểu tông quan NS2 và thực hiện câu 4
5 Nguyễn Đăng Việt Tìm hiểu Nam, cấu trúc file Trace và thực hiện
câu 2
III. Lý thuyết chung
1. Giao thức UDP và TCP
1.1. UDP
UDP (User Datagram Protocol) là một trong những giao thức cốt lõi của giao thức
TCP/IP. Dùng UDP, chương trình trên mạng máy tính có thể gởi những dữ liệu ngắn
được gọi là datagram tới máy khác. UDP không cung cấp sự tin cậy và thứ tự truyền
nhận mà TCP làm; các gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà
không có thông báo. Tuy nhiên UDP nhanh và hiệu quả hơn đối với các mục tiêu như
kích thước nhỏ và yêu cầu khắt khe về thời gian. Do bản chất không trạng thái của nó
nên nó hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng lớn người yêu cầu.
1.2. TCP
TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận") là một
trong các giao thức cốt lõi của bộ giao thức TCP/IP. Sử dụng TCP, các ứng dụng trên
các máy chủ được nối mạng có thể tạo các "kết nối" với nhau, mà qua đó chúng có thể
trao đổi dữ liệu hoặc các gói tin. Giao thức này đảm bảo chuyển giao dữ liệu tới nơi
nhận một cách đáng tin cậy và đúng thứ tự. TCP còn phân biệt giữa dữ liệu của nhiều
ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy trên cùng

một máy chủ.
2. Các phương thức định tuyến
NS2 thực thi ba chính sách định tuyến: static routing (định tuyến tĩnh), session routing
(định tuyến phiên), DV routing (định tuyến véc tơ khoảng cách) và Link-state (trạng
thái liên kết).
Dùng phương thức rtproto trong lớp Simulator để xác định chính sách định tuyến
được dùng.
$ns rtproto <type>
type: Static, Session, DV, cost, multicast-path, LS.
- Link-state : sử dụng thuật toán SPF (shortest path first) cập nhật các thông tin về
cơ chế định tuyến cho các node trên hệ thống mạng. Mỗi node sẽ gửi bảng mô tả
trạng thái của các liên kết riêng của mình lên mạng. Chỉ các thay đổi mới được gửi
đi. Ưu điểm là tốc độ cao, không chiếm dụng băng thông nhiều như thuật toán DV
tuy nhiên thực hiện phức tạp. Đối với mô hình lớn thuật toán này có thể làm tăng
độ trễ truyền gói tin.
- Distance vector : (còn gọi là thuật toán Bellman-Ford) gửi bảng định tuyến tới các
node lân cận theo một chu kỳ nhất định. Ưu điểm là dễ thực hiện, dễ kiểm tra. Tuy
nhiên thời gian cập nhật lâu, chiếm dụng băng thông lớn trên mạng.
- - Static routing : Phương thức tính toán định tuyến Static là phương thức tính toán
đường truyền mặc định trong NS-2. Phương thức này sử dụng thuật toán SPF.
Thuật toán tính đường truyền chạy chính xác một lần tại lúc khởi động mô phỏng.
Khi cấu trúc mạng thay đổi phải cập nhật lại, do đó chỉ thích hợp trong hệ thống
đơn giản, có kết nối đơn và đường truyền dữ liệu đã được xác định trước.
- - Session: Sử dụng thuật toán SPF để tính toán tối ưu đường truyền, bảng định
tuyến sẽ được cập nhật ngay lập tức khi topo mạng có sự thay đổi.
3. Cơ chế SFQ (Stochastic Fairness Queuing)
SFQ là cơ chế xếp hàng công bằng với xác suất ngẫu nhiên
Quy tắc sắp xếp hàng đợi này được thiết kế để đảm bảo rằng mỗi luồng đều có
được sự công bằng khi truy cập vào mạng và để ngăn chặn các luồng có tốc độ truyền
dữ liệu lớn chiếm dụng băng thông.

Trong FQ(Fairness Queuing), gói tin được phân loại theo các luồng và được đưa
vào một hàng đợi giành riêng cho luồng đó (hàng đợi được chia thành các hàng đợi
con). Các hàng đợi sẽ phục vụ gói tin theo kiểu luân phiên vòng tròn, hàng đợi rỗng
sẽ được bỏ qua
Hình : Cơ chế SFQ
Các gói tin được phân loại dựa vào các thông số: địa chỉ nguồn, địa chỉ đích, cổng
nguồn, giao thức.
IV. Tìm hiểu phần mềm NS2 và các công cụ
1. Tổng quan về phần mềm NS2
NS (phiên bản) là phần mềm mô phỏng mạng điều khiển sự kiện riêng rẽ hướng
đối tượng, được phát triển tại UC Berkely, viết bằng ngôn ngữ C++ và OTcl. NS rất
hữu ích cho việc mô phỏng mạng diện rộng (WAN) và mạng local (LAN).
Các lệnh cơ bản trong NS2:
1.1. Tạo biến mới
Để tạo một biến mới ta dùng lệnh set. Có 3 cách dùng lệnh set như sau:
set a 0 : Tạo một biến a và gán cho a giá trị bằng 0.
set b $a: Tạo biến b và gán cho b giá trị bằng giá trị của biến a
set a [] : Tạo biến a và gán cho a giá trị của một hàm ở trong “[]”.
set a [ new Node]: Tạo biến a và thiết lập a là một node. Node là một đối tượng ở
trong NS2
1.2. Kiểu biến
Chú ý rằng ở trong Tcl cũng như trong NS2 không có kiểu của biến. Biến là string hay
interger phụ thuộc vào giá trị ta gán cho biến. Ví dụ:
set a [expr 1/20] : a có giá trị bằng 0.
set a [expr 1.0/20.0] : a có giá trị chính xác là 0.05
Điều này rất quan trọng trong quá trình lập trình cho NS2.
1.3. Lệnh puts
Lệnh puts dùng để ghi giá trị ra bên ngoài. Trong NS2 thì lệnh puts sẽ ghi ra bảng
lệnh terminal. Mỗi lần lệnh puts được gọi, nó sẽ tạo ra một dòng mới. Ngoài ra lệnh
puts còn được dùng để ghi các giá trị lên một biến được dùng để ghi giá trị ra ngoài

(trong nam hoặc graph) đã được định nghĩa từ trước. Ví dụ:
set nf [open out.nam w]n
puts $nf “$a”
1.4. Lệnh if
Cấu trúc lệnh if cũng giống như trong c++:
if{expression} {
<execute some comands>
} else{
<execute some comand>
}
1.5. Vòng lặp for
for{ set i 0}{$i < 5} {incr i}{
<execute some comands>
}
2. Tổng quan về nam
NAM là công cụ hiển thị trong NS2 nó đưa ra màn hình sơ đồ mạng chúng ta cần
đánh giá.
3. Tổng quan về awk
AWK là một ngôn ngữ lập trình được thiết kế để xử lý các dữ liệu dạng text trong
file hoặc trong dòng thông tin. Mỗi dòng text (trong file) được AWK xử lý như một
bản ghi. Các cột text đóng vai trò như các trường dữ liệu. Với tên cột $1, $2, tương
ứng với cột 1, cột 2,… trong file.
AWK có thể xử lý với cấu trúc điều kiện (IF) và vòng lặp (FOR), nhờ AWK người
dùng không cần phải lập trình riêng bằng các ngôn ngữ như C, C#, ASM,… để có thể
tách dữ liệu từ file text ra.
Cấu trúc file AWK
BEGIN{[khai báo biến];}
{
Các câu lệnh ;
}

END{[câu lệnh]};
Sử dụng AWK để sử lý số liệu :
Awk -f file_lenh.awk file_nguon >file_dich
4. Tổng quan về xgraph
Xgraph là một công cụ vẽ đồ thị được cung cấp bởi ns. Xgraph cho phép chúng ta
tạo ra các file postcript , ảnh , và 1 số định dạng khác bằng cách ấn vào “Hdcpy”. câu
lệnh gọi Xgraph có thể được khai báo trong kịch bản TCL do đó có thể xuất ra ngay
đồ thị khi kết thúc mô phỏng .
Đầu vào của Xgraph là 1 hoặc nhiều file chứa mỗi cặp giá trị x-y trên 1 dòng (mỗi
dòng sẽ chứa tọa độ của 1 điểm trên đồ thị ) . Ví dụ lệnh : Xgraph f1 f2 sẽ vẽ ra trên
cùng 1 đồ thị của file f1,f2
Một số lựa chọn khi sử dụng Xgraph :
- Title : -t “ten_do_thi”
- Kích thước : -geometry xsize x ysize
- Tiêu đề cho các trục : -x “xtitle” –y “ytitle”
- Màu của chữ và lưới –v
- Màu nền –bg
5. Cấu trúc file trace
Mỗi một lệnh theo dõi trong các lệnh trên sẽ có các cấu trúc đầu ra khác nhau. Ở
đây chúng ta chỉ xét đến cấu trúc file đầu ra của lệnh “trace-all”. Với các công cụ
phân tích file dữ liệu có sẵn như awk, grep, perl,…. Chúng ta có thể có được tất cả
các thông tin mong muốn trong quá trình hệ thống mạng được mô phỏng bằng cách
phân tích file “trace-all”.
File trace được tổ chức trong 12 trường như bên dưới:
Eve
nt
typ
e
Tim
e

Src
No
de
Dst
No
de
Pac
ket
typ
e
Pac
ket
size
(FL
AG
)

-
Col
or
Src
Por
t
Dst
Por
t
Seq
uen
ce
Nu

mb
er
Pac
ket
ID
1- Trường đầu tiên mô tả loại sự kiện, được cho bởi một trong 4 kí tự r, +, -, d tương
ứng với các trường hợp đã nhận (ở đầu ra của link), đã xếp vào trong hàng đợi
(enqueued), rời khỏi hàng đợi (dequeued), đã bị hủy (dropped).
2- Trường thứ hai biểu diễn thời gian sự kiện xuất hiện.
3- Thông báo node input của link nơi sự kiện xảy ra.
4- Thông báo node ouput của link nơi sự kiện xảy ra.
5- Loại gói tin ( ví dụ TCP, CBR, tên loại tương ứng với tên của application mà
chúng ta đã đặt, ví dụ trong phần trước thì application TCP được gọi là “tcp”).
6- Kích cỡ gói tin.
7- Một vài loại cờ. Trong phần mô phỏng sẽ chưa xét tới.
8- Flow id (fid) của Ipv6 mà người dùng thiết lập cho mỗi luồng (flow) tại đầu vào
OTcl cript. Ta có thể dùng trường này để phân tích kết quả, cũng như để thiết lập
màu sắc cho các luồng trong mô phỏng NAM.
9- Địa chỉ của nguồn, nơi phát gói tin, được cho dưới dạng “node.port”.
10- Địa chỉ của nguồn đích, nơi nhận gói tin, được cho với cùng dạng như trên.
11- Số chuỗi các gói tin của một lớp giao thức mạng. Mặc dù thành phần UDP trong
mạng thực tế không có số các chuỗi nhưng ns vẫn giữ lại các vết (track) để phân
tích kết quả.
12- Trường cuối cùng ghi chỉ số id của gói tin (unique id of packet).
V. Thực hiện chương trình
1. Thực hiện mô phỏng
Hình : Mô phỏng bài toán với phần mềm NS2
Vì giá các liên kết được đặt tỉ lệ nghịch với băng thông cùng với việc em sử dụng
chính sách định tuyến phiên sử dụng thuật toán SPF để tính toán tối ưu đường truyền
nên các gói tin đi theo đường sau:

- Gói tin từ S1 đi qua node_1, node_3, node_4, node_5 đến nút d
- Gói tin từ S2 đi qua node_2, node_3, node_4, node_5 đến nút d
- Gói tin từ S3 đi qua node_3, node_4 đến d3
2. Vẽ đồ thị trễ xếp hàng
Hình : Trễ xếp hàng tại kiên kết giữa node_1 và node_3
Hình 3: Trễ xếp hàng tại kiên kết giữa node_2 và node_3
Hình :Trễ xếp hàng tại kiên kết giữa node_3 và node_4
Hình : Trễ xếp hàng tại kiên kết giữa node_4 và node_5
Nhận xét:
- Ờ đồ thị trễ xếp hàng tại liên kết giữa node_3 và node_4 ta thấy có những khoảng
thời gian thời gian trễ xếp hàng giảm do khi đó nguồn s3 ngừng hoạt động nên
lượng gói tin đẩy đến liên kết này giảm dẫn đến trễ xếp hàng giảm.
- Trễ xếp hàng tại các liên kết giữa máy tính và bộ định tuyến là không đáng kể do
băng thông của các liên kết này là 100MB, rất lớn so với tốc độ luồng dữ liệu.
3. Vẽ đồ thị tỉ lệ mất gói tại các nút
Hình : Tỉ lệ mất gói tại node_2(%)
Hình : Tỉ lệ mất gói tại node_3(%)
Hình : Tỉ lệ mất gói tại node_4(%)
Nhận xét:
Qua quan sát quá trình mô phỏng em nhận thấy chỉ xảy ra hiện tượng mất gói tại các
node_2, node_3, node_4 với các gói tin từ các nguồn S1 và S2.
- Tại node_2, node_2 được nối với một luồng UDP có tốc độ truyền tin rất nhanh,
tốc độ sinh gói của nguồn là 600 gói/s vượt quá băng thông của đường truyền là
3Mbps nên xảy ra hiện tượng mất gói. Tỉ lệ mất gói khoảng 40%.
- Tại node_3 có 3 luồng đến, băng thông ở đây là 4Mbps. Tỉ lệ mất gói ở đây tương
đối thấp do băng thông lớn và hiện tượng mất gói chỉ xảy ra với gói tin từ nguồn
S2 do tốc độ truyền của luồng TCP từ nguồn S1 và UDP từ nguồn S3 thấp hơn và
cơ chế SFQ. Nguồn S3 cứ hoạt đông được 10 giây lại nghỉ 5 giây nên dẫn tỉ lệ
mất gói có lúc giảm xuống 0 như trên đồ thị vì khi nguồn S3 ngừng hoạt động thì
băng thông đủ đến truyền tất cả các gói tin.

- Tại node_4 do liên kết giữa node_4 và node_5 có băng thông thấp (1Mbps) nên tỉ
lệ mất gói tại node_4 tương đối cao và cũng vì cơ chế SFQ buộc các luồng chia sẻ
băng thông một cách công bằng nên lượng gói tin bị mất chủ yếu đến từ nguồn S2.
- Dựa vào đồ thị em nhận thấy việc giảm kích thước hàng đợi không ảnh hưởng đến
tỉ lệ mất gói tin tại các nút.
4. Thay đổi tốc độ nguồn TCP va vẽ đồ thị trễ xếp hàng
Theo yêu cầu của đề bài, em giảm tốc độ nguồn TCP là 10 gói/s và tiến hành mô
phỏng thu được đồ thị trễ xếp hàng.
Hình : Trễ xếp hàng tại kiên kết giữa node_1 và node_3
Hình : Trễ xếp hàng tại kiên kết giữa node_3 và node_4
Hình : Trễ xếp hàng tại kiên kết giữa node_4 và node_5
Nhận xét:
Khi giảm tốc độ phát sinh gói của luồng TCP xuống thấp (10 gói/s), em quan sát thấy:
- Tại liên kết giữa node_1 và node_3, thời gian trễ xếp hàng đã giảm đi đáng kể do
lúc này băng thông đủ lớn để truyền các gói tin từ nguồn S1 ngay lập tức
- Tương tự như vậy với liên kết giữa node_3 và node_4, trễ xếp hàng đã giảm
xuống chỉ còn một nửa so với ban đầu, mặc dù dạng đồ thị không thay đổi nhiều
- Qua quá trình mô phỏng, em nhận thấy thời gian trễ xếp hàng phụ thuộc rất nhiều
vào tốc độ phát sinh gói tin từ nguồn TCP.
- Những node luồng TCP không đi qua có đồ thị trễ xếp hàng không đổi.
VI. Kết luận
Môn cơ sở truyền số liệu là một trong nhưng môn học quan trọng của ngành Điện
tử viễn thông. Môn học cung cấp cho những kiến thức nền tảng về mạng cho sinh
viên, đặc biệt là nhưng sinh viên có định hướng theo mảng mạng máy tính, viễn
thông.
Qua quá trình tìm hiểu và làm bài tập lớn, chúng em đã có cơ hội được làm quen
với công cụ mô phỏng mạng NS2 đồng thời vận dụng kiến thức được học vào thực tế,
qua đó có thể hiểu sâu những gì đã được học.
Chúng em xin trân thanh cảm ơn TS. Phạm Văn Tiến đã hướng dẫn chúng em rất
nhiệt tình. Chúng em xin chúc thầy nhiều sức khỏe, công tác tốt và gặt hái được nhiều

thành công hơn nữa trong đào tạo và nghiên cứu khoa học.
Tài liệu tham khảo
[1] />[2] />[3] NS Simulator for Beginners
[4] Slide bài giảng Cơ sở truyền số liệu của Thầy Phạm Văn Tiến

×