1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo HTVT go back n + code ben duoi

17 619 9

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 756,26 KB

Nội dung

báo cáo được viết dạng bài báo ieee có code mô phỏng bằng verilog chạy trên phần mềm ISE có code đánh giá hiệu năng mathlab . bài viết được đánh giá cao khi bảo vệ bài tập lớn. ................................................................................................................................ Tìm hiểu hoạt động số chế tự động truyền lại GoBackN ARQ lớp datalink control chứng minh hiệu chế Thực hiện: Giáo viên hướng dẫn: TS Nguyễn Thành Chuyên Abstract—Bài báo cáo giao thức GoBackN repeat ARQ lớp Datalink control

Trang 1

Tìm hiểu hoạt động của một số cơ chế tự động truyền lại Go-Back-N ARQ tại lớp data-link control và chứng minh

sự hiệu quả của các cơ chế+code phía dưới

Thực hiện: Giáo viên hướng dẫn: TS Nguyễn Thành Chuyên

Abstract—Bài báo cáo về giao thức Go-Back-N

repeat ARQ trong lớp Data-link control Trong bài

này tập trung tìm hiểu về giao thức, mô phỏng và

đánh giá hiệu quả của các cơ chế của giao thức,

đồng thời so sánh hiệu quả của giao thức so với các

giao thức khác.

Keywords: ARQ, Go-Back-N, data-link, ACK,

NACK, error detecting codes

I GIỚI THIỆU MÔ HÌNH OSI VÀ TẦNG DATA

LINK

Mô hình OSI (Open Systems Interconnection

Reference Model, viết ngắn là OSI Model hoặc OSI

Reference Model) – tạm dịch là Mô hình tham chiếu kết

nối các hệ thống mở – là một thiết kế dựa vào nguyên

lý tầng cấp, bao gồm 7 lớp mạng Mỗi tầng sẽ có nhiệm

vụ và chức năng riêng giúp tín hiệu được truyền đi luôn

được bảo mật tuyệt đối cũng như nhanh chóng và thuận

tiện hơn Mô hình này được phát triển thành một phần

trong kế hoạch kết nối các hệ thống mở (Open Systems

Interconnection) do ISO và IUT-T khởi xướng Nó còn

được gọi là Mô hình bảy tầng của OSI [1]

Hình 1: Mô hình OSI

Tầng liên kết dữ liệu (Data Link Layer) là tầng thứ

2 trong mô hình bảy tầng OSI, được thể hiện trong Hình

1 Nhiệm vụ của lớp liên kết là xác định cơ chế truy cập

thông tin trên mạng, đóng gói và phân pháp các gói tin Ngoài ra, lớp vật lý còn cung cấp các chuẩn kết nối trong quá trình truyền dữ liệu Nó đáp ứng các yêu cầu phục vụ g1ửi tới tầng vật lý Tầng liên kết dữ liệu cung cấp các phương tiện chức năng và thủ tục để truyền dữ liệu giữa các thực thể mạng và có thể cung cấp phương tiện để phát hiện và có thể sữa các lỗi có thể nảy sinh tại tầng vật lý Tầng liên kết dữ liệu cung cấp sự phối hợp giữa các thiết bị để không xảy ra xung đột

Thông tin cần ít nhất hai thiết bị cùng làm việc, một gởi và một thu Quá trình này luôn cần được kiểm soát điều phối để có được quá trình trao đổi tốt nhất Kiểm soát liên kết dữ liệu là dịch vụ được cung cấp bởi tầng liên kết dữ liệu để cung cấp truyền dữ liệu đáng tin cậy trên phương tiện vật lý Một chức năng quan trọng khác trong tầng kết nối dữ liệu là kiểm soát lưu lượng và kiểm soát lỗi

Hình 2: Cấu trúc tầng Data link

Hạng mục đường dây (line discipline): điều phối các

hệ thống kết nối, xác định thiết bị nào được phát và thiết bị nào được thu

Kiểm soát lưu lượng (flow control): điều phối lượng

thông tin có thể được truyền trước khi nhận được tin chấp nhận Đồng thời cũng cung cấp tín hiệu chấp nhận

từ máy thu, kết nối với quá trình kiểm soát lỗi

Kiểm tra lỗi tức là phát hiện và sửa lỗi (error control): Cho phép máy thu báo cho máy phát về các

