Cũng tùy và BEB trên liên kết, một kíchthướt khối tối đa sẽ được chỉ định để đảm bảo một tỉ lệ cao các I- frame không bị lỗi.Lớp giao thức idle RQ trong máy tính nguồn vì thế phải cung c
Trang 1MỤC LỤC
1 KIỂM SOÁT LỖI 1
1.1 Kiểm soát lỗi bằng tay: 1
1.2 Kiểm tra dội lại: (Echo checking) 1
1.3 ARQ (Automatic Repeat Request) 1
2 IDLE RQ 2
2.1 Kiến trúc phân lớp 2
2.2 Đặc tả giao thức 2
2.3 Đặc tả idle RQ 2
2.4.Hiệu suất sử dụng liên kết 6
3 RQ LIÊN TỤC(CONTINUOUS RQ) 7
3.1 Truyền lại có lựa chọn (selective repeat): 8
3.2 Truyền lại một nhóm (Go-Back_N) 13
3.3 Điều khiển luồng (Flow control) 15
3.3.1 X-ON/ X-OFF 15
3.3.2 Cửa sổ trượt (Sliding window) 16
3.4 Các chỉ số tuần tự: 19
3.5 Đặc tả giao thức: 19
3.6 Hiệu suất sử dụng liên kết: 21
4 QUẢN LÝ LIÊN KẾT 23
Trang 21 KIỂM SOÁT LỖI
1.1 Kiểm soát lỗi bằng tay:
- Khi nhập dữ liệu vào máy tính từ bàn phím, mỗi phím được ấn thì sẽ có một từ
mã được truyền vào máy theo từng bit nối tiếp thông qua một UART theo chế độ truyềnbất đồng bộ Chương trình trong máy tính sẽ điều khiển quá trình nhập, đọc, lưu ký tự
và xuất ra màn hình
- Nếu cần xóa một ký tự, ta chỉ cần gõ một ký tự điều khiển xóa thích hợp (ví dụphím backspace) Khi này chương trình sẽ xóa ký tự trước đó ra khỏi màn hình
1.2 Kiểm tra dội lại: (Echo checking)
- Khi một thiết bị đầu cuối kết nối đến một máy tính ở xa thông qua PSTN vàmodem Những ký tự được nhập tại máy đầu cuối sẽ được gửi đến máy tính ở xa đọc,lưu giữ và truyền lại đầu cuối để hiển thị lên màn hình
1.3 ARQ (Automatic Repeat Request)
- Máy tính sẽ tự động kiểm tra để phát hiện lỗi truyền, sau đó gửi lại cho nguồn tinmột thông điệp ngắn để báo nhận thành công hoặc yêu cầu gửi lại một bản sao củaframe vừa đến (do lỗi)
- Có 2 loại ARQ cơ bản là idle RQ và continuous RQ
+ Primary – P (phía sơ cấp): là phía phát các khung dữ liệu
+ Secondary – S (thứ cấp): thu nhận các khung dữ liệu từ P
Trang 3+ I – frame (Information frame): khung thông tin là các khung chứa dữ liệu màphía phát truyền cho phía thu Mỗi khung có chứa số danh định của khung đó.
+ ACK – frame (Acknowledge frame): là những khung được S truyền đến P đểbáo là đã nhận được dữ liệu tốt (không bị lỗi)
+ NAK – frame (Negative Acknowledge frame): là những khung được S truyềnđến P để báo là khung nhận được bị lỗi
Trang 42 IDLE RQ
Đặc điểm của lược đồ idle RQ:
- Sử dụng trong kiểu truyền dữ liệu định hướng ký tự
- Hoạt động theo chế độ bán song công, vì sau khi p gửi I- frame ,nó phải đợi chođến khi nhận 1 thông báo từ phía S cho bieetsI- frame đó nhạn được thành công Sau
đó, P gửi I- frame kế tiếp nếu khung trước đó nhận đúng hoặc truyền lại khung cũ nếuI- frame không được nhận thành công
Có 2 loại Idle RQ:
- Truyền lại ngầm định( không tường minh- implicit retansmission): S báo frame nếu nhận được I- frame đúng và sẽ không báo ACK- frame nếu nhận sai Do đó,nếu P không nhận được ACK- Frame thì hiểu là I- frame đã bị lỗi và phải truyền lại.thời gian chờ ACK- frame của P được xác định trước và không được lâu hơn thời gianquá hạn( time expires)
ACK Truyền lại tường minh(yêu cầu rõACK Implicit retransmission): S báo ACKACK framenếu nhận I- frame đúng và báo NAK nếu nhận I= frame bị lỗi
Idle ngầm định:
Hoạt động của idle RQ: (a) truyền lại ngầm định
Trang 5Trong hình trên
a/ truyền đúng
b/ I- frame bị lỗi
c/ Ack- frame bị lỗi
- P chỉ có một I – frame đang chờ ACK – frame Khi P nhận được ACK- framecủa khung I(N), P sẽ tiếp tục truyền đi khung kế tiếp I(N+1)
- Khi S nhận được một I – frame bị lỗi, S sẽ bỏ qua và không gửi lại ACK – frame
- Khi P bắt đầu truyền I – frame, nó sẽ khởi động bộ định thời, nếu quá khoảngthời gian giới hạn thì P sẽ truyền lại I – frame đó
- Nếu P không nhận được ACK – frame trong khoảng thời gian định trước thì P sẽtruyền lại I – frame đó nhưng S sẽ loại bỏ bảng sao này do bị trùng lặp điều này thựchiện là do trong mỗi I – frame điều truyền theo số tuần tự của khung
Idle tường minh
- S sẽ trả về ACK – frame nếu nhận I – frame đúng
- Nếu P nhận được ACK- frame thì P sẽ dừng bộ định thời và khởi động lại đườngtruyền I – frame khác
- Nếu S nhận được một I – frame bị lỗi thì I – frame đó sẽ bị loại và S sẽ trả lờibằng một NAK-frame
Nếu P không nhận được 1 ACK-frame(hoặc NAK-frame) trong khoảng thời gianđịnh trước thì P sẽ truyền lại I – frame đó nhưng S sẽ loại bỏ bảng ao này do bị trùnglặp
Trang 6Hoạt động của idle RQ: (b) truyền lại tường minh
Trong hình trên: Idle RQ tường minh
a/ truyền đúng
b/ I – frame bị lỗi
ACK- frame bị lỗi
Nhận xét: với kiểu truyền tường minh thì tăng hiệu quả về thời gian hơn so với kỹthuật truyền không tường minh vì thời gian S truyền NAK- frame về P ngắn hơn nhiều
so với thời gian quá hạn trong kiểu truyền không tường minh
Đặc điểm chung của Idle RQ là sau khi P gởi một I – frame, P phải chờ cho đếnkhi nhận được ACK- frame tương ứng từ S Do đó kiểu truyền này còn được gọi làdừng và chờ ( stop and wait)
Trong cả 2 nguyên lý truyền trên đều có trường hợp S nhận được I – frame và bảnsao đều tốt và S phải loại bỏ bớt một Như vậy, để S có thể phân biệt được hai I – frame
Trang 7nhận được là khác nhau thì cần có cơ chế đánh số chỉ số tuần trong mỗi I – frame đượcgọi là chỉ số tuần tự gởi N(S) và chỉ số tuần tự trong mỗi ACK- frame hay NAK-frameđược gọi là chỉ số tuần tự nhận N(R) tương tự như cấu trúc khung truyền bất đồng bộ,các ký tự điều khiển vẫn được sủ dụng la: SOH, STX, ETX Mỗi I – frame phải chứa 1chỉ số tuần tự tại SOH Ký tự SOH được chèn vào đầu một khối hoàn chỉnh để báo hiệubắt đầu một I – frame mới Tiếp theo là cấu trúc thong thường như truyền bất đồng bộvới BCC dung kiểm tra tổng khối để phía thu biết là nhận được khung đúng hay bị lỗi.Các khung ACK va NAK được dung cho mục đích báo nhận, theo sau là chỉ sốtuần tự thu Các khung này dung phương pháp kiểm tra tổng khối BCC Cả 3 loạikhung: I – frame, ACK- frame, NAK- frame đều được gọi là đơn vị dữ liệu giao thứcPDU( protocol data unit) của giao thức Idle RQ.
2.1 Kiến trúc phân lớp
Lược đồ tuần tự frame được trình bày ở hình trên mô tả các đặc trưng chủ yếu củahoạt động giao thức idle RQ Tuy nhiên, trước khi đi vào các chi tiết lien quan đến giaothức, chúng ta sẽ xem xét cụ thể hơn khái niệm phan lớp khái niệm này có liên quanđến sự tách riêng 1 ứng dụng phối hợp và các tác vụ truyền tin thành hai tác vụ con rõrang hơn, tác vụ con được gọi là lớp, cùng với một hình thức giao tiếp giữa chúng
Để mô tả khái niệm, hãy xem xét một qua trình ứng dụng AP (application process)chạy trên một máy tính truyền một tập tin đến một ứng dụng tương tự chạy trên mộtmáy tính thứ 2 qua một liên kết số liệu nối tiếp dung một giao thức điều khiển lỗi idle
RQ Như đã mô tả, giao thức idle RQ sẽ cố gắng gửi các khối thông tin nối tiếp qua một
Trang 8liên kết số liệu theo phương phapstin cậy Cũng tùy và BEB trên liên kết, một kíchthướt khối tối đa sẽ được chỉ định để đảm bảo một tỉ lệ cao các I- frame không bị lỗi.Lớp giao thức idle RQ trong máy tính nguồn vì thế phải cung cấp 1 dịch vụ xácđịnh cho lớp AP của người dung bên trên nó, dịch vụ này là truyền một chuỗi nối tiếpcác khối thông tin , mỗi khối có môt chiều dài tối đa xa định, đén quá trình ứng dụngtương tự trên máy tính đích Hai thực thể giao thức ngang hang idle RQ có liên quanđến các vấn đề phát hiện lỗi được thảo luận trước đây: tạo ra và phản hồi các frame báonhận, timeout, phân phối các khối thông tin theo tuần tự giống như khi chúng đượctruyền.
Ngược lại, hai quá trình ứng dụng ngang hàng chỉ liên quan đến thủ tục truyền tậptin dùng dịch vụ được cung cấp bởi lớp truyền tin (idle RQ), như là tên tập tin, chiều dàicủa nó, sự phân đoạn nội dung tập tin thành các khối nhỏ hơn trước khi truyền đến lớptruyền tin, vá tái thiết chúng thành một tập tin hoàn chỉnh khi nhận Do đó, trong mỗiứng dụng, tuần tự của các khối thông điệp là rất quan trọng,cú pháp và cấu trúc củathông điệp phải được xác định Điều này ngụ ý rằng một giao thức AP to AP phải cótập PDU riêng của nó Hai thực thể giao thức AP dung các dịch vụ của lớp truyền tinbên dưới dể truyền các PDU của chúng Dĩ nhiên, đối với các lớp truyền tin, tất cả cácPDU này chỉ đơn giản là các khối thông tin sẽ được truyền theo một cách
Thông thường, dịch vụ được cung cấp bởi một lớp truyền tin được biểu diễn dướidạng một hàm thực thể dịch vụ với dữ liệu truyền đóng vai trò là tham số vì dịch vụliên hệ với lớp liên kết và thực hiện truyền số liệu nên hàm dịch vụ của người dùng tạigiao tiếp truyền được ký hiệu là L_DATA.request và hàm dịch vụ tại giao tiếp nhậnđược ký hiệu lafL_DATA.indication điều này được trình bày ở hình (a) dưới
Trong nhiều trường hợp, vì các user của một lớp liên quan đến dịch vụ được cungcấp chứ không liên quan đến cách thực hiện dịch vụ, nên khi định nghĩa các dịch vụliên quan đến một lớp giao thức chúng ta thường trình bày tương tự hình (b) dạng trìnhbày này được gọi là lược đồ tuần tự theo thời gian Để tách biệt rõ rang giữa hai lớp,,dung một hang đợi giữa chúng, như hình (c) ở dưới đây là dạng cấu trúc dữ liệu đơngiản thực hiện theo nguyên lý hang đợi FIFO Các phần tử được đưa vào đuôi của hangđợi và lấy ra từ đầu hang đợi
Trang 9Thông thường, các hàm dịch vụ liên hệ đến một lớp được chuyển qua giữa các lớpbằng một cấu trúc dữ liệu gọi là khối điều khiển sự kiện_ECB Tổng quát, nó là mộtrecord hay cấu trúc chứa kiểu hàm tại filed đầu tiên và một chuỗi ký tự hay byte chứa
dữ liệu của user trong fiel thứ hai bất cứ khi nào nguồn Ap hay lớp giao thức cao hơnmuốn truyền một khối thông điệp, trước hết nó lấy một ECB tự do, ghi đoạn dữ liệu củauser vào chuỗi ký tự hay byte, thiết lập filed chỉ loại hàm thành L_DATA.request vàchèn ECB vào đuôi của hang đợi nhập của lớp liên kết (LS_user) để chuẩn bị sẵn chothực thể giao thức sơ cấp idle RQ đọc
Khi phần mềm thực thể giao thức idle RQ kế tiếp thực thi, nó phát hiện ra sự hiệndiện của một ECB tại hang đợi nhập của lớp liên kết, nó đọc ECB từ dầu của hang đợi,
và xử lý để tạo ra một I-frame hoàn chỉnh gồm nội dung thông điệp, header và trailerthích hợp sau đó nó thực hiện truyền frame đến thực thể giao thức thứ cấp giả sửframe nhận được không bị lỗi, thực thể thứ cấp sẽ loại bỏ header và trailer, và chuyểnnội dung frame đến AP đích theo một ECB bằng cách dung hang đợi ngõ ra của lớp liênkết kèm theo hàm dịch vụ được đổi thành L_DATA.indication sau đó, tạo và phản hồimột ACK- frame đến P
Khi đến lượt AP đích chạy, nó phát hiện và đọc ECB từ hang đợi LS_provider và
xử lý nội dung của khối thông tin phụ thuộc vào giao thức AP to AP đã được địnhnghĩa Thông thường nếu đay là khối thông điệp đầu tiên chứa tên tập tin, nó sẽ liênquan đến việc tạo ra một tập tin có tên theo tên này và mở sẵn cho các hoạt động ghi tậptin ngay sau đó
Ở phía truyền, giả sử nhận được ACK- frame không lỗi, P xóa bộ đệm giữ I- framevừa được báo nhận và kiểm tra hang đợi LS_user để tiếp nhận một ECB đang đợi khác.Nếu có một ECB khác, thủ tục sẽ được lặp lại cho tới khi tất cả các tập tin được truyền.thông thường AP nguồn gởi một khối thông điệp kết thúc truyền để thông báo cho APđích biết toàn bộ nội dung đã được truyền
Trang 10Kiến trúc phân lớp: (a) Các hàm dịch vụ, (b) Lược đồ thứ tự theo thời gian, (c) Các giao tiếp dịch vụ
2.2 Đặc tả giao thức
Định nghĩa hoạt động của một giao thức trong khi cho phép tất cả các sự kiện vàcác trường hợp kiểm soát lỗi có thể làm cho vấn đề trở nên vô cùng phức tạp vì vậy, sẽ
mô tả giao thức bằng cách dung một trong các phương pháp rõ rang và hình thức hơn
Ba phương pháp phổ biến nhất để đặc tả giao thức truyền tin là dung các sơ đồ chuyểntrạng thái, các bảng sự kiện trạng thái mở rộng, và chương trình cấu trúc mức cao
Trang 11Trong nhiều trường hợp, chúng ta định nghĩa một giao thức như là một tổ hợp các
sơ đồ này đi đôi với lượt đồ tuần tự thời gian để mô tả các hàm dịch vụ user liên hệ vớigiao thức
Bất chấp phương pháp đặc tả được dung, chúng ta đều mô phỏng một giao thứcnhư một thiết bị máy móc tự động điều này có nghĩa là giao thức, hay chính xác hơn làthực thể giao thức, chỉ có thể ở một trong một số trạng thái xác định tại bất kỳ điểmnào Ví dụ, nó có thể ở trạng thái nhàn rỗi đợi truyền một thông điệp, hay đợi nhận mộtbáo nhận sự chuyển trạng thái xảy ra khi có kết quả của một sự kiện đến, ví dụ nhưnhận một thông điệp, một sự kiện đi tương ứng được tạo ra, ví dụ khi nhận một thôngđiệp, gởi một thông điệp, gởi tiếp một I- frame lên liên kết, hay khi nhận một NAk-frame thì chuyển lại I- frame
Có thể thấy trong một số sự kiện có thể tạo ra một số sự kiện đi có thể Sự kiện điđặc biệt được chọn là sự kiện xác định bởi trạng thái được tính toán trên cơ sở một haynhiều thuộc tính Ví dụ thuộc tính P1 có thể là true nếu N(R) trong ACK-frame trùngvới N(S) trong I- frame đang đợi báo nhận Do đó, nếu P1 là true thì có thể làm rỗng bộđệm đang lưu giữ I- frame này, nếu là False thì khởi động truyền lại Frame
Sau cùng, một sự kiện đến, ngoài việc tạo ra một sự kiện đi, cũng có thể có mộthay nhiều hành động cục bộ đặc trưng liên quan được tiến hành Ví dụ khởi động một
bộ định thời và gia tăng biến tuần tự gởi
2.3 Đặc tả idle RQ
Tất cả các máy có trạng thái xác định hay các thực thể giao thức đều hoạt độngtheo một phương pháp vi mô.Điều đó có nghĩa là một khi có sự kiện đến là bắt đầu quátrình xử lý,tất cả các chức năng xử lý liên quan đến sự kiện này,bao gồm tạo ra bất cứ
sự kiện nào,bất kỳ một hành động cục bộ nào cũng như sự thay đổi trạng thái là những
gì được thực hiện theo phương thức riêng của chúng trước khi sự kiện đế được chấpnhận
Để chắc chắn điều này xãy ra,các giao tiếp sự kiện đến khác nhau được tách rakhỏi thực thể giao thức nhờ các hàng đợi,như trình bày trên hình 5.4.Có một cặp hàngđợi thêm vào giữa thực thể giao thức và thủ tục truyền/nhận điều khiển mạchtruyền/nhận đặc biệt đang được dùng.Tương tự,cũng có một cặp hàng đợi giữa thực thể
Trang 12giao thức và thủ tục định thời.Thông thường thủ tục định thời chạy theo khoảng thờigian đều đặn bởi tác động của ngắt(interrupt),và nếu bộ định thời đang chạy thì giá trịhiện hành của nó bị giảm từng khoảng một.Nếu giá trị đến 0,bộ định thời hết hạn,mộtthông điệp được gửi cho thực thể giao thức qua hàng đợi thích hợp
Vai trò của thủ tục truyền/nhận chỉ đơn giãn là truyền một framedduwowcj địnhdạng trước đi qua nó và nhận mottj frame từ liên kết và xếp hàng đợi chờ thực thể giaothức xử lý.Thủ tục này cũng có thể được kích hoạt bởi một ngắt,nhưng lần này là từmạch điều khiển truyền Mặc dù,về mặt nguyên lý chỉ cần một hàng đợi nhập và xuất
để để giao tiếp sơ cấp và thứ cấp với các quá trình ứng dụng tương ứng của nó,trongthực tế cần một cặp hàng đợi tại mỗi giao tiếp để kiểm soát dòng các hàm dịch vị trongchế độ song công
Để đơn giản thủ tục đặc tả,chúng ta cung cấp cho mỗi sự kiện đến,sự kiện đi,yếu
tố xác lập(thuộc tính luận lý),hành động dặc biệt và trạng thái liên hệ với mỗi thực thểgiao thức một tên ngắn gọn(viết tắt).Trước khi đặc tả một giao thức,các tên thườngđược liệt kê
Vì mỗi thực thể giao thức là một hệ thống tuàn tự liên tục,nên phải giữ lại thôngtin nào có thể bị thay đổi khi có một sự kiện khác đến.Thông tin được giữ lại trong một
số biến trạng thái.Ví dụ đối với sơ cấp thì biến tuần tự gởi là V(S)_Vs trong đặc tả nógiữ chỉ số tuần tự được gán cho cho I-frame được truyền kế tiếp.Biến PresentState giữutrạng thái hiện hành của thực thể giao thức.RetxCount được dùng để giới hạn tối đa thìframe sẽ bị loại bỏ,và một thông báo lổi được gởi lên cho lớp AP ở trên và thực thể giaothức được khởi động lại
(a) Các sự kiện đến
Tên Giao tiếp Ý nghĩa
Các trạng thái
Tên Ý nghĩa
IDLE Nhàn rỗi, không có thông điệp truyền
WTACK Đơi một báo nhận
Hình 5.5 Các tên viết tắt được dùng trong đặc tả idle RQ
Trang 13Các sự kiện đi
Tên Giao tiếp Ý nghĩa
Các thuộc tính xác lập
Tên Ý nghĩa
Các hành động động đặc biệt Các biến trạng thái
[1]=Start_timer dùng hàng đợi TTM_user Vs = biến tuần tự gởi
thực thể giao thức [3] Stop_timer dùng hàng đợi TIM_user ErrorCount = số frame lỗi đã nhận
[4] Gia tăng RetxCount
[6] Gán lại RetxCount bằng 0
(b) Các sự kiện đến
Tên Giao tiếp Ý nghĩa
Các trạng thái
Tên Ý nghĩa
Các sự kiện đi
Tên Giao tiếp Ý nghĩa
được đến AP với một hàm dịch cụ L_DATA.indication
Các hành động dặc biệt Các biến trạng thái
Hình 5.5(tiếp theo) Các tên viết tắt được dùng trong đặc tả idle RQ:
(a) cho sơ cấp P (b) Cho sơ cấp S
Trang 14Chỉ có hai biến trạng thái là cần cho thứ câp: biến tuần tự như V(R)_Vr trong đặc
tả nó giữu số tuần tự của I-frame nhận tốt sau cùng,và ErrorCount giữ số lượng framelỗi đã nhận.Một lần nữa,nếu ErrorCount đạt đến một giới hạn tối đa xác định thì mộtthông báo lỗi sẽ được gữi ngay đến lớp AP ở trên
Đặc tả chính tắc của hai thực thể P và S lần lượt được trình bày trên hình 5.6 và5.7 dưới dạng sơ đồ trạng thái và dạng bảng sự kiện trạng thái
Sử dụng phương pháp sơ đồ chuyển trạng thái,các trạng thái có thể của thực thểgiao thức được trình bày trong các hình oval,tên trạng thái được viết bên trong đó.Cácmũi tên có hướng chỉ ra theo chiều dịch chuyển có thể giữa các trạng thái,sự kiện đếngây ra sự dịch chuyển và bất kỳ sự kiệ đi và hành động đặc biệt nào đều được viết trênbiên ngoài.Ví dụ nếu nhận được một L_DATA.request(LDATAreq) từ giao tiếp LS-user thì frame được định dạng và đưa đến giao tiếp PHY_user(Txframe),một timerđược được khởi động cho frame này[1],biến tuần tự gởi tăng lên[2],và vào trạng tháiWTACK.Tương tự nếu nhận được một ACK-frame với một N(R) bằng với N(S) trongframe đang đợi và kiểm tra BSC là đúng thì timer bị dừng [3] và bộ đếm truyền lạiđược trả về zero [6],và vào trạng thái IDLE Sự chuyển trạng thái có thể được diễn giảitheo cách tương tự
Mặc dù lược đồ chuyển trạng thái là hữu dụng để trình bày hoạt động vủa mộtgiao thức ,nhưng sự giới hạn về không gian luôn là trở ngại thực tế trong việc trình bàytất cả các khả năng của sự kiện đến bao gồm cả các điều kiện lỗi.Do đó hầu hết các sơ
đò chuyển trạng thái là các đặc tả không hoàn chỉnh.Hơn thế nữa,ngoại trừ các giaothức đơn giãn nhất còn hầu hết chúng ta đều cần dùng đến nhiều lược đồ để địnhnghĩa,ngay cả một hoạt động đúng của giao thức.Vì các lý do này mà chúng ta sẽ dùngbảng sự kiên-trạng thái và phương pháp mã lệnh có cấu trúc
Dùng phương pháp bảng sự kiện-rạng thái mở rộng nư hình 5.6 và 5.7 Chúng ta
có thể trình bày tất cả các dự kiện đến có thể và các trạng thái của giao thức đươi dạngmột bảng Đối với mỗi trạng thái,mục chỉ định trong bảng (table entry) xác định một sựkiện đi,bất kỳ hành động đặc biệt nào,và trạng thái mới tương ứng với tất cả các sự kiệndênd có thể,cũng như các yếu tố xác lập liên quan và tập các hành động tùy chọn Rõràng, bảng sự kiện-trạng thái mở rộng là một phương pháp trình bày tốt hơn vì nó cho
Trang 15phép trình bày tất ca các tổ hợp trạng thái hiện hành và sự kiệ đến có thể Một bảng sựkiện-trạng thái cơ bản chỉ có một hoạt động có thể và một trạng thái kế cho mỗi tổ hợp
sự kiện đến và trạng thái hiện hành Sự xuất hiện các yếu tố xác lập và do đó là cáctrạng thái kế tiếp hay hành động tùy theo có thể kéo theo việc sử dung thuật ngữ “mởrộng”trong tên của phương pháp này (bảng sự kiện-trạng thái mở rộng)
Khi chúng ta giải thích các hành động theo sau các yếu tố xác lập (thuộc tính luậnlý), cần lưu ý rằng các hành động này được trình bày theo thứ tự.Do đó một hành độngtheo sau khi sơ cấp ở trong trạng thái WTACK và nhận một ACK-frame là trước hếtxác định P0 và P1 đều là true Nếu cả hai đúng như thế thì thực hiện hành động [3] và[6] và vào trạng thái IDLE Nếu ngược lại thì xác định xem[P0&NOTP1] có là true haykhông và cứ thế Nếu không có điều liện nào là true thì nghi ngờ có một lỗi và các hànhđộng được trình bày như hình
Một đặc trưng cơ bản của sự kiện-trạng thái mở rộng là làm cho công việc hiệnthực theo mã chương trình (program code) dễ dàng hơn so với một sơ đồ chuyển trạngthái Có thể nhận thấy điều này bằng cách xem xét một ví dụ:hiện thực sơ cấp idle RQ
và thứ cấp idle RQ Cấu trúc của chương trình được trình bày lần lượt trên hình 5.8 (a)
và (b) Chúng được viết theo mã giả mức cao (high-level pseudocode) để dễ hiểu vàđược trình bày như là một chương trình riêng biệt Trong thực tế,chúng có thể là nhữngthủ tục nhưng điều này không ảnh hưởng đến hoạt động cơ bản của chúng
Khi mỗ chương trình bắt đầu chạy,thủ tục khởi động (Initialize) được yêu cầu Thủtục này thực hiện các chức năng như là khởi động tất cả các biến trạng thái bằng cáchgán các giá trị ban đầu cho chúng và nội dung của mãng EventStateTable(EventStateTable array) theo các giá trị trong bảng sự kiện-trạng thái mở rộng.Sau đóchương trình đi vào vòng lặp vô hạn đợi một sự kiện đến tại một trong các hàng đợinhập của nó
Sự kiên đến trước hết sẽ làm cho chương trình được gán loại sự kiện vào biếnEventType.Sau đó nội dung hiên hành của biến PresentState và EventType được dùngnhư là xhir số trỏ đến mảng EventStateTable (EventStateTable array) để xác định sốnguyên 0,1,2 hay 3,những số nguyên này chỉ định các hành động sử lý liên quan đến sựkiện này
Trang 162.4 Hiệu suất sử dụng liên kết
Trước khi xem xét các thủ tục kiểm soát lỗi liên hệ với hai loại giao thức RQ liêntục(continuous RQ protocol),chúng ta sẽ đánh giá hiệu quả sử dụng khả năng có sẵn củaliên kết đối với giao thức idle RQ.Hiệu suất sử dụng U là tỉ số của hai đại lượng thờigian,mỗi đại lượng được đo từ thời điểm mạch phát bắt đầu gửi một frame.Nó đượcđịnh nghĩa như sau:
U= Tix / TtTrong đó : T ix là thời gian để mạch phát truyền một frame và T bằng T cộng
với bất kỳ một lượng thời gian nào mà máy phát đợi một báo nhận
Để đánh giá hiệu suất sử dụng liên kết đối với idle RQ,một sơ đồ tuần tự framecùng với các thành phần thời gian được xác định trong hình 5.9.Trong thực tế hầu hếtcác trường hợp phù hợp với giao thức idle RQ,thời gian xử lý một i-frame,T và thờigian đợi báo nhận ACK-Frame liên quan,T đều nhỏ so với các thời gian truyền T vàT.Cũng vì ACK-Frame ngắn hơn nhiều so với một I-Frame nên T có thể bỏ qua so với
T Do đó tổng thời gian tối thiểu trước khi I-Frame kế tiếp có thể được truyền xấp xỉbằng T+2T Biểu thức U là
U= Tix / (Tix + 2Tp)
Trang 173 RQ LIÊN TỤC (CONTINUOUS RQ)
Đối với lược đồ kiểm soát lỗi RQ liên tục,hiệu suất sử dụng được cải thiên nhờviệc chấp nhận chi phí để mở rộng bộ đệm
Tuần tự frame của continuous RQ(không có lỗi truyền)
Hình trên mô tả hoạt động truyền các I-frame và các ACK-frame phúc đáp chochúng theo tuần tự(trường hợp không có lỗi truyền xảy ra):
- P gửi I-frame một cách liên tục mà không đợi ACK-frame trả về
- P giữ bản copy của các I-frame đang đợi ACK-frame tương ứng trả về trongmột danh sách truyền lại(retransmission list),danh sách này hoạt động theo nguyên tắchàng đợi FIFO
- S phúc đáp một ACK-frame cho mỗi I-frame nhận tốt
- Mỗi I-frame chứa 1 định danh duy nhất ,định danh này cũng được gửi về trongACK-frame tương ứng
- Khi nhận được một ACK-frame,P sẽ loại I-fame tương ứng ra khỏi danh sáchtruyền
Trang 18- Các I-frame đã nhận mà không có lỗi được đặt vào trong danh sách liên kếtnhận(link receive list) để chờ xự lý.
- Khi nhận một I-frame S sẽ chuyển nội dung của I-frame trước nó theo tuần tựcho lớp trên ngay khi xử lý xong
- Trong trường hợp S nhận được các I-frame không theo tuần tự nó sẽ giữ chúngtrong danh sách liên kết nhận cho đến khi nhận được i-frame kế tiếp đúng theo tuần tự
Trong trường hợp có lỗi truyền xảy ra thì ta có thể áp dụng một trong hai chiếnlượ truyền lại sau:
- S chỉ phát hiện và yêu cầu truyền lại đối với những frame trong tuần tụ bịhỏng Chiến lược này được gọi là truyền lại có lựa chọn(selective repeat)
- S phát hiện sự tiếp nhận một I-frame không theo tuần tự và yêu cầu P truyền lạitất cả các I-frame chưa được báo nhận kể từ thời điểm nhận thành công một I-framesau cùng (đượ báo nhận) chiến lược này được gọi là truyền lại một nhóm(go back N)
3.1 Truyền lại có lựa chọn (selective repeat):
Chiến lược truyền lại có lựa chon có thể được thực hiên theo hai cách :
- S biết các frame được nhân tốt và P xác định một frame đã mất dựa vào tuần tựcủa các ACK-frame truyền lại đã nhận và tiến hành truyền lại.Cách này được gọi làtruyền lại ngầm định(selective repeat mplicit retransmission)
- S trả về một thông báo từ chối nhận NAK(negative acknowledgment) đối vớimột frame bị lệch tuần tự.Sau khi nhận được NAK-frame này P sẽ tiến hành truyền lạiI-frame đươc định danh trong NAK-frame.Cách này gọi là truyền lại có yêu cầurõ(selective repeat explicit request)
Ví Dụ:
Truyền lại ngầm định: