project [mangmaytinh]

48
ĐẠI HC BÁCH KHOA  NI  V IN ĐIN TỬ  -  V IN THÔNG ĐỀ TÀI: TÌM HIU LP LIÊN K T DỮ  LIU TRONG MÔ HÌNH 7 LP OSI VÀ MÔ PHNG MNG TOKEN BUS LAN Nhóm bài t  p l ớ n: 1. Nguy  n Thái Hoàng 2.  Đinh Duy Khánh 3.  Đặng Trung Kiên Th y giáo h ướ ng dn: TS. Trn Quang Vinh - 20091164 - 20091433 - 20091500 HÀ NI - 2013

Upload: khanh-dinh

Post on 29-Oct-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 1/48

ĐẠI HỌC BÁCH KHOA HÀ NỘI  V IỆN ĐIỆN TỬ  -  V IỄN THÔNG 

ĐỀ TÀI: TÌM HIỂU LỚP LIÊN K ẾT DỮ LIỆU TRONG MÔ HÌNH 7 LỚP OSI 

VÀ MÔ PHỎNG MẠNG TOKEN BUS LAN

Nhóm bài tậ p lớ n:

1. Nguy  ễn Thái Hoàng 2. Đinh Duy Khánh3. Đặng Trung Kiên 

Thầ y giáo hướ ng dẫn:

TS. Trần Quang Vinh- 20091164- 20091433- 20091500

HÀ NỘI - 2013

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 2/48

1

MỤC LỤC

I. CÁC VẤN ĐỀ LIÊN KẾ T LỚ P DỮ LIỆU ........................................... 3 

1.1. Mô hình OSI .......................................................................................................... 3 

1.2. Các chức năng của lớ  p Data Link ...................................................................... 3 1.2.1. Điều khiển liên k ết logic (Logical Link Control - LLC) ...................... 4 1.2.2. Điều khiển truy cậ p đườ ng truy ền (Media Access Control – MAC) ..... 4 1.2.3. Đóng khung dữ liệu ...................................................................................... 5 1.2.4. Đánh địa chỉ ................................................................................................... 7 1.2.5. Phát hiện và quản l ý lỗi ................................................................................ 7 

II. PHÁT HIỆN LỖI VÀ SỬ A LỖI ........................................................ 8 2.1. Các phươ ng pháp phát hiện lỗi .......................................................................... 8 

2.1.1. Phươ ng pháp “mã chẵn lẻ” .......................................................................... 8 2.1.2. Phươ ng pháp phát hiện lỗi kiểm tra tổng thể ......................................... 9 2.1.3. Phươ ng pháp CRC ....................................................................................... 9 

2.2. Quản l ý lỗi và yêu cầu truy ền lại ......................................................................... 9 2.2.1. Cơ chế phát lại ARQ .................................................................................... 9 2.2.2. Cơ chế phát dừng và đợ i ........................................................................... 10 

a. Cơ chế hoạt động của Stop-and-Wait ARQ .......................................... 12 b. Hiệu suất của phươ ng pháp Stop-and-Wait ARQ ............................... 13 

2.2.3. Go-back-N ARQ ........................................................................................ 15 a. Cơ chế hoạt động .......................................................................................... 15 b. Một số chú ý của cơ chế hoạt động ARQ Go-back-N ......................... 18 c. Hiệu suất của cơ chế ARQ Go-back-N ................................................... 18 

2.2.4. Selective repeat ARQ ................................................................................. 19 a. Cơ chế hoạt động .......................................................................................... 19 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 3/48

2

b. Một số chú ý của selective repeat ARQ ................................................... 19 c. Hiệu suất của cơ chế selective repeat ARQ ............................................. 20 

III. ĐIỀU KHIỂN LUỒNG (LINK-LEVEL FLOW CONTROL) .................. 21 3.1. Cửa sổ End-to-End ............................................................................................ 21 3.2. Cửa sổ Hop-by-Hop .......................................................................................... 25 3.3. Phươ ng thức Isarithmic .................................................................................... 27 

IV. CÁC PHƯƠ NG THỨ C TRUYỀN TIN ........................................... 28 4.1. Chế độ bán song công (Half Duplex Ethernet) ........................................... 28 4.2. Chế độ song công Ethernet (Full – Duplex) ................................................ 32 

V. MÔ PHỎNG MẠNG TOKEN BUS LAN ....................................... 34 5.1. Nguyên l ý ............................................................................................................. 34 5.2. Lớ  p giao thức MAC của Token Bus .............................................................. 36 5.3. Chu trình thực hiện ........................................................................................... 38 5.4. Ư u nhượ c điểm của phươ ng pháp Token Bus ............................................. 41 5.5. Thực hiện mô phỏng ......................................................................................... 41 

PHỤ LỤC: MÃ NGUỒN ................................................................... 44 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 4/48

3

I. CÁC VẤN ĐỀ LIÊN KẾ T LỚ P DỮ LIỆU

1.1. Mô hình OSI

Một hình OSI (Open Systems Interconnection) làmột mô hình cho phép hai hệ thống khác nhau bấtkì thông tin v ớ i nhau bất chấ p cấu trúc bên dướ i.Mục đích của mô hình OSI là mở  rộng thông tingiữa hai hệ thống khác nhau mà không cần thay đổilogic phần cứng và phần mền bên dướ i của mỗi hệ thống. Mô hình OSI không phải là một nghi thức,nó chỉ là một mô hình để hiểu và thiết k ế kiến trúc

mạng cho linh động, v ững chắc và liên thông.

Mô hình OSI là cấu trúc phân lớ  p để thiết k ế các hệ thống mạng cho phép thông tin qua tất cả các loạihệ thống máy tính. Nó bao g ồm 7 lớ  p riêng biệt nhưng có mối liên quan v ớ inhau, mỗi lớ  p định nghĩa một phân đoạn xử l ý khi chuy ển dịch thông tin quamạng. Hình 1.1 mô tả mô hình 7 lớ  p của OSI.

1.2. Các chứ c năng của lớ p Data Link Lớ  p này có nhiệm v ụ chia nhỏ dữ liệu đưa xuống từ lớ  p mạng thành các framedữ liệu (một frame thườ ng dài từ vài trăm byte đến hàng ngàn byte) để truy ền đi và tổ chức nhận sao cho đúng thứ tự các frame. Lớ  p liên k ết dữ liệu liên quanđến sự truy ền, kiểm tra lỗi và điều khiển luồng dữ liệu. Chức năng chính của lớ  pliên k ết dữ liệu họat động như một lướ i chắn bảo v ệ cho các lớ  p cao hơ n, điềukhiển quá trình truy ền và nhận. Kiểm tra lỗi và điều khiển lớ  p v ật l ý như là chứcnăng chính để đảm bảo các lớ  p trên nhận dữ liệu từ lớ  p mạng không có lỗi.

Chuẩn IEEE 802 chia lớ  p liên k ết dữ liệu thành hai lớ  p con là: Logical Link Control (LLC) và Media Access Control (MAC).

Lớ  p Data Link cung cấ p các cách thức v ề chức năng và phươ ng pháp cho việctruy ền tải dữ liệu giữa 2 điểm. Lớ  p Data Link có 5 chức năng:

§  Điều khiển liên k ết logic.§  Điều khiển truy cậ p đườ ng truy ền.§  Đóng khung dữ liệu.

§  Đánh địa chỉ.§  Phát hiện lỗi

Hình 1.1: Mô hình OSI 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 5/48

4

1.2.1. Điều khiển liên k ế t logic (Logical Link Control - LLC)

Điều khiển liên k ết logic thườ ng đc xem như một lớ  p con của lớ  p Data Link (DL), chứ không phải là một chức năng của Data Link. Lớ  p con LLC này có

liên quan chính đến việc phối hợ  p những giao thức để g ửi dữ liệu trên lớ  p conđiều khiển truy cậ p (Media Access Control – MAC). LLC thực hiện nhiệm v ụ này bằng cách cắt dữ liệu đc g ửi thành những frame nhỏ hơ n và thêm thông tinmô tả vào các frame này, g ọi là header.

1.2.2. Điều khiển truy cập đường truyền (Media Access Control – MAC)

Lớ  p con MAC nằm ở  lớ  p 2 trong mô hình OSI. Có chức năng là giải quy ếttranh chấ p cho môi trườ ng dùng chung. Nó bao g ồm các quy định đồng bộ,kiểm soát lỗi cần thiết để chuy ển thông tin từ v ị trí này đến v ị trí khác, cũng 

như các địa chỉ v ật l ý của trạm để đảm bảo khung dữ liệu đượ c truy ền nhậnđúng trạm.

MAC Control là 1 lớ  p con (sublayer) tùy chọn nằm trong lớ  p Data Link. Nó

đượ c sử dụng chung v ớ i lớ  p con CSMA/CD MAC. MAC Control cung cấ pkhả năng điều khiển thờ i gian thực và thao tác hoạt động của lớ  p con MAC.Lớ  p con MAC Control sử dụng các dịch v ụ không k ết nối (connectionless) củalớ  p con MAC ở phía dướ i để truy ền khung điều khiển và khung dữ liệu. MACControl không cung cấ p bất k  ỳ cơ chế nào để đảm bảo khung truy ền không bị mất mát. Các cơ chế để đảm bảo truy ền khung không bị mất mát, như truy ền lạicác khung bị lỗi, bị hủ y bỏ…, sẽ  đượ c MAC Control Client (Logic link control…) hổ trợ . Vì hoạt động của MAC Control là tùy chọn, nên MAC

Control Client không thể nhận biết đượ c sự tồn tại của thực thể MAC Controltrong một trạm.

Hoạt động của lớ  p con MAC control trong suốt đối v ớ i CSMA/CD MAC. Ở mạng Ethernet lớ  p con MAC sử dụng phươ ng thức truy cậ p CSMA/CD(Carrier Sense multiple access with collision detect) để truy cậ p kênh truy ền v ớ i2 chế độ truy ền là: song công (full duplex) và bán song công (half duplex). Khicó nhiều ng ườ i sử dụng cùng truy cậ p 1 kênh truy ền dùng chung mà không cóquy luật thì sẽ dẫn đến xung đột. Điều này sẽ dẫn đến dữ liệu sẽ bị sai và trở  

thành nhiễu. Do đó một mạng LAN cần có một cơ chế để quản l ý lưu lượ ng, tối

Hình 1.2: Lớp con DataLink  

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 6/48

5

thiểu hóa các xung đột và cực đại hóa các khung đượ c phân phối thành công.Cơ  chế truy cậ p đượ c dùng trong mạng Ethernet theo chuẩn IEEE-802.3 làCarrier Sense Multiple Access with Collision Detect (CSMD/CD), tạm dịch là“Đa truy cậ p cảm nhận sóng mang có phát hiện xung đột”. Thiết k ế ban đầu là

 phươ ng thức đa truy cậ p (Multiple Access - MA) trong đó mỗi trạm truy cậ pđến một liên k ết là ngang bằng nhau và bình quy ền. V ớ i MA thì không có quảnl ý lưu lượ ng, bất cứ trạm nào muốn truy ền thì sẽ truy ền và dựa vào xác nhận để kiểm tra khung đã truy ền là thành công hay không.

Trong một hệ thống CSMA, bất cứ trạm nào muốn truy ền trướ c tiên phải lắng nghe sóng mang bằng cách kiểm tra điện áp. Nếu không có điện áp trên đườ ng truy ền thì đườ ng truy ền xem như là rảnh và nó có thể bắt đầu truy ền. CSMA có

thể giảm thiểu số xung đột nhưng tất nhiên không thể loại bỏ chúng một cáchhoàn toàn. Xung đột v ẫn xả y ra nếu một trạm chưa cảm nhận đượ c tín hiệusóng mang từ một trạm khác nào đó trên đườ ng truy ền do hiện tượ ng trễ củatruy ền sóng. Để khắc phục tình trạng như trên cần phải có bộ phát hiện xung đột Collision Detect – CD. Trong CSMA/CD một trạm muốn phát thì phảichắc chắn là đườ ng truy ền rảnh, rồi mớ i truy ền dữ liệu. Trong lúc truy ền dữ liệu, trạm luôn kiểm tra xem có điện áp cao v ượ t trội hay không, nếu có tức là có xung đột xả y ra. Nếu phát hiện có xung đột, trạm sẽ ng ưng truy ền và đợ i mộtlượ ng thờ i gian ng ẫu nhiên nếu đườ ng truy ền rảnh nó sẽ thực hiện truy ền lại.

1.2.3. Đóng khung dữ liệu

Việc đóng khung giúp thiết lậ p cho dữ liệu đượ c truy ền và đóng gói dữ liệu này  v ớ i thông tin mô tả, g ọi là các header. Có cái gì và có bao nhiêu thong tin trong những header này đc quy ết định bằng giao thức đc dùng trên mạng, như giaothức Ethernet. Cấu trúc của một frame trong giao thức Ethernet theo chuẩnIEEE 802.3 mô tả trong Hình 1.3.

Hình 1.3: Cấu trúc một frame chuẩn IEEE 802.3 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 7/48

6

Preamble chỉ ra sự bắt đầu của một khung truy ền. Nó g ồm một dãy các giá trị bit 0 và 1 xen k ẽ nhau để báo hiệu cho trạm nhận (receiving stations) rằng cókhung đang tớ i. Và nó cũng cung cấ p một phươ ng tiện để đồng bộ hóa những  phần khung nhận của lớ  p v ật l ý nhận v ớ i một luồng bits vào. Preamble bao g ồm

7 bytes: 10101010 - 10101010 - 10101010 - 10101010 - 10101010 - 10101010 - 10101010  

Start Frame Delimiter (SFD) là một chuỗi 8 bit (1 byte) 10101011. Nó theosau Preamble và chỉ ra sự bắt đầu của chuỗi thông tin v ớ i hai bit cuối là 11. Saubyte này chính là địa chỉ.

Destination Address (DA) bao g ồm 6 bytes để xác nhận trạm sẽ nhận khung.Nó chứa địa chỉ v ật l ý (physical address) của đích sắ p đến của gói. Địa chỉ v ật l ý  của hệ thống là một mẫu bit đượ c mã hóa trên NIC (Network Interface Card).

Nếu gói phải đi qua mạng LAN này đến mạng LAN khác để đến đích của nó,trườ ng DA chứa địa chỉ v ật l ý của router nối mạng LAN hiện hành và mạng LAN k ế. Khi gói đạt đến mạng đích, trườ ng DA chứa đại chỉ v ật l ý của thiết bị đích. Trong chuỗi bits này, bit phía bên trái của trườ ng DA chỉ ra địa chỉ đơ n(individual address) nếu là bit 0 hoặc địa chỉ nhóm (group address) nếu là bit 1.Bit thứ hai bên trái chỉ ra DA đượ c quản l ý cục bộ hay quản l ý toàn cục. Những bit còn lại đượ c gán để xác nhận một trạm đơ n, nhóm trạm hoặc tất cả trạmtrên mạng (network).

Source Address (SA) bao g ồm 6 bytes chứa địa chỉ v ật l ý của thiết bị cuối cùng chuy ển tiế p gói. Thiết bị đó có thể là trạm đang g ở i hoặc router mớ i xả y ra nhấtđể nhận và chuy ển tiế p gói. Địa chỉ nguồn thì luôn luôn là địa chỉ đơ n và bit phía trái thì luôn là bit 0.

Length g ồm 2 bytes. Chỉ ra số byte trong PDU (Protocol Data Unit) đang đến.Nếu chiều dài của PDU là cố định, trườ ng này đượ c dung chỉ ra loại hoặc nềncủa các giao thức khác. Ví dụ, Novel và Internet dùng nó để làm rõ nghi thức

mạng đang dung PDU.Datafield g ồm tuần tự n bytes. Chiều dài tối thiểu và lớ n nhất của dữ liệu là từ 46 bytes đến 1500 bytes. Dữ liệu đượ c g ở i qua lớ  p mạng v ớ i một vài thông tinđiều khiển. Nếu dữ liệu có chiều dài ít hơ n 46 byte trong một gói, một cơ chế đặt biệt sẽ đệm để đủ tối thiểu 46 bytes. PDU đượ c tạo ra bở i lớ  p phụ ở trên(LLC) rồi lien k ết đến khung 802.3.

Frame Check Sequence bao g ồm 4 bytes. Một vùng chứa 32 bits mã kiểm tra

lổi và phát hiện sai theo mã CRC-32 và tính trên tất cả các trườ ng (fields) ngoạitrừ Preamble, SFD, FCS.

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 8/48

7

1.2.4. Đánh địa chỉ 

Nhưng đã nói trong phần trên, việc đánh địa chỉ trong lớ  p 2 đc thực hiện v ớ i địachỉ MAC của lớ  p con MAC. Địa chỉ này rất quan trọng và bạn không thể lẫn

lộn nó v ớ i địa chỉ mạng hay địa chỉ IP. Nó giúp liên k ết địa chỉ MAC v ớ i mộtđiểm truy cậ p mạng riêng biệt và mạng tổng thể hay địa chỉ IP liên k ết v ớ i mộtthiết bị tổng thể (ví dụ như một máy tính, server hay router). 

1.2.5. Phát hiện và quản lý lỗi

Bất cứ khi nào dữ liệu đc g ửi trên bất k  ỳ loại phươ ng tiện truy ền dẫn nào, cũng có thể có trườ ng hợ  p dữ liệu sẽ không đc nhận một cách chính xác như khi nóđc g ửi. Điều này có thể xả y ra do nhiều nhân tố như sự truy ền nhiễu, và cũng cóthể do quá trình truy ền tải dữ liệu quá dài làm suy giảm tín hiệu truy ền dẫn.

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 9/48

8

II. PHÁT HIỆN LỖI VÀ SỬ A LỖI

2.1. Các phươ ng pháp phát hiện lỗi

2.1.1. Phương pháp “mã chẵn lẻ”

Các bit chắn lẻ là một ví dụ của một giao thức phát hiện lỗi đơ n giản và đượ cứng dụng rỗng rãi, tuy nhiên hiệu quả của nó rất hạn chế. Một bit chẵn lẻ, đơ ngiản chỉ là một bit đượ c thêm vào một gói dữ liệu. Có hai lựa chọn cho giá trị của bit này. Giá trị nào đc lựa chọn phụ thuộc vào cách thức phát hiện ra bitchẵn lẻ mà nó sử dụng. Có hai cách để phát hiện ra tính chẵn lẻ. Nếu bit chẵn đcsử dụng, khi đó bit chẵn lẻ phải đc đặt giá trị (‘1’ hay ‘0’) để làm cho số lượ ng bit‘1’ trong gói dữ liệu là chẵn. Ng ượ c lại, nếu bit lẻ đc sử dụng, bit chẵn lẻ phải đcđặt giá trị cần thiết để làm cho số lượ ng bit ‘1’ trong gói dữ liệu là lẻ.

Khi sử dụng phươ ng pháp phát hiện lỗi bằng bit chẵn lẻ, bên nhận sẽ kiểm tratất cả các bit ‘1’ trong frame, bao g ồm cả bit chẵn lẻ. Bên nhận sẽ có một vàithiết lậ p cho các bit chẵn và lẻ. Nếu số lượ ng bit ‘1’ trong frame không trùng v ớ ithiết lậ p này, lỗi sẽ đc phát hiện. Phươ ng pháp phát hiện lỗi này có hạn chế bở inếu có một số chẵn những bit lỗi trong frame thì khi đó số bit ‘1’ chẵn hay lẻ sẽ 

đc xác nhận và phươ ng pháp này sẽ không phát hiện ra bất k  ỳ lỗi nào – vì v ậ y cần phải có một phươ ng pháp phát hiện lỗi chính xác hơ n.

Hình 2.1: Phát hiện lỗi bằng EDC 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 10/48

9

2.1.2. Phương pháp phát hiện lỗi kiểm tra tổng thể 

Phươ ng pháp phát hiện lỗi kiểm tra tổng thể cho chúng ta hiệu quả tốt hơ n nếudùng k ết hợ  p v ớ i phươ ng pháp kiểm tra bit chẵn lẻ. phươ ng pháp kiểm tra tổng 

thể, đúng như tên g ọi của nó, v ề cơ bản sẽ kiểm tra tổng số các bit ‘1’ trong góidữ liệu và check giá trị đó v ớ i giá trị tổng thể đã thêm bở i ng ườ i g ửi trong gói dữ liệu. Mặc dù phươ ng pháp kiểm tra tổng thể có thể giúp cho bạn phát hiện lỗimột cách hiệu quả hơ n, tuy nhiên nó v ẫn có nhiều mặt hạn chế. Ví dụ, kiểm tratổng thể đơ n giản không thể phát hiện ra một số những bit lỗi là chẵn vì tổng của chúng bằng 0, một số lượ ng byte nào đó bị thêm vào mà có tổng bằng 0, hay sắ p xế p lại thứ tự các byte trong một gói dữ liệu. Có một vài cách giúp nâng cao,cải tiến phươ ng pháp kiểm tra tổng thể,chẳng hạn như phươ ng pháp kiểm tratổng thể của Fletcher.

2.1.3. Phương pháp CRC

Một trong những phươ ng pháp phát hiện lỗi tốt nhất là Cyclic Redundancy Check (CRC). Phươ ng pháp CRC chuy ển một gói dữ liệu thành một đa thứctrong đó giá trị của hệ số tươ ng ứng v ớ i các bit ở trong gói dữ liệu và sau khi chiađa thức bở i một đa thức định trướ c, hay đa thức chuẩn. Đa thức đó đc g ọi làmột khóa định trướ c, hay khóa chuẩn. Đáp số, chính xác là phần dư của đáp số sẽ đượ c g ửi kèm theo gói dữ liệu đến bên nhận. Bên nhận cũng thực hiện phép

chia đa thức tươ ng tự như bên g ửi v ớ i cùng một khóa chuẩn và check đáp số.Nếu đáp số đúng, khả năng chuy ển thành công gói tin là khá cao và không cólỗi. Nói khá cao bở i vì có nhiều trườ ng hợ  p nhiều đa thức có thể dùng cùng mộtkhóa chuẩn và không phải tất cả các đã thức đều cung cấ p khả năng phát hiệnlỗi tốt như nhau. Theo quy tắc chung, một đa thức càng dài thì khả năng pháthiện lỗi càng cao nhưng những thuật toán trong các đa thức này càng trở nên phức tạ p và cùng v ớ i nhiều khía cạnh k  ỹ thuật công nghệ, nhiều cuộc tranh luậnđã nổ ra để tranh cãi v ề việc làm thế nào để phươ ng pháp này cung cấ p khả năng 

 pháp hiện lỗi tốt nhất.

2.2. Quản lý lỗi và yêu cầu truyền lại

2.2.1. Cơ chế phát lại ARQ

Khi truy ền thông tin trong mạng, thông tin truy ền từ phía phát sang phía thucó thể bị sai lỗi hoặc mất. Trong trườ ng hợ  p thông tin bị mất, cần phải thựchiện truy ền lại thông tin. V ớ i trườ ng hợ  p thông tin bị sai, có thể sửa sai bằng một trong hai cách:

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 11/48

10

Sử a lỗi tr ự c tiế p bên thu (Forward Error Correction – FEC): Phía thu saukhi phát hiện lỗi có thể sửa lỗi trực tiế p ngay bên thu mà không yêu cầu phải phát lại. Để có thể thực hiện đượ c điều này, thông tin trướ c khi truy ền đi phảiđượ c cài các mã sửa lỗi (bên cạnh việc có khả năng phát hiện lỗi, cần có khả 

năng sửa lỗi). Phươ ng pháp này có đặc điểm khi truy ền thông tin có lỗi thìkhông cần thiết phải truy ền lại mà có thể sửa sai ngay tại bên thu. Số lượ ng bitlỗi có thể sửa tùy thuộc vào loại mã sửa sai và số bit sửa sai đượ c thêm vào bảntin. Khi tăng số lượ ng bit sửa sai, số bit sai có thể sửa đượ c tăng lên tuy nhiên tỉ lệ số bit thông tin hữu ích trên tổng số bit lại giảm.

Sử a lỗi bằng cách truy ền lại: Phía thu sau khi kiểm tra và phát hiện có lỗi sẽ  yêu cầu phía phát truy ền lại thông tin. Chỉ các bit phát hiện lỗi đượ c thêm vào

bản tin truy ền đi làm giảm kích thướ c gói tin và tăng hiệu suất truy ền tin.Nhượ c điểm của phươ ng pháp này là khi có lỗi xả y ra thì cần truy ền loại toàn bộ khung thông tin, điều này làm giảm một phần hiệu suất truy ền tin.

V ớ i đặc điểm của hai phươ ng pháp trên, ng ườ i ta thườ ng dùng phươ ng pháp sử  al ỗ i b ằ ng cách truyề n l  ại trong môi trườ ng có tỉ lệ lỗi bit thấ p (truy ền dẫn hữutuy ến) và sử dụng phươ ng pháp sử  a l ỗ i tr ự c tiế  p bên thu trong môi trườ ng có tỉ lệ lỗi bit cao (vô tuy ến). Ngoài ra, để đối phó v ớ i trườ ng hợ  p nhiễu chùm (burstnoise), có thể áp dụng các cơ chế ghép xen k ẽ thông tin (interleaving). Trong bài

này, nhóm tậ p trung vào nghiên cứu cách sửa lỗi bằng cơ chế truy ền lại. Các cơ  chế truy ền lại đượ c chia ra làm 3 loại chính:

§  Cơ chế phát dừng và đợ i (Stop-and-Wait ARQ)§  Cơ chế phát lại theo nhóm (Go-back-N ARQ)§  Cơ chế phát lại có lựa chọn (Selective repeat ARQ)

2.2.2. Cơ chế phát dừ ng và đợi

Trong cơ chế phát lại theo phươ ng pháp dừng và đợ i (Stop-and-Wait ARQ),

 phía phát sẽ thực hiện phát một khung thông tin sau đó dừng lại, chờ phía thubáo nhận. Phía thu khi nhận đúng khung thông tin và xử l ý xong sẽ g ửi báonhận lại cho phía phát. Phía phát sau khi nhận đượ c báo nhận sẽ phát khung thông tin tiế p theo. Phía thu khi nhận khung thông tin và phát hiện sai sẽ g ửibáo sai lại cho phía phát. Phía phát sau khi nhận đượ c báo sai sẽ thực hiện phátlại khung thông tin. Báo nhận đượ c sử dụng cho khung thông tin đúng và đượ cg ọi là ACK (Acknowledgement). Báo sai đượ c sử dụng cho khung thông tin bị sai và đượ c g ọi là NAK (Negative Acknowledgement). Cơ chế dừng và đợ i đượ c

mô ta trong hình 2.2.

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 12/48

11

