Download pdf - BTL Mang May Tinh []

Transcript
Page 1: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

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

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

BÀI TẬP LỚN: MẠNG MÁY TÍNH

Đề số 11

Giảng viên hướng dẫn: Trần Quang Vinh

Sinh viên thực hiện: Nguyễn Đức Dũng - 20080497

Nguyễn Văn Kiệm - 20081462

Trần Danh Nam - 20081837

Vũ Văn Tiệp - 20082677

Nguyễn Trọng Toàn - 20082707

Lớp: Điện Tử 1 – k53

Hà Nội 04/2012

Page 2: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

A. Lý thuyết

1. Giao thức Internet (Internet Protocol) Network Layer in the Internet

1.1. Khái niệm

Giao thức internet (IP) là giao thức mạng dùng để truyền dữ liệu qua các mạng kết

hợp. Giao thức IP được thiết kế để đáp ứng các nhu cầu sau:

Thiết lập hệ thống mạng có thể kết nối được các loại máy tính, các thiết bị định

tuyến được chế tạo từ các nhà sản xuất khác nhau. Đáp ứng được sự phát triển

nhanh chóng của các loại mạng khác nhau đồng thời thừa kế được công nghệ

mạng cũ.

Hỗ trợ dịch vụ truyền dữ liệu có kết nối và không kết nối và không kết nối cho các

tầng trên.

Giao thức IP cung cấp phương thức truyền các Datagram trên một kết nối mạng

kết hợp bất kỳ.Cũng giống như một khung dữ liệu trong mạng vật lý.

Mỗi Datagram được truyền độc lập với nhau do vậy thứ tự các Datagram nhận

được có thể khác thứ tự các Datagram lúc phát đi.Giao thức IP không chịu trách

nhiệm về việc các Datagram sẽ đươc truyền đến đích an toàn hay không.Giao thức

IP chỉ có trách nhiệm truyền các Datagram càng nhanh càng tốt, các Datagram có

thể bị mất trong quá trình truyền do các nguyên nhân sau đây:

Xuất hiện bit lỗi trong quá trình truyền.

Sự quá tải của các bộ đệm

Chưa tìm được đường truyền nào tới đích.

Tất cả các biện pháp nhằm đảm bảo các Datagram được truyền đến đích một cách

an toàn ,đầy đủ và khôi phục các dữ liệu đã mất do TCP đảm nhiệm.

1.2. Ý nghĩa của giao thức IP

Giao thức IP là giao thức có cơ chế truyền dữ liệu không kết nối ,có độ tin cậy thấp.

Giao thức IP có 3 ý nghĩa quan trọng:

Giao thức IP định nghĩa đơn vị cơ sở dữ liệu truyền đi trên mạng Internet thông

qua một kết nối TCP/IP. Nói cách khác là nó xác định định dạng chính xác của tất

cả dữ liệu khi truyền qua mạng Internet.

Phần mềm IP thực hiện chức năng định tuyến cho phép chọn đường để gửi dữ liệu

đi.

Page 3: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Cùng với độ chính xác, đặc tả chính xác của định dạng dữ liệu và việc định

tuyến.Giao thức IP bao gồm một tập hợp các quy tắc thể hiện cơ chế truyền dữ

liệu không kết nối và có độ tin cậy thấp. Các quy tắc này đặc trưng cho cách mà

máy tính và bộ định tuyến xử lý các gói dữ liệu làm thế nào và khi nào thì các

thông điệp lỗi phát sinh và dưới những điều kiện nào thì các gói dữ liệu được hủy

bỏ.

1.3. Khuôn dạng dữ liệu của giao thức IP ( IP Datagram)

Bản tin ở lớp giao vận có độ dài 64Kbytes được chuyển xuống lớp mạng.Giao thức IP

cắt bản tin này thành các gói nhỏ gửi đi (IP Datagram) . Khi đến nơi nhận chúng được tập

hợp lại bởi lớp giao vận để tạo lại bản tin ban đầu.

Một IP Datagram gồm có phần mào đầu (Header) và phần dữ liệu (Data).Phần Header

có một phần cố định 20bytes và một phần tùy ý có độ rộng thay đổi như minh họa ở hình

vẽ sau.

IP Header Unit of Data

Datagram

1.4. Các dịch vụ của lớp IP (IP services).

1.4.1. Dịch vụ mạng DNS

Khái niệm: DNS là từ viết tắt trong tiếng Anh của Domain Name System, là Hệ

thống phân giải tên được phát minh vào năm 1984 cho Internet, chỉ một hệ thống

cho phép thiết lập tương ứng giữa địa chỉ IP và tên miền.

Chức năng của DNS.

Mỗi Website có một tên (là tên miền hay đường dẫn URL:Universal Resource

Locator) và một địa chỉ IP. Địa chỉ IP gồm 4 nhóm số cách nhau bằng dấu chấm.

Khi mở một trình duyệt Web và nhập tên website, trình duyệt sẽ đến thẳng website

mà không cần phải thông qua việc nhập địa chỉ IP của trang web. Quá trình "dịch"

tên miền thành địa chỉ IP để cho trình duyệt hiểu và truy cập được vào website là

công việc của một DNS server. Các DNS trợ giúp qua lại với nhau để dịch địa chỉ

"IP" thành "tên" và ngược lại. Người sử dụng chỉ cần nhớ "tên", không cần phải

nhớ địa chỉ IP (địa chỉ IP là những con số rất khó nhớ )

Nguyên tắc làm việc của DNS.

Page 4: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Mỗi nhà cung cấp dịch vụ vận hành và duy trì DNS server riêng của mình, gồm

các máy bên trong phần riêng của mỗi nhà cung cấp dịch vụ đó trong Internet. Tức

là, nếu một trình duyệt tìm kiếm địa chỉ của một website thì DNS server phân giải

tên website này phải là DNS server của chính tổ chức quản lý website đó chứ

không phải là của một tổ chức (nhà cung cấp dịch vụ) nào khác.

INTERNIC (Internet Network Information Center) chịu trách nhiệm theo

dõi các tên miền và các DNS server tương ứng. INTERNIC là một tổ chức

được thành lập bởi NFS (National Science Foundation), AT&T và Network

Solution, chịu trách nhiệm đăng ký các tên miền của Internet. INTERNIC

chỉ có nhiệm vụ quản lý tất cả các DNS server trên Internet chứ không có

nhiệm vụ phân giải tên cho từng địa chỉ.

DNS có khả năng tra vấn các DNS server khác để có được một cái tên đã

được phân giải. DNS server của mỗi tên miền thường có hai việc khác biệt.

Thứ nhất, chịu trách nhiệm phân giải tên từ các máy bên trong miền về các

địa chỉ Internet, cả bên trong lẫn bên ngoài miền nó quản lý. Thứ hai, chúng

trả lời các DNS server bên ngoài đang cố gắng phân giải những cái tên bên

trong miền nó quản lý. - DNS server có khả năng ghi nhớ lại những tên vừa

phân giải. Để dùng cho những yêu cầu phân giải lần sau. Số lượng những

tên phân giải được lưu lại tùy thuộc vào quy mô của từng DNS.

Cách sử dụng DNS

Do các DNS có tốc độ biên dịch khác nhau, có thể nhanh hoặc có thể chậm, do đó

người sử dụng có thể chọn DNS server để sử dụng cho riêng mình. Có các cách

chọn lựa cho người sử dụng. Sử dụng DNS mặc định của nhà cung cấp dịch vụ

(internet), trường hợp này người sử dụng không cần điền địa chỉ DNS vào network

connections trong máy của mình. Sử dụng DNS server khác (miễn phí hoặc trả

phí) thì phải điền địa chỉ DNS server vào network connections. Địa chỉ DNS

server cũng là 4 nhóm số cách nhau bởi các dấu chấm.

Cấu trúc của gói tin DNS: Gói tin DNS gồm các trường sau:

ID: Là một trường 16 bits, chứa mã nhận dạng, nó được tạo ra bởi một