Trang 2

bản tin bị mất hay bị hỏng nhằm điều phối việc truyền

lại dữ liệu của máy phát

II TỔNG QUAN LỚP KIỂM TRA LỖI

(ERROR CONTROL) Trong lớp kết nối dữ liệu, từ kiểm tra lỗi ban đầu được

hiểu là các phương pháp phát hiện và truyền lại dữ liệu

ARQ: Automatic Repeat Request

Sửa lỗi trong lớp kết nối dữ liệu được thiết lập rất

đơn giản: Nếu phát hiện lỗi khi truyền thì bên thu gởi

về tín hiệu không xác nhận NAK (negative

acknowledgment) và frame được gởi lại Quá trình này

được gọi là yêu cầu tự động lặp lại (ARQ)

Sửa lỗi trong lớp kết nối dữ liệu dùng cơ sở yêu cầu

tự động lặp lại (ARQ), tức là việc truyền lại dữ liệu

trong ba trường hợp: frame bị hỏng, frame bị thất lạc,

và tín hiệu chấp nhận bị thất lạc

Hình 3: Cấu trúc Error Control

Stop and Wait ARQ: Là dạng điều khiển lưu lượng

truyền dạng ngừng và chờ được mở rộng để có thể

truyền dữ liệu trong trường hợp frame gởi đi bị thất lạc

hay bị hỏng

Sliding Window ARQ: mỗi phần của truyền (các gói

trong các lớp liên kết dữ liệu) được gán một số thứ tự

liên tiếp duy nhất và người nhận sử dụng các số để đặt

các gói nhận theo đúng thứ tự, loại bỏ các gói trùng lặp

và xác định các gói bị thiếu Có nhiều cơ chế dùng để

kiểm tra lỗi khi truyền dữ liệu liên tục, có hai giao thức

thông dụng là: go-back-n ARQ và selective-reject ARQ,

cả hai phương pháp này đều dựa trên phương pháp điều

khiển lưu lượng dùng cửa sổ trượt

III CƠ CHẾ HOẠT ĐỘNG SLIDNG WINDOW ARQ

Với cơ chế phát của Sliding Window ARQ, 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 ACK nhận từ phía thu Số khung

thông tin cực đại mà phía phát có thể phát (ký hiệu là

W) được gọi là kích thước cửa sổ 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 Mỗi khi phía thu nhận được một khung thông tin đúng và xử lý xong, phía thu sẽ 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

Để 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à (từ 0 đến ) và

do đó, kích thước cửa sổ tối đa Wmax = (về mặt lý thuyết)

Ví dụ:

Sử dụng 3 bit để đánh số thứ tự cho các khung thông tin Lúc này kích thước cửa sổ cực đại sẽ là 7

Quan sát sơ đồ mô tả trên hình 4 dưới đây:

Tại thời điểm ban đâu, cả phía phát và thu đều có kích thước cửa sổ là W=7 Sau khi phía phát đã phát được ba khung (F0, F1, F2) và chưa nhận được ACK, phía phát giảm kích thước cửa sổ xuống còn W=4 thể hiện dữ liệu còn lại trong khung là F3 đến F6

Ở phía thu, sau khi đã nhận đúng và xử lý xong ba khung F0, F1 và F2 thì sẽ gửi lại ACK3 cho phía phát ACK3 nhằm ám chỉ rằng: “Phía thu đã nhận và xử lý xong các khung cho đến F2 và phía thu đang sẵn sàng nhận khung 3” Phía thu đồng thời tăng kích thước cửa

sổ bên thu lên 7, bao các khung từ F3 cho đến F1 Phía phát sau khi nhận được ACK3 sẽ tăng kích thước cửa sổ thêm 3 đơn vị Lúc này cửa sổ phía phát W = 7 và bao các khung từ F3 đến F1 và lấy thêm khung 3 dữ liệu kế tiếp F7 đến F1 Giả sử lúc này phía phát thực hiện phát các khung từ F3 đến F6 Sau khi phát, phía phát sẽ giảm kích thước cửa sổ đi 4 (W = 3), lúc này cửa sổ chỉ còn bao các khung F7, F0 và F1

Phía thu gửi lại ACK4, báo rằng nó đã nhận và xử lý xong khung F3, ACK4 và phía phát được phép phát tối

