Chương 2 Giao thức trao đổi dữ liệu• Giới thiệu một cách cơ bản về giao thức trao đổi số liệu: • Khái niệm giao thức • Đặc tả giao thức • Đánh giá hiệu suất các giao thức • Bảo vệ số li
Trang 1Truyền số liệu và Mạng máy tính
Giao thức trao đổi dữ liệu
GVC Nguyễn Đình Việt Khoa Công nghệ, ĐHQGHN
Hà nội - 2004
Trang 2Chương 2 Giao thức trao đổi dữ liệu
• Giới thiệu một cách cơ bản về giao thức trao
đổi số liệu:
• Khái niệm giao thức
• Đặc tả giao thức
• Đánh giá hiệu suất các giao thức
• Bảo vệ số liệu, error detection & error correction
• Trình bày 2 giao ở mức Data link làm thí dụ
• Giao thức hướng bit
• Giao thức hướng ký tự
2/74
Trang 32.1 Giới thiệu chung
2.1.1 Định nghĩa
Webster’s NewWorld Dictionary of Computer Terms Third Edition
Protocol: Set of rules or conventions governing the exchange of information between computer systems.
Dictionary of Computing: Information Processing, Personal Computing,
Telecommunications, Office Systems, IBM-specific Terms Eight Edition
Protocol: A set of semantic and syntactic rules that determines the behavior of functional units in achieving communications.
Giao thức là tập hợp các quy tắc và quy ước điều khiển việc trao đổi thông tin (truyền thông) giữa các hệ thống máy tính
Giao thức thức không quy định một cách chi tiết việc thực hiện các quy tắc và quy ước trong một hệ thống như thế nào
3/74
Trang 42.1 Giới thiệu chung
2.1.1 Định nghĩa
Giao thức và các thực thể tham gia trao đổi số liệu tạo thành “Máy giao thức” (Protocol Machine/Engine).
Thí dụ về quy tắc (rule) cụ thể:
– Khuôn dạng gói số liệu
– Phương thức trao đổi:
– Phương thức phát hiện và xử lý lỗi trong quá trình trao đổi số liệu
4/74
Trang 52.1 Giới thiệu chung
2.1.2 Đặc tả và kiểm chứng giao thức
Đặc tả giao thức (Protocol Specification) là chỉ rõ tất cả các yêu cầu về:
– Khuôn dạng gói số liệu, gồm: số liệu (data) và các thông tin điều khiển
– Phương thức trao đổi số liệu, gồm: trình tự và thời gian thực hiện từng bước
– Việc xử lý đối với các sự kiện trong và ngoài hệ thống:
5/74
Trang 62.1 Giới thiệu chung
Thí dụ đặc tả giao thức mức N, gồm:
– Đặc tả dịch vụ mức N mà thực thể mức N cung cấp cho thực thể mức N+1
– Đặc tả giao diện giữa mức N và mức N+1 Thực chất đó là mô tả tương tác giữa
thực thể mức N và thực thể mức N+1
– Đặc tả giao thức mức N, thực chất là mô tả tương tác giữa các thực thể cùng
mức (trên các máy tính khác nhau), dịch vụ mà thực thể mức N cung cấp cho mức N+1 và dịch vụ mà thực thể mức N sử dụng của mức –1
6/74
Trang 72.1 Giới thiệu chung
Trang 82.1 Giới thiệu chung
Kiểm chứng (Verification) giao thức
– Trình tự thực hiện; tập hợp đầy đủ các trạng thái và lưu trình chuyển đổi trạng thái; tính có kết thúc; hoạt động ổn định; chứng minh rằng các thực thể tham gia trao đổi
số liệu đáp ứng đầy đủ các yêu cầu mà đặc tả giao thức nêu ra
– Kiểm chứng giao thức mức N phải dựa trên kết quả kiểm chứng giao thức mức N-1 Lỗi xuất hiện ở giao thức mức N cần kiểm chứng có thể gây ra do tương tác giữa các thực thể cùng mức N hoặc N-1
– Phân loại:
8/74
Trang 92.1 Giới thiệu chung
Một số phương pháp kiểm chứng giao thức
– Phân tích đạt tới: cho các đặc tả sử dụng lưu đồ thời gian và lưu đồ
Trang 102.1 Giới thiệu chung
2.1.3 Đánh giá hiệu suất giao thức
Đó là việc đánh giá về mặt định tính và định lượng chất lượng phục vụ của một hệ
thống Với mạng, đó là chất lượng truyền tải
Mục đích của đánh giá hiệu suất: tạo ra một hệ thống hoạt động có hiệu quả và chất lượng phục vụ cao
Hiệu suất mạng có thể được xác định bởi các tham số: reliability, availability, data
throughput, error rate, response time, application performance, v.v hoặc là sự kết hợp
của một số trong các tham số đó
Có ý nghĩa lý luận và thực tiễn quan trọng, trong suốt quá trình thiết kế, triển khai thực hiện và đưa vào sử dụng
10/74
Trang 112.1 Giới thiệu chung
2.1.3 Đánh giá hiệu suất giao thức
Phân loại các phương pháp đánh giá hiệu suất
11/74
Trang 122.1 Giới thiệu chung
2.1.3 Đánh giá hiệu suất giao thức
Phương pháp lập Mô hình giải tích (Analytical Modeling)
– Queueing theory
– Probability theory
– Based on operational data
Phương pháp lập Mô hình mô phỏng (Simulation Modeling)
Trang 132.2 Bảo vệ số liệu và kiểm soát lỗi
2.2.1 Giới thiệu chung
Về bản chất, lỗi truyền số liệu là lỗi bit
Nguyên nhân gây ra lỗi:
– Các quá trình vật lý sinh ra
– Các thiết bị truyền thông gây ra
Lỗi ở một số môi trường có khuynh hướng bùng nổ (burst)
– Mặt dễ giải quyết: dữ liệu máy tính luôn được gửi thành các khối bit
Giả sử rằng kích thước khối là 1000 bit, và tỉ lệ lỗi là 0.001 trên 1 bit
Nếu các lỗi là độc lập thì hầu hết các khối đều chứa lỗi Nếu các lỗi
xuất hiện một cách bùng nổ trong 100 khối, thì tính trung bình chỉ có
một hoặc hai khối trong 100 khối bị ảnh hưởng
– Mặt khó: khó phát hiện và sửa hơn so với các lỗi cô lập (isolated)
13/74
Trang 142.2 Bảo vệ số liệu và kiểm soát lỗi
Xác suất lỗi bit – pb, Tỉ suất lỗi bit – BER
– BER ≤ 10-9 - đường truyền được xem là tốt
– BER ≤ 10-4 - đường truyền chấp nhận được
Một số đơn vị đo khác, ít được sử dụng hơn:
– FER (Frame Error Rate)
– PER (Packet Error Rate
14/74
Trang 152.2 Bảo vệ số liệu và kiểm soát lỗi
Xác suất lỗi gói số liệu:
pf = 1 – (1-pb)N, N - độ dài gói, đo bằng bit
Trang 162.2 Bảo vệ số liệu và kiểm soát lỗi
Lỗi bit đơn và lỗi bit chùm
Lỗi bit đơn – single it error: các lỗi bit riêng lẻ, phân bố ngẫu nhiên trong gói số liệu
Lỗi bit chùm (bit error burst) & một số khái niệm
– Gap: “the region between any two consecutive errors” - là vùng nằm giữa 2 vùng lỗi
– Burst: “A region where the local bit error rate exceeds a certain thresholf value ” - là vùng trong đó BER cục bộ vượt quá một giá trị ngưỡng nhất định Burst bắt đầu và kết thúc bằng các lỗi.
– Burst interval: The region between any two consecutive bursts
– Cluster: A region where the errors occur consecutively with no correct bits in between.
error-free bits.
16/74
Trang 172.2 Bảo vệ số liệu và kiểm soát lỗi
Bảo vệ số liệu:
– Bên gửi bổ sung thêm các thông tin dư thừa vào số liệu cần gửi đi
một cách thích hợp (theo quy luật = thuật toán nhất định)
– Bên nhận dựa trên các thông tin dư thừa để xác định xem gói tin
nhận được có bị lỗi hay không
Hai cách tiếp cận bảo vệ
Trang 182.2 Bảo vệ số liệu và kiểm soát lỗi
Từ mã (Codeword):
Bình thường một frame chứa m bit dữ liệu (tức là message) và r bit dư thừa hoặc là các bit kiểm tra Tổng chiều dài là n= m+r Một đơn vị kích thước n bit bao gồm các bit dữ liệu và các bit kiểm tra thường được gọi là từ mã n bit (n-bit codeword)
Khoảng cách Hamming (Hamming distance)
Cho 2 từ mã, chẳng hạn 10001001 và 10110001, tính được trong chúng có 3 cặp bit tương ứng khác nhau Cách xác định: XOR 2 từ mã và đếm số bit 1 ở kết quả
Số vị trí bit trong đó 2 từ mã khác nhau được gọi là Khoảng cách Hamming
18/74
Trang 192.2 Bảo vệ số liệu và kiểm soát lỗi
Khoảng cách Hamming (Hamming distance)
Các tính chất phát hiện lỗi và kiểm tra lỗi của một mã phụ thuộc vào khoảng cách Harming của chúng
Để phát hiện ra d lỗi, cần một mã có khoảng cách d+1 bởi vì với một mã như vậy
không có một cách nào mà d lỗi bit đơn có thể làm thay đổi một từ mã đúng thành một từ mã đúng (valid) khác Khi người nhận nắm được một từ mã không hợp lệ,
nó có thể nói rằng một lỗi truyền đã xảy ra
Để sửa d lỗi, cần một mã khoảng cách Harming là 2d+1 bởi vì như thế các từ mã
hợp lệ cách xa đến mức mà ngay cả với d bit thay đổi, từ mã ban đầu vẫn còn gần hơn mọi từ mã khác, vì thế mà nó có thể được xác định một cách duy nhất
19/74
Trang 202.2 Bảo vệ số liệu và kiểm soát lỗi
2.2.2 Parity bit (hay phương pháp Kiểm tra chẵn lẻ theo ký tự)
Là phương pháp phát hiện lỗi đơn giản nhất được áp dụng (cho từng ký tự) ở chế độ truyền không đồng bộ
Bit parity đựoc chọn sao cho số các bit 1 trong từ mã là chẵn (hoặc lẻ)
Thí dụ khi 100.0001 được gửi đi với parity chẵn bằng cách bổ sung thêm một bit ở cuối, nó trở thành 1000.0010
Một mã với bit parity đơn có khoảng cách là 2, bởi vì mọi lỗi bit đơn sinh ra một từ
mã với parity sai
Được sử dụng để phát hiện các lỗi bit đơn
20/74
Trang 212.2 Bảo vệ số liệu và kiểm soát lỗi
2.2.3 Kiểm tra chẵn lẻ theo khối
Các mã Hamming chỉ có thể sửa được các lỗi đơn
Tuy nhiên có một cách sử dụng cho phép các mã
Hamming sửa các lỗi kiểu burst (Hamming, 1950)
Một dãy k từ mã liên tiếp được bố trí như một ma trận,
mỗi từ mã trên một hàng
Các bit của từ mã được đánh số liên tiếp, bắt đầu với
bit 1 ở bên trái Các bit là số mũ của 2 (1, 2, 4, 8,
16 ) là các bit kiểm tra (check bit) Các bit còn lại (3,
5, 6, 7, 9 ) được lấp đầy bởi m bit dữ liệu
21/74
Trang 222.2 Bảo vệ số liệu và kiểm soát lỗi
2.2.3 Kiểm tra chẵn lẻ theo khối
Giá trị của bit kiểm tra được chọn sao cho tính chẵn lẻ
của một nhóm bit, kể cả chính nó phải là chẵn (hoặc
lẻ)
Một bit có thể được sử dụng trong một số phép tính
toán tính chẵn lẻ
Để xem bit dữ liệu ở vị trí k ảnh hưởng đến (việc chọn
giá trị) các bit kiểm tra nào, hãy viết lại k như là tổng
các số mũ của 2 Thí dụ, 11=1+2+8 và 29=1+4+8+16
Một bit sẽ được kiểm tra bằng những check bit nằm ở
các vị trí có trong biểu thức như trên
Thí dụ, bit 11 được kiểm tra bởi các bit 1,2 và 8
22/74
Trang 232.2 Bảo vệ số liệu và kiểm soát lỗi
2.2.3 Kiểm tra chẵn lẻ theo khối
Bình thường dữ liệu có thể được truyền đi
mỗi lần một từ mã, từ trái sang phải Để sửa
các lỗi kiểu burst, dữ liệu cần được truyền đi
mỗi lần một cột, bắt đầu từ cột bên trái nhất
Khi tất cả k bit đã được gửi đi, cột thứ 2 sẽ
được gửi
23/74
Trang 242.2 Bảo vệ số liệu và kiểm soát lỗi
2.2.3 Kiểm tra chẵn lẻ theo khối
Khi frame đi đến bên nhận, ma trận sẽ được xây dựng
lại, mỗi lần một cột
Nếu một lỗi burst chiều dài k xảy ra, nhiều nhất chỉ
có một bit ở mỗi một trong số k từ mã bị ảnh hưởng
Mã Hamming có thể sửa được 1 lỗi trong một từ mã,
vì thế tất cả khối có thể khôi phục lại được
Phương pháp này sử dụng k.r bit kiểm tra để tạo nên
các khối có tổng cộng k.m bit dữ liệu trở thành “miễn
dịch” đối với các lỗi burst có chiều dài <= k
24/74
Trang 252.2 Bảo vệ số liệu và kiểm soát lỗi
2.2.4 Mã dư vòng – CRC (Cyclic Redundancy Check / Code)
Tên gọi khác: Mã đa thức (polinomial code)
Là phương pháp phát hiện lỗi tin cậy nhất hiện nay Thường được áp dụng đối với việc truyền số liệu với tốc độ cao, trong LAN hoặc WAN
Coi dòng bit như là các biểu diễn của các đa thức với các hệ số chỉ là 0 và 1 Một frame k bit được xem là một danh sách các hệ số của một đa thức có k số hạng, từ
xk-1 đến x0 Một đa thức như vậy được gọi là có bậc k-1 Bit bậc cao nhất (bên trái nhất) là hệ số của xk-1; bên bên cạnh là hệ số của xk-2 v.v
Thí dụ, 110001 có 6 bit và như thế biểu diễn một đa thức có 6 số hạng với các hệ số
1, 1, 0, 0, 0, 1: x5+x4+x0
25/74
Trang 262.2 Bảo vệ số liệu và kiểm soát lỗi
2.2.4 Mã dư vòng – CRC (Cyclic Redundancy Check / Code)
Các phép tính số học đa thức được thực hiện theo modulo 2, theo các quy tắc của Lý thuyết trường đại số Không có các số nhớ cho phép cộng và số mượn cho phép trừ Cả hai phép tính cộng và trừ đều hoàn toàn giống phép tính OR có loại trừ (EXCLUSIVE OR).
Thí dụ:
26/74
Trang 272.2 Bảo vệ số liệu và kiểm soát lỗi
2.2.4 Mã dư vòng – CRC (Cyclic Redundancy Check / Code)
Khi phương pháp mã đa thức được sử dụng, người gửi và người nhận phải đồng ý trước với nhau về đa thức sinh (generator polynomial) G(x) Cả bit cao lẫn bit thấp của G(x) phải bằng 1.
Để tính checksum cho một frame nào đó có m bit, tương ứng với đa thức M(x), frame phải dài hơn đa thức sinh Ý tưởng là gắn một
checksum vào cuối frame sao cho đa thức được biểu diễn bởi frame
đã được tính checksum chia hết cho G(x) Khi người nhận nhận được frame đã được tính checksum, nó sẽ chia frame đó cho G(x) Nếu
như còn dư, thì biết đã có lỗi truyền.
27/74
Trang 282.2 Bảo vệ số liệu và kiểm soát lỗi
Thuật toán tính checksum như sau:
1. Cho r bằng bậc của G(x), gắn r bit 0 vào cuối của frame, sau bit có
trọng số thấp nhất, vì thế bây giờ nó bao gồm m+r bit, tương ứng
với đa thức xrM(x).
2. Chia xâu bit tương ứng với xrM(x) cho G(x), dùng phép chia modulo
2.
3. Lấy xrM(x) trừ đi phần dư (luôn có số bit nhỏ hơn hoặc bằng r),
dùng phép trừ modulo 2 Kết quả nhận được frame được tính
checksum (checksumed frame) cần phải truyền đi - ta gọi nó là đa thức T(x).
28/74
Trang 292.2 Bảo vệ số liệu và kiểm soát lỗi
Người ta đã chứng minh được rằng, với một
mã đa thức với r bit kiểm tra:
– phát hiện được tất cả các lỗi bit đơn
– phát hiện được tất cả các lỗi có chiều dài ≤ r
–
Frame được truyền đi làT(x) = 11010110111110
29/74
Trang 302.2 Bảo vệ số liệu và kiểm soát lỗi
Có 3 đa thức đã trở thành tiêu chuẩn quốc tế:
CRC_12 = x12 + x11 + x3 + x2 + x1 + 1
CRC_16 = x16 + x15 + x2 + 1
CRC_CCITT = x16 + x12 + x5 + 1
30/74
Trang 312.3 Điều khiển khắc phục lỗi và điều khiển lưu lượng
2.3.1 Cơ chế hoạt động
Kiểm soát lỗi (Error control) bao gồm một hoặc một số trong các
giải pháp kỹ thuật sau:
1. Sử dụng mã phát hiện sai hoặc mã sửa sai
2. Bên nhận thông báo về kết quả nhận: ACK, NACK
3. Sử dụng số tuần tự: đánh STT các gói tin gửi đi
4. Sử dụng đồng hồ quản lý phát, trong đó có Tine-out
5. Điều khiển lưu lượng (Flow Control)
31/74
Trang 322.3 Điều khiển khắc phục lỗi và điều khiển lưu lượng
– Độ dài đường truyền (thời gian trễ)
Căn cứ vào yêu cầu chất lượng dịch vụ
– Có trường hợp có thể chấp nhận lỗi, nếu tỉ suất lỗi nhỏ hơn một giá trị nhất định– Chọn loại mã sửa sai theo yêu cầu chất lượng dịch vụ
Căn cứ vào chi phí xử lý
32/74
Trang 332.3 Điều khiển khắc phục lỗi và điều khiển lưu lượng
2.3.1 Cơ chế hoạt động 2/ Bên nhận thông báo về kết quả nhận:
Trang 342.3 Điều khiển khắc phục lỗi và điều khiển lưu lượng
Trang 352.3 Điều khiển khắc phục lỗi và điều khiển lưu lượng
2.3.1 Cơ chế hoạt động
4/ Sử dụng đồng hồ quản lý phát, trong đó có Tine-out
Timer – đơn vị đồng hồ
Khái niệm Time-out (timeout)
? Khi time-out liên tiếp
35/74
Trang 362.3 Điều khiển khắc phục lỗi và điều khiển lưu lượng
5/ Điều khiển lưu lượng (Flow Control)
Cơ chế cửa sổ trượt – Sliding window
Kích thước cửa sổ bên gửi, bên nhận
Cơ chế biên nhận
So sánh các cơ chế
36/74
Trang 372.3 Điều khiển khắc phục lỗi và điều khiển lưu lượng
– Được sử dụng rộng rãi nhất, có thể áp dụng tại một hay nhiều tầng của mạng,
thường là: Data Link, Internetwork, hay Transport
– Cho phép bên gửi phát đi liên tiếp một số gói số liệu nhất định rồi mới phải dừng lại chờ biên nhận, trước khi tiếp tục phát
– Bên nhận điều khiển lưu lượng bằng cách kìm lại hay gửi ngay biên nhận (gói
ack, hoặc một gói số liệu + ack)
– Tại mọi thời điểm, bên gửi phải ghi nhớ một danh sách chứa số thứ tự liên tiếp các gói số liệu mà nó được phép gửi đi, các gói số liệu này được gọi là nằm trong cửa sổ gửi Tương tự như vậy, bên nhận cũng duy trì một danh sách gọi là cửa sổ nhận, tương ứng với các gói số liệu mà nó được phép nhận
– Cửa sổ gửi và nhận không nhất thiết phải có độ lớn bằng nhau
37/74
Trang 382.3 Điều khiển khắc phục lỗi và điều khiển lưu lượng
Sliding window Flow Control
– Người ta đã đề xuất và sử dụng một số phương thức quản lý cửa sổ khác nhau:
Trang 392.3 Điều khiển khắc phục lỗi và điều khiển lưu lượng
Trang 402.3 Điều khiển khắc phục lỗi và điều khiển lưu lượng
1 Giao thức Stop-and-wait (Dừng và chờ)
Mỗi lần chỉ được truyền/phát đi 1 frame, sau đó sẽ chờ ack/nack.
Frame sẽ được truyền lại nếu:
– Nhận được nack (explicit retransmission)– Hoặc là bị timeout (implicit retransmission)
Chỉ khi nhận được ack, mới loại gói tin tương ứng khỏi bộ đệm phát
40/74