chương trình để thay cho truy vấn. Gói tin hồi đáp sẽ dựa vào mã nhận

dạng này để hồi đáp lại. Chính vì vậy mà truy vấn và hồi đáp có thể phù

hợp với nhau.

QR: Là một trường 1 bit. Bít này sẽ được thiết lập là 0 nếu là gói tin truy

vấn, được thiết lập là một nếu là gói tin hồi đáp.

Opcode: Là một trường 4 bits, được thiết lập là 0 cho cờ hiệu truy vấn,

được thiết lập là 1 cho truy vấn ngược, và được thiết lập là 2 cho tình trạng

truy vấn.

Page 5: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

AA: Là trường 1 bit, nếu gói tin hồi đáp được thiết lập là 1, sau đó nó sẽ đi

đến một server có thẫm quyền giải quyết truy vấn.

TC: Là trường 1 bit, trường này sẽ cho biết là gói tin có bị cắt khúc ra do

kích thước gói tin vượt quá băng thông cho phép hay không.

RD: Là trường 1 bit, trường này sẽ cho biết là truy vấn muốn server tiếp tục

truy vấn một cách đệ qui.

RA: Trường 1 bit này sẽ cho biết truy vấn đệ qui có được thực thi trên

server không .

Z: Là trường 1 bit. Đây là một trường dự trữ, và được thiết lập là 0.

Rcode: Là trường 4 bits, gói tin hồi đáp sẽ có thể nhận các giá trị sau :

0: Cho biết là không có lỗi trong quá trình truy vấn.

1: Cho biết định dạng gói tin bị lỗi, server không hiểu được truy vấn.

2: Server bị trục trặc, không thực hiện hồi đáp được.

3: Tên bị lỗi. Chỉ có server có đủ thẩm quyền mới có thể thiết lập giá trị

náy.

4: Không thi hành. Server không thể thực hiện chức năng này .

5: Server từ chồi thực thi truy vấn.

QDcount: Số lần truy vấn của gói tin trong một vấn đề.

ANcount: Số lượng tài nguyên tham gia trong phần trả lời.

NScount: Chỉ ra số lượng tài nguyên được ghi lại trong các phẩn có thẩm

quyền của gói tin.

ARcount: Chỉ ra số lượng tài nguyên ghi lại trong phần thêm vào của gói

tin.

1.4.2. Giao thức cấu hình Host động DHCP ( Dynamic Host Configuration

Protocol).

Khái niệm: DHCP là viết tắt của Dynamic Host Configuration Protocol, là giao

thức Cấu hình Host Động được thiết kế làm giảm thời gian chỉnh cấu hình cho

mạng TCP/IP bằng cách tự động gán các địa chỉ IP cho khách hàng khi họ vào

mạng. Dich vụ DHCP là một thuận lới rất lớn đối với người điều hành mạng. Nó

làm yên tâm về các vấn đề cố hữu phát sinh khi phải khai báo cấu hình thủ công.

Nói một cách tổng quan hơn DHCP là dich vụ mang đến cho chúng ta nhiều lợi

điểm trong công tác quản trị và duy trì một mạng TCP/IP như:

Tập chung quản trị thông tin về cấu hình IP.

+ Cấu hình động các máy.

+ Cấu hình IP cho các máy một cách liền mạch

Page 6: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

+ Sự linh hoạt

+ Khả năng mở rộng

+ Giảm bớt được các hiện tượng xung đột về IP, hay các lỗi về IP, luôn

đảm bảo cho các máy client được cấu hình đúng.

+ Đơn giản hóa trong công tác quản trị.

Phương thức hoạt động của DHCP.

Dịch vụ DHCP hoạt động theo mô hình Client / Server. Theo đó quá trình

tương tác giữa DHCP client và server sẽ diễn ra theo các bước sau.

B1: Khi máy Client khởi động, máy sẽ gửi broadcast gói tin DHCP

DISCOVER, yêu cầu một Server phục vụ mình. Gói tin này cũng chứa địa chỉ

MAC của client.

Nếu client không liên lạc được với DHCP Server thì sau 4 lần truy vấn

không thành công nó sẽ tự động phát sinh ra 1 địa chỉ IP riêng cho chính mình

nằm trong dãy 169.254.0.0 đến 169.254.255.255 dùng để liên lạc tạm thời. Và

client vẫn duy trì việc phát tín hiệu Broad cast sau mỗi 5 phút để xin cấp IP từ

DHCP Server.

B2: Các máy Server trên mạng khi nhận được yêu cầu đó. Nếu còn khả năng

cung cấp địa chỉ IP, đều gửi lại cho máy Client một gói tin DHCP OFFER, đề

nghị cho thuê một địa chỉ IP trong một khoảng thời gian nhất định, kèm theo là

một Subnet Mask và địa chỉ của Server. Server sẽ không cấp phát đia chỉ IP

vừa đề nghị cho client thuê trông suốt thời gian thương thuyết.

B3:Máy Client sẽ lựa chọn một trong những lời đền nghị ( DHCPOFFER) và

gửi broadcast lại gói tin DHCPREQUEST và chấp nhận lời đề nghị đó. Điều

này cho phép các lời đề nghị không được chấp nhận sẽ được các Server rút lại

và dùng để cấp phát cho các Client khác.

B4: Máy Server được Client chấp nhận sẽ gửi ngược lại một gói tin DHCP

ACK như một lời xác nhận, cho biết địa chỉ IP đó, Subnet Mask đó và thời hạn

cho sử dụng đó sẽ chính thức được áp dụng. Ngoài ra server còn gửi kèm

những thông tin bổ xung như địa chỉ Gateway mặc định, địa chỉ DNS Server...

2. Tìm hiểu về Ipv4

2.1. Khái niệm

Ipv4( Internet Protocol Version 4) là phiên bản thứ 4 trong quá trính phát triển của

các giao thức internet (IP).Đây là phiên bản đầu tiên của IP được sử dụng rộng rãi. IPv4

Page 7: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

cùng với IPv6 là nòng cốt của giao tiếp internet. Hiên tại Ipv4 vẫn là giao thức được triển

khai rộng rãi nhất trong bộ giao thức của lớp Internet.

Giao thức này được công bố bởi IETF trong phiên bản RFC 791 (tháng 9 năm

1981), thay thế cho phiên bản RFC 760 (công bố vào tháng giêng năm 1980). Giao thức

này cũng được chuẩn hóa bởi bộ quốc phòng Mỹ trong phiên bản MIL-STD-1777.

IPv4 là giao thức hướng dữ liệu, được sử dụng cho hệ thống chuyển mạch gói

(tương tự như chuẩn mạng Ethernet). Đây là giao thức truyền dữ liêu hoạt động dựa trên

nguyên tắc tốt nhất có thể, trong đó, nó không quan tâm đến thứ tự truyền gói tin cũng

như không đảm bảo gói tin sẽ đến đích hay việc gây ra tình trạng lặp gói tin ở đích đến.

Việc xử lý vấn đề này dành cho lớp trên của chồng giao thức TCP/IP. Tuy nhiên, IPv4 có

cơ chế đảm bảo tính toàn vẹn dữ liệu thông qua sử dụng những gói kiểm tra (checksum).

2.2. Cấu trúc địa chỉ của IPv4

2.2.1. Thành phần và khuôn dạng của địa chỉ Ipv4

Ipv4 sử dụng 32 bits để đánh địa chỉ mạng chia thành 4 octet ( Mỗi octet có 8bit

tương đương với 1 Byte). Cách đếm đều từ trái qua phải từ bit 1 đến bit 32.Các Octet

cách biệt nhau bằng một dấu chấm và bao gồm 3 thành phần chính.

Class Bit: Bit nhận dạng lớp dùng để phân biệt địa chỉ IP thuộc lớp nào.

Network ID: Địa chỉ của mạng

Host ID: Địa chỉ của máy

2.2.2. Các lớp địa chỉ Ipv4