Phía phát không nhận đượ c thông tin từ phía thu trong hai trườ ng hợ  p: Khung thông tin bị mất, phía thu không nhận đượ c gì và cũng không g ửi thông báo cho phía phát. Phía thu đã nhận đượ c đúng khung thông tin và g ửi ACK rồi, nhưng ACK bị mất; hoặc phía thu nhận đượ c khung thông tin và phát hiện sai và đãg ửi NAK nhưng khung này bị mất.

Để tránh tình trạng phía phát không phát thông tin do chờ ACK (hoặc NAK)từ phía thu, mỗi khi phát một khung thông tin, phía phát sẽ đặt một đồng hồ đếm ng ượ c (time-out) cho khung thông tin đó. Hết khoảng thờ i gian time-out,nếu phía phát ko nhận đượ c thông tin gì từ phía thu thì nó sẽ chủ động phát lạikhung thông tin bị time-out.

Để có thể phân biệt đượ c các khung thông tin v ớ i nhau, cần đánh số kháckhung. Trong trườ ng hợ  p này, chỉ cần dùng một bit để đánh số khung (0 hoặc

1). Ngoài ra, để tránh tình trạng các nhầm lẫn giữa các khung thông tin đượ c phát và báo nhận tươ ng ứng, tất cả các khung đượ c truy ền đi giữa hai phía phát– thu đều đượ c đánh số (0, 1) luân phiên. Số thứ tự khung thông tin từ phía phát sang phía thu nằm trong trườ ng SN (Sequence Number) và số thứ tự củabáo nhận từ phía thu sang phía phát nằm trong trườ ng RN (Request Number).SN  là số thứ tự đượ c khở i tạo ở bên phát, trong khi đó,  RN  là số thứ tự củakhung tiế p theo mà phía thu muốn nhận.  RN  = SN  + 1 trong trườ ng hợ  pkhung đúng (ứng v ớ i ACK), RN = SN trong trườ ng hợ  p phía thu yêu cầu phátlại do khung sai (ứng v ớ i NAK).

Hình 2.2: Cơ chế dừ ng-và-đợi 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 13/48

12

Trên thực tế, thông tin trao đổi giữa hai điểm thườ ng đượ c truy ền theo haichiều, nghĩa là đồng thờ i tồn tại hai kênh truy ền từ phát đến thu và ng ượ c lại.Trong trườ ng hợ  p này, khung ACK/NAK (hay trườ ng  RN ) không cần nằmtrong một khung báo nhận độc lậ p mà có thể nằm ngay trong tiêu đề của khung 

thông tin đượ c truy ền theo chiều từ thu đến phát. Một số giao thức có khung thông tin báo nhận độc lậ p (ACK/NAK) trong khi một số giao thức khác lại sử dụng luôn khung thông tin truy ền theo chiều ng ượ c lại (từ thu sang phát) để thực hiện báo nhận (hay báo lỗi) cho khung thông tin từ phát sang thu.

 a. C ơ chế ho ạt động c ủ a Stop-and-Wait ARQ 

Phía phát – giả sử tại thờ i điểm đầu SN = 0. Nhận gói tin từ lớ  p phía trên và gánSN cho gói tin này. Gửi gói tin SN này trong một khung thông tin có số thứ tự 

là SN. Chờ khung thông tin (không có lỗi, đóng vai trò là khung báo nhận) từ  phía thu.

§  Nếu khung nhận đượ c không có lỗi, và trong trườ ng  Request có RN >SN thì đặt giá trị SN = RN và quay lại bướ c 1.

§  Nếu không nhận đượ c khung thông tin trong một khoảng thờ i gianđịnh trướ c (time-out), thì thực hiện bướ c 2.

Phía thu – giả sử tại thờ i điểm đầu  RN = 0. Khi nhận đượ c một khung thông 

tin (không có lỗi) từ phía phát, chuy ển khung này lên lớ  p phía trên và tăng giátrị  RN lên 1. Trong trườ ng hợ  p nhận đượ c khung thông tin có lỗi, g ửi lại mộtkhung thông tin cho phía phát v ớ i RN đượ c giữ nguyên (khung báo sai - NAK).Khung đượ c g ửi từ phía thu này có thể chứa cả thông tin từ phía thu sáng phía phát chứ không đơ n thuần chỉ dùng cho mục đích báo sai. Hình 2.3 mô tanguyên tắc hoạt động của Stop-and-Wait ARQ khi có sử dụng SN và RN.

Hình 2.3: Cơ chế dừ ng-và-đợi sử dụng SN và RN 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 14/48

13

b. Hiệ u su ấ t c ủ a phươ ng pháp Stop-and-Wait ARQ 

Trườ ng hợ p 1: Giả thiết môi trườ ng không có lỗi, thông tin từ truy ền từ phía phát sang phía thu chỉ chịu ảnh hưở ng của trễ. Hình 2.3 là giản đồ thờ i gian cho

trườ 

ng hợ  p này.

§  T  F  = thờ i gian phát khung thông tin§ 

T  D = trễ truy ền sóng giữa phía phát và phía thu§  T  P  = thờ i gian xử l ý khung thông tin ở phía thu§  T  ACK  = thờ i gian phát khung ACK §  T  P’  = thờ i gian xử l ý khung ACK ở phía phát

Thờ i gian phía phát cần để phát xong khung thông tin là TF.

Tổng thờ i gian cần thiết để truy ền khung thông tin là:

T = T  F +T  D+T  P +T  ACK +T  D+T  P’  

Vì thờ i gian xử l ý khung thông tin T  P  và T  P’  là khá nhỏ nên có thể bỏ qua.Trong trườ ng hợ  p kích thướ c khung thông tin F lớ n hơ n khung báo nhận ACK rất nhiều thì có thể bỏ qua cả TACK . Như v ậ y: T = TF+2TD.

Hiệu suất truy ền:

2

 F 

 F D

T T η =

+ = 1

1+ 2av ớ i a =

 D

 F 

T   

Hình 2.4: Giản đồ thời gian khi truyền tin từ phát sang thu, không có lỗi 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 15/48

14

§  D

d T 

v= v ớ i d  là khoảng cách giữa hai trạm phát và thu; v là v ận tốc

truy ền sóng trong môi trườ ng. v = 3.108 m/s khi truy ền trong không gian tự do.

§   F  LT  R

= v ớ i  L là kích thướ c khung thông tin và  R là tốc độ  đườ ng 

truy ền.

§  Khi đó  Rd a

vL= , a càng nhỏ thì hiệu suất truy ền càng lớ n.

Trườ ng hợ p 2: ở phần trên, để tính toán hiệu suất, chúng ta đã giả thiết môitrườ ng truy ền l ý tưở ng (không có lỗi). Tuy nhiên, môi trườ ng truy ền thực tế luôn có lỗi và đượ c đặc trưng bở i xác suất lỗi p, do đó, hiệu suất truy ền trên thực

tế sẽ nhỏ hơ n so v ớ i trườ ng hợ  p l ý tưở ng.Định nghĩ a xác suất lỗi – Xác suất lỗi  p (0 ≤  p ≤ 1) là xác suất phía thu nhậnđượ c bit 0 khi phía phát truy ền bit 1 (hoặc ng ượ c lại). Xác suất lỗi càng lớ n thìmôi trườ ng truy ền càng không tốt, khi p = 0 thì môi trườ ng truy ền không có lỗi(l ý tưở ng);  p = 1 là khi môi trườ ng truy ền luôn luôn có lỗi (sẽ không dùng để truy ền tin).

Như trên đã trình bày, khi truy ền thông tin trong môi trườ ng có lỗi, có thể xả y 

ra trườ ng hợ  p phải truy ền lại khung thông tin (do lỗi), do đó, hiệu suất trong trườ ng hợ  p này nhỏ hơ n trườ ng hợ  p l ý tưở ng. Gọi  N  R là số khung thông tin phải truy ền cho đến khi đúng ( 1 ≤  N  R ≤ ∞), khi ấ y, hiệu suất của trườ ng hợ  p

không l ý tưở ng sẽ là 'ideal 

reality

 R N 

η η  = . V ấn đề ở  đây là tính đượ c giá trị  N  R. Để đơ n

giản hóa, ta giả thiết ACK và NAK không bị lỗi. Ta thấ y, v ớ i xác suất lỗi là p thì:

 Xác suất để truy ền khung thành công ngay lần đầu là 1-p. 

 Xác suất để truy ền khung đến lần thứ hai mớ i thành công là p(1-p). Tổng quá hoá: xác suất để truy ền khung đến lần thứ i mớ i thành công là:

 pi-1(1-p)

V ậ y:

 N  R= ip

i−1(1−  p) =1

1−  pi=1

∑  

Hiệu suất của phươ ng pháp ARQ dừng và đợ i trong trườ ng hợ  p thực tế:

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 16/48

15

1

1 2

ideal reality

 R

 p

 N a

η η 

= =

+  

Nhận xét: Như phần trên đã trình bày, hiệu suất của phươ ng pháp truy ền theo

cơ chế dừng và đợ i phụ thuộc vào hệ số  Rd 

avL

= , a càng nhỏ thì hiệu suất càng lớ n. Ta thấ y  a sẽ nhỏ khi v.L lớ n hoặc khi R.d nhỏ.

§   R nhỏ – đây là điều không mong muốn khi truy ền thông tin vì trênthực tế, ng ườ i ta mong muốn truy ền tin v ớ i tốc độ đườ ng truy ền càng cao càng tốt.

§  d  nhỏ – tham số khoảng cách giữa phía phát và phía thu thườ ng không thay đổi đượ c do phụ thuộc vào những yêu cầu khách quan bên

ngoài.§  v lớ n – v ận tốc truy ền sóng trong môi trườ ng có các giá trị nhất định

 và rất khó có thể thay đổi.§   L lớ n – có thể tăng kích thướ c khung để tăng hiệu suất. Tuy nhiên

 phươ ng pháp này có nhượ c điểm là thông tin truy ền lại sẽ lớ n nếukhung thông tin ban đầu bị sai. Cũng vì l ý do này mà mỗi môi trườ ng truy ền dẫn nhất định sẽ có kích thướ c khung tối ưu tươ ng ứng.

2.2.3. Go-back-N ARQ

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

V ớ i cơ chế phát lại Go-back-N, phía phát sẽ đượ c phát nhiều hơ n một khung thông tin trướ c khi nhận đượ c báo nhận từ phía thu. Số khung thông tin cực đạimà phía phát có thể phát (k  ý hiệu là W ) đượ c g ọi là kích thướ c cửa sổ. V ớ i cơ  chế hoạt động này, Go-back-N đượ c g ọi là cơ chế cửa sổ trượ t (sliding window).

Mỗi khi phát xong một khung thông tin, phía phát giảm kích thướ c cửa sổ đi 1,khi kích thướ c cửa sổ bằng 0, phía phát sẽ không đượ c phát thêm khung thông 

tin nào nữa (điều này  đảm bảo số khung thông tin đồng thờ i đến phía thukhông v ượ t quá W , và do đó, không v ượ t quá khả năng xử l ý của phía thu).

Mỗi khi phía thu nhận đượ c một khung thông tin đúng và xử l ý xong, phía thusẽ g ửi lại một báo nhận ACK cho phía phát. Khi nhận đượ c báo nhận này, phía phát sẽ tăng kích thướ c cửa sổ W lên 1. Điều này đồng nghĩa v ớ i việc phía phátsẽ đượ c phát thêm một khung nữa, ngoài W khung đã phát trướ c đó, vì phía thuđã xử l ý xong một khung, và như v ậ y, tổng số khung mà phía thu phải xử l ý tạimột thờ i điểm v ẫn không v ượ t quá W .

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 17/48

16

Để có thể phân biệt các khung trên đườ ng truy ền, các khung cần đượ c đánh số thứ tự. Nếu dùng k bit để đánh số thì tổng số khung đượ c đánh số sẽ là 2k (từ 0đến  2k – 1) và do đó, kích thướ c cửa sổ tối đa W max  = 2k (v ề mặt l ý thuy ết).Hình 2.5 mô tả nguyên tắc hoạt động của cơ chế cửa sổ trượ t.

Trong trườ ng hợ  p l ý tưở ng (không có lỗi xả y ra) thì cơ chế cửa sổ trượ t đảm bảosố khung thông tin từ phía phát đến phía thu không v ượ t quá kích thướ c cửa sổ.Trong trườ ng hợ  p này, không có sự phân biệt giữa Go-back-N và selective

repeat (và chúng  đượ c g ọi chung là sliding window). Khi có lỗi xả y ra, việctruy ền lại các khung lỗi của cơ chế cửa sổ trượ t đượ c thực hiện theo hai cáchkhác nhau: Go-back-N - phía phát sẽ thực hiện phát lại khung thông tin bị sai và tất cả các khung thông tin khác đã đượ c truy ền, tính từ khung bị sai hoặcSelective repeat: phía phát sẽ chỉ phát lại các khung thông tin bị sai.

Khung thông tin bị lỗi – có thể xả y ra một trong ba trườ ng hợ  p:

Hình 2.5: Cơ chế cử a sổ trượt 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 18/48

17

§  Phía phát đã phát khung i, phía thu đã thu đúng các khung từ  i – 1 tr ở v ề tr ướ c. Lúc này phía thu sẽ g ửi NAK i ( RN = i) cho phía phátđể báo lỗi cho khung  i. Khi phía phát nhận đượ c  NAK i, nó sẽ thựchiện phát lại khung  i và tất cả các khung sau i (nếu các khung đó đã

đượ c phát).§  Khung thông tin i bị mất trên đườ ng truy ền, giả sử phía thu nhận

