You are on page 1of 12

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ VIỄN THÔNG


---------------------

BÀI THÍ NGHIỆM MÔN HỌC


CƠ SỞ TRUYỀN SỐ LIỆU

Mã học phần : ET4070 (3-0-1-6)


Họ và tên sinh viên : Phạm Thành An
Mã số SV : 20187114
Lớp : ET-LUH 17
Nhóm thí nghiệm : 713432
Ngày nộp báo cáo : 24/01/2022
Yêu cầu sinh viên điền đầy đủ các thông tin

HÀ NỘI, 2021
Báo cáo Thí nghiệm Cơ sở truyền số liệu Trường Điện – Điện tử Đại học Bách Khoa Hà Nội

BÀI THÍ NGHIỆM

1
TẠO TOPOLOGY BẰNG MININET
Phần trả lời câu hỏi trong bài:
Câu hỏi: Để cả 3 Host có thể ping được với nhau (sử dụng lệnh pingall), ta cần thực hiện các
câu lệnh nào? (Sinh viên điền tất cả các câu lệnh với số port sau khi đã xác định đúng):
sudo ovs-ofctl add-flow s1 dl_type=0x0800, nw_dst = 10.0.0.3, action=output : 2

sudo ovs-ofctl add-flow s1 dl_type=0x0800, nw_dst = 10.0.0.1, action=output : 1

sudo ovs-ofctl add-flow s1 dl_type=0x0800 nw_dst = 10.0.0.2, action=output : 3

sudo ovs-ofctl add-flow s1 dl_type=0x0806, nw_dst = 10.0.0.3, action=output : 2

sudo ovs-ofctl add-flow s1 dl_type=0x0806, nw_dst = 10.0.0.1, action=output : 1

sudo ovs-ofctl add-flow s1 dl_type=0x0806, nw_dst = 10.0.0.2, action=output : 3

Phần thực hành:


Sau khi thực hiện lệnh:
sudo mn --topo linear,3 --controller remote

Vẽ chi tiết mô hình mạng đã tạo (các host, switch, địa chỉ IP, các giao diện, các kết nối giống với
hình 1.1) vào hình sau:

Topology của mạng đã tạo

Hãy viết lại tất cả các lệnh để các Host có thể Ping được với nhau:
sudo ovs-ofctl add-flow s1 dl_type=0x0800, nw_dst = 10.0.0.3, action=output : 2
1
Báo cáo Thí nghiệm Cơ sở truyền số liệu Trường Điện – Điện tử Đại học Bách Khoa Hà Nội
sudo ovs-ofctl add-flow s1 dl_type=0x0800, nw_dst = 10.0.0.1, action=output : 1

sudo ovs-ofctl add-flow s1 dl_type=0x0800 nw_dst = 10.0.0.2, action=output : 3

sudo ovs-ofctl add-flow s1 dl_type=0x0806, nw_dst = 10.0.0.3, action=output : 2

sudo ovs-ofctl add-flow s1 dl_type=0x0806, nw_dst = 10.0.0.1, action=output : 1

sudo ovs-ofctl add-flow s1 dl_type=0x0806, nw_dst = 10.0.0.2, action=output : 3

sudo ovs-ofctl add-flow s2 dl_type=0x0800, nw_dst = 10.0.0.3, action=output : 2

sudo ovs-ofctl add-flow s2 dl_type=0x0800, nw_dst = 10.0.0.1, action=output : 1

sudo ovs-ofctl add-flow s2 dl_type=0x0800 nw_dst = 10.0.0.2, action=output : 3

sudo ovs-ofctl add-flow s2 dl_type=0x0806, nw_dst = 10.0.0.3, action=output : 2

sudo ovs-ofctl add-flow s2 dl_type=0x0806, nw_dst = 10.0.0.1, action=output : 1

sudo ovs-ofctl add-flow s2 dl_type=0x0806, nw_dst = 10.0.0.2, action=output : 3

sudo ovs-ofctl add-flow s3 dl_type=0x0800, nw_dst = 10.0.0.3, action=output : 2

sudo ovs-ofctl add-flow s3 dl_type=0x0800, nw_dst = 10.0.0.1, action=output : 1

sudo ovs-ofctl add-flow s3 dl_type=0x0800 nw_dst = 10.0.0.2, action=output : 3

sudo ovs-ofctl add-flow s3 dl_type=0x0806, nw_dst = 10.0.0.3, action=output : 2

sudo ovs-ofctl add-flow s3 dl_type=0x0806, nw_dst = 10.0.0.1, action=output : 1