Địa chỉ IP chia ra 5 lớp A,B,C, D, E. Hiện tại đã dùng hết lớp A,B và gần hết lớp

C, còn lớp D và E . Trong đó lớp E được dành riêng cho nghiên cứu.Lớp D được dùng

cho việc phát các thông tin broadcast/multicast .

Cấu trúc của các lớp địa chỉ

Lớp A

Class A IP Address 128126 0255 0255 0255

Subnet Mask 255 0 0 0

Hay

Class A Netword ID Host ID

Page 8: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Octet 1 2 3 4

Lớp B

Class B IP Address 128191 0255 0255 0255

Subnet Mask 255 255 0 0

Hay

Class B Network ID Host ID

Octet 1 2 3 4

Lớp C

Class C IP Address 192223 0255 0255 0255

Subnet Mask 255 255 255 0

Hay

Class C Network ID Host ID

Octet 1 2 3 4

Lớp D 224 240 Multicast

Class D Host ID

Octet 1 2 3 4

Lớp E 241 255 Research

Page 9: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Cách xác định lớp của một địa chỉ:

Cách xác định lớp của một địa chỉ

Địa chỉ lớp Bit nhận dạng Dải địa chỉ Số bít dùng để phân cho

mạng

A 0 0.0.0.0 đến 126.0.0.0 8

B 10 127.0.0.0 đến 191.255.0.0 16

C 110 192.0.0.0 đến 223.255.255.0 24

D 1110 224.0.0.0 đến 240.0.0.0 28

E 1111 241.0.0.0 đến 255.0.0.0

Để nhận biết lớp địa chỉ IP, ta chỉ cần nhìn vào các bít đầu tiên của địa chỉ.

Nếu bít đầu tiên là 0 thì đây là địa chỉ IP lớp A.

Nếu bít đầu tiên là 1 và bít thứ hai là 0 thì đây là địa chỉ lớp B.

Nếu hai bít đầu tiên là 1 và bít thứ ba là 0 thì đây là địa chỉ lớp C.

Nếu ba bít đầu tiên là 1 và bít thứ tư là 0 thì đây là địa chỉ lớp D.

Nếu bốn bít đầu tiên là 1 thì đây là địa chỉ lớp E.

Nếu địa chỉ được biểu diễn dưới dạng thập phân dấu chấm, bạn chỉ cần nhìn số

đầu tiên để xác định lớp địa chỉ.

Nếu số đầu nằm trong khoảng từ 0 đến 127 thì đây là lớp A.

Nếu số đầu nằm trong khoảng từ 128 đến 191 thì đây là lớp B.

Nếu số đầu nằm trong khoảng từ 192 đến 223 thì đây là lớp C.

Nếu số đầu nằm trong khoảng từ 224 đến 239 thì đây là lớp D.

Nếu số đầu nằm trong khoảng từ 240 đến 255 thì đây là lớp E

2.2.3. Cấu trúc của gói tin IP

Version Header

length

Type of

service

Total length

Page 10: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Identification Flags Fragment offset

Time to live Protocol Header checksum

32-bit source address

32-bit destination address

Options Padding

Các gói IP bao gồm dữ liệu từ lớp bên trên đưa xuống và thêm vào một IP

Header.IP Header gồm các thành phần sau:

Version chỉ ra phiên bản hiện hành của IP đang được dùng, có 4 bit. Nếu

trường này khác với phiên bản IP của thiết bị nhận, thiết bị nhận sẽ từ chối

và loại bỏ các gói tin này.

IP Header Length (HLEN) – Chỉ ra chiều dài của header theo các từ 32 bit.

Đây là chiều dài của tất cảc các thông tin Header.

Type Of Services (TOS): Chỉ ra tầm quan trọng được gán bởi một giao thức

lớp trên đặc biệt nào đó, có 8 bit.

Total Length – Chỉ ra chiều dài của toàn bộ gói tính theo byte, bao gồm dữ

liệu và header,có 16 bit..Để biết chiều dài của dữ liệu chỉ cần lấy tổng

chiều dài này trừ đi HLEN.

Identification – Chứa một số nguyên định danh hiện hành, có 16 bit. Đây là

chỉ số tuần tự.

Flag – Một field có 3 bit, trong đó có 2 bit có thứ tự thấp điều khiển sự

phân mảnh. Một bit cho biết gói có bị phân mảnh hay không và gói kia cho

biết gói có phải là mảnh cuối cùng của chuỗi gói bị phân mảnh hay không.

Fragment Offset – Được dùng để ghép các mảnh Datagram lai với nhau, có

13 bit.

Time To Live (TTL) – Chỉ ra số bước nhảy (hop) mà một gói có thể đi

qua.Con số này sẽ giảm đi một khi một gói tin đi qua một router. Khi bộ

đếm đạt tới 0 gói này sẽ bị loại. Đây là giải pháp nhằm ngăn chặn tình

trạng lặp vòng vô hạn của gói nào đó.

Protocol – Chỉ ra giao thức lớp trên, chẳng hạn như TCP hay UDP, tiếp

nhận các gói tin khi công đoạn xử lí IP hoàn tất, có 8 bit.

· Header CheckSum – Giúp bảo dảm sự toàn vẹn của IP Header, có 16 bit.

Source Address – Chỉ ra địa chỉ của node truyền diagram, có 32 bit.

Destination Address – Chỉ ra địa chỉ IP của Node nhận, có 32 bit.

Page 11: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Padding – Các số 0 được bổ sung vào field này để đảm bảo IP Header luôn

la bội số của 32 bit.

Data – Chứa thông tin lớp trên, chiều dài thay đổi đến 64Kb.

Trong khi địa chỉ IP của nguồn và đích là quan trong của hoạt động của IP, các

trường khác làm cho IP rất linh hoạt.Các Header Field là thông tin được cung cấp

cho các giao thức lớp trên xác định dữ liệu đóng gói.

3. IP address

3.1. Nguyên tắc đánh địa chỉ IP

Mỗi mạng LAN có địa chỉ mạng riêng biệt và được ngăn cách bởi Router.

Các máy trạm ( Kể cả router) nằm trong mạng LAN có chung địa chỉ mạng ,còn

địa chỉ máy trạm khác nhau.

Phân loại địa chỉ IP.

Địa chỉ public: + Dùng để trao đổi trên Internet

+ Địa chỉ thật

Địa chỉ private : + Dùng để đánh địa chỉ cho các mạng LAN bên trong 1

tổ chức

+ Địa chỉ ảo.

Địa chỉ loopback: 127.0.0.0127.255.255.255

Bảng thông tin về địa chỉ Private của các lớp A,B,C

Class Address (range) Network Total private Host

A 10.0.0.0 1 16,777,214

B 172.16.0.0-172.31.0.0 16 1,048,544

C 192.168.0.0-192.168.255.0 256 65,024

3.2. Subnetting

Khái niệm: Subnetting là chia nhỏ một mạng thành nhiều mạng con với nhiều địa

chỉ mạng con.

Subnetting thường được biểu diễn bằng địa chỉ IP kèm theo “mặt nạ

mạng”(Subnet Mask) .

Page 12: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Cách biểu diễn địa chỉ mạng : a.b.c.d/x trong đó a,b,c,d là địa chỉ mạng , x là số

bit của địa chỉ mạng.

Ví dụ: 172.168.121.0/24 mạng có địa chỉ là 172.168.121.0 với phần địa

chỉ mạng dài 24 bits

Lý do chia subnet:

� + Giảm số lượng node

+ Tăng thông lượng mạng

� + Tăng tính bảo mật

� + Dễ quản trị

� + Dễ bảo trì

� + Tránh lãng phí địa chỉ IP

Qui tắc chia subnet.

+ Mượn các bit đầu trong HostID làm NetID

+ Số subnet=2^n ( n : số bit vay mượn phần host ID).

Lên kế hoạch cho việc chi subnet

+ Số subnet cần chia

+Số node trong mỗi subnet

Để thực hiện subnetting ta thực hiện theo các bước sau

+ Xác định subnet mask mới