đượ c khung i+1, lúc này phía thu thấ y các khung đến không theo thứ tự (nhận đượ c i+1 trướ c khi nhận đượ c i) và hiểu rằng khung i đã mất.Phía thu sẽ g ửi lại NAK i cho phía phát.

§  Khung thông tin i bị mất trên đườ ng truy ền và phía phát không g ử i thêm khung thông tin nào nữ a. Lúc này phía thu không nhậnđượ c gì và không g ửi lại ACK hay NAK. Phía phát chờ  đến time-out

của khung thông tin i và thực hiện truy ền lại khung này.Khung ACK bị lỗi – ACK bị lỗi có thể xả y ra một trong hai trườ ng hợ  p:

§  Phía thu nhận đượ c khung i và g ử i ACK(i+1) v ề phía phát và ACK này bị mất trên đườ ng truy ền. Giả sử trướ c khi time-out của khung i xả y ra, phía phát nhận đượ c  ACK(i+2) (hoặc  ACK(i+n) v ớ i n > 1)thì phía phát hiểu rằng khung i đã đượ c nhận đúng. K ết luận này đượ cgiải thích như sau: khi phía thu g ửi  ACK(i+2) nghĩa là phía thu đã

nhận đúng (và chấ p nhận) khung  i+1, điều đó cũng đồng nghĩa v ớ i việc phía thu đã nhận đúng khung i. Ng ườ i ta nói cơ chế của Go-back-N sử dụng  cummulative ACK (nghĩa là các ACK sau cũng đồng thờ ibáo nhận cho các khung trướ c đó)

§  Nếu trong khoảng thờ i gian time-out của khung  i, phía phát không nhận đượ c  ACK(i+n) nào cả thì sau time-out, phía phát sẽ phải phátlại khung i (và tất cả các khung sau đó).

Khung NAK bị lỗi – trong trườ ng hợ  p NAK bị lỗi, nghĩa là khung  i bị lỗi,

lúc này phía thu sẽ không nhận thêm một khung nào sau khung i (và cũng sẽ không g ửi báo nhận). V ớ i trườ ng hợ  p này phía phát bắt buộc phải chờ  đếntime-out và thực hiện phát lại khung thông tin i. Để đơ n giản hóa, chúng takhông xem xét trườ ng hợ  p ACK và NAK bị sai. Hình 2.6 minh họa chi tiếtcơ chế Go-back-N ARQ.

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 19/48

18

b. M ột số chú ý c ủ a c ơ chế ho ạt động ARQ Go-back-N 

Trong trườ ng hợ  p phía thu có khả năng xử l ý  W khung thông tin thì không cầnbộ đệm. Phía thu chỉ nhận và xử l ý thông tin theo đúng thứ tự (dựa trên số thứ tự đánh trên các khung). Phía thu chuy ển các gói thông tin lên lớ  p cao hơ n theothứ tự. Phía thu sẽ không nhận khung i+1 nếu chưa nhận đượ c khung i. Điềunày là nguyên nhân khiến phía thu không cần phải có bộ đệm. Phía phát phảilưu tối đa là W khung thông tin trong bộ đệm để chờ ACK.

c. Hiệ u su ấ t c ủ a c ơ chế ARQ Go-back-N Tr ườ ng hợ  p 1: Điều kiện l ý tưở ng. để có thể tính đượ c hiệu suất của phươ ng  pháp ARQ Go-back-N trong trườ ng hợ  p l ý tưở ng, chúng ta dựa trên hiệu suấtcủa phươ ng pháp dừng và đợ i đã biết. Đó là:

1

1 2aη  =

+

trong đó D

F

Ta=

T.

Hiệu suất của phươ ng pháp cửa sổ trượ t lúc này:

2 1window

aη  =

+

khi W < 2a+1 và 1window

η  = khi W ≥ 2a + 1 

Tr ườ ng hợ  p 2: trong trườ ng hợ  p thực tế, do có lỗi xả y ra nên hiệu suất thực tế nhỏ hơ n hiệu suất trong trườ ng hợ  p l ý tưở ng. Hiệu suất:

1

1 2Go back N 

 p

apη 

− −

=

+ , khi W ≥ 2a+1

W(1-p)(2a+1)(1-p+Wp)

Go b ac k N η 

− −

=

, khi W < 2a+1

Hình 2.6: Cơ chế Go-back-N ARQ 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 20/48

19

Nhận xét: Ư u điểm của phươ ng pháp ARQ Go-back-N là hiệu suất cao hơ n so v ớ i phươ ng pháp ARQ dừng và đợ i. Bên cạnh đó, cơ chế xử l ý thông tin ở phíathu khá đơ n giản và không cần bộ đệm. Tuy nhiên, phươ ng pháp này có nhượ cđiểm là cần truy ền lại quá nhiều khung thông tin trong trườ ng hợ  p khung 

thông tin bị lỗi. Để khắc phục nhượ c điểm này, ng ườ i ta đề xuất sử dụng cơ chế ARQ phát lại theo yêu cầu (Selective repeat ARQ).

2.2.4. Selective repeat ARQ

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

Tươ ng tự như cơ chế phát lại Go-back-N, cơ chế phát lại có lựa chọn (selectiverepeat ARQ) cũng dựa trên phươ ng pháp cửa sổ trượ t. Phía phát đượ c phép phát tối đa W khung thông tin (kích thướ c cửa sổ) trướ c khi nhận đượ c báo

nhận.

Điểm khác biệt giữa selective repeat và Go-back-N nằm ở cách hai phươ ng thứcnày xử l ý khung thông tin bị lỗi. V ớ i trườ ng hợ  p selective repeat, phía phát sẽ chỉ thực hiện phát lại khung thông tin bị lỗi mà không cần phát lại tất cả cáckhung khác sau khung lỗi nếu như các khung đó không bị sai. Cơ chế này giúptăng hiệu quả sử dụng đườ ng truy ền so v ớ i cơ chế Go-back-N. Hình 2.7 mô tả cơ chế hoạt động của Selective repeat ARQ.

b. M ột số chú ý c ủ a selective repeat ARQ 

Do phía phát chỉ thực hiện phát lại các khung bị lỗi, do đó các khung đến phíathu có thể không theo thứ tự như khi đượ c phát đi ở phía phát. Phía thu phải cókhả năng xử l ý các khung thông tin không theo thứ tự. Do các khung thông tin phải đượ c đưa lên lớ  p trên theo đúng thứ tự nên phía thu phải có bộ đệm để lưutạm các khung thông tin trong khi chờ các khung bị mất hoặc lỗi đượ c phát lại.Phía phát phải thực hiện báo nhận cho tất cả các khung thông tin mà nó nhận

Hình 2.7: Cơ chế Selective

Repeat ARQ 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 21/48

20

đúng. Các khung thông tin không đượ c báo nhận trong khoảng thờ i gian time-out tươ ng ứng sẽ đượ c coi là bị mất hoặc lỗi. Trong trườ ng hợ  p phía thu nhậnđượ c một khung thông tin sai, phía thu có thể g ửi NAK để báo lỗi và yêu cầutruy ền lại khung đó (selective reject).

c. Hiệ u su ấ t c ủ a c ơ chế selective repeat ARQ 

Tr ườ ng hợ  p 1: l ý tưở ng. Do bản chất của selective repeat là cũng hoạt động dựatrên phươ ng pháp cửa sổ trượ t (giống Go-back-N) nên trong trườ ng hợ  p l ý  tưở ng (không có lỗi), hiệu suất của selective repeat cũng chính là hiệu suất củaGo-back-N và là hiệu suất của phươ ng pháp cửa sổ trượ t khi môi trườ ng không có lỗi. Hiệu suất:

2 1window

aη =

+ , khi W < 2a+1

 và

1window

η  = , khi W ≥ 2a+1

Tr ườ ng hợ  p 2: không l ý tưở ng. Trong trườ ng hợ  p này, hiệu suất của phươ ng  pháp selective repeat sẽ bằng hiệu suất của phươ ng pháp cửa sổ trượ t trong trườ ng hợ  p l ý  tưở ng chia cho số lần phát lại trung bình NR  (tươ ng tự như 

trườ ng hợ  p Go-back-N). Hiệu suất window selective repeat 

 R N 

η η 

= . Tuy nhiên  N  R trong 

trườ ng hợ  p selective repeat khác v ớ i trườ ng hợ  p Go-back-N.Tính  N  R – do bảnchất của việc truy ền lại trong selective repeat hoàn toàn tươ ng tự như trong 

 phươ ng pháp dừng và đợ i nên v ớ i cách tính tươ ng tự, 1

1 R

 N  p

=

. Hiệu suất:

(1 )

2 1 selective repeat 

W p

aη −

=

+ , khi W < 2a+1

1 selective repeat  pη −

= − , khi W ≥ 2a+1

Nhận xét: Cơ chế selective repeat cho hiệu suất hoạt động trên đườ ng truy ềncao hơ n so v ớ i Go-back-N do sử dụng đườ ng truy ền hiệu quả hơ n. Tuy nhiên,cơ chế selective repeat hoạt động phức tạ p hơ n do nó yêu cầu phía thu phải cókhả năng xử l ý các khung thông tin đến phía thu không theo thứ tự. Ngoài ra, phía thu cần phải có bộ đệm để có thể lưu tạm thờ i các khung thông tin này.

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 22/48

21

III. ĐIỀU KHIỂN LUỒNG (LINK-LEVEL FLOW CONTROL)

Điều khiể n luồng là cơ chế nhằm đảm bảo việc truy ền thông tin của phía phátkhông v ượ t quá khả năng xử l ý của phía thu. Điều khiển luồng đượ c chia làm

hai loại:

§  Điều khiển luồng giữa hai nút đầu cuối (end-to-end): nhằm đảm bảonút nguồn (nơ i khở i tạo phiên thông tin) thực hiện truy ền thông tinkhông v ượ t quá khả năng xử l ý của nút đích (nơ i k ết thúc phiên thông tin).

§  Điều khiển luồng giữa hai nút trong mạng (hop-by-hop): là việc thựchiện điều khiển luồng giữa hai nút liên tiế p trên đườ ng đi từ nguồnđến đích.

Cơ chế sử dụng trong cơ chế điều khiển luồng bao g ồm cơ chế “stop and wait” và cơ chế cửa sổ trượ t. Hai phươ ng thức này đã đượ c trình bày đầ y đủ và chi tiếtở phần trên cho nên phần này chúng ta sẽ tậ p trung vào tìm hiểu hai loại điềukhiển luồng là “end-to-end” và “hop-by-hop”.

3.1. Cử a sổ End-to-End

Phươ ng pháp điều khiển luồng theo cửa sổ dựa trên cơ sở phươ ng pháp cửa sổ trượ t ARQ làm việc tại lớ  p liên k ết dữ liệu. Các khung thông tin từ phát sang thu và khung báo nhận, báo lỗi truy ền từ thu sang phát đượ c đánh số thứ tự để  phân biệt, kích thướ c cửa sổ W < 2k  v ớ i k là số bit dùng đánh số phân biệt cáckhung.

X

d

W.X

 ACK quay

lại phía phát

Tr ục thời

gian bên phát

Tr ục thời

gian bên thu

Kích thước

cửa sổ W = 3

 

Hình 3.1: Phát truyền tin liên tục khi W=3 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 23/48

22

Hình 3.1 trình bày mối liên hệ giữa kích thướ c cửa sổ và tốc độ truy ền thông tin. Gọi X là thờ i gian phát một khung thông tin, W là kích thướ c cửa sổ và d là

tổng trễ từ phát đến thu (dùng cho khung thông tin) và từ thu đến phát (dùng cho báo nhận), round-trip delay. Trong hình v ẽ này, kích thướ c cửa sổ W = 3, d ≤ W.X . Như l ý luận trong phần ARQ, lúc này phía phát có thể truy ền thông tinliên tục mà không cần phải dừng lại đợ i. Tốc độ phát thông tin r = 1/X và trong trườ ng hợ  p này, điều khiển luồng không có ý nghĩa (vì phía phát có thể phát tin v ớ i tốc độ cao nhất mà không bị hạn chế).

X

d

W.X

 ACK quaylại phía phát

Tr ục thời

gian bên phát

Tr ục thời

gian bên thu

Kích thước

cửa sổ W = 3

 

Hình 3.2 trình bày trườ ng hợ  p d > W.X , trong trườ ng hợ  p này, ta thấ y đượ c vaitrò của điều khiển luồng. Phía phát thực hiện phát W khung thông tin sau đódừng lại chờ báo nhận ở phía thu, rồi mớ i đượ c phát tiế p. Nói một cách khác,lượ ng thông tin đến phía thu (hay lượ ng thông tin đi vào mạng) đã bị hạn chế 

nhỏ hơ n khả năng phát cực đại của phía phát. Điều này xả y ra khi round-tripdelay lớ n nên khi phía phát thực hiện phát xong W gói tin rồi nhưng báo nhậnđầu tiên v ẫn chưa quay trở lại. Lúc này phía phát phải ng ừng phát và chờ báonhận vì W  đã giảm xuống 0 (xem lại phần nguyên tắc hoạt động của cửa sổ trượ t). Nếu phía phát luôn có thông tin để phát thì tốc độ phát tin trung bìnhsẽ là W/d gói/s.

K ết hợ  p cả hai trườ ng hợ  p hình 3.1 và 3.2, ta tính đượ c tốc độ phát tin cực đại

khi k ể đến round-trip delay sẽ là1 W

, dr   X 

⎧ ⎫=

⎨ ⎬⎩ ⎭. Khi d tăng (có tắc nghẽn), điều

Hình 3.2: Phát truyền tin không liên tục khi W=3 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 24/48

23

