Bộ ghộp kờnh thống kờ

Một phần của tài liệu giáo trình mạng và truyền số liệu (Trang 78 - 176)

- Thực thể: là thành phần tớch cực trong mỗi tầng, nú cú thể là một tiến trỡnh

3.7.3.Bộ ghộp kờnh thống kờ

Mỗi đầu cuối trong một bộ ghộp kờnh phõn thời liờn quan đến một khe ký tự cố định trong mỗi frame. Nếu đầu cuối hay mỏy tớnh khụng cú dữ liệu truyền khi bộ xử lý quột qua UART tương ứng, vi xử lý phải chốn cỏc ký tự NUL vào trong khe này, vỡ thế rất khụng hiệu quả trong việc sử dụng băng thụng đường truyền sẵn cú. Nếu liờn kết dữ liệu thuộc sở hữu tư nhõn thỡ điều này khụng cần bận tõm. Nhưng nếu là đường truyền cụng cộng thỡ nú cú ảnh hưởng rất lớn. Phương phỏp ghộp kờnh hiệu quả hơn là ghộp kờnh thống kờ ( statistical multiplexing ).

Bộ ghộp kờnh thống kờ hoạt động theo nguyờn lý tốc độ trung bỡnh dữ liệu của ký tự nhập tại một đầu cuối thường thấp hơn nhiều so với khả năng truyền dẫn của đường dõy. Nếu dựng tốc độ dữ liệu của người dựng thay vỡ tốc độ của đường truyền thỡ tốc độ bit của liờn kết dữ liệu chung thấp hơn nhiều và giỏ thành giảm đi đỏng kể. Giả sử một vị trớ ở xa cú 8 đầu cuối cần nối đến một mỏy tớnh trung tõm ở xa qua đường truyền dẫn cụng cộng, giả sử đường truyền cú tốc độ tối đa là 4800bps. Dựng một MUX cơ bản và một đường dõy đơn, tốc độ hoạt động danh định của mỗi đầu cuối phải nhỏ hơn 600 bp, giả sử là 300 bps. Ảnh hưởng của giới hạn này là thời gian đỏp ứng của mỏy tớnh đối với mối ký tự được gừ vào đầu cuối thường thấp hoặc một nếu một khối ký tự đang được truyền đến đầu cuối thỡ thời gian gian trễ cú thể nhận thấy được. Dĩ nhiờn nếu tốc độ dữ liệu trung bỡnh đầu cuối là 300 bps thỡ với bộ ghộp kờnh thống kờ thỡ dữ liệu cú thể được truyền bởi một đầu cuối với tốc độ tối đa cú thể là 4800 bps, do đú, thời gian đỏp ứng trung bỡnh đối với mỗi ký tự gừ vào được cải thiện đỏng kể. vỡ cỏc ký tự được truyền trờn liờn kết số liệu chung căn cứ theo thống kờ thay cho sự phõn phối trước, nờn mỗi ký tự hay nhúm ký tự được truyền cũng phải mang thờm thụng tin nhận dạng.

CHƯƠNG 4, GIAO TIẾP LIấN KẾT SỐ LIỆU 4.1. Giới thiệu

Tầng liờn kết dữ liệu thực hiện cỏc cụng việc chớnh như sau: - Định danh cỏc thiết bị trờn mạng, cấu hỡnh logic của mạng. - Điều khiển luồng dữ liệu và việc truy nhập ở tầng vật lý.

- Phỏt hiện và chỉnh sửa cỏc lỗi xuất hiện trong quỏ trỡnh truyền dữ liệu.

Chức năng chớnh của tầng liờn kết dữ liệu là tỏch rời cỏc khung thành cỏc bit để truyền đi và kiến tạo cỏc khung (frames) từ cỏc dũng bit nhận được.

Tầng liờn kết dữ liệu nghiờn cứu cỏc thuật toỏn thực hiện thụng tin hiệu suất, tin cậy giữa hai mỏy cạnh nhau ở tầng 2. Đưa ra cỏc thủ tục truyền tin cú lưu ý đến lỗi cú thể xảy ra do nhiều trờn đường dõy, sự trễ do lan truyền.

Thụng thường, tầng liờn kết dữ liệu cú liờn quan đến nhiễu của tớn hiệu của phương tiện vật lý, cho dự là truyền qua dõy đồng, cỏp quang hay truyền thụng qua súng ngắn. Nhiễu là một vấn đề rất thụng thường và cú thể do nhiều nguồn khỏc nhau, trong đú cú cả nhiễu của cỏc tia vũ trụ, nhiễu do tạp õm của khớ quyển và từ cỏc nguồn khỏc.