+ Liệt kê ID của các subnet mới

+ Cho biết IP address range của các HostID trong mỗi subnet

Để hiểu rõ hơn về việc chia subnet ta xét một ví dụ cụ thể sau: giả sử công ty A

thuê 1 địa chỉ Ip lớp B là 139.12.0.0/24 .Sau đó công ty muốn chia mạng này

thành 4 mạng con nhỏ hơn.Ta tiến hành công việc như sau.

Bước 1: Xác định Subnet mask mới. Để đếm cho đến 4 trong hệ thống số nhị phân

(cho 4 Subnet) cần phải sử dụng 2 bits. Do đó, Subnet mask sẽ cần 16 (bits trước

đây) +2 (bits mới) = 18 bits. Địa chỉ IP mới sẽ là 139.12.0.0/18 ( ý nghĩa con số 18

tương tự như con số 16 trước đây). Số hosts tối đa có trong mỗi Subnet sẽ là:

2(32-n) - 2

- 2 = 214

–2 = 16,382. Và tổng số các hosts trong 4 Subnets là: 16382 * 4 =

65,528 hosts.

Page 13: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Bước 2: Liệt kê ID của các Subnet mới . Trong địa chỉ IP mới (139.12.0.0/18) con

số 18 nói đến việc sử dụng 18 bits, đếm từ bên trái qua phải của 32 bits IP address

để biểu diễn địa chỉ IP của một Subnet.

Subnet Mask dạng nhị phân Subnet mask dạng thập phân

11111111 11111111 11000000 00000000 255.255.192.0

Như vậy, NetworkID của bốn Subnets mới đó là:

Subnet Subnet ID dạng nhị phân Subnet ID dạng thập

phân

1 10001011.00001100.00000000.00000000 139.12.0.0/18

2 10001011.00001100.01000000.00000000 139.12.64.0/18

3 10001011.00001100.10000000.00000000 139.12.128.0/18

4 10001011.00001100.11000000.00000000 139.12.192.0/18

Bước 3: Cho biết IP address range của các HostID trong mỗi Subnet. Vì Subnet

ID đã dùng hết 18 bits nên số bits còn lại (32 - 18 = 14) được dùng cho HostID.

Theo luật thì Subnet mask cho Host ID là tất cả mọi bits đều là bit "0" và phần

NetID đều là bit "1".

Subnet IP range dạng nhị phân Ip range dạng thập

phân

1 10001011.00001100.00000000.00000001-

10001011.00001100.00111111.11111110

139.12.0.1/18-

139.12.63.254/18

2 10001011.00001100.01000000.00000001-

10001011.00001100.01111111.11111110

139.12.64.1/18-

139.12.127.254/18

3 10001011.00001100.10000000.00000001-

10001011.00001100.10111111.11111110

139.12.128.1/18-

139.12.191.254/18

4 10001011.0001100.110000000.00000001- 139.12.192.1/18-

Page 14: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

10001011.0001100.111111111.11111110 139.12.255.254

3.3. Supernetting

Cho phép nhóm nhiều segment con thành một segment lớn hơn.

Mục đích của supernetting.

Tiết kiệm vùng địa chỉ

Giảm số bản ghi trong bảng định tuyến

Chú ý: super netting chỉ được phép khi tất cả các segment con cùng nằm

trên một hướng

Ví dụ : Tại bảng định tuyến của Router ta có các mạng sau:

207.46.168.0/24

207.46.169.0/24

207.46.170.0/24

207.46.171.0/24

207.46.172.0/24

207.46.172.0/24

207.46.174.0/24

207.46.175.0/24

207.46.168.0/21

Page 15: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Hình bên dưới sẽ minh họa cho phần này:

4. Giao thức ICMP

4.1. Giới thiệu:

Thuật ngữ ICMP là từ viết tắt của Internetwork Control Message Protocol là một

giao thức hoạt động trên lớp Network (lớp 3) trong mô hình OSI và được định nghĩa tại

RFC 792.

ICMP là giao thức được sử dụng để báo cáo các vấn đề về gửi và nhận gói dữ liệu

trong một mạng, hiển thị phản ứng khi không thể truy cập vào mạng, khi một nốt mạng bị

quá tải, lỗi xảy ra trong quá trình truyền,vv.... ICMP được sử dụng thường xuyên để xác

định các hoạt động chính xác của hệ thống, kiểm tra xem router có định tuyến các gói tin

đến đúng địa chỉ đích đã được xác đinh hay không. Việc sử dụng phổ biến nhất của

ICMP là lệnh Ping, trong đó kiểm tra xem máy có đáp ứng bằng cách gửi một tin nhắn

icmp nhỏ tới máy và chờ đợi câu trả lời.

4.2. Định dạng của bản tin ICMP

ICMP có nhiều bản tin với nội dung khác nhau tùy thuộc vào từng loại bản tin, tuy

nhiên tất cả các bản tin đều có phần header bắt đầu bởi 3 trường: Type, Code, và

Checksum. Phần còn lại của bản tin có nội dung phụ thuộc vào Type và Code của bản tin.

Type (8 bit) Code (8 bit) Checksum (16 bit)

Phần còn lại của header

Nội dung bản tin

Page 16: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Type (8 bit đầu) dùng để chỉ loại thông điệp ICMP

Code (8 bit kế tiếp) dùng để chỉ mã của thông điêp ICMP

Checksum (16 bit cuối) kiểm tra lỗi gói tin

Ý nghĩa của một số loại thông điệp ICMP quan trọng

Loại thông điệp ICMP Ý nghĩa

Detination Unreachable Thông báo cho máy nguồn biết có vấn đề trong

việc phân phối gói tin.

Time Exceed Thời gian chuyển gói tin quá lớn, gói tin bị loại

bỏ.

Source Quench Máy nguồn đang gửi dữ liệu nhanh hơn mức mà

máy đích có thể xử lý. Thông điệp này yêu cầu

máy nguồn gửi chậm lại.

Redirect Một router thông báo cho một host một địa chỉ

router khác tốt hơn.

Echo Được dùng bởi lệnh ping để kiểm tra kết nối.

Address/mask request/reply Được dùng để học và để truy vấn địa chỉ IP/mask

được dùng.

Router Advertisement and

Selection

Được dùng để cho phép các host học địa chỉ IP

của các router gắn vào subnet.

Các bản tin ICMP, theo RFC 792

Type Code Description

0 0 Echo Reply

3 0 Net Unreachable

1 Host Unreachable

2 Protocol Unreachable

3 Port Unreachable

4 Frag needed and DF set

5 Source route failed

6 Dest network unknown

7 Dest host unknown

8 Source host isolated

9 Network admin prohibited

10 Host admin prohibited

11 Network unreachable for TOS

12 Host unreachable for TOS

13 Communication admin prohibited

14 Host Precedence Violation

15 Precedence cut-off in effect

4 0 Source Quench

5 0 Redirect datagram for the network

1 Redirect datagram for the host

2 Redirect datagram for the TOS & network

Page 17: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

3 Redirect datagram for the TOS & host

8 0 Echo

9 0 Router advertisement

10 0 Router selection

11 0 Time to live exceeded in transit

1 Fragment reassembly time exceeded

12 0 Pointer indicates the error (parameter problem)

1 Missing a required option (parameter problem)

2 Bad length (parameter problem)

13 0 Time stamp

14 0 Time stamp reply

15 0 Information request

16 0 Information reply

17 0 Address mask request

18 0 Address mask reply

30 0 Traceroute (tracert)

31 Datagram conversion error

32 Movble host redirect

33 IPv6 Where are you

34 IPv6 I am here

35 Mobile registration request

36 Mobile registration reply

39 SKIP

40 0 Photuris reserved

1 Photuris unknown security parameters index

2 Photuris valid security parameters, but auth. Failed

3 Photuris valid security parameters, but decrypt, failed

5. Giao thức ARP

5.1. Giới thiệu