khiển luồng sẽ thực hiện vai trò của nó và giớ i hạn tốc độ truy ền tin. Khi không có tắc nghẽn xả y ra, d giảm và r tăng lên.

Round-trip Delay d

   T         ố  c

       đ       ộ    t   h

   ô  n  g

   t   i  n

  p   h   á   t  r

1/X

Tốc độ phát cực đại

W/d

0 W.X

 Điểm bắt đầu có

điều khiển luồng

 

Hình 3.3 trình bày quan hệ của tốc độ truy ền dẫn và round-trip delay trong cơ  chế điều khiển luồng. Tốc độ truy ền tin sẽ bị giảm khi xả y ra tắc nghẽn (trễ 

tăng). Ngoài ra, cơ chế cửa sổ phản ứng khá nhanh v ớ i tắc nghẽn (trong khoảng thờ i gian truy ền W gói). Sự phản ứng nhanh v ớ i tắc nghẽn k ết hợ  p v ớ i thông tinđiều khiển ít là ưu điểm chính của cơ chế cửa sổ so v ớ i các cơ chế khác.

Nguyên tắc chọn kích thướ c cử a sổ. Trong trườ ng hợ  p không có tắc nghẽn xả y ra, kích thướ c cửa sổ đượ c chọn đủ lớ n để đảm bảo tốc độ truy ền thông tinđạt r = 1/X gói/s.

Quy ướ c:

§  d’ = round-trip delay khi trễ hàng đợ i xấ p xỉ 0 (không có tắc nghẽn) –đây là trễ tính từ lúc phát gói thông tin ở bên phát và nhận ACK từ  phía thu

§   N = số nút mạng dọc theo đườ ng truy ền từ phát đến thu§   D = trễ truy ền sóng dọc theo đườ ng truy ền§  d’ = 2.N.X + 2.D

Để đảm bảo tốc độ truy ền tin tối đa (khi không có tắc nghẽn), cần đảm bảo

W.X ≥

d’ hay 

W ≥

2.N + 2.D/X . Ta nhận thấ y:

Hình 3.3: Quan hệ giữ a tốc độ truyền dẫn và round-trip delay 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 25/48

24

§  Khi D < X thì W ≈ 2.N – kích thướ c cửa sổ không phụ thuộc vào trễ truy ền sóng.

§  Khi D >> X thì W ≈ 2.D/X – kích thướ c cửa sổ không phụ thuộc vàochiều dài đườ ng đi.

§  Trong trườ ng hợ  p có tắc nghẽn xả y ra, thì trễ round-trip d > d’ (d baog ồm cả trễ hàng đợ i do tắc nghẽn)

Phươ ng pháp cửa sổ End-to-End có những hạn chế đó là khó đảm bảo trễ nằmtrong giớ i hạn cho phép khi lưu lượ ng vào mạng tăng. Giả sử trong mạng có n tiến trình điều khiển luồng v ớ i kích thướ c cửa sổ tươ ng ứng là W 1 , W  2 , ... W n.

Lúc này, tổng số gói tin trong mạng sẽ lài

1

.W

n

i

i

 β =

∑ trong đói

 β  là một hệ số trong 

khoảng 0 đến 1 phụ thuộc vào thờ i gian trễ của ACK. Theo định luật Little’s

thì trễ trung bình của gói tin trong mạng sẽ lài

1

.W

n

i

iT 

 β 

λ 

=

=

∑trong đó λ  là thông 

lượ ng.

Khi số lượ ng các tiến trình cần điều khiển luồng tăng lên (n tăng) thì λ tiến đếngiá trị cực đại là tốc độ của các đườ ng liên k ết và do đó, là giá trị không đổi (giátrị này phụ thuộc vào mạng, v ị trí của điểm phát và thu cũng như giải thuật định

tuy ến). Như v ậ y giá trị trễ T sẽ tăng t ỷ lệ v ớ i số lượ ng tiến trình đượ c điều khiểnluồng (chính xác ra là kích thướ c cửa sổ của chúng). Như v ậ y, nếu số lượ ng tiếntrình là rất lớ n thì hệ thống mạng không đảm bảo giữ giá trị T nằm trong mộtgiớ i hạn nhất định và không có khả năng tránh tắc nghẽn một cách triệt để.

Một giải pháp có thể sử dụng là giảm kích thướ c cửa sổ để có thể giảm trễ khimạng hoạt động ở tình trạng nặng tải (có thể xả y ra tắc nghẽn). Giải pháp này có thể áp dụng ở một mức độ nào đó tuy nhiên nó nếu giá trị này quá nhỏ thì việc truy ền thông tin lại không hiệu quả.

Trên thực tế, ng ườ i ta sử dụng phươ ng pháp cửa sổ thích ứng (adaptive window) để thực hiện truy ền tin. Trong phươ ng pháp này, kích thướ c cửa sổ cóthể thay đổi tùy thuộc tình trạng của mạng. Trong trườ ng hợ  p mạng ít tải, kíchthướ c cửa sổ có thể lớ n để cho phép truy ền thông tin v ớ i tốc độ cao. Khi tải trênmạng tăng, kích thướ c cửa sổ đượ c giảm đi nhằm tránh tắc nghẽn. Phươ ng phápcửa sổ thích ứng sẽ đượ c trình bày trong phần sau.

Một hạn chế nữa của phươ ng pháp cửa sổ end-to-end là chưa đảm bảo đượ c

tính công bằng cho ng ườ i dùng trong tất cả các trườ ng hợ  p. Như phần trên đãnói, để đảm bảo truy ền tin tốt nhất cho một k ết nối, kích thướ c cửa sổ t ỷ lệ v ớ i

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 26/48

25

số nút mạng trên đườ ng đi từ nguồn đến đích cũng như t ỷ lệ v ớ i trễ truy ền sóng dọc theo đườ ng truy ền (cũng phụ thuộc vào khoảng cách). Như v ậ y, trong trườ ng hợ  p có tắc nghẽn, nếu trên một đườ ng truy ền có nhiều k ết nối cùng hoạtđộng thì k ết nối nào có khoảng cách nguồn – đích lớ n sẽ  đượ c sử dụng tài

nguyên nhiều hơ n (do kích thướ c cửa sổ lớ n hơ n và số lượ ng gói tin đến nút đó và đượ c chấ p nhận sẽ nhiều hơ n).

Để  đảm bảo đượ c tính công bằng, ng ườ i ta dùng cơ  chế round-robin (xử l ý   vòng) cho tất cả các k ết nối cùng sử dụng tài nguyên của một nút mạng. Lúcnày, các k ết nối đượ c coi như có độ ưu tiên như nhau và đượ c xử l ý luân phiêndựa theo k ết nối chứ không dựa trên t ỷ lệ gói tin đến.

3.2. Cử a sổ Hop-by-HopTrong cơ chế điều khiển luồng hop-by-hop, việc điều khiển luồng đượ c thựchiện giữa hai nút mạng k ế tiế p trên đườ ng truy ền. Mỗi nút mạng có các cửa sổ độc lậ p dùng cho các kênh làm việc khác nhau (kênh ảo). Nguyên tắc hoạt động của cơ chế này tươ ng tự như điều khiển luồng kiểu end-to-end nhưng chỉ ápdụng cho một chặng. Trong trườ ng hợ  p truy ền thông tin cự ly không quá xa(v ớ i đa phần các cơ  chế truy ền tin, trừ thông tin v ệ tinh) kích thướ c cửa sổ thườ ng là 2 hoặc 3 (do số nút mạng thông tin phải đi qua là 1, trễ truy ền sóng 

không đáng k ể).

Ta tạm g ọi nút có thông tin cần truy ền là nút nguồn, nút có nhận thông tin lànút đích (các nút dọc trên đườ ng truy ền, và có thể bao g ồm cả phía phát và phíathu). Mục đích chính của điều khiển luồng hop-by-hop là đảm bảo bộ đệm củanút đích không bị quá tải bở i quá nhiều gói tin đến (như trong trườ ng hợ  p end-to-end). Điều này đượ c thực hiện v ớ i việc nút đích giảm tốc độ g ửi ACK v ề chonút nguồn. Trong trườ ng hợ  p tổng quát, nút đích có bộ đệm v ớ i dung lượ ng W gói cho mỗi liên k ết và nó sẽ g ửi ACK cho nút nguồn nếu trong bộ đệm còn chỗ trống. Nút đích sẽ xóa gói tin trong bộ đệm nếu nó đã đượ c truy ền thành công đến nút k ế tiế p trên đườ ng truy ền hay đã đi ra khỏi mạng.

Giả sử có ba nút liên tiế p trên mạng là (i-1, i, i+1). Giả sử bộ đệm của i đã bị đầ y  v ớ i W gói tin. Nút i sẽ g ửi ACK cho nút i-1 nếu nó đã g ửi thành công một góitin cho nút i+1 (lúc đó bộ đệm của nút i mớ i đượ c giải phóng và có chỗ cho mộtgói tin). Nút i thực hiện đượ c điều này nếu nó nhận đượ c một ACK từ nút i+1.

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 27/48

26

Trong trườ ng hợ  p có tắc nghẽn xả y ra tại một nút nào đó, bộ đệm của nút này bị đầ y bở i W gói tin và theo hệ quả, bộ đệm của các nút phía trướ c nút đó cũng sẽ dần dần bị đầ y. Hiện tượ ng này đượ c g ọi là backpressure và đượ c trình bày trên hình 3.4.

Ư u điểm của phươ ng pháp hop-by-hop đượ c trình bày trên hình 1-14. Trong trườ ng hợ  p xấu nhất, giả sử tắc nghẽn xả y ra tại đườ ng nối cuối cùng của tuy ến

truy ền (đườ ng nối thứ n) thì tổng số gói tin nằm trong mạng sẽ là n.W (bộ đệmcủa mỗi nút sẽ bị điền đầ y bở i W gói tin). Trong trườ ng hợ  p này, số lượ ng góitin sẽ đượ c phân bố đều ở bộ đệm của các nút và do đó dung lượ ng bộ đệm cầnthiết ở mỗi nút sẽ nhỏ hơ n trườ ng hợ  p end-to-end rất nhiều (chú ý rằng trong trườ ng hợ  p end-to-end, nếu tổng số gói tin vào mạng, hay kích thướ c cửa sổ, làn.W thì dung lượ ng bộ đệm tươ ng ứng ở mỗi nút cũng phải là n.W ).

Một ưu điểm khác nữa của phươ ng pháp hop-by-hop chính là cho phép thựchiện tính công bằng. V ớ i việc phân các gói tin của một k ết nối dọc theo các nút

mạng mà k ết nối phải đi qua, ta có thể tránh đượ c tình trạng ở tại một nút, k ếtnối v ớ i khoảng cách nguồn – đích lớ n sẽ chiếm hết tài nguyên của các k ết nốikhác. Trong trườ ng hợ  p hop-by-hop, kích thướ c cửa sổ của các k ết nối là xấ p xỉ bằng nhau do đó tốc độ thông tin đến là không chênh lệch và việc sử dụng tàinguyên đượ c đảm bảo công bằng. Điều này không đúng trong trườ ng hợ  p k ếtnối giữa hai nút dùng cho truy ền v ệ tinh. Trong trườ ng hợ  p này, do trễ truy ềndẫn khá lớ n nên kích thướ c cửa sổ của k ết nối v ệ tinh có thể lớ n hơ n kích thướ ccửa sổ của các k ết nối khác dẫn đến tình trạng không công bằng.

Hình 3.4: Cơ chế backpressure trong điều khiển luồng hop-by-hop 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 28/48

27

3.3. Phươ ng thứ c Isarithmic

Phươ ng thức này cũng đượ c coi là một biến thể của cơ chế điều khiển luồng theo cửa sổ v ớ i một cửa sổ duy nhất đượ c dùng cho toàn mạng. Việc điều khiển

luồng đượ c thực hiện bở i việc giớ i hạn số lượ ng gói tin đi vào mạng thông qua việc cấ p phát một số lượ ng hạn chế thẻ bài. Mỗi một gói tin muốn đi vào mạng cần phải nhận đượ c một thẻ bài ở nút mà gói tin đó vào và trả lại thẻ bài ở nútmà gói tin đó ra khỏi mạng. Như v ậ y, tổng số gói tin tồn tại đồng thờ i trong mạng luôn nhỏ hơ n hoặc bằng tổng số lượ ng thẻ bài, và việc điều khiển luồng đượ c thực hiện.

Tuy nhiên, phươ ng pháp này có những hạn chế nhất định. Nó không đảm bảotính công bằng cho tất cả ng ườ i dùng vì không có những cơ chế nhất định để quản l ý v ị phân phối thẻ bài. Ngoài ra, các thẻ bài có thể bị mất vì những l ý donhất định mà hiện tại chưa có cơ chế để quản l ý số lượ ng thẻ bài tồn tại trong mạng. Vì những l ý do đó, phươ ng thức Isarithmic ít đượ c sử dụng trong thực tế.

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 29/48

28

IV. CÁC PHƯƠ NG THỨ C TRUYỀN TIN

4.1. Chế  độ bán song công (Half Duplex Ethernet)

Half – Duplex Ethernet là mô hình truy ền thống của Ethernet sử dụng giaothức CSMA/CD (Carrier Sense Multiple Access/Collision Detect). V ớ iCSMA/CD hay nhiều hơ n các trạm chia sẽ một đườ ng truy ền chung. Để truy ềnmột frame, một trạm phải chờ  cho một khoảng thờ i gian rảnh trên đườ ng truy ền khi không có một trạm khác đang truy ền. Sau đó nó truy ền frame bằng cách thông báo (broadcast) nó trên đườ ng truy ền để mà nó nghe tất cả các trạmtrên mạng. Nếu một trạm khác cố g ắng truy ền để truy ền dữ liệu tại cùng mộtthờ i điểm, một đụng độ xuất hiện. Trạm truy ền sau đó cố  ý truy ền một Jam để 