đa là 7 khung bắt đầu từ F4 Tuy nhiên khi ACK4 về đến phía phát thì phía phát đã thực hiện phát các khung F4, F5 và F6 rồi, như vậy, phía phát sẽ chỉ còn phát

Trang 3

được tối đa là 4 khung bắt đầu từ F7.

Hình 4: Sơ đồ mô tả hoạt động của Sliding Window ARQ

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ảo số 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ổ

Khi có lỗi xảy ra, việc truyề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ách khá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

Selective repeat: phía phát sẽ chỉ phát lại các khung

thông tin bị sai

IV PHÂN TÍCH CƠ CHẾ PHÁT LẠI GO-BACK-N

ARQ Trong phương pháp cửa sổ trượt go-back-n ARQ, nếu

một frame bị thất lạc hay hỏng, tất cả các frame được

phát lại kể từ tín hiệu xác nhận cuối cùng được gửi đi

Có 3 dạng phát lại: Hư Frame data, mất Frame data,

mất Frame Khung

Mất ACK: 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 2 và gửi ACK3 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 2 xảy ra, phía phát nhận

được ACK5 thì phía phát hiểu rằng khung 2, khung 3,

khung 4 đã được nhận đúng 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ời báo nhận cho các khung trước

đó) Nếu trong khoảng thời gian time-out của khung 2,

phía phát không nhận được ACKn (n>2) nào cả thì sau

time-out, phía phát sẽ phải phát lại khung 2 (và tất cả các khung sau đó)

Hình 5: Trường hợp mất ACK