sudo ovs-ofctl add-flow s3 dl_type=0x0806, nw_dst = 10.0.0.2, action=output : 3

Câu hỏi kiểm tra:


1. Flow-entry và flowtable là gì?

Flow-entry các flow giữa các host.

Flowtable là bảng lưu lại tập hợp các flow-entry, từ đó cho phép các gói tin được chuyển tiếp từ
nguồn tới đích dựa vào các trường thông tin của các flow-entry.

2. Thời gian time-out của flow-entry trong flowtable là gì? Giá trị mặc định bằng bao nhiêu?

Các flow-entry được them vào trong flowtable, sau khoảng thời gian mà flow-entry không có gói tin
nào phù hợp với cơ chế chuyển tiếp của nó thì flow-entry bị xóa khỏi flowtable, quãng thời gian đó
là time-out của flow-entry.

Giá trị mặc định của time-out flow-entry là 5 phút

2
Báo cáo Thí nghiệm Cơ sở truyền số liệu Trường Điện – Điện tử Đại học Bách Khoa Hà Nội

BÀI THÍ NGHIỆM

2
TAO CÂY BẮC CẦU TỐI THIỂU

I. THỰC HÀNH
Đầu tiên, sinh viện tạo mininet có topology như trên hình 2.4 bằng cách tạo một file “topo2.py” có
phần code như sau:
from mininet.topo import Topo
class MyTopo2(Topo):
def __init__(self):
Topo.__init__( self )
h1 = self.addHost(‘h1’)

h2 = self.addHost(‘h2’)

h3 = self.addHost(‘h3’)

h4 = self.addHost(‘h4’)

h5 = self.addHost(‘h5’)

s1 = self.addSwitch(‘s1’)

s2 = self.addSwitch(‘s2’)

s3 = self.addSwitch(‘s3’)

s4 = self.addSwitch(‘s4’)

s5 = self.addSwitch(‘s5’)

self.addLink(h1,s1)

self.addLink(h2,s1)

self.addLink(h3,s2)

self.addLink(h4,s3)

self.addLink(h5,s5)

self.addLink(s1,s2)

self.addLink(s1,s3)

self.addLink(s1,s4)

self.addLink(s2,s4)

self.addLink(s2,s5)

self.addLink(s3,s4)

self.addLink(s4,s5)

topos = { 'mytopo2': ( lambda: MyTopo2() ) }

3
Báo cáo Thí nghiệm Cơ sở truyền số liệu Trường Điện – Điện tử Đại học Bách Khoa Hà Nội

c0

Hình 2.4. Topology 5 switch, 5 host

Sau khi tạo file “topo2.py” ta thực hiện lệnh sau để tạo mininet (sinh viên hoàn thành nốt dòng lệnh):

sudo mn --custom topo2.py –topo mytopo2 –controller remote

II. CÂU HỎI KIỂM TRA


1. Tại sao phải tạo cây MST?

Do 4 Switch được đến nối theo vòng lặp (loop), khi đó mỗi gói tin ARP Request từ host đến Switch
sẽ bị brondcast ra toàn mạng, khi gói tin đến switch khác, nó lại tiếp tục brondcast, gói tin bị nhân
bản lên rất nhiều lần, gây quá tải cho các Switch trong mạng. Cây MST có module spanning tree
giúp block ít nhất 1 cổng trong vòng lặp, tránh nguy cơ các Switch bị hạ, gây quá tải.

2. Giao thức LLDP (Link Layer Discovery Protocol) là giao thức gì? Được sử dụng khi nào? Mô tả
các hoạt động cụ thể của giao thức LLDP.

Giao thức LLDP dung để cho các switch giao tiếp cới controller (cụ thể là POX). Khi đồ hình
mạng (topology) thay đổi hoặc có thiết bị them mới vào topology, bản tin LLDP sẽ được sử dụng
cho quá trình trao đổi thông tin giữa các switch và controller.

4
Báo cáo Thí nghiệm Cơ sở truyền số liệu Trường Điện – Điện tử Đại học Bách Khoa Hà Nội

3. Trên Hình 2.3, hãy điền các cổng (port) của switch tương ứng với các kết nối của switch với
những thành phần khác trong mạng.

4. Sinh viên ghi các thông tin sau vào Hình 2.4:
(Có thể vẽ ra giấy rồi chụp lại, đưa vào báo cáo)

5
Báo cáo Thí nghiệm Cơ sở truyền số liệu Trường Điện – Điện tử Đại học Bách Khoa Hà Nội

BÀI THÍ NGHIỆM