4.2. Cỏc vấn đề của tầng liờn kết dữ liệu4.2.1. Cung cấp dịch vụ cho tầng mạng 4.2.1. Cung cấp dịch vụ cho tầng mạng

Tầng 2 chuyển dữ liệu từ mức 3 ở mỏy nguồn tới mức 3 ở mỏy nhận

Hỡnh 4.1. đường truyền dữ liệu trong tầng liờn kết dữ liệu

Cỏc dịch vụ tầng 2 cú thể là:

- Dịch vụ khụng kết nối, khụng biờn nhận (Unacknowledged Connectionl Service) - Dịch vụ khụng kết nối, cú biờn nhận (Acknowledged Connectionless Service) - Dịch vụ cú kết nối (Connection Oriented Service)

Dịch vụ kết nối cú hướng cú 3 giai đoạn: kết nối, truyền số liệu, tỏch bỏ liờn kết (kết thỳc): CONNECT, DATA, DISCONNECT. Truyền tin giữa 2 tầng kề nhau dựng cỏc hàm dịch vụ nguyờn thủy (request, indication, response và confirm).

Dịch vụ khụng kết nối được thể hiện bằng một bước duy nhất là truyền tin, khụng cần thiết lập liờn kết logic. Cỏc đơn vị dữ liệu truyền độc lập với nhau.

4.2.2. Khung tin – Nhận biết gúi tin

Để cung cấp dịch vụ cho tầng mạng, tầng liờn kết dữ liệu phải dựng dịch vụ được cung cấp từ tầng Vật lý. Tầng Vật lý tiếp nhận dũng bit và giao cho nơi nhận. Dũng bit này cú thể cú lỗi. Tầng liờn kết dữ liệu sẽ kiểm tra và nếu cần sẽ sửa lỗi.

Tầng liờn kết dữ liệu tỏch dũng bit thành cỏc khung tin (frame) và tớnh thụng số kiểm tra tổng (checksum) cho mỗi khung tin này, nếu kết quả tớnh được khỏc với checksum chứa trong khung tin, nghĩa là cú lỗi và khi đú lỗi sẽ được thụng bỏo cho nơi gửi.

Muốn tỏch cỏc khung tin, cú thể chốn cỏc đoạn phõn cỏch (timegaps) vào giữa cỏc khung tin, giống như khoảng trồng (space) giữa cỏc từ trong văn bản. Nhưng điều này khú thực hiện nờn người ta thường dựng cỏc phương phỏp sau:

• Đếm số ký tự: Hiện nay ớt được dựng, vỡ từ đếm cũng bị lỗi khi truyền

• Dựng ký tự bắt đầu (STX) và kết thỳc (ETX) với ký tự đệm (DLE)

• Dựng cỏc cờ (flags) đỏnh dấu bắt đầu và kết thỳc với cỏc bit đệm

4.2.3. Kiểm tra lỗi

Cỏc cỏch để kiểm tra lỗi trong quỏ trỡnh truyền:

- Dựng thụng số trả lời cú biờn nhận (ACK) hoặc khụng biờn nhận (NAK) để đó nhận đỳng bản tin hay phải phỏt lại.

- Dựng bộ định thời gian, nếu quỏ thời gian quy định khụng cú trả lời nghĩa là bản tin chưa nhận được.

- Dựng phương phỏp đỏnh số thứ tự cỏc khung tin (frame) được gửi đi.

Quỏ trỡnh kiểm tra lỗi đồng thời với quản lý thời gian và số thứ tự của cỏc khung tin nhằm bảo đảm mỗi khung tin chỉ nhận được một lần duy nhất. Đõy là chức năng quan trọng của tầng liờn kết dữ liệu.

4.2.4. Điều khiển luồng dữ liệu

Trong quỏ trỡnh truyền dữ liệu, nếu tốc độ bờn phỏt nhanh hơn bờn thu thỡ xảy ra hiện tượng mất tin do khụng nhận kịp. Vỡ vậy cần phải điều khiển luồng truyền (flow

control) để quỏ trỡnh thu phỏt được phối hợp nhịp nhàng và đồng bộ với nhau. Chức (adsbygoogle = window.adsbygoogle || []).push({});

năng cú tại một vài cấp giao thức, kể cả tầng con LLC.

Cỏc giao thức phải chứa cỏc quy tắc xỏc định rừ khi nào nơi gửi cú thể phỏt cỏc khung tin kế tiếp.