Một mạng LAN hoạt động dựa trên lớp 1 và lớp 2 trong mô hình OSI (lớp physical và

datalink). Nhưng các giao thức liên mạng (internet-work) lại dựa trên địa chỉ lớp ba (lớp

network). Do đó cần phân giải địa chỉ giữa lớp data link và lớp network nhằm giúp cho

việc truyền dữ liệu được liên tục qua mạng.

Có hai phương pháp phân giải địa chỉ là : phân giải trực tiếp và phân giải động. Việc

phân giải trực tiếp gặp nhiều khó khăn do địa chỉ MAC (lớp datalink) là địa chỉ 48 bit

trong khi địa chỉ IP là 32 bit. Bên cạnh đó các nhà phát triển muốn tạo ra một cơ chế linh

hoạt trong sử dụng. Chính vì vậy họ phát triển ARP (Address Resolution Protocol). Giao

thức này được định nghĩa trong RFC 826.

Page 18: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

ARP là phương thức phân giải địa chỉ động giữa địa chỉ lớp network và địa chỉ lớp

datalink. Quá trình thực hiện bằng cách: một thiết bị IP trong mạng gửi một gói tin

broadcast đến toàn mạng yêu cầu thiết bị khác gửi trả lại địa chỉ phần cứng (địa chỉ lớp

datalink) của mình.

Ban đầu ARP chỉ được sử dụng trong mạng Ethernet để phân giải địa chỉ IP và địa chỉ

MAC. Nhưng ngày nay ARP đã được ứng dụng rộng rãi và dùng trong các công nghệ

khác dựa trên lớp hai.

5.2. Định dạng của bản tin ARP

Bản tin ARP bao gồm các trường: Hardware type, Protocol type, Hardware address

length, Protocol address length, Operation code và 4 trường chưa địa chỉ Source

Hardware Address, Source Protocol Address, Target Hardware Address, Target Protocol

Address.

Page 19: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Hardware type và protocol type là trường quy định kiểu của phần cứng và của

protocol được dùng ở lớp network

Opcode là trường cho biết bản tin ARP là yêu cầu (=1) hay phúc đáp (=2)

Hardware Address length là trường chứa độ dài của địa chỉ vật lí

Protocol address length là trường chứa độ dài của địa chỉ logic

Bốn trường còn lại là địa chỉ vật lí và địa chỉ logic nguồn và đích.

Source Hardware Address : địa chỉ lớp 2 của thiết bị gửi bản tin

Source Protocol Address : Địa chỉ lớp 3 ( hay địa chỉ logic ) của thiết bị gửi bản

tin

Target Hardware Address : Địa chỉ lớp 2 ( địa chỉ phần cứng ) của thiết bị đích của

bản tin

Target Protocol Address : Địa chỉ lớp 3 ( hay địa chỉ logic ) của thiết bị đích của

bản tin

5.3. Cơ chế hoạt động

ARP về cơ bản là một quá trình 2 chiều request/response giữa các thiết bị trong cùng

mạng nội bộ. Thiết bị nguồn request bằng cách gửi một bản tin broadcast trên toàn mạng.

Thiết bị đích response bằng một bản tin unicast đến thiết bị nguồn

Có hai dạng bản tin trong ARP: một được gửi từ nguồn đến đích, và một được gửi từ

đích tới nguồn.

Page 20: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Request : Khởi tạo quá trình, gói tin được gửi từ thiết bị nguồn tới thiết bị đích

Reply : Là quá trình đáp trả gói tin ARP request, được gửi từ máy đích đến máy

nguồn

Các bước hoạt động của ARP :

Bước 1 Source Device Checks Cache : Trong bước này, thiết bị sẽ kiểm tra cache ( bộ

đệm ) của mình. Nếu đã có địa chỉ IP đích tương ứng với MAC nào đó rồi thì lập tức

chuyển lên bước 9

Bước 2. Source Device Generates ARP Request Message: Bắt đầu khởi tạo gói tin

ARP Request với các trường địa chỉ như trên.

Bước 3. Source Device Broadcasts ARP Request Message: Thiết bị nguồn quảng bá

gói tin ARP Request trên toàn mạng.

Bước 4. Local Devices Process ARP Request Message: Các thiết bị trong mạng đều

nhận được gói tin ARP Request. Gói tin được xử lý bằng cách các thiết bị đều nhìn vào

trường địa chỉ Target Protocol Address. Nếu trùng với địa chỉ của mình thì tiếp tục xử lý,

nếu không thì hủy gói tin.

Bước 5. Destination Device Generates ARP Reply Message: Thiết bị với IP trùng với

IP trong trường Target Protocol Address sẽ bắt đầu quá trình khởi tạo gói tin ARP Reply

bằng cách lấy các trường Sender Hardware Address và Sender Protocol Address trong

gói tin ARP nhận được đưa vào làm Target trong gói tin gửi đi. Đồng thời thiết bị sẽ lấy

địa chỉ datalink của mình để đưa vào trường Sender Hardware Address.

Bước 6. Destination Device Updates ARP Cache : Thiết bị đích (thiết bị khởi tạo gói

tin ARP Reply) đồng thời cập nhật bảng ánh xạ địa chỉ IP và MAC của thiết bị nguồn vào

bảng ARP cache của mình để giảm bớt thời gian xử lý cho các lần sau.

Bước 7. Destination Device Sends ARP Reply Message : Thiết bị đích bắt đầu gửi gói

tin Reply đã được khởi tạo đến thiết bị nguồn. Gói tin reply là gói tin gửi unicast.

Bước 8. Source Device Processes ARP Reply Message : Thiết bị nguồn nhận được

gói tin reply và xử lý bằng cách lưu trường Sender Hardware Address trong gói reply như

địa chỉ phần cứng của thiết bị đích.

Bước 9. Source Device Updates ARP Cache : Thiết bị nguồn update vào ARP cache

của mình giá trị tương ứng giữa địa chỉ network và địa chỉ datalink của thiết bị đích. Lần

sau sẽ không còn cần tới request.

Page 21: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

B. Ứng Dụng

Lập trình mô phỏng mô hình mạng Token BUS LAN

1. Mạng cục bộ (LAN):

Kết nối các máy tính đơn lẻ thành mạng nội bộ, tạo khả năng trao đôi thông tin

và chia sẻ tài nguyên trong cơ quan xí nghiệp. Trong khuôn khổ bài tập lớn ta xét

mô hình mạng Token – Bus LAN

Mạng hình bus hoạt động theo kiểu quảng bá ( broadcast). Tất cả các node truy

nhập chung trên một đường truyền vật lí có đầu cuối ( BUS). Phương thức truy

nhập đường truyền được sử dụng trong mạng hình BUS là Token bus hoặc

CSMA/CD.

2. Phương pháp Token Bus

Phương pháp truy nhập có điểu khiển dùng kỹ thuật “chuyển thẻ bài” để cấp

phát quyền truy nhập đường truyền. Thẻ bài (Token) là một đơn vị dữ liệu đặc

biệt, có kíchthước và có chứa các thông tin điều khiển trong các khuôn dạng. Thẻ

bài dùng để quản lí và điều khiển quá trình truyền tải thông tin của các trạm trên

bus.Ta xét một ví dụ về Token bus:

Page 22: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Nguyên lý: Để cấp phát quyền truy nhập đường truyền cho các trạm đang có nhu

cầu truyền dữ liệu,một thẻ bài được lưu chuyển trên một vòng logic thiết lập bởi

các trạm đó. Khi một trạm nhận được thẻ bài thì nó có quyền sử dụng đường

truyền trong một thời gian định trước. Trong thời gian đó nó có thể truyền một

hoặc nhiều đơn vị dữ liệu. Khi đã hết dữ liệu hay hết thời đoạn cho phép, trạm

phải chuyển thẻ bài đến trạm tiếp theo trong vòng logic. Như vậy công việc phải

làm đầu tiên là thiết lập vòng logic (hay còn gọi là vòng ảo) bao gồm các trạm

đang có nhu cầu truyền dữ liệu được xác định vị trí theo một chuỗi thứ tự mà trạm