3-4
ĐỊNH TUYẾN SỬ DỤNG THUẬT TOÁN DIJKSTRA VÀ BELLMAN
CÂU HỎI KIỂM TRA BÀI 3
1. Ở module định tuyến tại sao cần phải xử lý gói tin ARP?
Các gói tin IP không được gửi trực tiếp mà được bỏ vào một khung rồi mới gửi đi. Khung này có địa
chỉ gửi và địa chỉ đích. Các địa chỉ này là địa chỉ MAC(vật lý) của 1 card mạng. 1 card mạng nhận
các khung có địa chỉ đích là địa chỉ MAC của mình. ARP là giao thức phân giải địa chỉ, kết nối giữa
IP và MAC nên cần phải xử lý gói tin ARP.

CÂU HỎI KIỂM TRA BÀI 4


1. Viết lại đoạn code “self.host={…}” sau khi đã sửa lại số cổng cho đúng với đồ hình mạng.
self.host={‘1’:1, ‘2’:2, ‘3’:3, ‘4’:1}

2. Bài 2 và Bài 3-4 sử dụng hai cách khác nhau để các nút mạng có thể kết nối với nhau (cụ
thể là Ping được cho nhau). Sự khác nhau ở hai phương pháp này là gì? Ưu nhược điểm
của các phương pháp này?
Khác nhau: Dijkstra không xử lý cạnh có trọng số âm còn BellManford tính toán tất cả các cạnh

=> Dijkstra cho tốc độ cao hơn khi dùng cho đồ thị không có cạnh có trọng số âm còn Bellman
Ford phù hợp với mọi loại đồ thị

6
Báo cáo Thí nghiệm Cơ sở truyền số liệu Trường Điện – Điện tử Đại học Bách Khoa Hà Nội

BÀI THÍ NGHIỆM

5
MỘT SỐ ỨNG DỤNG MẠNG - FIREWALL
CÂU HỎI KIỂM TRA
Trong mạng đang hoạt động, khi phát hiện một Host có truy nhập trái phép thì người quản trị
mạng sẽ thực hiện như thế nào và cơ chế hoạt động ra sao?

Khi phát hiện một Host truy nhập trái phép người quản trị mạng sẽ lập tức cài đặt 1 flow-entry
với trường địa chỉ nguồn là địa chỉ của Host đó, trường action là DROP, khi đó toàn bộ gói tin từ
Host đó đi qua Switch kết nối với nó sẽ bị DROP.

Với mạng đã tạo như trên, viết dòng lệnh sử dụng để chặn host 3 không cho ping đến các host
khác:
sudo ovs-ofctl add-flow s1

dl_type=0x0800,priority=65500,nw_src=10.0.0.3,action=DROP

Muốn bỏ chặn host3 thì dùng lệnh:


sudo ovs-ofctl add-flow s1

dl_type=0x0800,priority=65500,nw_src=10.0.0.3

Phần Thực hành:


1. Tạo mininet mới

Cài đặt Pox Controller ở một Terminal mới

Chạy lệnh “pingall” để kiểm tra các Host của Mininet có thể ping được nhau chưa.

Chặn Host3, không cho Host3 ping đến các host khác, viết dòng lệnh:

sudo ovs-ofctl add-flow s3


dl_type=0x0800,priority=65500,nw_src=10.0.0.3,action=DROP

2. Chạy lệnh ”pingall”,kết quả như thế nào?

h1 -> h2 X
h2 -> h1 X
h3 -> X X
Host3 không ping được đến các host khác

3. Bỏ chặn Host3, viết dòng lệnh:

sudo ovs-ofctl -strict del-flow s3


7
Báo cáo Thí nghiệm Cơ sở truyền số liệu Trường Điện – Điện tử Đại học Bách Khoa Hà Nội

dl_type=0x0800,priority=65500,nw_src=10.0.0.3

4. Thêm flow-entry vào switch3:

sudo ovs-ofctl add-flow s3


dl_type=0x0800,priority=65500,nw_src=10.0.0.1,action=DROP

a) Dùng lệnh “pingall”, kết quả như thế nào?

h1 -> h2 X
h2 -> h1 h3
h3 -> X h2

Host3 và host1 không ping được đến nhau

b) Giải thích kết quả?

Câu lệnh trên thêm flow-entry với địa chỉ nguồn là địa chỉ của host 1 vào switch 3, trường
action là DROP, nên toàn bộ gói tin đi qua switch 3 sẽ bị drop mà switch 3 kết nối với host 3
nên host 1 và host 3 không ping được với nhau.

8
Báo cáo Thí nghiệm Cơ sở truyền số liệu Trường Điện – Điện tử Đại học Bách Khoa Hà Nội