+ Khung NAK bị lỗi – trong trường hợp NAK bị lỗi, nghĩa là khung 2 bị lỗi, lúc này phía thu sẽ không nhận thêm một khung nào sau khung 2 (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ờ đến time-out và thực hiện phát lại khung 2

Mất Frame dữ liệu:

Giao thức cửa sổ trượt đòi hỏi các frame dữ liệu phải được chuyển đi tuần tự Nếu một trong số các frame này bị nhiễm nhiễu và bị thất lạc trong khi truyền, thì frame đến sau sẽ bị máy thu loại Máy thu kiểm tra số nhận dạng của mỗi frame, phát hiện ra là một số frame

đã bị bỏ qua, và gởi về tín hiệu NAK cho frame thất lạc đầu tiên Frame NAK thông báo yêu cầu gởi lại mà không chỉ ra là frame đã bị thất lạc hay hỏng Thiết vị phát sẽ phát lại frame do NAK yêu cầu, cùng các frame

đã được chuyển đi sau frame vừa thất lạc

Hình 6: Trường hợp mất frame data

Trong hình trên, dữ liệu 0 và 1 thu được nhưng dữ liệu

2 thì bị thất lạc Frame kế tiếp sẽ đến máy thu là frame

3 Máy thu đang chờ frame 2 nên frame 3 bị xem là lỗi,

bị loại và gởi về thông báo NAK 2, cho biết các frame 0

và 1 đã được chấp nhận nhưng frame 2 thì bị sai (bị thất lạc trong trường hợp này) Trong thí dụ trên, do máy phát đã phát dữ liệu 4 trước khi nhận được NAK 2, dữ

Trang 4

liệu 4 đến đích nhưng bị loại Một khi máy phát nhận

được tín hiệu NAK 2, thì chuyển tất cả các frame còn bị

kẹt lại (2, 3 và 4)

Hư Frame:

Việc gì xảy ra nếu các frame 0, 1, 2 và 3 đã được gửi đi,

nhưng tín hiệu xác nhận đầu tiên lại là NAK 3?

NAK có hai ý nghĩa:

(1) một xác nhận về tất cả các frame nhận được trước

khi có frame bị hỏng

(2) tín hiệu không xác nhận đối với frame hiện tại

Nếu NAK đầu tiên là NAK 3, có nghĩa là các frame dữ

liệu 0, 1, và 2 đã được nhận tốt Chỉ cần gửi lại frame số

3

Ngay vừa khi máy thu phát hiện lỗi, thì máy ngừng tiếp

nhận các frame cho đến khi frame bị hỏng được thay

thế xong Trong trường hợp này thì dữ liệu 3 xuất hiện

hỏng và bị loại, cùng các dữ liệu 4 Dữ liệu 0, 1 và 2, đã

được nhận trước khi có frame bị hỏng, đã được chấp

nhận, bằng cách gởi về máy phát frame NAK 3 Như

thế cần gởi lại các frame 3 và 4

Hình vẽ dưới đây cho một thí dụ trong đó 6 frame được

gởi đi trước khi phát hiện ra lỗi ở frame 3 Trường hợp

này máy thu gởi về tín hiệu ACK 3 cho biết các frame

0, 1 và 2 đã được chấp nhận Trong hình thì ACK 3 đã

được gửi trước khi dữ liệu 3 đến Phát hiện lỗi tại frame

3, tín hiệu NAK được gởi tức thì và các frame 4 và 5 bị

loại khi chúng đến Thiết bị phát gởi lại cả ba frame (3,

4 và 5) do từ xác nhận trước đó, và quá trình tiếp tục

Máy thu đã loại các frame 4 và 5 (cùng các frame tiếp

theo) cho đến khi nhận tốt được frame 3

Hình 6: Trường hợp hư frame data

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ần bộ đệ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 theo thứ tự Phía thu sẽ không nhận khung i+1 nếu chưa nhận được khung i Điều nà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ải lưu tối đa là W khung thông tin trong bộ đệm

để chờ ACK

Hiệu suất của phương pháp Go-back-N ARQ, so sánh với các phương pháp khác

Hiệu suất của cơ chế ARQ được tính bằng tỷ lệ tốc

độ truyền nhận thực tế () so với lý thuyết (R) Với Reff được tính theo công thức [2]:

(1) Với E[] thời gian truyền trung bình, là số bit dữ liệu, là số bit phát hiện lỗi

Hình 7: Biểu đồ thời gian quá trình truyền tin cơ chế ARQ

Nếu không có lỗi xảy ra thì giá trị E[] = Giá trị t có thể thấy được qua hình là:

(2) Với là số bit của bản tin ACK, còn R là băng thông

hệ thống Áp dụng cách tính từ công thức (1) ta tìm được hiệu suất của các cơ chế phát lại như sau:

Hình 8: Biểu đồ thời gian quá trình truyền tin Stop and Wait

Với cơ chế Stop and Wait, coi = Ta có:

Trang 5

là xác suất việc truyền nhân thông tin bị lỗi 1 frame

(3)

Với cơ chế Go-back-N ta tìm được:

Với cơ chế Selective repeat ta tìm được:

(5) 1-=exp(-p x )

Từ các công thức (3), (4), (5) ta có thể so sánh được

hiệu suất của ba cơ chế phát lại với tỷ lệ lỗi bit Đồ thị

mô phỏng lại quan hệ hiệu suất và p của kênh truyền

được vẽ bằng matlab với giá trị kích thước = 1250

byte= 10000 bits, , R=1Mbps, với p= {0 ;;},W=11

Bảng 1: Hiệu suất ba cách truyền tin ARQ[3]

Ta có đồ thị như hình 9

Hình 9 cho thấy khi tỷ lệ lỗi bit tăng lên thì tất cả các cơ chế phát lại hiển nhiên sẽ giảm hiệu suất truyền tải

Cơ chế SW là cơ chế có hiệu nhất, nhưng với giá trị thời gian frame đi trên kênh truyền tprop càng nhỏ thì hiệu suất càng cao Giá trị W = 3 và W = 11 đại diện cho tỷ lệ tprop và tf với (W-1) = 2 tprop / tf Giá trị N này tương đương với kích cửa sổ trong giao thức GBN và

SR Cơ chế GBN cũng cho thấy giá trị W càng nhỏ thì

hiệu suất càng ít bị ảnh hưởng bởi BER.Và chắc chắn

Hình 9: Quan hệ các cơ chế ARQ với tỷ lệ lỗi bit

Sơ đồ thuật toán cơ chế Go-back-N ARQ

Để làm rõ hơn cơ chế phát Go-back-N ta xây dựng

thuật toán điều khiển cho bên phát và bên nhận Mô

hình thuật toán bên gửi được mô tả trong hình

Hình 3: Mô hình hóa cơ chế xử lý

Hình 11: Sơ đồ thuật toán cơ chế Go-back-N bên gửi (gửi)

Trang 6

Hình 12: Sơ đồ thuật toán cơ chế Go-back-N bên gửi (nhận)

Cơ chế xử lý của cả bên nhận và bên gửi đều đặt

trong một vòng lặp vô hạn, đợi một sự kiện diễn ra và

sử lý yêu càu theo sự kiện đó Với bên gửi, cần xử lý

các loại sự kiện: tới từ lớp network, lớp physical và sự

kiện time-out có thể thấy trong sơ đồ thuật toán hình 11

và hình 12

Hình 13: Sơ đồ thuật toán cơ chế Go-back-N bên

nhận

Bên nhận chỉ có duy nhất nguồn sự kiện tới từ lớp

Physical với hai loại sự kiện: FrameArrival và

Các thành phần trong sơ đồ thuật toán chính là các

trường hợp có thể gặp của cơ chế Go-back-N Ở bên

phát ta thấy có 4 biểu đồ chính là các sự kiện tới từ lớp khác

Nhánh thứ nhất, khi có yêu cầu gửi từ lơp network bên phát sẽ tạo một frame, lưu vào bộ đệm rồi gửi frame đi, đồng thời bật timer tương ứng với thứ tự frame lên

Nhánh thứ hai, khi nhận được frame truyền tới từ lớp physical Lúc này sẽ rẽ nhánh ra hai trường hợp khác: nếu bản tin nhận được là NAK và nằm trong cửa

sổ gửi thì gửi lại tất cả các frame trong window nếu nhận được một frame ACK có số thứ tự cũng nằm trong

Trang 7

cửa sổ gửi thì xóa bỏ bộ đệm của tất cả các frame đã

gửi và dịch vị trí cửa sổ

Nhánh thứ ba, khi nhận được một timeout Bên phát

sẽ gửi lại frame trong bộ đệm với số thứ tự của time-out

và khởi động lại timer cho frame đó Lưu ý là trường

hợp này có ưu tiên xử lý thấp hơn hai trường hợp còn

lại

Nhánh thứ tư, khi kích thước bộ đệm vượt giới hạn,

tức là chệnh lệch cạnh trên và cạnh dưới cửa sổ lớn hơn

hoặc bằng kích thước cửa sổ Lúc này bộ đệm đã đầy và

không thể lưu thêm frame nào nữa vì thế cần báo cho

lớp network không tiếp tục gửi dữ liệu xuống

Ở bên nhận, với sự kiện có một frame được gửi tới

và không gặp lỗi Lúc này bên nhận kiểm tra xem frame

nhận được có đúng thứ tự hay không

Nếu frame không đúng thứ tự tức là frame Rn trước

đó đã được gửi và bị mất gói, tiếp tục kiểm tra xem báo

lỗi cho Rn đã được gửi chưa qua biến NakSent Nếu

chưa có báo lỗi được gửi thì gửi NAK frame cho Rn

Sau đó tiếp tục kiểm tra xem frame nhận được có nằm

trong cửa sổ nhận không, nếu có thì lưu vào bộ đệm, rồi

trở về vòng lặp đợi sự kiện

Nếu frame nhận được là đúng thứ tự tức Rn = Sn

của frame thì thực hiện lưu vào bộ đệm Bước tiếp theo

sẽ kiểm tra các bit trạng thái bộ đệm Đi từ Rn tới vị trí

cuối bộ đệm nếu lần lượt các bit đều là 1 thì sẽ đưa các

dữ liệu tương ứng từ bộ đệm lên lớp network Vòng lặp

khi gặp 1 bit 0 sẽ dừng việc kiểm tra bộ đệm, lúc này

giá trị mới cửa cạnh cửa sổ sẽ dịch lên bằng số lượng

packet dữ liệu đã được đưa tới lớp network

Kết quả mô phỏng

Mô phỏng truyền 100 frames data theo cơ chế

Go-back-N với kích thước cửa sổ W=7, thời gian = 7

clock, time-out = 5 clock, time-prop=3 clock, time-proc

=0 clock,

Hình 14: Kết quả gửi đi frames đầu tiên

Hình 15: Kết quả mô phỏng - xử lý lỗi mất ACK

Trang 8

Hình 16: Kết quả mô phỏng - xử lý lỗi mất frame data

P1

Hình 17: Kết quả mô phỏng - xử lý lỗi mất frame data

P2

Hình 18: Kết quả mô phỏng - xử lý lỗi time-out P1

Hình 19: Kết quả mô phỏng - xử lý lỗi time-out P2

Trang 9

Hình 20: Kết quả truyền đi frames cuối cùng

Kết quả mô phỏng thành công khi mà kết quả thu

được đúng với kết quả đã tính trước, dữ liệu được

chuyển đến đích một cách nguyên vẹn và được sửa sai

bằng cơ chế phát lại của Go-back-N Do việc mô phỏng

chỉ mang tính kiểm tra sự truyền dữ liệu và sửa sai cũng

như chưa chọn được cơ chế để xác định time-out phù

hợp, cũng như kích thước cửa sổ phù hợp để khởi tạo

cơ chế ARQ trước khi bắt đầu truyền tải mà ta không

tiến hành việc tính hiệu suất Go-back-N tại đây

V KẾT LUẬN

Qua sự so sánh hiệu suất truyền tải của cơ chế

Go-back-N với các cơ chế ARQ khác ta kết luận rắng, cơ

chế Go-back-N cho hiệu suất tương đối so với Stop and

wait và Selective repeat Nhưng các trường hợp tính toán trong báo cáo này chưa thể đầy đủ và đúng cho mọi trường hợp Giả sử như hệ thống có kênh truyền rất dài, hoặc có thời gian xử lý quá nhanh, hoặc kích thước

dữ liệu là quá nhỏ dẫn tới thời gian truyền frame trên kênh truyền quá lớn so với thời gian xử lý Điều này dẫn tới việc kích thước cửa sổ sẽ không thể lấp đầy khe thời gian truyền tin Hiệu suất lúc này cũng sẽ tụt giảm rất nhiều Báo cáo này chưa thể nêu được vấn đề đó

Ta cũng thấy được sự phức tạp của thuật toán xử lý của cơ chế Go-Back-N là cơ chế phức tạp nhất trong ARQ Nhưng đồng thời hệ thống cũng cần ít bộ đệm trong quá trình xử lý Dẫn tới chi phí không quá cao Có

lẽ cũng vì điều này mà trong các hệ thống phổ biến hiện nay ta vẫn thường thấy cơ chế Go-Back-N

REFERENCES

[1] https://vi.wikipedia.org/wiki/Mô_hình_OSI, lần cuối truy cập 8/12/2019

[2] D Bertsekas and R Gallager, “Data Networks – 2th ed,” Prentice Hall, 1992

https://slideplayer.com/slide/15392363/, lần cuối truy cập 9/12/2019

Trang 10

Code mô phỏng hiệu suất matlab

p=[0 :10^(-7): 10^(-3)];

R=1000000;

n0=200;

na=200;

nf=10000;

t=0.1;

L=t*R/nf;

W=L+1;

t1=0.001;

L1=t1*R/nf;

W1=L1+1;

Pf=1-exp(-p.*nf);

ngbn=(1-n0/nf)*(1-Pf)./(1+Pf.*(W-1));

nsw=(1-n0/nf)*(1-Pf)./(1+na/nf+L);

ngbn1=(1-n0/nf)*(1-Pf)./(1+Pf.*(W1-1));

nsw1=(1-n0/nf)*(1-Pf)./(1+na/nf+L1);

nsr=(1-n0/nf)*(1-Pf)./1;

plot(p,nsw,'b.-',p,ngbn,'r-',p,nsr,'g ',p,nsw1,'k.-',p,ngbn1,'m-');

xlabel('p') ;

ylabel('efficiency ARQ') ;

legend ('nsw= Stop and wait|W=11',' ngbn = Go-back-N|W=11',' nsr= Selective Repeat', 'nsw= Stop and wait|W=3',' ngbn = Go-back-N|W=3');

xlim([0 5*10^(-4)]);

Code chạy trên verilog phần mềm ISE

`timescale 1ns / 1ps

module TB_HTVT;

reg clk;

integer source[0:99],destination[0:99];

integer count_s,count_d,count;

integer window[0:6],ACK[0:6];

integer size_win;

reg mode_around,mode_stop;

Ngày đăng: 20/12/2019, 22:56

TỪ KHÓA LIÊN QUAN

w