Một chức năng khỏc của tầng liờn kết dữ liệu là quản lý cỏc kết nối như tỏch, nối, đỏnh số khung tin, bắt đầu lại khi lỗi, quản lý cỏc thiết bị đầu cuối thứ cấp hoặc sơ cấp bằng khung tin thăm dũ (poll).

4.2.6. Nộn dữ liệu khi truyền

Nộn dữ liệu là một vấn đề quan trọng đối với việc truyền dữ liệu trờn mạng. Về cơ bản, nộn dữ liệu là ộp chỳng lại để đỡ chỗ khi lưu trữ trờn đĩa và đỡ tốn thời gian khi truyền trờn đường dõy. Thức tế, cỏc dữ liệu số chứa nhiều đoạn lặp đi lặp lại, nộn dữ liệu sẽ thay thế cỏc thụng tin lặp lại bằng một ký hiệu hoặc một đoạn mó để rỳt ngắn độ dài của tập tin. Cỏc kỹ thuật nộn dữ liệu cơ sở bao gồm:

- Null compression: Thay thế một dóy cỏc dấu cỏch bằng một mó nộn và một giỏ trị số lượng cỏc dấu cỏch.

- Run-leangth compression: Mở rộng kỹ thuật trờn bằng cỏch nộn bất kỳ một dóy nào cú từ 4 ký tự lặp. Cỏc ký tự này được thay thế bằng một mó nộn, là một trong cỏc ký tự này, và một giỏ trị bằng đỳng số lần lặp.

- Keyword encoding: Tạo ra một bảng mó cho cỏc từ hoặc cỏc cặp ký tự thường xuyờn xuất hiện và thay thế.

Phương phỏp thống kờ Huffman: Kỹ thuật nộn này giả thiết rằng sự phõn phối của cỏc ký tự trong dữ liệu là khụng đồng nhất. Tức là một sụ ký tự xuất hiện nhiều hơn cỏc ký tự khỏc. Ký tự nào càng xuất hiện nhiều thỡ càng ớt tốn bit để mó húa nú. Một bảng được tạo ra để ghi lại lược đồ mó húa và bảng này cú thể chuyển cho modem nhận để nú biến đổi trở lại cỏc ký tự đó mó húa.

- Ngoài ra cũn một thuật toỏn nộn nữa được gọi là nộn ngẫu nhiờn. Thuật toỏn này được sử dụng trong một chuẩn nộn dữ liệu V.24bits.

4.3. Phỏt hiện sai và sửa lỗi

Trong khi truyền đi một byte trong hệ thống mỏy tớnh thỡ khả năng xảy ra một lỗi do hỏng húc ở phần nào đú hoặc do nhiễu gõy nờn là khỏ lớn. Cỏc kờnh vào-ra thường xẩy ra nhiều lỗi, đặc biệt là khi truyền số liệu. Phần lớn cỏc hệ thống đều cú cỏc phương phỏp phỏt hiện và sau đú sửa lỗi. Quỏ trỡnh sửa lỗi thường khú hơn rất nhiều so với phỏt hiện lỗi. Cú thể chia phương phỏp xử lý lỗi ra làm hai nhúm:

- Phỏt hiện lỗi và thụng bỏo cho bờn phỏt biết để phỏt lại tin. - Phỏt hiện lỗi và tự sửa.

4.3.1. Phương phỏp bit chẵn lẻ (parity)

Đõy là phương phỏp thường dựng nhất để phỏt hiện lỗi. Bằng cỏch thờm 1 bit (được gọi là bit chẵn lẻ) vào từ nhị phõn phụ thuộc vào tổng số cỏc bit 1 trong một từ là một số chẵn hay lẻ, và nhờ vào phộp toỏn logic XOR, ta sẽ biết được bit thờm vào đú là bit chẵn hay lẻ.

phỏp tương đối đơn giản và cú hai cỏch như sau:

• Kiểm tra ngang (VRC - Vertical Redundancy Checking): Thờm một bit chẵn lẻ vào mỗi byte để phỏt hiện lỗi. Cỏch này làm mất đi khoảng 12,5% dung lượng bản tin. Để khắc phục ta cú thể dựng phộp kiểm tra tổng cỏc byte.