BÀI THÍ NGHIỆM

6
PHÁT LƯU LƯỢNG TRÊN MẠNG

Kết quả sau khi phát lưu lượng sau khi làm các bước trong bài Thí nghiệm:
ITGDec version 2.8.1 (r1023)
Compile-time options: bursty multiport
|----------------------------------------------------------
Flow number: 1
From 10.0.0.1:51700
To 10.0.0.3:8999
----------------------------------------------------------
Total time = 19,979372 s
Total packets = 1965 s
Minimum delay = 0,000052 s
Maximum delay = 0,018086 s
Average delay = 0,000209 s
Average jitter = 0,000023 s
Delay standard deviation = 0,000467 s
Bytes received = 982500
Average bitrate = 393,405759 Kbit/s
Average packet rate = 98,331440 pkt/s
Packets dropped = 0 (%)
Average loss-burst size = 0 pkt
----------------------------------------------------------
**************** TOTAL RESULTS ******************
----------------------------------------------------------
Number of flows = 1
Total time = 19,979372 s
Total packets = 1965
Minimum delay = 0,000052 s
Maximum delay = 0,018086 s
Average delay = 0,000209 s
Average jitter = 0,000023 s
Delay standard deviation = 0,000467 s
Bytes received = 982500
Average bitrate = 393,405759 Kbit/s
Average packet rate = 98,351440 pkt/s
Packets dropped = 0 (.... %)

9
Báo cáo Thí nghiệm Cơ sở truyền số liệu Trường Điện – Điện tử Đại học Bách Khoa Hà Nội

Average loss-burst size = 0 pkt


Error lines = 0
----------------------------------------------------------

CÂU HỎI KIỂM TRA


1. Nêu ý nghĩa các trường trong log files?

Flow number là số flow từ bên gửi gửi sang bên thu. Total times là tổng thời gian truyền và nhận.
Total packets là tổng số gói tin được bên gửi gửi đi. Minimum delays là tổng thời gian trễ nhỏ nhất
của một gói tin. Avarage delay là trễ trung bình của tất cả các gói. Avarage jitter là sự thay đổi tỉ lệ
xuất hiện các gói tin trung bình giữa bên gửi và bên nhận.

2. Làm thí nghiêm tương tự với một luồng TCP có khoảng thời gian giữa 2 gói tin liên tiếp là
hằng số và kích thước một gói tin tuân theo phân bố đều nhận giá trị từ 500 đến 1000 bytes
sau đó phân tích các kết quả thu được.

Number flows: 5 Bytes received: 28005434


Total times: 2605,5325575 Average Bit rate: 85,987593kbit/s
Total packets: 53821 Average Packet rate: 20,656430pkt/s
Minimum delay: 0,0000085 Packet dropped: 0
Maximum delay: 0,175576s Error lines: 0
Average delay: 0,000442s
Average jitter: 0,000683s

3. Làm thí nghiệm tương tự nhưng với 1 luồng VoIP và 1 luồng Telnet đồng thời gửi đến host
đích. Ghi lại các câu lệnh thực hiện và phân tích các kết quả thu được.

script_send:
-a 10.0.0.3 –rp 10001 VoIP –x G.711.2 –h RTP –VoIP
-a 10.0.0.3 –rp 10002 Telnet
./ITGSend script_send –l sender.log

Kết quả:
Number flows: 7
Total time: 3171,543896s
Total packets: 57756

10
Báo cáo Thí nghiệm Cơ sở truyền số liệu Trường Điện – Điện tử Đại học Bách Khoa Hà Nội

BÀI THÍ NGHIỆM

7
PHÂN TÍCH GÓI DỮ LIỆU TRONG HỆ THỐNG MẠNG DÙNG WIRESHARK

CÂU HỎI KIỂM TRA

1. Trong gói tin ARP request và ARP reply xác định IP nguồn và IP đích.
ARP Request: Source 192.168.1.13 Des: Source 192.168.1.1
ARP Request: Source 192.168.1.1 Des: Source 192.168.1.13

2. Tại sao gói ICMP không có số port của nguồn và đích. 


Vì ICMP là giao thức Layer 3 trong mô hình OSI nên không có port. Chỉ giao thức từ
Layer 4 trở lên mới xác định port

3. Tính delay của gói tin ARP 


∆ t = tR – tT = 64,843512 – 64,841165 = 0,002347s

4. Tính băng thông của đường truyền trong khoảng thời gian 1 phút.
B = L/ ∆ t = (930 × 8) /60 = 124bit/s

11

You might also like