cuối cùng của chuỗi sẽ tiếp liền sau bởi trạm đầu tiên. Mỗi trạm được biết địa chỉ

của các trạm kề trước và sau nó. Thứ tự của các trạm trên vòng logic có thể độc

lập với thứ tự vật lý.Các trạm không hoặc chưa có nhu cầu truyền dữliệu thì không

được đưa vào vòng logic và chúng chỉ có thể tiếp nhận dữ liệu.Ta sẽ mô tả hoạt

động của sơ đồ trên bằng hình ảnh với giả thiết như hình vẽ:

Page 23: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Hình a: Bus và vòng logic

Hình b:Sắp xếp theo thứ tự giảm dần của địa chỉ trạm

Hình c:Trạm 112 không có nhu cầu gửi dữ liệu nó chuyển thẻ bài đến trạm 90

Hình d:Trạm 90 không có nhu cầu gửi dữ liệu nên chuyển thẻ bài đến trạm 70

Hình e:Trạm 70 gửi dữ liệu đến trạm 112

Page 24: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Hình f:Trạm 70 gửi thẻ bài đến trạm 45

Lưu ý rằng:Trong cấu hình bus thì việc sắp xếp dựa trên các địa chỉ của trạm ví dụ

như sau:

Trong hình vẽ dưới đây, các trạm A, E nằm ngoài vòng logic, chỉ có thể tiếp nhận

dữ liệu dành cho chúng.

Mỗi trạm chứa ID của phần tử logic hiện thời(logical predecessor) và ID

của phần tử kế tiếp(logical successor).Ví dụ:

Page 25: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Vấn đề quan trọng là phải duy trì được vòng logic tuỳ theo trạng thái thực

tế của mạng tại thời điểm nào đó. Cụ thể cần phải thực hiện các chức năng sau:

Bổ sung một trạm vào vòng logic: các trạm nằm ngoài vòng logic cần được

xem xét định kỳ để nếu có nhu cầu truyền dữ liệu thì bổ sung vào vòng

logic.

Loại bỏ một trạm khỏi vòng logic: Khi một trạm không còn nhu cầu truyền

dữliệu cần loại nó ra khỏi vòng logic để tối ưu hoá việc điều khiển truy

nhập bằng thẻ bài

Quản lý lỗi: một số lỗi có thể xảy ra, chẳng hạn trùng địa chỉ (hai trạm đều

nghĩ rằng đến lượt mình) hoặc “đứt vòng” (không trạm nào nghĩ đến lượt

mình)

Khởi tạo vòng logic: Khi cài đặt mạng hoặc sau khi “đứt vòng”, cần phải

khởi tạo lại vòng.

Các giải thuật cho các chức năng trên có thể làm như sau:

Bổ sung một trạm vào vòng logic, mỗi trạm trong vòng có trách nhiệm định

kỳtạo cơ hội cho các trạm mới nhập vào vòng. Khi chuyển thẻ bài đi, trạm

sẽ gửi thông báo “tìm trạm đứng sau” để mời các trạm (có địa chỉ giữa nó

và trạm kế tiếp nếu có) gửi yêu cầu nhập vòng.Nếu sau một thời gian xác

định trước mà không có yêu cầu nào thì trạm sẽ chuyển thẻ bài tới trạm kề

sau nó như thường lệ.Nếu có yêu cầu thì trạm gửi thẻ bài sẽghi nhận trạm

yêu cầu trở thành trạm đứng kề sau nó và chuyển thẻ bài tới trạm mới

này.Nếu có hơn một trạm yêu cầu nhập vòng thì trạm giữ thẻ bài sẽ phải

lựa chọn theo giải thuật nào đó. Ta sẽ minh họa giải thuật này bằng hình vẽ

sau:

Page 26: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Trạm 4 gửi bản tin Solicit successor1(myID, mySucc) đến nút 1:

Nút 2 muốn tham gia vòng= gửi trả lời:

Nút 2 đã được thêm vào sẽ gửi bản tin Set successor():

Nút vừa thêm vào phải làm cho nút kế sau(nút 1) biết đến nó:

Page 27: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Loại một trạm khỏi vòng logic: Một trạm muốn ra khỏi vòng logic sẽ đợi

đến khi nhận được thẻ bài sẽ gửi thông báo “nối trạm đứng sau” tới trạm kề

trước nó yêu cầu trạm này nối trực tiếp với trạm kề sau nó.Ta sẽ minh họa

bằng sơ đồ sa u:

Nút 4 sẽ gửi bản tin Set successor(my Successor) tới predecessor

của nó.

Nút được khai báo sẽ làm cho chính nó biết được nút kế tiếp mới:

Page 28: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

�Quản lý lỗi: Để giải quyết các tình huống bất ngờ. Chẳng hạn, trạm đó

nhận được tín hiệu cho thấy đã có các trạm khác có thẻ bài. Lập tức nó phải

chuyển sang trạng thái nghe (bị động, chờ dữ liệu hoặc thẻ bài). Hoặc sau

khi kết thúc truyền dữ liệu, trạm phải chuyển thẻ bài tới trạm kề sau nó và

tiếp tục nghe xem trạm kề sau đó có hoạt động hay đã bị hư hỏng.Nếu trạm

kề sau bị hỏng thì phải tìm cách gửi các thông báo để vượt qua trạm hỏng

đó, tìm trạm hoạt động để gửi thẻ bài.

Khởi tạo vòng logic: Khi một trạm hay nhiều trạm phát hiện thấy đường

truyền không hoạt động trong một khoảng thời gian vượt quá một giá trị

ngưỡng (time out) cho rước - thẻ bài bị mất (có thể do mạng bị mất nguồn

hoặc trạm giữ thẻ bài bị hỏng). Lúc đó trạm phát hiện sẽ gửi đi thông báo

“yêu cầu thẻ bài” tới một trạm được chỉ định trước có trách nhiệm sinh thẻ

bài mới và chuyển đi theo vòng logic.

Ưu nhược điểm của phương pháp

Độ phức tạp của phương pháp dùng thẻ bài lớn hơn nhiều so với phương

pháp truy cập ngẫu nhiên CSMA/CD, xử lí đơn giản hơn. Trong điều kiện tải nhẹ

phương pháp thẻ bài có hiệu quả không cao do một trạm có thể đợi khá lâu mới

đến lượt ( có thẻ bài ) . Ngược lại: trong điều kiện tải nặng phương pháp dùng thẻ

bài hiệu quả hơn so với CSMA/CD. Ưu điểm lớn nhất của phương pháp dùng thẻ

bài là khả năng điều hòa lưu thông trong mạng bằng cách cho phép các trạm

truyền số lượng lớn đơn vị dữ liệu khác nhau khi nhận được thẻ bài bằng cách lập

chế độ ưu tiên cấp phát cho các trạm cho trước.

Chuẩn Token Bus – LAN là IEEE 802.4 trước đây nó thường được sử dụng

trong công nghiệp nhưng hiện nay hầu như không còn được sử dụng nữa

3. Th c hiện mô ph ng:

Để làm rõ hoạt động của sự hoạt động của Token bus nhóm em đã sử dụng

công cụ mô phỏng là NS2 một công cụ khá phổ biến và hiệu quả cho việc mô

phỏng mạng.Giải thuật cho mô phỏng Token bus bằng NS2 của nhóm em là:

Tạo một đối tượng mô phỏng,thiết lập băng thông là 0.5 Mb và kích thước

gói là 700.

Định nghĩa màu sắc khác nhau cho các luồng dữ liệu.

Page 29: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Tạo 7 nút để thiết lập hình dạng mạng,các nút được đánh số từ 0 đến

6,và gán nhãn “Sender”, “Receiver”.

Mở file bám vết nam(nam trace file) và định nghĩa thủ tục finish sau

khi đóng file bám vết và chạy nam trên file bám vết.

Tạo một liên kết 2 hướng giữa các nút và khởi tạo vị trí của các nút