• Kiểm tra dọc (LRC - Longitudinal Redundancy Checking): Lỗi được phỏt hiện trong cỏc khối byte thay cho việc tỡm lỗi trong từng byte. Trong phương phỏp này người ta thờm mỗi khối 1 byte ở cuối, byte này mang cỏc thụng tin về tớnh chất đặc thự của khối (Characteristic Redundancy Checking - CRC). Byte này đơn giản cú thể tớnh bằng phộp logic XOR của tất cả cỏc byte trong khối hoặc tớnh theo đa thức chuẩn để được FCS.

Vớ dụ:

Kiểm soỏt lỗi 2 chiều: VRC-LRC.

Bờn nhận sẽ kiểm tra parity theo cả hai chiều để phỏt hiện và định vị lỗi cho từng ký tự. ( 1 ⊕ 1 = 0 0 ⊕ 0 = 0 1 ⊕ 0 = 0 0 ⊕ 1 = 1 )

4.3.2. Tớnh theo đa thức chuẩn

Cỏch tớnh checksum như sau:

- Giả sử ta nhận được bản tin M(x).

- Nếu đa thức chuẩn G(x) cú bậc là r, ta bổ sung thờm r bit 0 vào cuối bản tin và được m+r bit tương ứng đa thức xrM(x).

- Chia xrM(x) theo module 2 cho G(x). Kết quả ta được số dư T(x) là checksum được phỏt đi.

Cỏc đa thức chuẩn thường được dựng để tớnh biến kiểm tra tổng là: CRC-12=x12+ x11+ x3+ x2+ x + 1 (dựng cho ký tự 6 bit)

CRC-CCTTT= x16+ x12x5+ 1 (dựng cho ký tự 8 bit)

Vớ dụ: Khung tin ban đầu 1101011011, G(x)=x4+x+1, vậy r=4, chuỗi bit thờm: 10011. Ta cú xrM(x)=1101011011 0000. Chia xrM(x) theo module 2 cho G(x), ta được thụng số kiểm tra tổng T(x)=1110

11010’1’1’1011 0’00’0’ 10011 010011 10011 0000010110 10011 0010100 10011 001110  Số dư là 1110 (adsbygoogle = window.adsbygoogle || []).push({});

Khung tin được truyền đi: 1101011011 1110

4.3.3. Mó sửa sai

Để sửa sai một bit, ta dựng tập mó Hamming dựa trờn cỏc “bit chẵn lẻ” được rải vào cỏc bit số liệu trong từng byte theo nguyờn lý cõn bằng chẵn lẻ để chỉ ra cỏc bit lỗi.

Nếu trong bản tin cú k bit và số “bit chẵn lẻ” là r, thỡ số bit tin và “bit chẵn lẻ” phỏt đi sẽ là n=k+r. r bit kiểm tra luụn cỏc vị trớ 1,2,4,8,…,2r-1 và được tạo bởi cộng module 2 giỏ trị nhị phõn của cỏc vị trớ cú bit ‘1’ của từ mó. Vỡ cỏc bit kiểm tra chiếm vị trớ 2i với i=0,1,2,…,r-1 nờn độ dài cực đại của cỏc từ mó Hamming là n≤2r-1 và từ dóy số cực đại của cỏc bit tin được bảo vệ là: k≤(2r-1-r). Từ đõy ta xỏc định được r.

Vớ dụ: bản tin 11 bit (10101011001) được bảo vệ bởi mó Hamming.

Từ điều kiện 11≤2’-1-r, ta cần 4 bit kiểm tra (r=4) để tạo mó Hamming (n=11+4=15)

Cỏc bớt kiểm tra C được tớnh như sau:

Vị trớ bit 1 giỏ trị nhị phõn 15 1111 13 1101 11 1011 9 1001 7 0111 1101

Vị trớ bit 1 Giỏ trị nhị phõn 15 1111 13 1101 9 1001 7 0111 4 0100 3 0011 1011 (11)  Vị trớ sai ở bit 11 -> Tập mó cỏc bit kiểm tra Hamming: 0100

Từ mó Hamming: 10101010100110

4.4. Cỏc giao thức cửa sổ trượt

4.4.1. ARQ dừng và chờ (Stop and Wait ARQ)

Trạm nguồn truyền 1 frame dữ liệu cho trạm thu rồi dừng và chờ trạm thu trả lời. Nếu trạm thu thu frame tốt, nú sẽ gửi tớn hiệu ACK (chấp nhận) cho phớa phỏt. Khi đú phớa phỏt sẽ gửi frame tiếp theo. Nếu trạm thu khụng thu được frame hoặc frame thu bị sai, nú sẽ gửi tớn hiệu NAK (khụng chấp nhận) cho phớa phỏt. Khi đú phớa phỏt sẽ phải phỏt lại frame đó truyền.