bảo đảm tất cả các trạm đượ c thông báo frame truy ền bị lỗi vì một đụng độ.Trạm sau đó giữ cho một khoảng thờ i gian ng ẫu nhiên trướ c khi nổ lực để truy ền lại. Tiến trình đượ c lặ p lại cho đến khi frame truy ền thành công.

Các nguyên tắc cơ bản cho việc truy ền một frame:

§  Mạng đượ c quan sát bở i một “carrier”, hoặc sự hiện diện của một trạmtruy ền. Tiến trình này thì đượ c biết như “carrier sense”.

§  Nếu một carrier tích cực đượ c phát hiện, sau đó đườ ng truy ền đượ c trì

hoãn. Trạm tiế p tục quan sát mạng cho đến khi carrier ng ừng.§  Nếu một carrier không đượ c phát hiện, và khoảng không có carrier thì

bằng hoặc lớ n hơ n khỏang thờ i gian chung giữa hai khung dữ liệu(interframe gap), sau đó trạm lặ p tức bắt đầu truy ền lại frame.

§  Trong khi trạm đang truy ền frame, nó quan sát đườ ng truy ền có đụng độ hay không.

§  Nếu một đụng độ đượ c phát hiện, trạm truy ền ng ừng g ửi khung dữ liệu (frame data) và g ửi một chuỗi jame 32 bits. Nếu đụng độ đượ c

 phát hiện rất sớ m trong lúc truy ền frame, thì trạm truy ền sẽ hoànthành việc truy ền preamble của frame trướ c khi bắt đầu truy ền chuỗi jame. Chuỗi jame đượ c phát đi để đảm bảo chiều dài của đụng độ  đủ để thông báo tớ i các trạm khác.

§  Sau khi g ửi chuỗi jame, trạm truy ền chờ một khoảng thờ i gian ng ẫunhiên đượ c chọn từ bộ phát random number trướ c khi bắt đầu tiếntrình truy ền lại. Tiến trình này g ọi là “backoff”. Có thể một đụng độ đượ c lặ p lại bị giảm đi do trạm đang đụng độ chờ một khoảng thờ i

gian ng ẫu nhiên trướ c khi truy ền lại.

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 30/48

29

§  Nếu đụng độ xuất hiện lại, thì việc truy ền đượ c lặ p lại, nhưng thờ i giantrì hoãn ng ẫu nhiên đượ c tăng v ớ i mỗi nỗ lực truy ền lại. Điều này làmgiảm khả năng đụng độ của trạm khác.

§  Tiến trình này lặ p lại đến khi một trạm truy ền một frame không có

đụng độ. Ngay khi một trạm thành công truy ền một frame, nó sẽ resetlại collision counter nó sử dụng để tăng thờ i gian backoff sau mỗi lầnđụng độ đã lặ p lại.

Slot time là một thông số cho mạng hoạt động half – duplex Ethernet. Nó đượ c xác định là 512 bits time cho mạng Ethernet hoạt động tại 10 và 100 Mb/s, và4096 bit time cho Gigabit Ethernet. Để mà cho mỗi nơ i truy ền tin cậ y trong  việc phát hiện đụng độ, thờ i gian truy ền nhỏ nhất cho một frame phải ít nhất là

một slot time, và thờ i gian yêu cầu cho đụng độ để truy ền đến tất cả các trạmtrên mạng phải nhỏ hơ n một slot time. Vì thế, một trạm không thể hoàn thànhtruy ền frame trướ c khi phát hiện rằng một đụng độ đã xuất hiện.

Các tín hiệu đã truy ền bở i các khoảng trì hoãn đụng độ các trạm Ethernet khichúng truy ền suốt trên mạng. Các khoảng truy ền bao g ồm thờ i gian yêu cầu chotín hiệu truy ền qua các phần cáp, và thờ i gian trì hoãn đụng độ logic khi các tínhiệu chuy ển qua các thành phần điện trong Network Interface Cards (NICs) vàcác hub. Đối v ớ i các phần cáp dài hơ n và nhiều hub trên trạm, nó cho tín hiệu

truy ền từ một mạng cuối đến mạng khác. Thờ i gian một tín hiệu truy ền giữahai trạm có khoảng cách xa nhất trong mạng  đượ c biết như là “propagationdelay” lớ n nhất của mạng.

Một trạm phát hiện rằng frame mà nó đang truy ền đã bắt g ặ p một đụng độ, cáctín hiệu của nó phải truy ền qua mạng đến trạm khác phát hiện các đụng độ.Trạm này phải truy ền một chuỗi jame để chỉ một đụng độ đã đượ c phát hiện.Chuỗi jame này phải truy ền qua lại mạng trướ c khi đượ c phát hiện bở i trạmđang truy ền. Tổng một vòng truy ền tối đa (“round trip propagation delay) và

thờ i gian yêu cầu để truy ền một chuỗi jame là các thành phần xác định chiều dàicủa Ethernet slot time.

Slot time là một thông số quan trọng vì:

§  512 bits slot time thiết lậ p kích cỡ nhỏ nhất của một Ethernet frame là64 bytes. (4096 bits slot time cho Gigabit Ethernet yêu cầu một vùng mở  rộng  đượ c thêm vào frame để kích cỡ  truy ền nhỏ nhất là 512bytes). Bất k  ỳ frame có chiều dài ít hơ n 64 bytes thì đượ c xem như là

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 31/48

30

một “collision fragment” hay “runt frame”, và tự động đượ c bỏ ra bở itrạm nhận.

§  Slot time thiết lậ p một giớ i hạn kích cỡ của một mạng trong giớ i hạn phần chiều dài cáp tối đa và số lần lặ p lại có thể trên đườ ng dẫn. Nếu

kích cỡ  của mạng quá lớ n, một hiện tượ ng  đượ c biết như “latecollisions” có thể xuất hiện. Đụng độ trễ đượ c xem như một lỗi trong mạng bở i vì đụng độ đến quá trễ trong việc truy ền frame tự động đối xử bở i chức năng điều khiển truy cậ p đườ ng truy ền Ethernet. Frameđang đượ c truy ền sẽ bị bỏ, yêu cầu một phần mềm ứng dụng phát hiệnmất và bắt đầu truy ền lại.

§  Slot time đảm bảo nếu có một đụng độ sắ p xuất hiện, nó sẽ đượ c pháthiện trong 512 bits đầu tiên (4096 cho Gigabit Ethernet) của frame

truy ền. Một phần cứng Ethernet đơ n giản giữ frame truy ền lại sau mộtđụng độ.

§  Đối v ớ i Gigabit Ethernet, slot time phải đượ c tăng từ 512 đến 4096bits time. Vì Gigabit Ethernet có tốc độ data cao hơ n, tín hiệu truy ềnchỉ cho một khoảng cách rất nhỏ trong phạm vi 512 bits time. Tại tốcđộ một slot time 512 bits sẽ  đượ c hỗ trợ một mạng kích cỡ  tối đakhoảng 20 mét. Một mạng nhỏ là không thực tế, vì thế chấ p nhận của việc mở rộng một sóng mang đượ c giớ i thiệu tăng slot time đến 4096

bits. Việc tăng kích cỡ của slot time và việc giớ i hạn số lần lặ p lại trong một mạng, kích cỡ một mạng 200 mét có thể đượ c hỗ trợ bở i GigabitEthernet.

Backoff là quá trình xử l ý một trạm đang truy ền tính toán chờ bao lâu sau mộtđụng độ trướ c khi nỗ lực truy ền lại frame. Nếu tất cả các trạm đã chờ cùng khoảng thờ i gian trướ c khi truy ền lại, sau đó đụng độ khác sẽ chắc chắn xuấthiện. Điều này đượ c tránh bằng cách mỗi trạm phát một số ng ẫu nhiên để tínkhoảng thờ i gian nó phải chờ trướ c khi kiểm tra sóng mang. Khoảng thờ i gian

này đượ c biết như là “backoff delay” của trạm.

Thuật backoff thực hiện trong Ethernet là “truncated binary exponentialbackoff”. Sau một đụng độ, mỗi trạm phát một số ng ẫu nhiên nằm trong tầmchỉ rõ của giá trị. Sau đó nó chờ số slot time trướ c khi nỗ lực truy ền lại. Tầm giátrị tăng theo số mũ sau mỗi lần truy ền lại bị hỏng. Nỗ lực lần đầu có tầm là 0đến 1, lần thứ hai là 0 đến 3, lần ba là 0 đến 7 và cứ thế tiế p tục. Nếu đụng độ lặ p lại, thì tầm tiế p tục mở rộng đến 10 nỗ lực khi nó đi từ 0 đến 1023. Sau đótầm của giá trị nằm giữa từ 0 đến 1023. Nếu một trạm không thành công trong  việc truy ền sau 16 lần nỗ lực, thì MAC thông báo “excessive collision error”.

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 32/48

31

Frame đượ c truy ền lại sau đó bị bỏ đi, ta cần phần mềm ứng dụng phát hiện mấtframe và bắt đầu một sự truy ền lại.

Các k ết quả binary exponential backoff trong khoảng trì hoãn nhỏ nhất trướ c

khi truy ền lại khi lưu lượ ng trên LAN là thấ p. Khi lưu lượ ng cao, đụng độ lặ p lạilà nguyên nhân làm tầm tăng lên, vì thế làm giảm cơ hội đụng độ sau đó. Trong một mạng, nơ i mà lưu lượ ng có mức độ cao, đụng độ lặ p lại sẽ bắt đầu gây ra lỗiquá đụng độ (excessive collision error) đượ c phát đi. Lỗi quá đụng độ để chỉ rarằng lưu lượ ng tải đã tăng đến điểm mà nó không thể có khả năng đượ c giữ trênmột mạng Ethernet đơ n lẻ.

Capture Effect. Khi mạng đang hoạt động dướ i một tải lớ n, thuật toán binary exponential backoff có thể trình bày một sự không công bằng đượ c biết như 

“capture effect”. V ấn đề nả y sinh từ việc nắm giữ của collision counter. Mỗitrạm sẽ cậ p nhật bộ đếm đụng độ một cách độc lậ p của nó và chỉ sau một nỗ lựctruy ền lại. Chỉ có thành công bộ đếm đụng độ trở v ề zero sau khi phát một góithành công. Điều này cho thuận lợ i một trạm đơ n bật cho phép nó “capture”mạng đượ c một khoảng thờ i gian mở rộng.

Một ví dụ của hiệu ứng bắt g ồm hai trạm có nhiều data để g ửi và có thể g ửi datanhanh như đượ c cho phép. Cả hai đụng độ v ớ i nỗ lực truy ền lại đầu tiên vàchọn backoff là 0 hoặc 1. Trạm A chọn 0, và trạm B chọn 1. Trạm A truy ền lạitrong lúc trạm B chờ một slot time. Sau khi trạm A hoàn thành việc truy ền củanó và hết khoảng interframe gap, cả hai trạm sẵn sàng truy ền lại và đụng độ xuấthiện. Đây là đụng độ đầu tiên của trạm A đối v ớ i frame này, vì thế nó chọn mộtbackoff là 0 hoặc 1. Tuy nhiên, đây là đụng độ lần thứ hai của trạm B cho framenày, vì thế nó chọn một backoff giữa 0 và 3. Vì v ậ y trạm A có khả năng truy ềncao hơ n trong lúc trạm B chờ lại. Nếu điều này xả y ra thì lấ y số giống như v ậ y vàlại đụng độ, cho nên lấ y các số lẻ cho trạm B (lấ y số chẵn thì xấu hơ n).

Một k ịch bản giống như v ậ y có thể lặ p đi lặ p lại chỉ có thể k ết thúc khi hàng củatrạm A là nỗ lực cuối cùng hoặc khi trạm cuối cùng trạm B tiến tớ i nỗ lực thứ 16. Sau 16 lần nỗ lực trạm B sẽ reset lại bộ đếm đụng độ của nó cho phép nó trở  lại cạnh tranh nhiều hơ n. Nhưng nó cũng bỏ ra frame nó đã nỗ lực truy ền lại, yêu cầu nó xế p hàng frame cho việc truy ền lại bằng phần mềm.

Vào năm 1994 một thuật toán backoff mớ i đượ c g ọi là “binary logarithmarbitration method” (BLAM) đượ c đưa ra để làm giảm v ấn đề hiệu ứng bắt.Một nhóm làm việc IEEE 802.3w đượ c tạo ra để thêm BLAM như một đặc

điểm không bắt buộc cho chuẩn Ethernet. Mặc dù k ết quả mô phỏng chứng 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 33/48

32

minh rằng BLAM đưa ra một cải tiến xác định trên thuật toán binary exponential backoff, công việc để k ết hợ  p nó vào trong chuẩn Ethernet không bao giờ  đượ c hoàn thành vì một thay đổi (dịch) trong rõ nét ở  full – duplexEthernet và thiếu sự chú ý cậ p nhật phần cứng half – duplex.

4.2. Chế  độ song công Ethernet (Full – Duplex)

