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

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

Đ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

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

Tìm hiểu hoạt động số chế tự động truyền lại Go-Back-N ARQ lớp data-link control chứng minh hiệu chế+code phía 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 Go-Back-N repeat ARQ lớp Data-link control Trong tập trung tìm hiểu giao thức, mô đánh giá hiệu chế giao thức, đồng thời so sánh hiệu giao thức so với 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 OSI Model OSI Reference Model) – tạm dịch Mơ hình tham chiếu kết nối hệ thống mở – thiết kế dựa vào nguyên lý tầng cấp, bao gồm lớp mạng Mỗi tầng có nhiệm vụ chức riêng giúp tín hiệu truyền ln bảo mật tuyệt đối nhanh chóng thuận tiện Mơ hình phát triển thành phần kế hoạch kết nối hệ thống mở (Open Systems Interconnection) ISO IUT-T khởi xướng Nó gọi Mơ hình bảy tầng OSI [1] thơng tin mạng, đóng gói phân pháp gói tin Ngồi ra, lớp vật lý cung cấp chuẩn kết nối q trình truyền liệu Nó đáp ứng yêu cầu phục vụ g1ửi tới tầng vật lý Tầng liên kết liệu cung cấp phương tiện chức thủ tục để truyền liệu thực thể mạng cung cấp phương tiện để phát sữa lỗi nảy sinh tầng vật lý Tầng liên kết liệu cung cấp phối hợp thiết bị để không xảy xung đột Thông tin cần hai thiết bị làm việc, gởi thu Q trình ln cần kiểm sốt điều phối để có q trình trao đổi tốt Kiểm soát liên kết liệu dịch vụ cung cấp tầng liên kết liệu để cung cấp truyền liệu đáng tin cậy phương tiện vật lý Một chức quan trọng khác tầng kết nối liệu kiểm sốt lưu lượng kiểm số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 hệ thống kết nối, xác định thiết bị phát thiết bị thu Hình 1: Mơ hình OSI Tầng liên kết liệu (Data Link Layer) tầng thứ mơ hình bảy tầng OSI, thể Hình Nhiệm vụ lớp liên kết xác định chế truy cập Kiểm soát lưu lượng (flow control): điều phối lượng thơng tin truyền trước nhận tin chấp nhận Đồng thời cung cấp tín hiệu chấp nhận từ máy thu, kết nối với trình kiểm sốt lỗi Kiểm tra lỗi tức phát sửa lỗi (error control): Cho phép máy thu báo cho máy phát tin bị hay bị hỏng nhằm điều phối việc truyền lại liệu máy phát II TỔNG QUAN LỚP KIỂM TRA LỖI (ERROR CONTROL) Trong lớp kết nối liệu, từ kiểm tra lỗi ban đầu hiểu phương pháp phát truyền lại liệu ARQ: Automatic Repeat Request Sửa lỗi lớp kết nối liệu thiết lập đơn giản: Nếu phát lỗi truyền bên thu gởi tín hiệu không xác nhận NAK (negative acknowledgment) frame gởi lại Quá trình gọi yêu cầu tự động lặp lại (ARQ) Sửa lỗi lớp kết nối liệu dùng sở yêu cầu tự động lặp lại (ARQ), tức việc truyền lại liệu ba trường hợp: frame bị hỏng, frame bị thất lạc, 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 chờ mở rộng để truyền liệu trường hợp frame gởi bị thất lạc hay bị hỏng Sliding Window ARQ: phần truyền (các gói lớp liên kết liệu) gán số thứ tự liên tiếp người nhận sử dụng số để đặt gói nhận theo thứ tự, loại bỏ gói trùng lặp xác định gói bị thiếu Có nhiều chế dùng để kiểm tra lỗi truyền liệu liên tục, có hai giao thức thơng dụng là: go-back-n ARQ selective-reject ARQ, hai phương pháp dựa 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 chế phát Sliding Window ARQ, phía phát phát nhiều khung thông tin trước nhận báo ACK nhận từ phía thu Số khung thơng tin cực đại mà phía phát phát (ký hiệu W) gọi kích thước cửa sổ Mỗi phát xong khung thơng tin, phía phát giảm kích thước cửa sổ 1, kích thước cửa sổ 0, phía phát khơng phát thêm khung thơng tin Mỗi phía thu nhận khung thông tin xử lý xong, phía thu gửi lại báo nhận ACK cho phía phát Khi nhận báo nhận này, phía phát tăng kích thước cửa sổ W lên Để phân biệt khung đường truyền, khung cần đánh số thứ tự Nếu dùng k bit để đánh số tổng số khung đánh số (từ đến ) đó, kích thước cửa sổ tối đa Wmax = (về mặt lý thuyết) Ví dụ: Sử dụng bit để đánh số thứ tự cho khung thông tin Lúc kích thước cửa sổ cực đại Quan sát sơ đồ mơ tả hình đây: Tại thời điểm ban đâu, phía phát thu có kích thước cửa sổ W=7 Sau phía phát phát ba khung (F0, F1, F2) chưa nhận ACK, phía phát giảm kích thước cửa sổ xuống W=4 thể liệu lại khung F3 đến F6 Ở phía thu, sau nhận xử lý xong ba khung F0, F1 F2 gửi lại ACK3 cho phía phát ACK3 nhằm ám rằng: “Phía thu nhận xử lý xong khung F2 phía thu 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 khung từ F3 F1 Phía phát sau nhận ACK3 tăng kích thước cửa sổ thêm đơn vị Lúc cửa sổ phía phát W = bao khung từ F3 đến F1 lấy thêm khung liệu F7 đến F1 Giả sử lúc phía phát thực phát khung từ F3 đến F6 Sau phát, phía phát giảm kích thước cửa sổ (W = 3), lúc cửa sổ bao khung F7, F0 F1 Phía thu gửi lại ACK4, báo nhận xử lý xong khung F3, ACK4 phía phát phép phát tối đa khung F4 Tuy nhiên ACK4 đến phía phát phía phát thực phát khung F4, F5 F6 rồi, vậy, phía phát phát tối đa khung F7 time-out, phía phát phải phát lại khung (và tất khung sau đó) Hình 5: Trường hợp ACK Hình 4: Sơ đồ mô tả hoạt động Sliding Window ARQ Trong trường hợp lý tưởng (khơng có lỗi xảy ra) 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 q kích thước cửa sổ Khi có lỗi xảy ra, việc truyền lại khung lỗi chế cửa sổ trượt thực theo hai cách khác nhau: Go-back-N: phía phát thực phát lại khung thông tin bị sai tất khung thông tin khác truyền, tính từ khung bị sai Selective repeat: phía phát phát lại khung thông tin bị sai + Khung NAK bị lỗi – trường hợp NAK bị lỗi, nghĩa khung bị lỗi, lúc phía thu khơng nhận thêm khung sau khung (và không gửi báo nhận) Với trường hợp phía phát bắt buộc phải chờ đến time-out thực phát lại khung Mất Frame liệu: Giao thức cửa sổ trượt đòi hỏi frame liệu phải chuyển Nếu số frame bị nhiễm nhiễu bị thất lạc truyền, frame đến sau bị máy thu loại Máy thu kiểm tra số nhận dạng frame, phát số frame bị bỏ qua, gởi tín hiệu NAK cho frame thất lạc Frame NAK thông báo yêu cầu gởi lại mà không frame bị thất lạc hay hỏng Thiết vị phát phát lại frame NAK yêu cầu, frame chuyển sau frame vừa thất lạc 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, frame bị thất lạc hay hỏng, tất frame phát lại kể từ tín hiệu xác nhận cuối gửi Có dạng phát lại: Hư Frame data, Frame data, Frame Khung Mất ACK: Khung ACK bị lỗi – ACK bị lỗi xảy hai trường hợp: + Phía thu nhận khung gửi ACK3 phía phát ACK bị đường truyền Giả sử trước time-out khung xảy ra, phía phát nhận ACK5 phía phát hiểu khung 2, khung 3, khung nhận Người ta nói chế Go-back-N sử dụng cummulative ACK (nghĩa ACK sau đồng thời báo nhận cho khung trước đó) Nếu khoảng thời gian time-out khung 2, phía phát khơng nhận ACKn (n>2) sau Hình 6: Trường hợp frame data Trong hình trên, liệu thu liệu bị thất lạc Frame đến máy thu frame Máy thu chờ frame nên frame bị xem lỗi, bị loại gởi thông báo NAK 2, cho biết frame chấp nhận frame bị sai (bị thất lạc trường hợp này) Trong thí dụ trên, máy phát phát liệu trước nhận NAK 2, liệu đến đích bị loại Một máy phát nhận tín hiệu NAK 2, chuyển tất frame bị kẹt lại (2, 4) NAK có hai ý nghĩa: Trong trường hợp phía thu có khả xử lý W khung thơng tin khơng cần đệm Phía thu nhận xử lý thơng tin theo thứ tự (dựa số thứ tự đánh khung) Phía thu chuyển gói thơng tin lên lớp cao theo thứ tự Phía thu không nhận khung i+1 chưa nhận khung i Điều ngun nhân khiến phía thu khơng cần phải có đệm Phía phát phải lưu tối đa W khung thông tin đệm để chờ ACK (1) xác nhận tất frame nhận trước có frame bị hỏng Hiệu suất phương pháp Go-back-N ARQ, so sánh với phương pháp khác (2) tín hiệu khơng xác nhận frame Hiệu suất chế ARQ tính tỷ lệ tốc độ truyền nhận thực tế () so với lý thuyết (R) Với Reff tính theo cơng thức [2]: Hư Frame: Việc xảy frame 0, 1, gửi đi, tín hiệu xác nhận lại NAK 3? Nếu NAK NAK 3, có nghĩa frame liệu 0, 1, nhận tốt Chỉ cần gửi lại frame số Ngay vừa máy thu phát lỗi, máy ngừng tiếp nhận frame frame bị hỏng thay xong Trong trường hợp liệu xuất hỏng bị loại, liệu Dữ liệu 0, 2, nhận trước có frame bị hỏng, chấp nhận, cách gởi máy phát frame NAK Như cần gởi lại frame Hình vẽ cho thí dụ frame gởi trước phát lỗi frame Trường hợp máy thu gởi tín hiệu ACK cho biết frame 0, chấp nhận Trong hình ACK gửi trước liệu đến Phát lỗi frame 3, tín hiệu NAK gởi tức frame bị loại chúng đến Thiết bị phát gởi lại ba frame (3, 5) từ xác nhận trước đó, q trình tiếp tục Máy thu loại frame (cùng frame tiếp theo) nhận tốt frame (1) Với E[] thời gian truyền trung bình, số bit liệu, số bit phát lỗi Hình 7: Biểu đồ thời gian trình truyền tin chế ARQ Nếu khơng có lỗi xảy giá trị E[] = Giá trị t thấy qua hình là: (2) Với số bit tin ACK, R băng thơng hệ thống Áp dụng cách tính từ cơng thức (1) ta tìm hiệu suất chế phát lại sau: Hình 8: Biểu đồ thời gian trình truyền tin Stop and Wait Với chế Stop and Wait, coi = Ta có: Hình 6: Trường hợp hư frame data Một số ý chế hoạt động ARQ Go-back-N Ta có đồ thị hình xác suất việc truyền nhân thông tin bị lỗi frame (3) Với chế Go-back-N ta tìm được: (4) Với chế Selective repeat ta tìm được: Hình cho thấy tỷ lệ lỗi bit tăng lên tất chế phát lại hiển nhiên giảm hiệu suất truyền tải Cơ chế SW chế có hiệu nhất, với giá trị thời gian frame kênh truyền t prop nhỏ hiệu suất cao Giá trị W = W = 11 đại diện cho tỷ lệ tprop tf với (W-1) = tprop / tf Giá trị N tương đương với kích cửa sổ giao thức GBN SR Cơ chế GBN cho thấy giá trị W nhỏ hiệu suất bị ảnh hưởng BER.Và chắn ƞSR lớn trường hợp (5) 1-=exp(-p x ) Từ công thức (3), (4), (5) ta so sánh hiệu suất ba chế phát lại với tỷ lệ lỗi bit Đồ thị mô lại quan hệ hiệu suất p kênh truyền vẽ 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] Hình 9: Quan hệ chế ARQ với tỷ lệ lỗi bit Sơ đồ thuật toán chế Go-back-N ARQ Để làm rõ chế phát Go-back-N ta xây dựng thuật toán điều khiển cho bên phát bên nhận Mơ hình thuật tốn bên gửi mơ tả hình Hình 3: Mơ hình hóa chế xử lý Hình 11: Sơ đồ thuật toán chế Go-back-N bên gửi (gửi) Hình 12: Sơ đồ thuật tốn chế Go-back-N bên gửi (nhận) Cơ chế xử lý bên nhận bên gửi đặt vòng lặp vơ hạn, đợi kiện diễn sử lý yêu càu theo kiện Với bên gửi, cần xử lý loại kiện: tới từ lớp network, lớp physical kiện time-out thấy sơ đồ thuật tốn hình 11 hình 12 Hình 13: Sơ đồ thuật toán chế Go-back-N bên nhận Bên nhận có nguồn kiện tới từ lớp Physical với hai loại kiện: FrameArrival CkSumError thấy hình 13 Các thành phần sơ đồ thuật tốn trường hợp gặp chế Go-back-N Ở bên phát ta thấy có biểu đồ kiện tới từ lớp khác Nhánh thứ nhất, có yêu cầu gửi từ lơp network bên phát tạo frame, lưu vào đệm gửi frame đi, đồng thời bật timer tương ứng với thứ tự frame lên Nhánh thứ hai, nhận frame truyền tới từ lớp physical Lúc rẽ nhánh hai trường hợp khác: tin nhận NAK nằm cửa sổ gửi gửi lại tất frame window nhận frame ACK có số thứ tự nằm cửa sổ gửi xóa bỏ đệm tất frame gửi dịch vị trí cửa sổ Nhánh thứ ba, nhận timeout Bên phát gửi lại frame đệm với số thứ tự time-out khởi động lại timer cho frame Lưu ý trường hợp có ưu tiên xử lý thấp hai trường hợp lại Nhánh thứ tư, kích thước đệm vượt giới hạn, tức chệnh lệch cạnh cạnh cửa sổ lớn kích thước cửa sổ Lúc đệm đầy lưu thêm frame cần báo cho lớp network không tiếp tục gửi liệu xuống Ở bên nhận, với kiện có frame gửi tới không gặp lỗi Lúc bên nhận kiểm tra xem frame nhận có thứ tự hay khơng Nếu frame không thứ tự tức frame Rn trước gửi bị gói, tiếp tục kiểm tra xem báo lỗi cho Rn gửi chưa qua biến NakSent Nếu chưa có báo lỗi gửi gửi NAK frame cho Rn Sau tiếp tục kiểm tra xem frame nhận có nằm cửa sổ nhận khơng, có lưu vào đệm, trở vòng lặp đợi kiện Hình 14: Kết gửi frames Nếu frame nhận thứ tự tức Rn = Sn frame thực lưu vào đệm Bước kiểm tra bit trạng thái đệm Đi từ Rn tới vị trí cuối đệm bit đưa liệu tương ứng từ đệm lên lớp network Vòng lặp gặp bit dừng việc kiểm tra đệm, lúc giá trị cửa cạnh cửa sổ dịch lên số lượng packet liệu đưa tới lớp network Kết mô Mô truyền 100 frames data theo chế Goback-N với kích thước cửa sổ W=7, thời gian = clock, time-out = clock, time-prop=3 clock, time-proc =0 clock, Hình 15: Kết mơ - xử lý lỗi ACK Hình 16: Kết mô - xử lý lỗi frame data P1 Hình 18: Kết mơ - xử lý lỗi time-out P1 Hình 17: Kết mơ - xử lý lỗi frame data P2 Hình 19: Kết mô - xử lý lỗi time-out P2 V KẾT LUẬN Hình 20: Kết truyền frames cuối Kết mô thành công mà kết thu với kết tính trước, liệu chuyển đến đích cách nguyên vẹn sửa sai chế phát lại Go-back-N Do việc mơ mang tính kiểm tra truyền liệu sửa sai chưa chọn chế để xác định time-out phù hợp, kích thước cửa sổ phù hợp để khởi tạo chế ARQ trước 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 Qua so sánh hiệu suất truyền tải chế Goback-N với chế ARQ khác ta kết luận rắng, chế Go-back-N cho hiệu suất tương đối so với Stop and wait Selective repeat Nhưng trường hợp tính tốn báo cáo chưa thể đầy đủ cho trường hợp Giả sử hệ thống có kênh truyền dài, có thời gian xử lý nhanh, kích thước liệu nhỏ dẫn tới thời gian truyền frame kênh truyền lớn so với thời gian xử lý Điều dẫn tới việc kích thước cửa sổ khơng thể lấp đầy khe thời gian truyền tin Hiệu suất lúc tụt giảm nhiều Báo cáo chưa thể nêu vấn đề Ta thấy phức tạp thuật toán xử lý chế Go-Back-N chế phức tạp ARQ Nhưng đồng thời hệ thống cần đệm trình xử lý Dẫn tới chi phí khơng q cao Có lẽ điều mà hệ thống phổ biến ta thường thấy 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 [3] Ralph   Gregory, https://slideplayer.com/slide/15392363/, lần cuối truy cập 9/12/2019 Code mô 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 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; integer trans[0:4],trans_v[0:4],temp_ACK; integer i,k,t,q,stt,stt_v,x,pause_stt,temp; reg flag_Rx,flag_ACK,flag_NAK,start_timer; integer value1,value2,timer; /***************** clock **********************/ always #1 clk=~clk; initial begin clk=1; end /****************** khoi tao bien ******************/ initial begin count

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

Mục lục

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

    II. TỔNG QUAN LỚP KIỂM TRA LỖI (ERROR CONTROL)

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

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

Tài liệu cùng người dùng

Tài liệu liên quan