Ưu điểm : ARQ dừng và chờ cú ưu điểm là đơn giản. Khuyết điểm : khụng hiệu quả, thời gian trễ lớn.

Thời gian tổng cộng

Hiệu suất đường truyền

4.4.2. Trở lại N - ARQ (Go back - N - ARQ)

Trạm phỏt gửi một loạt frame sang phớa thu và sau một vũng lặp N phớa thu mới gửi tớn hiệu ACK hoặc NAK.

Cú ba trường hợp mất frame :

• A truyền frame thứ i đến B :  B phỏt hiện ở frame cú sai.

 B gửi NAK chỉ rằng frame i phải truyền lại.

 Khi A nhận được NAK của frame thứ i thỡ tất cả cỏc frame từ i trở đi đều phải truyền lại.

• Frame i bị mất trong khi truyền, frame (i + 1) sẽ được gửi đi. B nhận frame (i + 1) khụng đỳng thứ tự → gửi NAKi đến A.

• Frame i bị mất trong khi truyền nhưng sau đú A khụng truyền frame (i + 1). B khụng nhận được gỡ và khụng trả lại ACK hay NAK. A sẽ dừng và sau thời gian quy định nú truyền lại frame i.

Mất ACK cú 2 trường hợp :

 B nhận được frame i và truyền ACKi+1 và nú bị mất trong khi truyền.  B nhận được frame i và phỏt hiện frame i sai. B sẽ gửi NAKi cho A.

Hiệu suất 85 ) t n(2t TD = prop + frame V L d R R LV d t t a 2 1 1 T t n U frame prop D frame ì ì = = = + = ì = a I ( N ) I ( N ) I ( N + 1 ) I ( N + 1 ) P r i m a r y ( P ) S e c o n d a r y ( S ) I ( N + 2 ) I ( N + 2 ) I ( N + 3 ) I ( N + 4 ) I ( N + 3 ) I ( N + 4 ) I ( N + 5 ) I ( N + 5 ) I ( N ) A C K ( N )    > + + − = N(11 2aP-P) N 2a 1 P 1 U

4.4.3. Truyền lại cú lựa chọn ARQ (Selective Reject ARQ)

Khi phỏt hiện sai ta chỉ truyền lại frame nào mà ta nhận được NAK hoặc với thời gian tạm nghỉ.

So sỏnh với phương phỏp trờn, phương phỏp này hiệu quả hơn, ớt tốn thời gian hơn. Nhưng phương phỏp này đũi hỏi phải cú cỏc bộ đệm cú kớch thước lớn để chứa cỏc frame đứng sau cỏc frame bị sai và sau đú bộ thu sắp xếp cỏc frame theo đỳng thứ tự phỏt đi. Do sự phức tạp đú mà phương phỏp này ớt được sử dụng. (adsbygoogle = window.adsbygoogle || []).push({});

Trong ba phương phỏp trờn thỡ phương phỏp Go back N ARQ được sử dụng nhiều nhất.

Hiệu suất

4.5. Một vài giao thức liờn kết số liệu

4.5.1. Giao thức HDLC (High level data link control)

Đõy là giao thức hướng bit (BOP - Bit Oriented Protocol)

Dạng bản tin

G(x): x16 + x12 + x5 + 1

flag (Header) (128.1024 byte) 2

byte flag 0111 1110 Addres s Con trol Tin (số cỏc bớt) FC S 0111 1110     + < + − > + = N 2a 1 2a 1 P) N(11-P N 2a 1 U

Để thụng suốt bản tin (transparent): khi phỏt số liệu 5 bit “1” liờn tiếp ta chốn thờm 1 bit “0” để khụng nhầm lẫn với Flag (bỏo hiệu kết thỳc bản tin). Khi thu thỡ bit “ 0” chốn thờm được khử bỏ.

Từ điều khiển

Cho ta biết 3 dạng của bản tin: dạng I, dạng S, dạng U Dạng I (Information):

Bit 0= “0”: dạng I; N(S): thứ tự cửa sổ phỏt ; N (R): thứ tự cửa sổ chờ thu. P =1: yờu cầu phải trả lời;

F =1: bờn thu trả lời.

Dạng S (SuperVisor): điều khiển trao đổi số liệu Bit 0,1= “01”: dạng S

S = 00:RR, Receive Ready; đó nhận tới N(R)-1, chờ thu N(R)

Một phần của tài liệu giáo trình mạng và truyền số liệu (Trang 78 - 176)