Tiêu chuẩn IEEE 802.3x xác định một mode thứ hai của hoạt động Ethernet,đượ c g ọi là “full – duplex”, bỏ qua nghi thức CSMA/CD. Nghi thứcCSMA/CD là “half – duplex”. Điều này chỉ rõ rằng một trạm có thể truy ềndata hay nhận data, nhưng không cùng một lúc. Mode full – duplex cho phéphai trạm đồng thờ i chuy ển data trên một liên k ết điểm điểm cung cấ p đườ ng 

truy ền và nhận độc lậ p. Từ đó mỗi trạm có thể truy ền và nhận data cùng mộtlúc, thông lượ ng của liên k ết đượ c g ấ p đôi lên. Một trạm 10 Mb/s hoạt động ở  mode full – duplex cung cấ p băng thông tối đa 20 Mb/s. Một trạm 100 Mb/scung cấ p băng thông 200 Mb/s.

Hoạt động full – duplex bị giớ i hạn đến chuẩn sau:

§  Đườ ng truy ền v ật l ý phải là cáp hỗ trợ truy ền và nhận đồng thờ i màkhông nhiễu. Các phươ ng tiện truy ền chỉ rõ g ặ p yêu cầu này là: 10-

Base-T, 10Base-FL, 100Base-TX, 100Base-FX, 100Base-T2,1000Base-CX, 1000Base-SX, 1000Base-LS, và 1000Base-T. Phươ ng tiện truy ền không thể hỗ trợ full – duplex: 10Base5, 10Base2, 10Base-FP, 10Base-FB và 100Base-T4.

§  Hoạt động full – duplex bị giớ i hạn liên k ết điểm--điểm nối chính xáchai trạm. Từ đó không có sự cạnh trạnh cho việc chia sẽ đườ ng truy ền,đụng độ không có thể xuất hiện và nghi thức CSMA/CD là không cần thiết. Frame có thể đượ c truy ền, giớ i hạn chỉ bở i yêu cầu khoảng cách giữa nhỏ nhất giữa các frame liên tiế p.

§  Cả hai trạm trên lên k ết phải có khả năng và cấu hình cho hoạt động full – duplex.

Hoạt động full – duplex có những thuận lợ i:

§  Thông lượ ng là g ấ p đôi cho phép truy ền và nhận đồng thờ i.§  Hiệu suất của liên k ết tăng bở i sự loại bỏ khả năng đụng độ.§  Các phân đoạn chiều dài thì không giớ i hạn hơ n bở i sự yêu cầu half –

duplex Ethernet đảm bảo đụng độ đượ c truy ền đến tất cả các trạmtrong khoảng yêu cầu 512 bits time. Ví dụ, 100Base-FX đượ c giớ i hạn

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 34/48

33

 phần chiều dài 412 mét trong mode half – duplex, nhưng có thể hỗ trợ   phần chiều dài 2km trong mode full – duplex.

Ở mode full – duplex , chuẩn Ethernet thêm vào hoạt động điều khiển luồng 

(flow control) đó là “PAUSE” frame. PAUSE frame cho phép một trạm cuốitạm thờ i ng ừng lưu thông từ nơ i khác đến trạm.

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 35/48

34

V. MÔ PHỎNG MẠNG TOKEN BUS LAN

5.1. Nguyên lý 

Token bus tuân theo các chuẩn đượ c tạo ra bở i IEEE 802.4,nó là 1 mạng Lanmà ở  đó các trạm trên kênh truy ền hoặc các cây tạo thành 1 vòng lặ p logic.Mỗitrạm đượ c gán số thứ tự theo trình tự đượ c yêu cầu trướ c đó,trạm cuối cùng của vòng lặ p sẽ chuy ển tiế p đến trạm đầu tiên,như hình v ẽ dướ i đây .Mỗi trạm sẽ  phải biết địa chỉ của trạm lặ p trướ c và sau nó trong vòng lặ p logic

Nguyên l ý chung của phươ ng pháp này 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 đượ c thiết lậ p bở i các trạm đó. Khi một trạm nhậnđượ c thẻ bài thì sẽ đượ c phép sử dụng đườ ng truy ền trong một thờ i gian nhấtđịnh. Trong khoảng thờ i gian đó nó có thể truy ền một hay nhiều đơ n v ị dữ liệu.Khi đã truy ền xong dữ liệu hoặc thờ i gian đã hết thì trạm đó phải chuy ển thẻ bàicho trạm tiế p theo. Như v ậ y, công việc đầu tiên là thiết lậ p vòng logic (hay còng ọ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ở itrạm đầu tiên. Mỗi trạm sẽ biết địa chỉ của trạm liền trướ c và k ề 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 không đượ c vào trong 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ư các hình 5.1, 5.2, 5.3, 5.4, 5.5 và 5.6.

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

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 36/48

35

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

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

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

Hình 5.5: Trạm 70 gử i dữ liệu tới trạm 112 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 37/48

36

5.2. Lớ p giao thứ c MAC của Token Bus

Khi vòng logic đượ c khở i tạo,thẻ bài sẽ  đượ c g ửi đến địa chỉ của trạm yêucầu,bắt đầu v ớ i trạm có địa chỉ cao nhất .Thẻ bài sẽ chuy ền từ địa chỉ cao xuống địa chỉ thấ p.Mỗi lần trạm yêu cầu 1 thẻ bài,nó có 1 khoảng thờ i gian cố địnhtrong quá trình nó truy ền các khung,và số lượ ng khung có thể truy ền bở i mỗitrạm trong khoảng thờ i gian này sẽ phụ thuộc vào độ dài của mỗi khung.Nếumột trạm không có dữ liệu để chuy ển ,nó sẽ chuy ển thẻ bài đến trạm k ế tiế p mà

không có thờ i gian trễ 

Tiêu chuẩn Token Bus định nghĩa 4 lớ  p ưu tiên cho lưu lượ ng 0,2,4,6 v ớ i 6 làlớ  p cao nhất và 0 là thấ p nhất.Mỗi trạm giữ 4 hàng đợ i bên trong phù hợ  p v ớ i 4lớ  p ưu tiên.Giống như 1 khung đi qua phân lớ  p MAC từ một lớ  p giao thức lớ nhơ n,cấ p độ ưu tiên đã đượ c xác định,và nó đượ c gán cho hàng đợ i phù hợ  p.Khi1 trạm đòi hỏi thẻ bài,khung đượ c truy ền từ 1 trong 4 hàng đợ i theo thứ tự ưutiên một cách chặt chẽ.Mỗi hàng đợ i đượ c phân cho 1 khe thờ i gian để khung trong hàng đợ i đó có thể đượ c truy ền đi.Nếu một hàng  đợ i đặc biệt nào đókhông chứa khung,thẻ bài sẽ ngay lậ p tức trở nên có hiệu lực v ớ i hàng đợ i tiế ptheo.Nếu thẻ bài đến lớ  p 0 và không có phân khung nào chờ  đợ i,nó sẽ ngay lậ ptức chuy ển đến trạm k ế tiế p trong vòng lặ p logic .Toàn bộ quá trình đượ c điềukhiển bở i bộ Timer đã đượ c sử dụng  để cấ p khe thờ i gian cho mỗi lớ  p ưutiên,nếu bất kì hàng đợ i nào trống,khe thờ i gian sẽ đượ c phân cho các hàng đợ icòn lại có nhu cầu sử dụng.

Sự sắ p xế p mức độ ưu tiên đảm bảo gói dữ liệu lớ  p 6 như là 1 phần của băng 

thông,và có thể bở i v ậ y nó đượ c sử dụng để thực hiện một hệ thống điều khiểnthờ i gian thực .Như ví dụ sau, nếu hoạt động  ở 10Mbps và có 50 trạm đượ c

Hình 5.6: A,E nằm ngoài vòng lặp logic nên chỉ có thể nhận dữ liệu dành cho chúng 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 38/48

37

cấu hình,v ậ y nên lưu lượ ng lớ  p 6 đượ c cấ p cho 1/3 băng thông,mỗi trạm đảmbảo lưu lượ ng băng thông ở lớ  p 6 là 67 kbps .Băng thông có độ ưu tiên cao cóthể đượ c dùng để đồng bộ hóa tự động trong 1 chu trình,hoặc thực hiện 1 kênhâm thanh số trong mỗi trạm v ớ i 1 vài băng thông không đượ c sử dụng cho việc

điều khiển thông tin.

Định dạng khung Token Bus đượ c biểu diễn ở trên.Trườ ng Preamble đượ c sử dụng để đồng bộ xung của máy thu.Trườ ng Start Delimeter và End Delimeterđượ c sử dụng để đánh dấu điểm đầu và điểm cuối của khung,và bao hàm 1 kí tự mã hóa tươ ng tự ngoại trừ 0s và 1s mà không thể xuất hiện một cách ng ẫu nhiêntrong khung dữ liệu .Vì lí do này,độ dài của trườ ng là không cần thiết.

Trườ ng Frame Control đồng nhất khung như 1 khung dữ liệu hoặc 1 khung điều khiển .V ớ i khung dữ liệu ,nó bao g ồm cấ p độ ưu tiên của khung ,và có thể bao g ồm chỉ thị đòi hỏi trạm đích phản hồi lại khung nhận đượ c là chính xáchay không chính xác.V ớ i khung điều khiển ,trườ ng chỉ rõ loại khung.

Trườ ng địa chỉ đích và địa chỉ nguồn bao g ồm 2 hoặc 6 byte địa chỉ cho trạmđích và trạm nguồn theo thứ tự tươ ng ứng(một mạng đã cho phải sử dụng 2-byte hoặc 6 byte địa chỉ riêng biệt,không phải là k ết hợ  p cả 2).Nếu 2 byte địa chỉ đượ c sử dụng,trườ ng Data có thể lên đến 8182 bytes.Nếu 6 byte địa chỉ đượ c sử dụng ,nó có thể lên đến 8174 bytes.Checksum đượ c sử dụng để xác định lỗiđườ ng truy ền .Các khung điều khiển khác nhau đượ c biểu diễn bở i bảng trong 

hình 5.8.

Hình 5.7: Định dạng chung của Token Bus 

Hình 5.8: Danh sách khung điều

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 39/48

38

5.3. Chu trình thự c hiện

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ụ:

Việc thiết lậ p vòng logic không khó nhưng việc duy trì nó theo trạng thái thựctế của mạng mớ i là khó. Cụ thể 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ềukhiể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ỉ (haitrạm đều nghĩ rằng đến lượ t mình) hoặc “đứt vòng” (không trạm nàonghĩ đế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 saumộ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

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 40/48

39

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 5.9, 5.10, 5.11, 5.12:

Hình 5.9: Trạm 4 gử i bản tin đế n nút 1 

Hình 5.10: Nế u muốn nút 2 tham gia vòng, nó sẽ gử i trả lời 

Hình 5.11: Nút 2 được thêm vào 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 41/48

40

§  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ơ  đồ sau:

Hình 5.12: Nút vừ a thêm vào phải làm cho nút k ế sau biế t đế n nó 

Hình 5.13: Nút 4 gử i bản tin tới predecessor của nó 

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

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 42/48

41

§  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àitớ 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ácthô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ể domạng bị mất nguồn hoặc trạm giữ thẻ bài bị hỏng). Lúc đó trạm pháthiệ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.

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

Nhượ c điể m: Độ 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ềukiệ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ể đợ ikhá 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ưuthô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 chocác trạm cho trướ c.Đặc biệt phươ ng pháp dùng thẻ bài có hiệu quả cao hơ nCSMA/CD trong trườ ng hợ  p tải nặng.

5.5. Thự c hiện mô phỏng

Để mô phỏng hoạt động của token bus, nhóm em đã sử dụng công cụ mô phỏng là Ns2 là một công cụ khá phổ biến và hiệu quả cho việc mô phỏng mạng. Giảithuật cho mô phỏng Token bus bằng Ns2 của nhóm em là:

Bướ c 1: Tạo một đối tượ ng mô phỏng ,thiết lậ p băng thông là 0.5 Mb và kíchthướ c gói là 800.

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 43/48

42

Bướ c 2: Tạo 7 nút để thiết lậ p hình dạng mạng ,các nút đượ c đánh số từ 0 đến6, trong đó riêng các nút 0,2,4,6 đượ c dán nhãn lần lượ t là TramA, TramB,TramC, TramD tượ ng chưng cho các trạm trong vòng lặ p logic.

Bướ c 3: Mở file bám v ết nam(nam trace file) và định nghĩa thủ tục finish saukhi đóng file bám v ết và chạ y nam trên file bám v ết.

Bướ c 4: 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.

Bướ c 5: Thiết lậ p liên 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.

Bướ c 6: Thiết lậ p các sự kiện cho việc mô phỏng mạng Token bus chia làm 3

trườ ng hợ  p:

§  TH1: Vòng lặ p logic ban đầu g ồm 3 trạm là TramA,TramC,TramDtại các nút 0, 4, 6 dữ liệu sẽ đi theo các thẻ bài di chuy ển trong vòng lặ p logic bắt đầu từ TramC => TramD => TramA.

§  TH2: Vòng lặ p logic đượ c bổ sung thêm TramB(nút 2), khi đó dữ liệusẽ đi theo các thẻ bài di chuy ển trong vòng lặ p logic đi theo chu trìnhTramA => TramB => TramC =>TramD.

§ TH3: Vòng l

ặ p logic b

ớ tđ

i TramC không tham gia chu trình, khiđ

ódữ liệu sẽ đi theo các thẻ bài di chuy ển trong vòng lặ p logic bắt đầu từ TramA đi qua TramB và đến thẳng TramD.

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

Hình 5.15: Chạy mô phỏng 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 44/48

43

Hình 5.16: Biểu đồ lư u lượng 

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 45/48

44

PHỤ LỤC: MÃ NGUỒN#--------------------------------------------------------------------------------------

#---Tên file : Tokenbus.tcl#---Mô phỏng m ạng Tokenbus#---Tạo đối tượ ng mô phỏng m ớ i-----------------------------------------------set ns [new Simulator]#---Thiết lập băng thông là 0.5Mbset Bandwidth "0.5Mb"#---Thiết lập kích thướ c gói là800set packetsize 800#---Thiết lập khoảng thờ i gian là0.004set intval 0.004

#---Khai báo màu sắc cần dùng khimô 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 khimô phỏngforeach i "0 1 2 3 4 5 6" {set n$i [$ns node]}#---Thiết lập màu sắc cần dùng cho

các nút$n0 color "navy"$n1 color "salmon"$n2 color "steelblue"$n3 color "deepskyblue"$n4 color "steelblue"$n5 color "seagreen"$n6 color "steelblue"

#---Gán nhãn cho các trạm $ns at 0.0 "$n0 label TramA"$ns at 0.0 "$n2 label TramB"$ns at 0.0 "$n4 label TramC"$ns at 0.0 "$n6 label TramD"

#---Tạo file phục vụ chức năng bám vết của Nam(network simulation)set nf [open tokenbus.nam w]$ns namtrace-all $nf

#---Mở  file bám vếtset f [open tokenbus.tr w]$ns trace-all $f

#---Tạo kết nối giữa các nút$ns duplex-link $n0 $n1 $Bandwidth30ms DropTail

$ns duplex-link $n1 $n2 $Bandwidth30ms DropTail

$ns duplex-link $n1 $n3 $Bandwidth30ms DropTail$ns duplex-link $n3 $n4 $Bandwidth

30ms DropTail$ns duplex-link $n3 $n5 $Bandwidth30ms DropTail$ns duplex-link $n5 $n6 $Bandwidth30ms DropTail

#---Thiết lập vị trí giữa các nút$ns duplex-link-op $n0 $n1 orientright$ns duplex-link-op $n2 $n1 orientdown$ns duplex-link-op $n1 $n3 orientright$ns duplex-link-op $n3 $n4 orient

down$ns duplex-link-op $n3 $n5 orientright$ns duplex-link-op $n5 $n6 orientup

#---Thiết lập các phiên kết nốiTCP--------------------------------------------#---tạo con trỏ “tcp1” cho tácnhân TCP(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$tcp1 set fid_ 1 ;#---Tạo con trỏ và nút nguồn tươ ngtự cho các phiên kết nối kế tiếpset tcp2 [new Agent/TCP]$ns attach-agent $n2 $tcp2$tcp2 set fid_ 1 ;set tcp3 [new Agent/TCP]$ns attach-agent $n4 $tcp3$tcp3 set fid_ 1 ;set tcp4 [new Agent/TCP]$ns attach-agent $n6 $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 $n2 $tcp6$tcp6 set fid_ 1 ;set tcp7 [new Agent/TCP]$ns attach-agent $n4 $tcp7$tcp7 set fid_ 1 ;set tcp8 [new Agent/TCP]$ns attach-agent $n6 $tcp8$tcp8 set fid_ 1 ;set tcp9 [new Agent/TCP]

$ns attach-agent $n0 $tcp9$tcp9 set fid_ 1 ;set tcp10 [new Agent/TCP]

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 46/48

1

$ns attach-agent $n2 $tcp10$tcp10 set fid_ 1 ;set tcp11 [new Agent/TCP]$ns attach-agent $n4 $tcp11$tcp11 set fid_ 1 ;set tcp12 [new Agent/TCP]

$ns attach-agent $n6 $tcp12$tcp12 set fid_ 1 ;

#---Định nghĩa hoạt động Tcp đíchvà gán nó tớ i các con trỏ sink1set sink1 [new Agent/TCPSink]#---Định nghĩa nút đích$ns attach-agent $n2 $sink1

#---Làm tươ ng tự  đối vớ i các Tcpđích khácset sink2 [new Agent/TCPSink]$ns attach-agent $n4 $sink2set sink3 [new Agent/TCPSink]

$ns attach-agent $n6 $sink3set sink4 [new Agent/TCPSink]$ns attach-agent $n0 $sink4set sink5 [new Agent/TCPSink]$ns attach-agent $n2 $sink5set sink6 [new Agent/TCPSink]$ns attach-agent $n4 $sink6set sink7 [new Agent/TCPSink]$ns attach-agent $n6 $sink7set sink8 [new Agent/TCPSink]$ns attach-agent $n0 $sink8set sink9 [new Agent/TCPSink]$ns attach-agent $n2 $sink9

set sink10 [new Agent/TCPSink]$ns attach-agent $n4 $sink10set sink11 [new Agent/TCPSink]$ns attach-agent $n6 $sink11set sink12 [new Agent/TCPSink]$ns attach-agent $n0 $sink12

#---Tạo các kết nối giữa nút nguồnvà nút đích$ns connect $tcp1 $sink1$ns connect $tcp2 $sink2$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 $sink11$ns connect $tcp12 $sink12

#---Thiết lập phiên kết nối Tcptrên Tcset ftp1 [new Application/FTP]$ftp1 attach-agent $tcp1set ftp2 [new Application/FTP]$ftp2 attach-agent $tcp2

set ftp3 [new Application/FTP]$ftp3 attach-agent $tcp3set ftp4 [new Application/FTP]

$ftp4 attach-agent $tcp4set ftp5 [new Application/FTP]$ftp5 attach-agent $tcp5set ftp6 [new Application/FTP]$ftp6 attach-agent $tcp6set ftp7 [new Application/FTP]

$ftp7 attach-agent $tcp7set ftp8 [new Application/FTP]$ftp8 attach-agent $tcp8set ftp9 [new Application/FTP]$ftp9 attach-agent $tcp9set ftp10 [new Application/FTP]$ftp10 attach-agent $tcp10set ftp11 [new Application/FTP]$ftp11 attach-agent $tcp11set ftp12 [new Application/FTP]$ftp12 attach-agent $tcp12

#---Thiết lập kết nối Cbr dựa trênUdp

set udp0 [new Agent/UDP]$ns attach-agent $n3 $udp0set cbr0 [newApplication/Traffic/CBR]$cbr0 attach-agent $udp0set null0 [new Agent/Null]$ns attach-agent $n4 $null0$ns connect $udp0 $null0#---Thiết lập kích thướ c gói củaCbr0$cbr0 set packetSize_ $packetsize#---Thiết lập khoảng thờ i gian củaCbr0

$cbr0 set interval_ $intval

#---Thiết lập các kết nối Cbrtươ ng tự như trênset udp1 [new Agent/UDP]$ns attach-agent $n4 $udp1set cbr1 [newApplication/Traffic/CBR]$cbr1 attach-agent $udp1set null1 [new Agent/Null]$ns attach-agent $n6 $null1$ns connect $udp1 $null1$cbr1 set packetSize_ $packetsize$cbr1 set interval_ $intval

set udp2 [new Agent/UDP]$ns attach-agent $n6 $udp2set cbr2 [newApplication/Traffic/CBR]$cbr2 attach-agent $udp2set null2 [new Agent/Null]$ns attach-agent $n0 $null2$ns connect $udp2 $null2$cbr2 set packetSize_ $packetsize$cbr2 set interval_ $intvalset udp3 [new Agent/UDP]$ns attach-agent $n0 $udp3set cbr3 [new

Application/Traffic/CBR]$cbr3 attach-agent $udp3set null3 [new Agent/Null]

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 47/48

2

$ns attach-agent $n2 $null3$ns connect $udp3 $null3$cbr3 set packetSize_ $packetsize$cbr3 set interval_ $intvalset udp4 [new Agent/UDP]$ns attach-agent $n2 $udp4

set cbr4 [newApplication/Traffic/CBR]$cbr4 attach-agent $udp4set null4 [new Agent/Null]$ns attach-agent $n4 $null4$ns connect $udp4 $null4$cbr4 set packetSize_ $packetsize$cbr4 set interval_ $intval

set udp5 [new Agent/UDP]$ns attach-agent $n4 $udp5set cbr5 [newApplication/Traffic/CBR]$cbr5 attach-agent $udp5

set null5 [new Agent/Null]$ns attach-agent $n6 $null5$ns connect $udp5 $null5$cbr5 set packetSize_ $packetsize$cbr5 set interval_ $intvalset udp6 [new Agent/UDP]$ns attach-agent $n6 $udp6set cbr6 [newApplication/Traffic/CBR]$cbr6 attach-agent $udp6set null6 [new Agent/Null]$ns attach-agent $n0 $null6$ns connect $udp6 $null6

$cbr6 set packetSize_ $packetsize$cbr6 set interval_ $intval

set udp7 [new Agent/UDP]$ns attach-agent $n0 $udp7set cbr7 [newApplication/Traffic/CBR]$cbr7 attach-agent $udp7set null7 [new Agent/Null]$ns attach-agent $n2 $null7$ns connect $udp7 $null7$cbr7 set packetSize_ $packetsize$cbr7 set interval_ $intval

set udp8 [new Agent/UDP]$ns attach-agent $n2 $udp8set cbr8 [newApplication/Traffic/CBR]$cbr8 attach-agent $udp8set null8 [new Agent/Null]$ns attach-agent $n6 $null8$ns connect $udp8 $null8$cbr8 set packetSize_ $packetsize$cbr8 set interval_ $intval

#---Thiết lập các sự kiện của thẻ 

bài#---Các sự kiện của thẻ bài trongtrườ ng hợ p 1

$ns at 0.04 "$ftp1 start"$ns at 0.1 "$ns detach-agent $n0$tcp1;$ns detach-agent $n2 $sink1"$ns at 3.5 "finish"$ns at 0.11 "$ftp2 start"$ns at 0.2 "$ns detach-agent $n2

$tcp2;$ns detach-agent $n4 $sink2"$ns at 3.5 "finish"$ns at 0.21 "$ftp3 start"$ns at 0.30 "$ns detach-agent $n4$tcp3;$ns detach-agent $n6 $sink3"$ns at 3.5 "finish"$ns at 0.31 "$ftp4 start"$ns at 0.43 "$ns detach-agent $n6$tcp4;$ns detach-agent $n0 $sink4"$ns at 3.5 "finish"

#---Các sự kiện của thẻ bài trongtrườ ng hợ p 2$ns at 0.64 "$ftp5 start"

$ns at 0.70 "$ns detach-agent $n0$tcp5;$ns detach-agent $n2 $sink5"$ns at 3.5 "finish"$ns at 0.71 "$ftp6 start"$ns at 0.8 "$ns detach-agent $n2$tcp6;$ns detach-agent $n4 $sink6"$ns at 3.5 "finish"$ns at 0.81 "$ftp7 start"$ns at 0.9 "$ns detach-agent $n4$tcp7;$ns detach-agent $n6 $sink7"$ns at 3.5 "finish"$ns at 0.91 "$ftp8 start"$ns at 1.03 "$ns detach-agent $n6

$tcp8;$ns detach-agent $n0 $sink8"$ns at 3.5 "finish"

#---Các sự kiện của thẻ bài trongtrườ ng hợ p 3$ns at 1.24 "$ftp9 start"$ns at 1.30 "$ns detach-agent $n0$tcp9;$ns detach-agent $n2 $sink9"$ns at 3.5 "finish"$ns at 1.31 "$ftp10 start"$ns at 1.43 "$ns detach-agent $n2$tcp10;$ns detach-agent $n6$sink11"$ns at 3.5 "finish"

$ns at 1.44 "$ftp12 start"$ns at 1.56 "$ns detach-agent $n6$tcp12;$ns detach-agent $n0$sink12"$ns at 3.5 "finish"

#---Các sự kiện của gói dữ liệutrong trườ ng hợ p 1$ns at 0.28 "$cbr1 start"$ns at 0.37 "$cbr1 stop"$ns at 0.39 "$cbr2 start"$ns at 0.43 "$cbr2 stop"

#---Các sự kiện của gói dữ liệutrong trườ ng hợ p 2$ns at 0.74 "$cbr3 start"

7/15/2019 Project [MangMayTinh]

http://slidepdf.com/reader/full/project-mangmaytinh 48/48

$ns at 0.76 "$cbr3 stop"$ns at 0.81 "$cbr4 start"$ns at 0.82 "$cbr4 stop"$ns at 0.92 "$cbr5 start"$ns at 0.93 "$cbr5 stop"$ns at 1.03 "$cbr6 start"

$ns at 1.04 "$cbr6 stop"#---Các sự kiện của gói dữ liệutrong trườ ng hợ p 3$ns at 1.44 "$cbr7 start"$ns at 1.45 "$cbr7 stop"$ns at 1.51 "$cbr8 start"$ns at 1.52 "$cbr8 stop"set nf [open tokenbus.nam w]$ns namtrace-all $nfset f [open tokenbus.tr w]$ns trace-all $f#---Định nghĩa thủ tục kết thúcchươ ng trình "finish"------------------------

proc finish {} {#---Từ khóa global dùng để chobiết chúng ta đượ c dùng các biếnkhai báo ngoài thủ tục

#---global ns nf#---đổ 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ưulượ ngexec awk {

{#---Thực hiện vẽ  đồ thị biểu thị kích thướ c gói tin theo thờ i giantại thờ i điểm ra gói tin ra#---khỏi hàng đợ iif(($1=="-" && $5=="tcp") ||($1=="-" && $5=="cbr")) {print $2 "\t" $6}}} tokenbus.tr > throughput.data

exec nam tokenbus.nam &exec xgraph throughput.data &exit 0}$ns run