cho việc thiết lập sơ đồ mạng LAN.

Thiết lập lien kết TCP giữa một vài nút và áp dụng các ứng dụng FTP

(FTP Application) trên UDP.

Thiết lập kết nối UDP giữa một vài nút và áp dụng ứng dụng ứng

dụng CBR (CBR Application) trên UDP.

Thiết lập các sự kiện cho việc mô phỏng mạng Token bus (dựa theo

lý thuyết) và xem đồ thị lưu lượng đã tính toán được.

Kết quả của việc mô phỏng:

Page 30: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Lưu lượng

Page 31: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

Chạy mô phỏng

Và dưới đây là source toàn bộ chương trình(gồm 1 file là Tokenbus.tcl):

#--------------------------------------------------------------------------------------

#---Tên file : Tokenbus.tcl

---Công cụ mô phỏng NS2

#---Mô phỏng mạng Token bus

---Tạo đối tượng mô phỏng mới-----------------------------------------------

set ns [new Simulator]

#--------------------------------------------------------------------------------------

---Thiết lập bang thong là 0.5Mb

set Bandwidth "0.5Mb"

---Thiết lập kích thước gói là 700

Page 32: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

set packetsize 700

---Thiết lập khoảng thời gian là 0.004

set intval 0.004

---Khai báo các màu sắc cần dùng khi mô phỏng

$ns color 1 magenta

$ns color 2 seagreen

$ns color 3 deepskyblue

$ns color 4 brown

$ns color 5 salmon

---Khai báo các nút cần dùng cho mô phỏng(dùng vòng lặp) ta dùng 7 ---

nút

foreach i "0 1 2 3 4 5 6" {

set n$i [$ns node]

}

---Thiết lập màu sắc cho 7 nút vừa khai báo ở trên

$n0 color "navy"

$n1 color "salmon"

$n2 color "seagreen"

$n3 color "deepskyblue"

$n4 color "steelblue"

$n5 color "steelblue"

$n6 color "steelblue"

---Gán nhãn cho các nút (nút gửi,nút nhận)

$ns at 0.0 "$n0 label Sender"

$ns at 0.0 "$n1 label Receiver1"

$ns at 0.0 "$n2 label Receiver2"

$ns at 0.0 "$n3 label Receiver3"

