intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chương 5: Cơ sở của giao thức

Chia sẻ: Nguyen Quang Ha | Ngày: | Loại File: DOC | Số trang:36

296
lượt xem
35
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: Chương 5: Cơ sở của giao thức

  1. Chương 5: Cơ sở của giao thức Nhóm 10 MỤC LỤC 1. 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ền bấ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) 1
  2. Chương 5: Cơ sở của giao thức Nhóm 10 - 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 tin mộ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ủa frame 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. + 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. 2
  3. Chương 5: Cơ sở của giao thức Nhóm 10 2. 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ếu I- frame không được nhận thành công. Có 2 loại Idle RQ: 3
  4. Chương 5: Cơ sở của giao thức Nhóm 10 - Truyền lại ngầm định( không tường minh- implicit retansmission): S báo ACK- 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 gian quá hạn( time expires) - Truyền lại tường minh(yêu cầu rõ- Implicit retransmission): S báo ACK- frame nế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 Trong 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- frame củ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. 4
  5. Chương 5: Cơ sở của giao thức Nhóm 10 - Khi P bắt đầu truyền I – frame, nó sẽ khởi động bộ định thời, nếu quá khoảng thờ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ực hiệ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 đường truyề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ời bằ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ùng lặp. 5
  6. Chương 5: Cơ sở của giao thức Nhóm 10 Hoạ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 đến khi 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ản sao đề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 6
  7. Chương 5: Cơ sở của giao thức Nhóm 10 – frame nhận được là khác nhau thì cần có cơ chế đánh số. chỉ số tuần trong mỗi I – frame được gọ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 1 chỉ 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ệu bắ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ại khung: I – frame, ACK- frame, NAK- frame đều được gọi là đơn vị dữ liệu giao thức PDU( 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ủa hoạt động giao thức idle RQ. Tuy nhiên, trước khi đi vào các chi tiết lien quan đến giao thứ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 7
  8. Chương 5: Cơ sở của giao thức Nhóm 10 trên một má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 liê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ích thướ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ếp cá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ụng tươ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áo nhận, timeout, phân phối các khối thông tin theo tuần tự giống như khi chúng được truyề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ập tin 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ài củ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ớp truyề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ủa thô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 tin bê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ác PDU 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ưới dạ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ại giao 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 cung cấ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 8
  9. Chương 5: Cơ sở của giao thức Nhóm 10 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ình bà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 đơn giả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. Thô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ớp bằ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ột record 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ơn muố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ủa user 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 cho thự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ện diệ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à trailer thí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ển nội dung frame đến AP đích theo một ECB bằng cách dung hang đợi ngõ ra của lớp liên kết kèm theo hàm dịch vụ được đổi thành L_DATA.indication. sau đó, tạo và phản hồi mộ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 đ ịnh nghĩ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ên quan đế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ập tin ngay sau đó. Ở phía truyền, giả sử nhận được ACK- frame không lỗi, P xóa bộ đệm giữ I- frame vừ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 9
  10. Chương 5: Cơ sở của giao thức Nhóm 10 đượ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. Kiế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. 10
  11. Chương 5: Cơ sở của giao thức Nhóm 10 Ba phương pháp phổ biến nhất để đặc tả giao thức truyền tin là dung các sơ đồ chuyển trạ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. Trong 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ới giao 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ức như 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ểm nà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ột bá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 hay nhiều thuộc tính. Ví dụ thuộc tính P1 có thể là true nếu N(R) trong ACK-frame trùng vớ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ột hay 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 đ ộng theo 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ấp nhận. 11
  12. Chương 5: Cơ sở của giao thức Nhóm 10 Để 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 ra khỏ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ạch truyề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ể giao 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ời gian đề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ột thô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 định dạ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 ể giao thứ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ó,trong thự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ị trong chế độ 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ông tin 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ữu trạ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ể giao thức được khởi động lại. (a) Các sự kiện đến Giao tiếp Tên Ý nghĩa Hàm dịch vụ L_DATA.request nhận LDATAAreq LS_user Nhận ACK-frame từ S ACKRCVD PHY_provider Đợi bộ định thời ACK hết hạn TEXP TIM_provider Nhận NAK-frame từ S NAKRCVD PHY_provide 12
  13. Chương 5: Cơ sở của giao thức Nhóm 10 Các trạng thái Tên Ý nghĩa Nhàn rỗi, không có thông điệp truyền IDLE Đơi một báo nhận WTACK Hình 5.5. Các tên viết tắt được dùng trong đặc tả idle RQ Các sự kiện đi Giao tiếp Tên Ý nghĩa Định dạng và truyền một I-frame TxFrame PHY-user Truyền lại một I-frame đang đợi báo nhận RetxFrame PHP-user Thông điệp bị lổi:frame bị loại vì lý do được LERROnd LS_provider chi định Các thuộc tính xác lập Tên Ý nghĩa N(S) trong I-frame đang đợi = N(R) trong ACK-frame P0 Kiểm tra tổng khối(BSC) trong ACK/NAK-frame là đúng P1 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 Presentstate = trạng thái hiện hành của [2] gia tăng Vs 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 RextCount = số lần truyền lại frame này [5] Gia tăng ErrorCount [6] Gán lại RetxCount bằng 0 (b) Các sự kiện đến Giao tiếp Tên Ý nghĩa Nhận I-frame từ P IRCVD PHY_provider Các trạng thái Tên Ý nghĩa Đơi một I-frame mới từ P WTIFM Các sự kiện đi Giao tiếp Tên Ý nghĩa Chuyển nội dung của I-frame nhận LDATAind LS_provider được đến AP với một hàm dịch cụ L_DATA.indication Đinh dạng và truyền một ACK- TxACK(X) PHY_user frame với N(R) = X Định dạng và truyền một NAK- TxNAK(X) PHP_user frame với N(R)=X Phát ra một thông điệp lỗi vì lý do LERRORind LS_provider được chỉ định Các thuộc tính xác lập Tên Ý nghĩa P0 N(S) trong I-frame = Vr Kiểm tra tổng khối (BSC) trong I-frame là đúng P1 P2 N(S) trong I-frame = Vr-1 Các hành động dặc biệt Các biến trạng thái 13
  14. Chương 5: Cơ sở của giao thức Nhóm 10 Vr = biến tuần tự nhận [1] = gia tăng Vr ErrorCount = Số frame lỗi đã nhận [2] = gia tăng ErrorCount 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 Chỉ 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 frame lỗ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ột thô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ác mũ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 đến gâ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ên biê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ái WTACK.Tương tự nếu nhận được một ACK-frame với một N(R) bằng với N(S) trong frame đ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ải theo 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ột giao 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ày tấ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 giao thứ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 đ ồ đ ể định nghĩ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ùng bả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 14
  15. Chương 5: Cơ sở của giao thức Nhóm 10 dạng mộ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ện dê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 phé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ác trạ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ận lý), 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 động theo sau khi sơ cấp ở trong trạng thái WTACK và nhận một ACK-frame là trước hết xá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 hay khô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ện thực theo mã chương trình (program code) dễ dàng hơn so với một sơ đồ chuyển trạng thá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ững thủ 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ách gá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 đ ợi nhập của nó. 15
  16. Chương 5: Cơ sở của giao thức Nhóm 10 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ến EventType.Sau đó nội dung hiên hành của biến PresentState và EventType được dùng như 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. 2.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ên tục(continuous RQ protocol),chúng ta sẽ đánh giá hiệu quả sử dụng khả năng có sẵn của liê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ời gian,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 / Tt Trong đó : 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ự frame cù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ết cá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ời gian đợ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) 16
  17. Chương 5: Cơ sở của giao thức Nhóm 10 3. 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 cho chú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ề trong một danh sách truyền lại(retransmission list),danh sách này hoạt động theo nguyên tắc hàng đợi FIFO. - S phúc đáp một ACK-frame cho mỗi I-frame nhận tốt 17
  18. Chương 5: Cơ sở của giao thức Nhóm 10 - Mỗi I-frame chứa 1 định danh duy nhất ,định danh này cũng được gửi về trong ACK-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ách truyền. - Các I-frame đã nhận mà không có lỗi được đặt vào trong danh sách liên kết nhậ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úng trong 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ến lượ 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ại tấ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- frame sau 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ới mộ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ại I-frame đươc định danh trong NAK-frame.Cách này gọi là truyền lại có yêu cầu rõ(selective repeat explicit request). Ví Dụ: Truyền lại ngầm định: 18
  19. Chương 5: Cơ sở của giao thức Nhóm 10 Giả sử I-frame N+1 bị hỏng: - S trả lời một ACK-frame cho mỗi I-frame nhận tốt ngay trước đó.S trả lời ACK-frame co các I-frame N,N+2,N+3. - Khi nhận được ACK-frame cho I-frame của N+2 , P phát hiện chưa nhận được ACK-frame của N+1. P chuyển sang trạng thái truyền lại,trong trạng thái này viêc truyền một I-frame mới đươc hoãn lại cho đến khi tất cả các frame không đ ược báo nhận đều được truyền lại. - P xóa I-frame của N+2 ra khỏi danh sách truyền lại và truyền lại N+1 trước khi tiếp tục truyền I-frame mới. - Khi nhận được I-frame N+1 ,nội dung của các frame được xếp hàng trong danh sách liên kết được S phân phối đến lớp trên. 19
  20. Chương 5: Cơ sở của giao thức Nhóm 10 Trường hợp ACK-frame bị hỏng Giả sử ACK-frame N bị hỏng: - Khi nhận được ACK-frame N+1,P phát hiện chưa nhận được ACK-frame của N do đó P tiến vào trạng thái truyên lại và truyền lại I-frame N. - Khi nhận được I-frame N được truyền lại ,S nhờ vào biến tuần tự nhận mà xác định được I-frame đã được nhân tốt vì vậy nó xóa bỏ frame trùng lặp này nhưng vẫn gửi một ACK-frame để đảm bảo P xóa I-frame này khỏi danh sách truyền lại. 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2