Để thấy sự cần thiết của việc kiểm soát liên kết dữ liệu, chúng tôi liệt kê một số yêu cầu và mục tiêu để truyền dữ liệu hiệu quả giữa hai trạm thu-truyền được kết nối trực tiếp: Đồng
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI
BÀI TẬP LỚN MÔN: KỸ THUẬT TRUYỀN THÔNG
Dịch tài liệu “Data and Computer
Trương Việt Hoàng-0191466
Nguyễn Tuấn Anh-0180066
Hà Nội, 2021
Trang 3208 CHƯƠNG 7/ CÁC GIAO THỨC ĐIỀU KHIỂN LIÊN KẾT DỮ LIỆU
“Người vĩ đại và giác ngộ,” Ten-teh nói, ngay sau khi sự sững sờ của anh ta được nâng lên, “có điều này người truyền tải thông điệp của mình một cách thành thạo, vì tâm trí anh ta vẫn còn là một viễn cảnh nhức nhối về tuyết và cát và tình cờ lưỡi của anh ấy đã vấp phải?
“Hãy áp tai vào tường,” Hoàng đế đáp, “và hãy yên tâm.”
Cuộc thảo luận của chúng tôi cho đến nay liên quan đến việc gửi tín hiệu qua một liênkết truyền dẫn Để truyền thông dữ liệu kỹ thuật số hiệu quả, cần nhiều hơn nữa đểkiểm soát và quản lý quá trình trao đổi Trong chương này, chúng tôi chuyển sự nhấnmạnh của mình sang việc gửi dữ liệu qua một liên kết truyền thông dữ liệu Để đạtđược sự kiểm soát cần thiết, một lớp logic được thêm vào phía trên lớp vật lý được
thảo luận trong Chương 6; logic này được gọi là điều khiển liên kết dữ liệu hoặc giao thức điều khiển liên kết dữ liệu Khi một giao thức điều khiển liên kết dữ liệu
được sử dụng, phương tiện truyền dẫn giữa các hệ thống được gọi là
Để thấy sự cần thiết của việc kiểm soát liên kết dữ liệu, chúng tôi liệt kê một số yêu cầu và mục tiêu để truyền dữ liệu hiệu quả giữa hai trạm thu-truyền được kết nối trực tiếp:
Đồng bộ hóa khung: Dữ liệu được gửi trong các khối được gọi là khung Đầu và cuối của mỗi khung phải được nhận dạng Chúng tôi đã giới thiệu ngắn gọn về chủ đề này với phần thảo luận về các khung đồng bộ (Hình 6.2).
Kiểm soát luồng:Trạm gửi không được gửi khung với tốc độ nhanh hơn so với trạm nhận có thể hấp thụ chúng.
Kiểm soát lỗi: Các lỗi bit do hệ thống truyền đưa vào phải được đã sửa.
Đánh địa chỉ:Trên một liên kết được chia sẻ, chẳng hạn như mạng cục bộ
(LAN),danh tính của hai trạm tham gia vào quá trình truyền phải được chỉ định.
Điều khiển và dữ liệu trên cùng một liên kết: Thông thường không mong muốn có một đường dẫn truyền thông vật lý riêng biệt cho thông tin điều khiển Theo
đó, máy thu phải có khả năng phân biệt thông tin điều khiển với dữ liệu được truyền.
NHỮNG ĐIỂM CHÍNH
Do khả năng xảy ra lỗi truyền dẫn và do người nhận dữ liệu có thể cần phải điều chỉnh tốc độ dữ liệu đến, nên các kỹ thuật giao diện và đồng bộ hóa đồng bộ hóa là không đủ Cần phải áp đặt một lớp điều khiển trong mỗi thiết
bị giao tiếp cung cấp các chức năng như điều khiển luồng, phát hiện lỗi và kiểm soát lỗi Lớp điều khiển này được gọi là giao thức điều khiển liên kết
Điều khiển liên kết dữ liệu mức cao (HDLC) là một giao thức điều khiển liên kết
dữ liệu được sử dụng rộng rãi Nó chứa hầu như tất cả các tính năng được tìm thấy trong các giao thức kiểm soát liên kết dữ liệu khác.
Trang 47.1 ĐIỀU KHIỂN LƯU LƯỢNG 209
Quản lý liên kết: Việc bắt đầu, duy trì và kết thúc quá trình trao đổi dữ liệu bền vững đòi hỏi sự phối hợp và hợp tác chặt chẽ giữa các trạm Các thủ tục quản lý trao đổi này là bắt buộc.
Không có yêu cầu nào trong số này được thỏa mãn bởi các kỹ thuật được mô tả trong Chương 6 Trong chương này, chúng ta sẽ thấy rằng một giao thức liên kết dữ liệuđáp ứng các yêu cầu này là một vấn đề khá phức tạp Chúng ta bắt đầu bằng cách xemxét hai cơ chế chính là một phần của điều khiển liên kết dữ liệu: điều khiển luồng vàđiều khiển lỗi Theo nền tảng này, chúng ta xem xét ví dụ quan trọng nhất của giaothức điều khiển liên kết dữ liệu: HDLC (điều khiển liên kết dữ liệu cấp cao) Giaothức này rất quan trọng vì hai lý do: Thứ nhất, nó là giao thức điều khiển liên kết dữliệu được tiêu chuẩn hóa được sử dụng rộng rãi Thứ hai, HDLC đóng vai trò làđường cơ sở mà từ đó hầu như tất cả các giao thức kiểm soát liên kết dữ liệu quantrọng khác đều được bắt nguồn Cuối cùng, một phụ lục của chương này giải quyếtmột số vấn đề về hiệu suất liên quan đến kiểm soát liên kết dữ liệu
Kiểm soát luồng là một kỹ thuật để đảm bảo rằng thực thể truyền không lấn át thựcthể nhận dữ liệu Thực thể nhận thường phân bổ bộ đệm dữ liệu có độ dài tối đa cho quá trìnhtruyền Khi nhận được dữ liệu, người nhận phải thực hiện một số xử lý nhất định trước khichuyển dữ liệu đến phần mềm cấp cao hơn Trong trường hợp không có kiểm soát luồng, bộđệm của máy thu có thể đầy và tràn luồng trong khi nó đang xử lý dữ liệu cũ
Để bắt đầu, chúng tôi kiểm tra các cơ chế kiểm soát luồng khi không có lỗi Không cóyêu cầu nào trong số này được thỏa mãn bởi các kỹ thuật được mô tả trong Chương 6 Trongchương này, chúng ta sẽ thấy rằng một giao thức liên kết dữ liệu đáp ứng các yêu cầu này làmột vấn đề khá phức tạp Chúng ta bắt đầu bằng cách xem xét hai cơ chế chính là một phầncủa điều khiển liên kết dữ liệu: điều khiển luồng và điều khiển lỗi Theo nền tảng này, chúng
ta xem xét ví dụ quan trọng nhất của giao thức điều khiển liên kết dữ liệu: HDLC (điều khiểnliên kết dữ liệu cấp cao) Giao thức này rất quan trọng vì hai lý do: Thứ nhất, nó là giao thứcđiều khiển liên kết dữ liệu được tiêu chuẩn hóa được sử dụng rộng rãi Thứ hai, HDLC đóngvai trò là đường cơ sở mà từ đó hầu như tất cả các giao thức kiểm soát liên kết dữ liệu quantrọng khác đều được bắt nguồn Cuối cùng, một phụ lục của chương này giải quyết một sốvấn đề về hiệu suất liên quan đến kiểm soát liên kết dữ liệu.Điều khiển và dữ liệu trên cùngmột liên kết: Thông thường không mong muốn có một đường dẫn truyền thông vật lý riêngbiệt cho thông tin điều khiển Theo đó, máy thu phải có khả năng phân biệt thông tin điềukhiển với dữ liệu được truyền Mô hình mà chúng ta sẽ sử dụng được mô tả trong Hình 7.1a,
là biểu đồ chuỗi thời gian theo chiều dọc Nó có ưu điểm là hiển thị các phụ thuộc thời gian
và minh họa mối quan hệ gửi-nhận chính xác Mỗi mũi tên đại diện cho một khung duy nhấttruyền liên kết dữ liệu giữa hai trạm Dữ liệu được gửi theo một chuỗi các khung, với mỗikhung chứa một phần dữ liệu và một số thông tin điều khiển Thời gian cần thiết để một trạmphát tất cả các bit của khung lên phương tiện là thời gian truyền; điều này tỷ lệ thuận với độdài của khung Thời gian lan truyền là thời gian cần thiết để một bit đi qua liên kết giữanguồn và đích Đối với phần này, chúng tôi giả sử rằng tất cả các khung được truyền đềuđược nhận thành công; không có khung nào bị mất và không có khung nào bị lỗi Hơn nữa,các khung đến theo cùng một thứ tự mà chúng được gửi đi Tuy nhiên, mỗi khung đượctruyền phải chịu một độ trễ tùy ý và thay đổi trước khi nhận.1
1 Trên liên kết điểm-điểm trực tiếp, lượng trễ được cố định thay vì thay đổi Tuy nhiên, một liên kết dữ liệu giao thức điều khiển có thể được sử dụng qua kết nối mạng, chẳng hạn như mạng chuyển mạch kênh hoặc mạng ATM, trong trường hợp nào độ trễ có thể thay đổi.
7.1 KIỂM SOÁT LƯU LƯỢNG
Trang 5210 CHƯƠNG 7/ CÁC GIAO THỨC ĐIỀU KHIỂN LIÊN KẾT DỮ LIỆU
Hình 7.1 Mô hình truyền khung
KIỂM SOÁT LUỒNG DỪNG VÀ CHỜ
Hình thức điều khiển luồng đơn giản nhất, được gọi là điều khiển luồng dừng và chờ, hoạtđộng như theo sau Một thực thể nguồn truyền một khung Sau khi thực thể đích nhận đượckhung, nó cho biết nó sẵn sàng chấp nhận một khung khác bằng cách gửi lại một báo nhậncho frame vừa nhận được Nguồn phải đợi cho đến khi nó nhận được xác nhận trước khi gửikhung tiếp theo Do đó, điểm đến có thể dừng luồng dữ liệu đơn giản bằng cách giữ lại xácnhận Thủ tục này hoạt động tốt và, thực sự, khó có thể được cải thiện khi một tin nhắn đượcgửi trong một số lượng lớn khung Tuy nhiên, thường xảy ra trường hợp một nguồn sẽ chianhỏ một khối dữ liệu lớn thành các khối nhỏ hơn và truyền dữ liệu trong nhiều khung Điềunày được thực hiện vì những lý do sau:
Kích thước bộ đệm của máy thu có thể bị giới hạn
Quá trình truyền càng dài thì càng có nhiều khả năng xảy ra lỗi, buộc phải truyền lạitoàn bộ khung Với các khung nhỏ hơn, các lỗi được được phát hiện sớm hơn và mộtlượng dữ liệu nhỏ hơn cần được truyền lại
Trên một phương tiện được chia sẻ, chẳng hạn như mạng LAN, thông thường khôngnên cho phép một trạm chiếm phương tiện trong một thời gian dài, do đó gây ra sựchậm trễ lâu tại các trạm gửi khác
Trang 6210 CHƯƠNG 7/ CÁC GIAO THỨC ĐIỀU KHIỂN LIÊN KẾT DỮ LIỆU
Với việc sử dụng nhiều khung cho một tin nhắn, quy trình dừng và chờ có thể khôngphù hợp Bản chất của vấn đề là mỗi lần chỉ có một khung có thể quá cảnh Để giải thích,
trước tiên chúng ta xác định độ dài bit của một liên kết như sau:
(7.1)
Với
B = độ dài của liên kết tính bằng bit; đây là số bit có trên liên kết tại một thời điểm khi
một luồng bit chiếm hoàn toàn liên kết
R = tốc độ dữ liệu của liên kết, tính bằng bps
d = length, or distance, of the link in meters
V = vận tốc lan truyền, tính bằng m/s
Trong trường hợp độ dài bit của liên kết lớn hơn độ dài khung, dẫn đến thiếu hiệu quảnghiêm trọng Điều này được minh họa trong Hình 7.2 Trong hình, thời gian truyền (thờigian cần thiết để một trạm truyền một khung) được chuẩn hóa thành một và độ trễ lan truyền(thời gian cần thiết để một bit di chuyển từ người gửi đến người nhận) được thể hiện dướidạng biến a Vì vậy, chúng ta có thể biểu thị a như
a = B
L
(7.2) trong đó L là số bit trong khung (độ dài của khung tính bằng bit)
Khi a nhỏ hơn 1, thời gian truyền nhỏ hơn thời gian truyền.Trong trường hợp này,khung đủ dài để các bit đầu tiên của khung đến tại đích trước khi nguồn hoàn thành việctruyền khung
Hình 7.2 Sử dụng liên kết dừng và đợi ( truyền gian truyền =1; thời gian lan truyền =a)
Trang 7212 CHƯƠNG 7/ CÁC GIAO THỨC ĐIỀU KHIỂN LIÊN KẾT DỮ LIỆU
Khi a lớn hơn 1, thời gian truyền lớn hơn thời gian truyền.Trong trường hợp này, bêngửi hoàn thành việc truyền toàn bộ khung trước khi các bit đầu của khung đó đến bên nhận.Nói cách khác, giá trị lớn hơn của a là phù hợp với tốc độ dữ liệu cao hơn và/hoặc khoảngcách xa hơn giữa các trạm Phụ lục 7A thảo luận về a và hiệu suất liên kết dữ liệu
Cả hai phần của Hình 7.2 (a và b) bao gồm một chuỗi ảnh chụp nhanh của quá trìnhtruyền tải theo thời gian Trong cả hai trường hợp, bốn ảnh chụp nhanh đầu tiên hiển thị quátrình truyền khung chứa dữ liệu và ảnh chụp nhanh cuối cùng hiển thị trả lại một khung xácnhận nhỏ Lưu ý rằng đối với dòng luôn luôn chưa sử dụng hết và thậm chí đối với dâychuyền là sử dụng kém hiệu quả Về bản chất, đối với tốc độ dữ liệu rất cao, đối với khoảngcách rất xa giữa người gửi và người nhận, điều khiển luồng dừng và chờ cung cấp việc sửdụng đường truyền không hiệu quả
Điều khiển luồng cửa sổ trượt
Bản chất của vấn đề được mô tả cho đến nay là chỉ một khung hình tại một thời điểm có thểđược trên đường vận chuyển Trong trường hợp độ dài bit của liên kết lớn hơn khung (a > 1)kéo dài dẫn đến thiếu hiệu quả nghiêm trọng Hiệu quả có thể được cải thiện rất nhiều bởicho phép nhiều khung hình được chuyển tiếp cùng một lúc
VÍ DỤ 7.1 Xét một liên kết cáp quang dài 200 m hoạt động ở tốc độ 1 Gbps Các
vận tốc truyền của sợi quang thường là khoảng 2 x 108 m/s Sử dụng phương trình (7.1), B
= (108x 200)/(2 x108 ) = 1000 bits Giả sử một khung gồm 1000 octet, hoặc 8000 bit, đượctruyền đi Sử dụng phương trình (7.2), a=(1000/8000) = 0.125 Sử dụng Hình 7.2a làm
hướng dẫn, giả sử quá trình truyền bắt đầu tại thời điểm t = 0 Sau 1μss (thời gian chuẩn
hóa bằng 0,125 lần khung), cạnh đầu (bit đầu tiên) của khung có đạt đến R và 1000 bit đầu
tiên của khung được trải ra trên liên kết Tại thời gian t = 8μss cạnh sau (bit cuối cùng) của
khung vừa được phát ra bởi T, và 1000 bit cuối cùng của khung được trải ra trên liên kết
Tại t = 9μss bit cuối cùng của khung đến R R bây giờ gửi lại một khung ACK.Nếu chúng
ta giả sử thời gian truyền khung là không đáng kể (khung ACK rất nhỏ) và ACK được gửingay lập tức, ACK đến T lúc này điểm, T có thể bắt đầu truyền một khung mới Thời gian
truyền thực tế của khung là 8μss nhưng tổng thời gian để truyền khung đầu tiên và nhận và
ACK là 10 μs.s
Bây giờ hãy xem xét một liên kết 1 Mbps giữa hai trạm mặt đất giao tiếp thông qua một rơle vệ tinh Một vệ tinh địa tĩnh có độ cao khoảng 36.000 km Sau đó
B = (106 x 2 x 36,000,000)/(3 x 108) = 240,000 bits Cho một khung dài 8000 bit, a =
(240000/8000) = 30 Sử dụng Hình 7.2b làm hướng dẫn, chúng ta có thể làm việc thông qua các bước tương tự như trước đây Trong trường hợp này, phải mất 240 ms để dẫn đầu cạnh của khung đến và thêm 8 ms để toàn bộ khung đến ACK quay trở lại T vào t = 488
ms thời gian truyền thực tế lần đầu tiên khung là 8 ms, nhưng tổng thời gian để truyền khung đầu tiên và nhận ACK là 488 ms
Trang 87.1 / ĐIỀU KHIỂN LƯU LƯỢNG 213
Hãy để chúng tôi kiểm tra xem điều này có thể hoạt động như thế nào đối với hai trạm A
và B, được kết nối qua một liên kết song công hoàn toàn Trạm B phân bổ không gian bộ đệm cho W khung Như vậy, B có thể chấp nhận W khung và A được phép gửi W khung mà không cần đợi bất kỳ xác nhận nào Để theo dõi những khung nào đã được xác nhận, mỗi khung được gắn nhãn bằng một số thứ tự B thừa nhận một khung bằng cách gửi một xác nhận rằng bao gồm
số thứ tự của khung tiếp theo dự kiến sự thừa nhận này cũng ngầm thông báo rằng B chuẩn bị nhận các khung W tiếp theo, bắt đầu với số lượng được chỉ định Sơ đồ này cũng có thể được sử dụng để xác nhận nhiều khung Ví dụ: B có thể nhận các khung 2, 3 và 4 nhưng giữ lại báo nhận cho đến khi khung 4 đến Sau đó trả lại một xác nhận với số thứ tự 5, B thừa nhận các khung 2, 3
và 4 cùng một lúc A duy trì một danh sách các số thứ tự mà nó được phép gửi và B duy trì một
danh sách các số thứ tự mà nó chuẩn bị nhận Mỗi danh sách này có thể được coi là như một cửa
sổ của các khung Hoạt động này được gọi là điều khiển luồng cửa sổ trượt
Một số ý kiến bổ sung cần phải được thực hiện Bởi vì số thứ tự để được sử dụng chiếm một trường trong khung, nó bị giới hạn trong một phạm vi giá trị Ví dụ, đối với trường 3 bit, số thứ tự có thể nằm trong khoảng từ 0 đến 7 Theo đó, các khung được đánh số theo modulo 8; nghĩa là sau dãy số 7, số tiếp theo là số 0 Nói chung, đối với một trường k-bit, phạm vi của các
Trang 9214 CHƯƠNG 7 / CÁC GIAO THỨC ĐIỀU KHIỂN LIÊN KẾT DỮ LIỆU
0 đến 7 và sau đó các số giống nhau được sử dụng lại cho các khung tiếp theo Các hình chữ nhậtđược tô bóng cho biết các khung có thể được gửi; trong hình này, người gửi có thể truyền năm khung, bắt đầu bằng khung 0 Mỗi khi một khung được gửi, phần được tô bóng cửa sổ co lại; mỗi khi nhận được xác nhận, cửa sổ được tô bóng mọc Các khung giữa thanh dọc và cửa sổ bóng mờ đã được gửi nhưng chưa được thừa nhận Như chúng ta sẽ thấy, bên gửi phải đệm các khung này trong trường hợp chúng cần được truyền lại
Kích thước cửa sổ không cần phải là kích thước tối đa có thể cho một độ dài số thứ tự Vídụ: sử dụng số thứ tự 3 bit, cửa sổ kích thước 5 có thể được định cấu hình cho các trạm bằng điều khiển luồng cửa sổ trượt giao thức
Cơ chế được mô tả cho đến nay cung cấp một dạng điều khiển luồng: Bộ thu phải chỉ có thể chứa bảy khung hình ngoài khung hình mà nó đã xác nhận lần cuối Hầu hết các giao thức điều khiển liên kết dữ liệu cũng cho phép một trạm cắt luồng khung hình từ phía bên kia bằng cách gửi thông báo Nhận chưa sẵn sàng (RNR), thông báo này thừa nhận các khung cũ nhưng cấm chuyển các khung trong tương lai Như vậy, RNR 5 có nghĩa là “Tôi đã nhận được tất cả cáckhung cho đến số 4 nhưng không thể chấp nhận bất kỳ hơn vào lúc này.” Tại một số thời điểm tiếp theo, trạm phải gửi một thông báo bình thường xác nhận để mở lại cửa sổ
Cho đến nay, chúng tôi đã thảo luận về việc truyền theo một hướng duy nhất Nếu hai trạm trao đổi dữ liệu, mỗi cái cần duy trì hai cửa sổ, một để truyền và một để nhận và mỗi bên cần gửi dữ liệu và xác nhận cho bên kia Đến cung cấp hỗ trợ hiệu quả cho yêu cầu này, một tính
năng được gọi là piggybacking thường được cung cấp Mỗi khung dữ liệu bao gồm một trường
chứa số thứ tự của khung đó cộng với một trường chứa số thứ tự được sử dụng để xác nhận
VÍ DỤ 7.2 Một ví dụ được hiển thị trong Hình 7.4 Ví dụ này giả định một 3-bit trường số
thứ tự và kích thước cửa sổ tối đa là bảy khung Ban đầu, A và B có các cửa sổ chỉ ra rằng
A có thể truyền bảy khung, bắt đầu bằng khung 0 (F0) Sau khi truyền ba khung (F0, F1,
F2) mà không có báo nhận, A đã thu nhỏ cửa sổ của nó thành bốn khung và duy trì một bản sao của ba khung các khung được truyền Cửa sổ chỉ ra rằng A có thể truyền bốn
khung, bắt đầu với khung số 3 B sau đó truyền một RR (sẵn sàng nhận) 3, có nghĩa là “Tôi
đã nhận được tất cả các khung cho đến khung số 2 và sẵn sàng nhận khung số 3; trên
thực tế, tôi chuẩn bị nhận bảy khung hình, bắt đầu bằng khung số 3.” Với sự thừa nhận này, A được phép truyền bảy khung hình, vẫn bắt đầu bằng khung hình 3; cũng có thể loại
bỏ bộ đệm các khung hiện đã được xác nhận A tiến hành truyền các khung 3, 4, 5, và 6 Btrả về RR 4, xác nhận F3 và cho phép truyền F4 qua thể hiện tiếp theo của F2 Vào thời
điểm RR này đến A, nó đã truyền F4, F5 và F6, và do đó A chỉ có thể mở cửa sổ của nó để cho phép gửi bốn khung hình bắt đầu bằng F7
Trang 107.1 ĐIỀU KHIỂN LƯU LƯỢNG 215
Hình 7.4 Ví dụ về giao thức về cửa sổ trượt
Do đó, nếu một trạm có dữ liệu để gửi và xác nhận để gửi, nó sẽ gửi cả hai cùng nhau trong một khung, tiết kiệm dung lượng truyền thông Tất nhiên, nếu một trạm có một xác nhận
nhưng không có dữ liệu để gửi, nó sẽ gửi một thông báo riêng khung xác nhận điện tử, , như là
như RR hoặc RNR Nếu một trạm có dữ liệu để gửi nhưng không có xác nhận mới để gửi, nó phải lặp lại số thứ tự xác nhận cuối cùng mà nó đã gửi Điều này là do khung dữ liệu bao gồm một trường cho số xác nhận và một số giá trị phải được đưa vào lĩnh vực đó Khi một trạm nhận được một xác nhận trùng lặp, nó chỉ cần bỏ qua nó
Điều khiển luồng cửa sổ trượt có khả năng hiệu quả hơn nhiều so với điều khiển luồng dừng và chờ Lý do là, với điều khiển luồng cửa sổ trượt, liên kết truyền được coi như một đường ống có thể chứa đầy các khung đang truyền Ngược lại, với điều khiển luồng dừng và chờ,mỗi lần chỉ có thể có một khung trong đường ống.Appen dix 7A định lượng sự cải thiện về hiệu quả
VÍ DỤ 7.3 Chúng ta hãy xem xét việc sử dụng điều khiển luồng cửa sổ
trượt cho hai cấu hình của Ví dụ 7.1 Như đã được tính toán trong Ví dụ 7.1,
phải mất 10μs để nhận được ACK cho khung đầu tiên Cần phải truyền một
khung, vì vậy người gửi có thể truyền một khung và một phần của khung thứ hai bằng thời gian nhận được ACK cho khung đầu tiên Do đó, kích
thước cửa sổ bằng 2 là đủ để
Trang 11216 CHƯƠNG 7 / CÁC GIAO THỨC ĐIỀU KHIỂN LIÊN KẾT DỮ LIỆU
Kiểm soát lỗi đề cập đến các cơ chế phát hiện và sửa lỗi xảy ra trong quá trình truyền khung Mô hình mà chúng ta sẽ sử dụng, bao trùm trường hợp điển hình, được minh họa trong Hình 7.1b Như trước đây, dữ liệu được gửi dưới dạng một chuỗi các khung; các khung đến theo cùng một thứ tự mà chúng được gửi đi; và mỗi khung được truyền phải chịu một độ trễ tùy ý và
có khả năng thay đổi trước khi nhận Ngoài ra, chúng tôi thừa nhận khả năng xảy ra hai loại lỗi:
Mất khung: Một khung không đến được phía bên kia Ví dụ: một loạt tiếng ồn có thể làm
hỏng khung đến mức người nhận không biết rằng khung đã được truyền
Khung bị hỏng: Một khung có thể nhận dạng đã đến, nhưng một số bit nằm trong lỗi (đã
bị thay đổi trong quá trình truyền)
Các kỹ thuật phổ biến nhất để kiểm soát lỗi dựa trên một số hoặc tất cả các thành phần sau:
Phát hiện lỗi: Như đã thảo luận trong Chương 6.
Xác nhận tích cực: Đích trả về một xác nhận tích cực để nhận thành công, khung hình
không có lỗi
Truyền lại sau khi hết thời gian chờ: Nguồn truyền lại một khung chưa được xác nhận
sau một khoảng thời gian định trước
Xác nhận phủ định và truyền lại: Đích trả về một xác nhận phủ định đối với các khung
trong đó phát hiện lỗi Nguồn truyền lại các khung như vậy
Nói chung, các cơ chế này đều được gọi là yêu cầu lặp lại tự động (ARQ); tác dụng của ARQ là biến một liên kết dữ liệu không đáng tin cậy thành một liên kết đáng tin cậy Ba phiên bản của ARQ đã được tiêu chuẩn hóa:
Đối với cấu hình vệ tinh, phải mất 488 ms để ACK cho khung đầu tiên được
nhận.Mất 8 ms để truyền một khung, vì vậy người gửi có thể truyền 61 khung vào thời điểm nhận được ACK cho khung đầu tiên Với trường cửa sổ là 6 bit trở lên, người gửi có thể truyền liên tục hoặc tốc độ của một khung hình cứ sau 8ms Nếu kích thước cửa sổ là 7, sử dụng trường cửa sổ 3 bit, thì người gửi chỉ có thể gửi 7 khung và sau đó phải đợi ACK trước khi gửi thêm Trong trường hợp này, các người gửi có thể truyền với tốc độ 7 khung hình trên 488 ms hoặc khoảng một khung hình cứ sau 70 ms.Với tính năng dừng và chờ, tốc độ chỉ có một khung hình trên
488 ms là có thể
7.2 KIỂM SOÁT LỖI
Trang 127.2 KIỂM SOÁT LỖI 217
Tất cả các hình thức này đều dựa trên việc sử dụng các kỹ thuật điều khiển luồng được thảo luận trong Phần 7.1 Chúng tôi kiểm tra lần lượt
ARQ Dừng và Đợi
ARQ dừng và chờ dựa trên kỹ thuật điều khiển luồng dừng và chờ được phác thảo trước đây Trạm nguồn truyền một khung đơn và sau đó phải đợi một khung xác nhận (ACK) Không có khung dữ liệu nào khác có thể được gửi cho đến khi phản hồi của trạm đích đến trạm nguồn
Hai loại lỗi có thể xảy ra Đầu tiên, khung đến đích có thể bị hư hỏng Người nhận phát hiện điều này bằng cách sử dụng kỹ thuật phát hiện lỗi được đề cập trước đó và chỉ cần loại bỏ khung Để giải thích cho khả năng này, các trạm nguồn được trang bị bộ đếm thời gian Sau khi một khung được truyền đi, trạm nguồn sẽ chờ xác nhận Nếu không nhận được xác nhận vào thờiđiểm rằng bộ đếm thời gian hết hạn, thì khung tương tự sẽ được gửi lại Lưu ý rằng phương phápnày yêu cầu máy phát duy trì một bản sao của khung đã truyền cho đến khi một xác nhận được nhận cho khung đó
Loại lỗi thứ hai là xác nhận bị hỏng Hãy xem xét tình huống sau đây Trạm A gửi một khung Khung được nhận chính xác bởi trạm B, phản hồi bằng một xác nhận (ACK) ACK bị hỏng trong quá trình vận chuyển và không được A nhận ra, do đó sẽ hết thời gian và gửi lại cùngmột
khung Khung trùng lặp này đến và được chấp nhận bởi B Do đó, B đã chấp nhận hai bản sao của cùng một khung như thể chúng là riêng biệt Để tránh vấn đề này, các khung được gắn nhãn luân phiên bằng 0 hoặc 1 và các xác nhận tích cực có dạng ACK0 và ACK1 Để phù hợp với quyước cửa sổ trượt, một ACK0 xác nhận đã nhận được khung được đánh số 1 và cho biết rằng người nhận đã sẵn sàng cho một khung được đánh số 0
Hình 7.5 đưa ra một ví dụ về việc sử dụng ARQ dừng và chờ, cho thấy truyền một chuỗi
các khung từ nguồn A đến đích B.2 Hình hiển thị hai loại lỗi vừa được mô tả Khung thứ ba đượctruyền bởi A bị mất hoặc bị hỏng và do đó B không gửi lại ACK Hết thời gian và truyền lại khung Sau đó, A truyền một khung có nhãn 1 nhưng ACK0 cho khung đó bị mất Hết thời gian
và truyền lại cùng một khung Khi B nhận được hai khung liên tiếp với cùng một nhãn, nó loại
bỏ khung thứ hai nhưng gửi lại một ACK0 cho mỗi khung
Ưu điểm chính của ARQ dừng và chờ là tính đơn giản của nó nhược điểm chính của nó, như đã thảo luận trong Phần 7.1, là việc dừng và chờ là một cơ chế không hiệu quả Kỹ thuật điều khiển luồng cửa sổ trượt có thể được điều chỉnh để cung cấp nhiều hơn sử dụng đường dây
hiệu quả; trong bối cảnh này, đôi khi nó được gọi là ARQ liên tục.
ARQ Ngược lại N
Hình thức kiểm soát lỗi dựa trên điều khiển luồng cửa sổ trượt được sử dụng phổ biến nhất thường được sử dụng được gọi là ARQ Ngược lại N Trong phương pháp này, một trạm có thể gửi một loạt các khung được đánh số tuần tự modulo một số giá trị tối đa Con số của số lượng khung chưa được xác nhận còn tồn đọng được xác định theo kích thước cửa sổ, sử dụng
Con số này cho biết thời gian cần thiết để truyền một khung Để đơn giản, các số liệu khác trong chương này không hiển thị thời gian này
Trang 13218 CHƯƠNG 7 / CÁC GIAO THỨC ĐIỀU KHIỂN LIÊN KẾT DỮ LIỆU
Hình 7.5 ARQ Dừng và Đợi
kỹ thuật điều khiển luồng cửa sổ trượt Trong khi không có lỗi xảy ra, đích sẽ xác nhận các khung đến như bình thường (RR= nhận xác nhận đã sẵn sàng hoặc có kèm theo) Nếu trạm đích phát hiện lỗi trong một khung, nó có thể gửi xác nhận phủ định (REJ =reject) cho khung đó, như được giải thích trong các quy tắc sau Trạm đích sẽ loại bỏ khung đó và tất cả các khung đến trong tương lai cho đến khi nhận được chính xác khung bị lỗi Do đó, trạm nguồn, khi nhận đượcREJ, phải truyền lại khung bị lỗi cộng với tất cả các khung thành công đã được truyền trong thời gian tạm thời
Giả sử rằng trạm A đang gửi khung đến trạm B Sau mỗi lần truyền, A đặt bộ hẹn giờ xác nhận cho khung vừa truyền Giả sử rằng B có
Trang 147.2/ KIỂM SOÁT LỖI 219
trước đó đã nhận thành công khung trang (i -1) và A vừa truyền khung i Kỹ thuật Ngược lại N
tính đến các trường hợp sau :
1 Khung bị hỏng Nếu khung nhận được không hợp lệ (nghĩa là B phát hiện lỗi hoặc
khung bị hỏng đến mức B thậm chí không nhận thấy rằng nó đã nhận được mộtkhung), B sẽloại bỏ khung và không thực hiện them hành động nào do kết quả của việc đó.Có hai trườnghợp con:
(a) Trong một khoảng thời gian hợp lý, A sau đó gửi khung (i + 1) B nhận khung (i + 1) không đúng thứ tự và gửi REJ i A phải truyền lại khung i và tất cả các khung tiếp theo.
(b) A không sớm gửi các khung bổ sung B không nhận được gì và trả lại không phải RR hay REJ Khi bộ đếm thời gian của A hết hạn, nó sẽ truyền RR khung bao gồm một bit được gọi là bit P, được đặt thành 1 B thông dịch khung RR với bit P là 1 như một lệnh phải được xác nhận bằng cách gửi một RR chỉ ra khung tiếp theo mà nó mong đợi, đó là
khung i Khi A nhận được RR, nó truyền lại khung i Ngoài ra, A có thể chỉ truyền lại khung i khi hết giờ.
2 RR hỏng Có hai trường hợp con:
(a) B nhận khung i và gửi RR (i + 1) , khung này bị lỗi khi truyền Bởi vì các xác nhận
được tích lũy (ví dụ: RR 6 có nghĩa là tất cả các khung đến 5 được xác nhận), có thể A
sẽ nhận được một RR tiếp theo cho khung tiếp theo và nó sẽ đến trước bộ định thời
liên kết với khung i hết hạn.
(b) Nếu bộ đếm thời gian của A hết hạn, nó sẽ truyền lệnh RR như trong Trường hợp 1b
Nó thiết lập một bộ đếm thời gian khác, được gọi là bộ định thời P-bit Nếu B không phản hồi lệnh RR, hoặc nếu phản hồi của nó bị lỗi trong khi truyền, thì bộ đếm thời gian P-bit của A sẽ hết hạn Tại thời điểm này, A sẽ thử lại bằng cách phát lệnh RR mới và khởi động lại bộ đếm thời gian P-bit Quy trình này được thử cho một số lần lặp lại Nếu A không nhận được xác nhận sau một số lần thử tối đa, nó sẽ bắt đầu thủ tục đặt lại
3 REJ hư Nếu REJ bị mất, điều này tương đương với Trường hợp 1b.
VÍ DỤ 7.4 Hình 7.6a là một ví dụ về luồng khung cho ARQ Ngược lại N Do độ
trễ lan truyền trên đường truyền, vào thời điểm một biên độ xác nhận (tích cực hoặc tiêu cực) quay trở lại trạm gửi, nó đã đã gửi ít nhất một khung bổ sung
ngoài khung được xác nhận trong này ví dụ, khung 4 bị hỏng Các khung hình
5 và 6 được nhận không theo thứ tự và bị loại bỏ bởi B Khi khung 5 đến, B ngay lập tức gửi REJ 4 Khi REJ tới khung 4 được nhận, không chỉ khung 4 mà cả
khung 5 và 6 phải được truyền lại Lưu ý rằng máy phát phải giữ một bản sao của tất cả các khung chưa được xác nhận.Hình 7.6a cũng cho thấy một ví dụ về truyền lại sau khi hết thời gian chờ Không có biên bản xác nhận nào được nhận cho khung 5 trong khoảng thời gian chờ, vì vậy A gửi RR tới xác định trạng thái của B
Trang 15220 CHƯƠNG 7 / CÁC GIAO THỨC ĐIỀU KHIỂN LIÊN KẾT DỮ LIỆU
Hình 7.6 Giao thức ARQ cửa sổ trượt
Trong Phần 7.1, chúng tôi đã đề cập rằng đối với trường số thứ tự k - bit, trường này cung cấp
phạm vi số thứ tự có 2k, kích thước cửa sổ tối đa được giới hạn đến2k−1 Điều này liên quan đến sự tương tác giữa kiểm soát lỗi và xác nhận Hãy xem xét rằng nếu dữ liệu đang được trao đổi theo cả hai hướng, trạm B phải gửi các xác nhận được quay vòng tới các khung của trạm A trong các khung dữ liệuđược truyền bởi B, ngay cả khi xác nhận đã được gửi Như chúng tôi đã đề cập, điều này là do B phải đặt một số số vào trường xác nhận của khung dữ liệu của nó
Trang 167.2 / KIỂM SOÁT LỖI 221
Ví dụ: giả sử số thứ tự 3 bit (không gian số thứ tự = 8 ) Giả sử một trạm gửi khung 0 và nhận lại RR 1, sau đó gửi các khung 1, 2, 3, 4, 5, 6, 7, 0 và nhận được RR 1 khác Điều này có thể có nghĩa là tất cả tám khung hình đều được nhận chính xác và RR 1 là một báo nhận tích lũy Nó cũng có thể có nghĩa là tất cả tám các khung bị hỏng hoặc bị mất trong quá trình truyền và trạm nhận đang lặp lại RR 1 trước
đó của nó Vấn đề sẽ tránh được nếu kích thước cửa sổ tối đa bị giới hạn 7 (23
−1)
ARQ từ chối chọn lọc:
Với ARQ từ chối có chọn lọc, các khung duy nhất được truyền lại là những khung nhận được
xác nhận tiêu cực, trong trường hợp này được gọi là SREJ hoặc những xác nhận hết thời gian chờ
Từ chối chọn lọc có vẻ hiệu quả hơn Ngược lại N, bởi vì nó giảm thiểu lượng truyền lại Mặt khác, người nhận phải duy trì bộ đệm đủ lớn để lưu các khung sau SREJ cho đến khi khung bị lỗi được được truyền lại và phải chứa logic để chèn lại khung đó vào đúng sự phối hợp Máy phát cũng vậy, yêu cầu logic phức tạp hơn để có thể gửi một khung ra khỏi trình tự Vì những phức tạp như vậy, ARQ chọn-từ chối có nhiều ít được sử dụng rộng rãi hơn ARQ Ngược lại N Loại bỏ có chọn lọc là một lựa chọn hữu ích cho một liên kết vệ tinh nhỏ vì có liên quan đến độ trễ lan truyền dài
Giới hạn kích thước cửa sổ hạn chế hơn đối với từ chối chọn lọc hơn là quay lại N Xem xét trường hợp kích thước số thứ tự 3 bit cho từ chối chọn lọc Cho phép kích thước cửa sổ là 7 và xem xét tình huống sau [TANE03]:
1 Trạm A gửi các khung từ 0 đến 6 đến trạm B
2 Trạm B nhận tất cả bảy khung và xác nhận tích lũy với RR 7
3 Vì một tiếng nổ, RR 7 bị mất
4 Hết thời gian chờ và truyền lại khung 0
5 B đã nâng cao cửa sổ nhận của mình để chấp nhận các khung 7, 0, 1, 2, 3, 4 và 5 Do đó, giả định rằng khung 7 đã bị mất và đây là khung 0 mới, mà nó chấp nhận
Vấn đề với kịch bản đã nói ở trên là có sự chồng chéo giữa cửa sổ gửi và nhận Để khắc phục sự
cố, kích thước win dow tối đa không được quá một nửa phạm vi số thứ tự Trong kịch bản trước, nếu chỉ có bốn khung chưa được xác nhận có thể chưa được xử lý, thì không nhầm lẫn có thể dẫn đến Nói chung, đối với trường số thứ tự k-bit, trường này cung cấp một phạm vi số thứ tự của 2k, kích thước cửa sổ tối đa được giới hạn ở 2k−1
VÍ DỤ 7.5 Hình 7.6b minh họa sơ đồ này Khi khung 5 được nhận không đúng thứ tự, B gửi SREJ
4, chỉ ra rằng khung 4 chưa được nhận Tuy nhiên, B tiếp tục chấp nhận các khung đến và đệm
chúng cho đến khi hợp lệ khung 4 được nhận Tại thời điểm đó, B có thể đặt các khung theo thứ tự thích hợp cho phân phối đến phần mềm lớp cao hơn
Trang 17222 CHƯƠNG 7 / CÁC GIAO THỨC ĐIỀU KHIỂN LIÊN KẾT DỮ LIỆU
Giao thức điều khiển liên kết dữ liệu quan trọng nhất là HDLC (ISO 3009, ISO 4335) HDLC khôngchỉ được sử dụng rộng rãi, nhưng nó là cơ sở cho nhiều liên kết dữ liệu quan trọng khác các giao thức điều khiển, sử dụng các định dạng giống nhau hoặc tương tự và cùng các cơ chế như được sử dụng trong HDLC
Đặc điểm cơ bản:
Để đáp ứng nhiều ứng dụng khác nhau, HDLC định nghĩa ba loại trạm, hai cấu hình liên kết và ba chế độ truyền dữ liệu hoạt động ba trạm các loại là
• Trạm sơ cấp: Chịu trách nhiệm điều khiển hoạt động của đường truyền Khung được ban
hành bởi chính được gọi là lệnh
• Trạm phụ: Hoạt động dưới sự điều khiển của trạm chính Khung phát hành bởi một thứ cấp
được gọi là phản hồi Chính duy trì một riêng biệt liên kết logic với mỗi trạm thứ cấp trên đường dây
• Trạm kết hợp: Kết hợp các tính năng của sơ cấp và thứ cấp Một trạm kết hợp có thể đưa ra
cả lệnh và phản hồi
Hai cấu hình liên kết là
• Cấu hình không cân bằng: Bao gồm một trạm chính và một hoặc nhiều trạm phụ và hỗ trợ
cả truyền song công hoàn toàn và bán song công
• Cấu hình cân bằng: Bao gồm hai trạm kết hợp và hỗ trợ cả hai truyền song công và bán
song công
Ba chế độ truyền dữ liệu là
• Chế độ phản hồi bình thường (NRM): Được sử dụng với cấu hình không cân bằng Các sơ
cấp có thể bắt đầu truyền dữ liệu sang thứ cấp, nhưng thứ cấp chỉ có thể truyền dữ liệu để đápứng với một lệnh từ chính
• Chế độ cân bằng không đồng bộ (ABM): Được sử dụng với cấu hình cân bằng.Một trong
hai trạm kết hợp có thể bắt đầu truyền mà không cần nhận được sự cho phép từ trạm kết hợp khác
• Chế độ phản hồi không đồng bộ (ARM): Được sử dụng với cấu hình không cân bằng Thứ
cấp có thể bắt đầu truyền mà không có sự cho phép rõ ràng của điều thiết yếu Chính vẫn giữ trách nhiệm đối với dòng, bao gồm khởi tạo, khôi phục lỗi và ngắt kết nối hợp lý
NRM được sử dụng trên nhiều đường dây, trong đó một số thiết bị đầu cuối được kết nối đến một máy tính chủ Máy tính thăm dò từng thiết bị đầu cuối cho đầu vào NRM đôi khi cũng được sử dụng trên các liên kết điểm-điểm, đặc biệt nếu liên kết kết nối một thiết bị đầu cuối hoặc thiết bị ngoại vi khác vào máy tính ABM được sử dụng rộng rãi nhất trong ba chế độ; nósử dụng hiệu quả hơn liên kết điểm-điểm song công hoàn toàn vì không có chi phí bỏ phiếu ARM hiếm khi được sử dụng; nó được áp dụng cho một số tình huống đặc biệt trong mà một thứ cấp có thể cần phải bắt đầu truyền
7.3 KIỂM SOÁT LIÊN KẾT DỮ LIỆU MỨC CAO (HDLC)
Trang 187.3 / ĐIỀU KHIỂN LIÊN KẾT DỮ LIỆU MỨC CAO (HDLC) 223 Cấu Trúc Khung:
HDLC sử dụng truyền dẫn đồng bộ Tất cả các truyền đều ở dạng khung, và một định dạng khung duy nhất đủ cho tất cả các loại trao đổi dữ liệu và điều khiển
Hình 7.7 mô tả cấu trúc của khung HDLC Các trường cờ, địa chỉ và điều khiển đứng trước
trường thông tin được gọi là tiêu đề FCS và các trường cờ theo sau trường dữ liệu được gọi là đoạn giới thiệu.
thể được sử dụng làm cờ đóng cho một khung và mở cắm cờ cho lần sau Ở cả hai phía của giao diện mạng người dùng, người nhận đang liên tục tìm kiếm chuỗi cờ để đồng bộ hóa khi bắt đầu khung Trong khi nhận được một khung, một trạm tiếp tục tìm kiếm chuỗi đó để xác định kết thúc của khung Bởi vì giao thức cho phép sự hiện diện của các mẫu bit tùy ý (tức là, không có giới hạn nào về nội dungcủa các trường khác nhau do công cụ liên kết áp đặt), không có gì đảm bảo rằng mẫu 01111110 sẽ không xuất hiện ở đâu đó bên trong khung, do đó phá hủy đồng bộ hóa Để tránh sự cố này, một quy
trình được gọi là nhồi bit được sử dụng Đối với tất cả các bit giữa các cờ bắt đầu và kết thúc, máy phát
chèn thêm một bit 0 sau mỗi lần xuất hiện năm giây 1 trong khung Sau