---Tạo file phục vụ chức năng bám vết dữ liệu của NAM (network

#---simulation

set nf [open tokenbus.nam w]

$ns namtrace-all $nf

---Mở file bám vết

Page 33: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

set f [open tokenbus.tr w]

$ns trace-all $f

---Tạo kết nối giữa các nút:-------------------------------------------------

---Tạo kết nối giữa nút 0 và nút 5 với bang thông(0.5Mb) kiểu lien kết ---

là 2 chiều

---tùy chọn Droptail: nếu dung lượng của bộ đệm của hàng đợi đầu ra

---vượt quá thì gói tin cuối cùng sẽ bị loại

$ns duplex-link $n0 $n5 $Bandwidth 30ms DropTail

---Định ngĩa kết nối giữa các nút (tương tự phần trên)

$ns duplex-link $n5 $n2 $Bandwidth 30ms DropTail

$ns duplex-link $n4 $n1 $Bandwidth 30ms DropTail

$ns duplex-link $n4 $n5 $Bandwidth 30ms DropTail

$ns duplex-link $n5 $n6 $Bandwidth 30ms DropTail

$ns duplex-link $n6 $n3 $Bandwidth 30ms DropTail

---Thiết lập vị trí các nút--------------------------------------------------------

$ns duplex-link-op $n0 $n5 orient down

$ns duplex-link-op $n5 $n2 orient down

$ns duplex-link-op $n4 $n1 orient down

$ns duplex-link-op $n4 $n5 orient right

$ns duplex-link-op $n5 $n6 orient right

$ns duplex-link-op $n6 $n3 orient down

---Đặt kích thước hàng đợi cho liên kết (n4-n5) là 10

$ns queue-limit $n4 $n5 10

---Thiết lập các phiên kết nối TCP--------------------------------------------

---Tạo một con trỏ "tcp1" cho tác nhânTCP(một đối tượng trong NS)

set tcp1 [new Agent/TCP]

---Định nghĩa nút nguồn cho kết nối TCP(nút 0)

$ns attach-agent $n0 $tcp1

Page 34: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

---Tạo con trỏ và nút nguồn(tương tự phần trên)

$tcp1 set fid_ 1 ;

set tcp2 [new Agent/TCP]

$ns attach-agent $n1 $tcp2

$tcp2 set fid_ 1 ;

set tcp3 [new Agent/TCP]

$ns attach-agent $n2 $tcp3

$tcp3 set fid_ 1 ;

set tcp4 [new Agent/TCP]

$ns attach-agent $n3 $tcp4

$tcp4 set fid_ 1 ;

set tcp5 [new Agent/TCP]

$ns attach-agent $n0 $tcp5

$tcp5 set fid_ 1 ;

set tcp6 [new Agent/TCP]

$ns attach-agent $n1 $tcp6

$tcp6 set fid_ 1 ;

set tcp7 [new Agent/TCP]

$ns attach-agent $n2 $tcp7

$tcp7 set fid_ 1 ;

set tcp8 [new Agent/TCP]

$ns attach-agent $n3 $tcp8

$tcp8 set fid_ 1 ;

set tcp9 [new Agent/TCP]

$ns attach-agent $n0 $tcp9

$tcp9 set fid_ 1 ;

set tcp10 [new Agent/TCP]

$ns attach-agent $n1 $tcp10

$tcp10 set fid_ 1 ;

set tcp11 [new Agent/TCP]

$ns attach-agent $n2 $tcp11

$tcp11 set fid_ 1 ;

set tcp12 [new Agent/TCP]

$ns attach-agent $n3 $tcp12

$tcp12 set fid_ 1 ;

---Định nghĩa hoạt động của nút TCP đích và gán nó tới các con trỏ----

Page 35: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

---Định nghĩa hoạt động của nút TCP đích và gán nó tới các trỏ sink1

set sink1 [new Agent/TCPSink]

---Định nghĩa nút đích

$ns attach-agent $n1 $sink1

---Tương tự phần trên

set sink2 [new Agent/TCPSink]

$ns attach-agent $n2 $sink2

set sink3 [new Agent/TCPSink]

$ns attach-agent $n3 $sink3

set sink4 [new Agent/TCPSink]

$ns attach-agent $n0 $sink4

set sink5 [new Agent/TCPSink]

$ns attach-agent $n1 $sink5

set sink6 [new Agent/TCPSink]

$ns attach-agent $n2 $sink6

set sink7 [new Agent/TCPSink]

$ns attach-agent $n3 $sink7

set sink8 [new Agent/TCPSink]

$ns attach-agent $n0 $sink8

set sink9 [new Agent/TCPSink]

$ns attach-agent $n1 $sink9

set sink10 [new Agent/TCPSink]

$ns attach-agent $n2 $sink10

set sink11 [new Agent/TCPSink]

$ns attach-agent $n3 $sink11

set sink12 [new Agent/TCPSink]

$ns attach-agent $n0 $sink12

---Tạo kết nối giữa nút nguồn và đích-----------------------------------------

---Tạo kết nối giữa tcp1 và sink1

$ns connect $tcp1 $sink1

---Tạo kết nối giữa nút nguồn và nút đích

$ns connect $tcp2 $sink2

Page 36: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

$ns connect $tcp3 $sink3

$ns connect $tcp4 $sink4

$ns connect $tcp5 $sink5

$ns connect $tcp6 $sink6

$ns connect $tcp7 $sink7

$ns connect $tcp8 $sink8

$ns connect $tcp9 $sink9

$ns connect $tcp10 $sink10

$ns connect $tcp11 $sink11

$ns connect $tcp12 $sink12

---Thiết lập một phiên kết nối FTP trên TC---------------------------------

set ftp1 [new Application/FTP]

$ftp1 attach-agent $tcp1

set ftp2 [new Application/FTP]

$ftp2 attach-agent $tcp2

set ftp3 [new Application/FTP]

$ftp3 attach-agent $tcp3

set ftp4 [new Application/FTP]

$ftp4 attach-agent $tcp4

set ftp5 [new Application/FTP]

$ftp5 attach-agent $tcp5

set ftp6 [new Application/FTP]

$ftp6 attach-agent $tcp6

set ftp7 [new Application/FTP]

$ftp7 attach-agent $tcp7

set ftp8 [new Application/FTP]

$ftp8 attach-agent $tcp8

set ftp9 [new Application/FTP]

$ftp9 attach-agent $tcp9

set ftp10 [new Application/FTP]

$ftp10 attach-agent $tcp10

set ftp11 [new Application/FTP]

$ftp11 attach-agent $tcp11

set ftp12 [new Application/FTP]

$ftp12 attach-agent $tcp12

---Thiết lập phiên kết nối UDP và các phiên kết nối CBR dựa trên UDP

Page 37: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

#---UDP----------------------------------------------------------------------------

---Thiết lập phiên kết nối UDP0

set udp0 [new Agent/UDP]

$ns attach-agent $n1 $udp0

---Gán nhãn để có thể nhận ra chúng với các màu khác nhau

---Gán cho kết nối UDP một số nhận dạng luồng bằng "2"

$udp0 set fid_ 2 ;

---Gán cho kết nối UDP một số nhận dạng luồng bằng "4"

$tcp7 set fid_ 4 ;

---Thiết lập phiên kết nối CBR dựa trên UDP

set cbr0 [new Application/Traffic/CBR]

$cbr0 attach-agent $udp0

set null0 [new Agent/Null]

$ns attach-agent $n3 $null0

$ns connect $udp0 $null0

#---Thiết lập kích thước gói CRB0

$cbr0 set packetSize_ $packetsize

---Thiết lập khoản thời gian của CRB0

$cbr0 set interval_ $intval

---Thiết lập các UDP và CRB củaUDP(tương tự phần trên)

set udp1 [new Agent/UDP]

$ns attach-agent $n3 $udp1

$udp1 set fid_ 2 ;

$tcp8 set fid_ 4 ;

set cbr1 [new Application/Traffic/CBR]

$cbr1 attach-agent $udp1

set null1 [new Agent/Null]

$ns attach-agent $n0 $null1

$ns connect $udp1 $null1

$cbr1 set packetSize_ $packetsize

$cbr1 set interval_ $intval

set udp2 [new Agent/UDP]

$ns attach-agent $n3 $udp2

$udp2 set fid_ 3 ;

Page 38: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

$tcp12 set fid_ 4;

set cbr2 [new Application/Traffic/CBR]

$cbr2 attach-agent $udp2

set null2 [new Agent/Null]

$ns attach-agent $n0 $null2

$ns connect $udp2 $null2

$cbr2 set packetSize_ $packetsize

$cbr2 set interval_ $intval

---Thiết lập các sự kiện theo thời gian----------------------------------------

---Các sự kiện của thẻ bài

$ns at 0.05 "$ftp1 start"

$ns at 0.13 "$ns detach-agent $n0 $tcp1;$ns detach-agent $n1 $sink1"

$ns at 3.0 "finish"

$ns at 0.14 "$ftp2 start"

$ns at 0.20 "$ns detach-agent $n1 $tcp2;$ns detach-agent $n2 $sink2"

$ns at 3.0 "finish"

$ns at 0.23 "$ftp3 start"

$ns at 0.30 "$ns detach-agent $n2 $tcp3;$ns detach-agent $n3 $sink3"

$ns at 3.0 "finish"

$ns at 0.33 "$ftp4 start"

$ns at 0.40 "$ns detach-agent $n3 $tcp4;$ns detach-agent $n0 $sink4"

$ns at 3.0 "finish"

$ns at 0.42 "$ftp5 start"

$ns at 0.50 "$ns detach-agent $n0 $tcp5;$ns detach-agent $n1 $sink5"

$ns at 3.0 "finish"

$ns at 0.51 "$ftp6 start"

$ns at 0.60 "$ns detach-agent $n1 $tcp6;$ns detach-agent $n2 $sink6"

$ns at 3.0 "finish"

$ns at 0.62 "$ftp7 start"

$ns at 0.69 "$ns detach-agent $n2 $tcp7;$ns detach-agent $n3 $sink7"

$ns at 3.0 "finish"

$ns at 0.725 "$ftp8 start"

$ns at 0.78 "$ns detach-agent $n3 $tcp8;$ns detach-agent $n0 $sink8"

$ns at 3.0 "finish"

$ns at 0.83 "$ftp9 start"

Page 39: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

$ns at 0.90 "$ns detach-agent $n0 $tcp9;$ns detach-agent $n1 $sink9"

$ns at 3.0 "finish"

$ns at 0.93 "$ftp10 start"

$ns at 1.0 "$ns detach-agent $n1 $tcp10;$ns detach-agent $n2 $sink10"

$ns at 3.0 "finish"

$ns at 1.03 "$ftp11 start"

$ns at 1.1 "$ns detach-agent $n2 $tcp11;$ns detach-agent $n3 $sink11"

$ns at 3.0 "finish"

$ns at 1.13 "$ftp12 start"

$ns at 1.2 "$ns detach-agent $n3 $tcp12;$ns detach-agent $n0 $sink12"

$ns at 3.0 "finish"

---Các sự kiện của gửi gói dữ liệu

$ns at 0.621 "$cbr0 start"

$ns at 0.69 "$cbr0 stop"

$ns at 0.726 "$cbr1 start"

$ns at 0.78 "$cbr1 stop"

$ns at 1.131 "$cbr2 start"

$ns at 1.2 "$cbr2 stop"

---Định nghĩa thủ tục kết thúc chương trình "finish"------------------------

proc finish {} {

---Từ khóa global dùng để cho biết chúng ta đang dùng các biến được ---

khai báo ngoài thủ tục

global ns nf

---Phương thức simulator "flush-trace" sẽ đổ các trace vào các file

#---tương ứng

$ns flush-trace

---Đóng file bám vết "nf"

close $nf

---Thực thi hàm awk để tính lưu lượng

exec awk {

{

if(($1=="-" && $5=="tcp") || ($1=="-" && $5=="cbr")) {

print $2 "\t" $11

}

Page 40: BTL Mang May Tinh []

Nguồn: http://itepress.com/forum/ns-f53.html => Download source code mô phỏng

ns2,hướng dẫn học ns2

}

} tokenbus.tr > throughput.data

---Thông tin nhóm viết bài tập lớn--------------------------------------------

---Xóa màn hình

exec clear >@ stdout

---Lệnh puts để hiển thị.

puts "\n NHÓM DTTKN-ET1K53 \n "

puts "\n MÔ PHỎNG TOKEN BUS \n"

puts "\n DANH SÁCH THÀNH VIÊN NHÓM DTTKN-ET1K53 \n"

puts "\n Nguyễn Đức Dũng.....SHSV20080497.......Lớp điện tử 1 K53\n"

puts "\n Trần Danh Nam..........SHSV 20081837....Lớp điện tử 1 K53\n"

puts "\n Vũ Văn Tiệp...............SHSV 20082677....Lớp điện tử 1 K53\n"

puts "\n Nguyễn Trọng Toàn..SHSV 20082707.....Lớp điện tử 1 K53\n"

puts "\n Nguyễn Văn Kiệm.....SHSV 20081462.....Lớp điện tử 1 K53\n"

---Thực thi chương trình NAM

exec nam tokenbus.nam &

---Vẽ đồ thị với dữ liệu từ awk đã tính

exec xgraph throughput.data &

---Kết thúc ứng dụng và trả về số 0 như trạng thái của hệ thống

exit 0

}

---Chạy mô phỏng---------------------------------------------------------------

$ns run

---Mô phỏng được viết bởi nhóm DTTKN-ET1K53-----------------------