2.2.1. Vai trũ và chức năng của tầng liờn kết dữ liệu
Tầng liờn kết dữ liệu cung cấp cỏc phương tiện để truyền thụng tin qua liờn kết vật lý đảm bảo tin cậy thụng qua cỏc cơ chế đồng bộ húa, kiểm súat lỗi và kiểm soỏt luồng dữ liệu.
Tầng liờn kết dữ liệu (data link layer) là tầng mà ở đú ý nghĩa được gỏn cho cỏc bớt được truyền trờn mạng. Tầng liờn kết dữ liệu phải quy định được cỏc dạng thức, kớch thước, địa chỉ mỏy gửi và nhận của mỗi gúi tin được gửi đi. Nú phải xỏc định cơ chế truy nhập thụng tin trờn mạng và phương tiện gửi mỗi gúi tin sao cho nú được đưa đến cho người nhận đó định.
Tầng liờn kết dữ liệu cũng cung cấp cỏch phỏt hiện và sửa lỗi cơ bản để đảm bảo cho dữ liệu nhận được giống hoàn toàn với dữ liệu gửi đi. Nếu một gúi tin cú lỗi khụng sửa được, tầng liờn kết dữ liệu phải chỉ ra được cỏch thụng bỏo cho nơi gửi biết gúi tin đú cú lỗi để nú gửi lại.
37
2.2.2. Cỏc giao thức của tầng liờn kết dữ liệu
Cũng giống như tầng Vật lý, cú rất nhiều giao thức được xõy dựng cho tầng này, gọi chung là cỏc giao thức liờn kết dữ liệu (Data Link Protcol- DLP). Cỏ DLP được phõn chia thành hai loại: đồng bộ và dị bộ. Trong đú, loại đồng bộ lại được chia thành 2 nhúm là hướng ký tự và hướng bit (xem sơ đồ hỡnh 2.2).
• DLP dị bộ:
Cỏc DLP dị bộ sử dụng phương thức truyền dị bộ, tức là khụng cần cú sự đồng bộ liờn tục giữa người gửi và người nhận, Nú cho phộp một đơn vị dữ liệu được truyền đi bất kỳ lỳc nào mà khụng cần quan tõm đến cỏc tớn hiệu đồng bộ trước đú. Ở giao thức loại này, cỏc bớt đặc biệt START và STOP được dựng để tỏch cỏc xõu bit biểu diễn cỏc ký tự trong dũng dữ liệu được truyền đi. Cỏc giao thức loại này thường được dựng trong cỏc mỏy điện bỏo hoặc cỏc mỏy tớnh trạm cuối tốc độ thấp. Phần lớn cỏc mỏy PC sử dụng phương thức truyền dị bộ vỡ túnh đơn giản của nú.
• DLP đồng bộ:
Phương thức truyền thụng đồng bộ sử dụng cỏc ký tự đặc biệt SYN, EOT hay đơn giản là cỏc cờ (flag) giữa ỏc kdữ liệu củangười dựng để bỏo cho người nhận biết rằng dữ liệu “đang đến” hay “đó đến”.
Cỏc giao thức tầng liờn kết dữ liệu đồng bộ gồm cỏc giao thức hướng ký tự và cỏc giao thức hướng bit. Cỏc giao thức hướng ký tự được xõy dựng dựa trờn cỏc ký tự đặc biệt của một bộ mó chuẩn nào đú (như ASCII hay EBCDIC), trong khi đú cỏc giao thức hướng bit lại dựng cỏc cấu trỳc nhị phõn (xõu bit) để xõy dựng cỏc phần tử của giao thức (đơn vị dữ liệu, cỏc thủ tục) và khi nhận, dữ liệu sẽ được tiếp nhận lần lượt từng bit một.
Dưới đõy chỳng ta sẽ xem xột kỹ hơn hai loại giao thức này.
2.2.3. Cỏc giao thức hướng ký tự
Cỏc giao thức loại này xuất hiện từ những năm 60 và đến nay nú vẫn được sử dụng. Chỳng được dựng cho cả hai phương thức truyền dựa trờn cỏch kết nối cỏc mỏy tớnh, đú là phương thức "một điểm - một điểm" và phương thức "một điểm - nhiều điểm". Với phương thức "một điểm - một điểm" cỏc đường truyền riờng biệt được thiết lõp để nối cỏc cặp mỏy tớnh lại với nhau. Phương thức "một điểm - nhiều điểm " tất cả cỏc mỏy phõn chia chung một đường truyền vật lý.
Giao thức liờn kết dữ liệu
Giao thức đồng bộ
Giao thức dị bộ
Giao thức hướng ký tự Giao thức hướng bit
Cỏc giao thức loại này cú thể đỏp ứng cho cỏc phương thức khai thỏc đường truyền khỏc nhau: một chiều (simplex), hai chiều luõn phiờn (half-duplex) và hai chiều đồng thời (full-duplex).
Đối với phương thức một chiều, giao thức hướng ký tự được dựng rộng rói nhất là giao thức truyền tệp Kermit do Đại học Columbia (Mỹ) chế tỏc. Kermit cú nhiều phiờn bản cho phộp truyền tệp giữa 2 mỏy PC, hoặc một PC và một mỏy chủ (file server) hoặc một mỏy tớnh lớn (maiframe).
Đối với phương thức hai chiều luõn phiờn, giao thức hướng ký tự nổi tiếng nhất là giao thức BSC (Binary Synchronous Control) hay cũn gội là Bisync- một sản phẩm của IBM. Giao thức này đó được lấy Iso lấy làm cơ sở để xõy dợng giao thức hướng ký tự chuẩn quốc tể với tờn gọi là Basic Mode. Bởi vậy ta sẽ trỡnh bày chi tiết về giao thức này.
Cú rất ớt giao thức hướng ký tự cho phương thức hai chiều đồng thời. Vớ dụ cho loại này là giao thức giữa cỏc nỳt chuyển mạch (IMP – Interface Message Protcol) trong mạng ARPANET của bộ quốc phũng Mỹ.
Giao thức BSC/Basic mode
Họ giao thức này ỏp dụng cho trường hợp điểm-điểm, hoặc điểm-nhiều điểm và hai chiều luõn phiờn; sử dụng cỏc ký tự đặc biệt của bộ mó EBCDIC (đối với BSC) và ASCII (đối với Basic Mode).
Cỏc ký tự đặc biệt đú gồm:
SOH (Start Of Header): chỉ bắt đầu của phần header
STX (Start Of Text): chỉ phẩn bắt đầu của phần dữ liệu (văn bản) ETX (End Of Text): chỉ phẩn kết thỳc của phần dữ liệu
EOT (End Of Transmission): chỉ sự kết thỳc của một hoặc nhiều đơn vị dữ liệu và giải phúng liờn kết).
ETB (End Of Transmission Block): chỉ sự kết thỳc của một khối dữ liệu trong trường hợp dữ liệu được chia thành nhiều khối.
ENQ (Enquiry): để yờu cầu phỳc đỏp từ một trạm ở xa.
DLE (Data Link Escape): để thay đổi ý nghĩa của cỏc ký tự điều khiển khỏc ACK (Acknowledge): để bỏo cho người gửi biết đó nhận tốt dữ liệu
NAK (Negative Acknowledge): để bỏo cho người gửi biết đó nhận khụng tốt dữ liệu SYN (Synchronous Idle): ký tự đồng bộ, dựng để duy trỡ sự đồng bộ giữa người gửi và người nhận.
Hỡnh 2.3. Cỏc đường truyền kết nối kiểu "một điểm - một điểm" và "một điểm - nhiều điểm".
39 Đơn vị dữ liệu (frame) của nú cú khuụn dạng như sau:
SOH Header STX Text ETX BCC
Trong đú BCC(block Check Character): là 8 bit kiểm tra lỗi theo kiểu bit chẵn lẻ theo khối cho cỏc ký tự thuộc vựng Text (trong trường hợp Basic Mode), hoặc 16 bit kiểm tra lỗi theo phương phỏp CRC-16 cho vựng Text (trong trường hợp BSC). Cỏc phương phỏp kiểm tra lỗi sẽ được đề cập trong chương 4. Kớch thước vựng Text được giới hạn để đảm bảo được kiểm soỏt lỗi khi truyền. Trong trường hợp dữ liệu lớn thỡ cú thể chia thành nhiều khối nhỏ (block). Giả sử Text được chia làm 3 khối, khi đú khuụn dạng cỏc khối dữ liệu như sau:
Khối 1: SOH Id Header STX Text1 ETB BCC
Khối 2: SOH Id STX Text2 ETB BCC
Khối 3: SOH Id STX Text3 ETB BCC
Cỏc thủ tục chớnh của BSC/Basic Mode: • Mời truyền tin:
Giả sử trạm A muốn mời trạm B truyền tin, A sẽ gửi lệnh sau tới B: EOT B ENQ Trong đú: B là địa chỉ của trạm được mời truyền tin, EOT để chuyển liờn kết sang trạng thỏi điều khiển. Khi B nhận được lệnh này, cú thể xảy ra hai trường hợp,:
- Nếu cú tin để truyền thỡ trạm B sẽ cấu tạo một đơn vị dữ liệu và gửi cho A. - Nếu khụng cú tin để gửi, B sẽ gửi EOT để trả lời.
Ở phớa A, sau khi gửi lệnh đi quỏ một thời gian xỏc định trước mà khụng nhận được trả lời của B, hoặc là nhận được trả lời sai thỡ A sẽ chuyển sang trạng thỏi “phục hồi”. Trạng thai này sẽ được núi đến ngay sau đõy.
• Mời nhận tin:
Giả sử trạm A muốn mời trạm B nhận tin, A sẽ gửi lệnh tương tự như trờn tới B: EOT B ENQ
Ở đõy EOT cú thể vắng mặt.
Khi B nhận được lệnh này, nếu B sẵn sàng nhận tin thỡ trạm B sẽ gửi ACK về A, ngược lại nú sẽ gửi NAK.
Ở phớa A, sau khi gửi lệnh đi quỏ một thời gian xỏc định trước mà khụng nhận được trả lời của B, hoặc là nhận được trả lời sai thỡ A sẽ chuyển sang trạng thỏi “phục hồi”.
• Yờu cầu trả lời:
Khi một trạm cận trạm khỏc trả lời một yờu cầu nào đú đó gửi đi trước, nú chỉ cần gửi lệnh ENQ cho trạm kia.
• Ngừng truyền tin (tạm thời): gửi lệnh EOT • Giải phúng liờn kết: gửi lệnh DLE EOT
• Triạng thỏi phục hồi: Khi một trạm nào đú đi vào trạm thỏi phục hồ nú sẽ thực iện một trong cỏc hành đọng sau:
− Lặp lại lệnh đó gửi n lần (n là một soos nguyờn chọn trước) − Gửi “yờu cầu trả lời” n lần
− Kết thỳc truyền bằng cỏch gửi lệnh EOT
Để thấy rừ hơn phương thức trao đổi thụng tin của giao thức BSC/Basic Mode ta dựng sơ đồ minh họa ở hỡnh ... dưới đõy, trong đú cú hai trường hợp: thụng thường và hội thoại. Trạm A Trạm B ENQ ACK STX...ETX BCC ACK STX...ETX BCC ACK EOT ENQ ACK STX...ETX BCC ACK EOT Trạm A Trạm B ENQ ACK STX...ETX BCC STX...ETX BCC ACK STX...ETX BCC EOT
Hỡnh 2.4. Sơđồ minh họa hoạt động của giao thức BSC/Basic Mode
41
2.2.4. Cỏc giao thức hướng bit Giao thức HDLC Giao thức HDLC
HDLC hỗ trợ 3 chế độ trao đổi số liệu
− NRM (Normal Response Mode) = chế độ trả lời bỡnh thường: được sử dụng ở cấu hỡnh khụng cõn đối, S chỉ phỏt khi cú yờu cầu của P.
− ARM (Asynchronous Response Mode) = chế độ trả lời khụng đồng bộ: được sử dụng ở cấu hỡnh khụng cõn đối, cho phộp S phỏt khụng cần nhận được yờu cầu của P.
− ABM (Asynchronous Balanced Mode) = chế độ trả lời khụng đồng bộ ở cấu hỡnh cõn đối; hầu như chỉ được sử dụng trong mạng kết nối point-to-point + full-duplex. Hai thiết bị trao đổi với nhau là bỡnh đẳng về chức năng (P và S)
Khuụn dạng gúi số liệu (HDLC Frame Format)
• Flag - trường đồng bộ = 7EH = 0111.1110 • Address - trường địa chỉ, chứa đ/c thiết bị đớch
+ Group address + Broadcast address
• Control - trường điều khiển: kết nối, truyền và kết thỳc kết nối
Gúi số liệu I-Frame:
• N(S), N(R) được sử dụng để điều khiển lưu lượng thu/phỏt. Ngoài ra N(S), N(R) cũn xỏc định độ lớn của cửa sổ được sử dụng để trao đổi số liệu bằng HDLC.
• P/F= Poll/Final
– P/F = 1 = P: yờu cầu S phải thực hiện lệnh và trả lời kết quả thực hiện; S bỏo cỏo đó thực hiện lệnh
– P/F = 0 = F: Hết thụng tin cần gửi
Gúi điều khiển S-Frame:
• bit P/F giống như trờn
• S = 00: RR (Receive Ready) - sẵn sàng nhận, đó nhận tới gúi tin thứ N(R)-1 • S = 01: REJ (Reject) - yờu cầu phỏt lại từ N(R)
• S = 10: RNR(Receive Not Ready) - chưa sẵn sàng, đó nhận tới N(R)-1 • S = 11: SREJ (Selative REJ) - yờu cầu phỏt lại cú chọn lọc, chỉ riờng N(R)
Gúi điều khiển U-Frame: Bỏo nối/tỏch hệ thống
− SARM (1 1 1 1 P 0 0 0): yờu cầu nối cú phõn biệt Master/Slave, tuy vậy Slave cú thể hỏi.
− SNRM (1 1 0 0 P 0 0 1): yờu cầu nối ở mode bỡnh thường, cú Master/Slave, Slave khụng được hỏi, chỉ được phộp trả lời.
− SABM (1 1 1 1 P 1 0 0): khụng phõn biệt mỏy chớnh, mỏy phụ, cả hai mỏy coi như nhau; nếu P=1 thỡ yờu cầu trả lời.
− DISC (1 1 0 0 P 0 1 0): yờu cầu tỏch hệ thống, nếu trả lời UA tức là đồng ý. UA (1 1 0 0 F 1 1 0): thụng bỏo trả lời. (Control frame cũng cú thể bị mất, giống như cỏc frame số liệu, vỡ thế cũng cần biờn nhận (ACK). Frame đặc biệt dành cho mục đớch này là UA).
Nguyờn tắc hoạt động của HDLC
Quản trị thiết lập và giải phúng kết nối (V(x) = seq. #):
a) NRM – multidrop link, truyền 1 hướng
– A: SNRM(B,P=1) (Polling B station) – B: UA(B,F=1)
– A: DISC(B,P=1) – B: UA(B,F=1)
b) ABM – point-to-point link, truyền 2 hướng
– A: SABM(B,P=1) – B: UA(B,F=1)
43 – B: DISC(A,P=1)
– A: UA(A,F=1)
2.3. TẦNG MẠNG (NETWORK)
2.3.1. Vai trũ và chức năng của tầng mạng
Tầng mạng (network layer) nhắm đến việc kết nối cỏc mạng với nhau bằng cỏch tỡm đường (routing) cho cỏc gúi tin từ một mạng này đến một mạng khỏc. Nú xỏc định việc chuyển hướng, vạch đường cỏc gúi tin trong mạng, cỏc gúi này cú thể phải đi qua nhiều chặng trước khi đến được đớch cuối cựng. Nú luụn tỡm cỏc tuyến truyền thụng khụng tắc nghẽn để đưa cỏc gúi tin đến đớch.
Tầng mạng cung cấp cỏc phương tiện để truyền cỏc gúi tin qua mạng, thậm chớ qua một mạng của mạng (network of network). Bởi vậy nú cần phải đỏp ứng với nhiều kiểu mạng và nhiều kiểu dịch vụ cung cấp bởi cỏc mạng khỏc nhau. Hai chức năng chủ yếu của tầng mạng là chọn đường (routing) và chuyển tiếp (relaying). Tầng mạng là quan trọng nhất khi liờn kết hai loại mạng khỏc nhau như mạng Ethernet với mạng Token Ring khi đú phải dựng một bộ tỡm đường (quy định bởi tầng mạng) để chuyển cỏc gúi tin từ mạng này sang mạng khỏc và ngược lại.
Đối với một mạng chuyển mạch gúi (packet - switched network) - gồm tập hợp cỏc nỳt chuyển mạch gúi nối với nhau bởi cỏc liờn kết dữ liệu. Cỏc gúi dữ liệu được truyền từ một hệ thống mở tới một hệ thống mở khỏc trờn mạng phải được chuyển qua một chuỗi cỏc nỳt. Mỗi nỳt nhận gúi dữ liệu từ một đường vào (incoming link) rồi chuyển tiếp nú tới một đường ra (outgoing link) hướng đến đớch của dữ liệu. Như vậy ở mỗi nỳt trung gian nú phải thực hiện cỏc chức năng chọn đường và chuyển tiếp.
Ngoài 2 chức năng quan trọng núi trờn, tầng mạng cũng thực hiện một số chức năng khỏc, đú là: thiết lập, duy trỡ và giải phúng cỏc liờn kết logic (cho tầng mạng), kiểm soỏt lỗi, kiểm soỏt luồng dữ liệu, dồn/tỏch kờnh, cắt/hợp dữ liệu,..
2.3.2. Cỏc kỹ thuật chọn đường trong mạng mỏy tớnh
2.3.2.1. Tổng quan
Việc chọn đường là sự lựa chọn một con đường để truyền một đơn vị dữ liệu (một gúi tin chẳng hạn) từ trạm nguồn tới trạm đớch của nú. Một kỹ thuật chọn đường phải thực hiện hai chức năng chớnh sau đõy:
− Quyết định chọn đường tối ưu dựa trờn cỏc thụng tin đó cú về mạng tại thời điểm đú thụng qua những tiờu chuẩn tối ưu nhất định.
− Cập nhật cỏc thụng tin về mạng, tức là thụng tin dựng cho việc chọn đường, trờn mạng luụn cú sự thay đổi thường xuyờn nờn việc cập nhật là việc cần thiết.
45 Người ta cú hai phương thức đỏp ứng cho việc chọn đường là phương thức xử lý tập trung và xử lý tại chỗ.
− Phương thức chọn đường xử lý tập trung được đặc trưng bởi sự tồn tại của một (hoặc vài) trung tõm điều khiển mạng, chỳng thực hiện việc lập ra cỏc bảng đường đi tại từng thời điểm cho cỏc nỳt và sau đú gửi cỏc bảng chọn đường tới từng nỳt dọc theo con đường đó được chọn đú. Thụng tin tổng thể của mạng cần dựng cho việc chọn đường chỉ cần cập nhập và được cất giữ tại trung tõm điều khiển mạng.
− Phương thức chọn đường xử lý phõn tỏn được đặc trưng bởi việc chọn đường được thực hiện tại mỗi nỳt của mạng. Trong từng thời điểm, mỗi nỳt phải duy trỡ cỏc thụng tin của mạng và tự xõy dựng bảng chọn đường cho mỡnh. Như vậy cỏc thụng tin tổng thể của mạng cần dựng cho việc chọn đường cần cập nhập và được cất giữ tại mỗi nỳt.
Thụng thường cỏc thụng tin được đo lường và sử dụng cho việc chọn đường bao gồm:
− Trạng thỏi của đường truyền.
− Thời gian trễ khi truyền trờn mỗi đường dẫn. − Mức độ lưu thụng trờn mỗi đường.
− Cỏc tài nguyờn khả dụng của mạng.
Khi cú sự thay đổi trờn mạng (vớ dụ thay đổi về cấu trỳc của mạng do sự cố tại một vài nỳt, phục hồi của một nỳt mạng, nối thờm một nỳt mới... hoặc thay đổi về mức độ lưu thụng) cỏc thụng tin trờn cần được cập nhật vào cỏc cơ sở dữ liệu về trạng thỏi của mạng. Hiện nay khi nhu cầu truyền thụng đa phương tiện (tớch hợp dữ liệu văn bản, đồ hoạ, hỡnh ảnh, õm thanh) ngày càng phỏt triển đũi hỏi cỏc cụng nghệ truyền dẫn tốc độ cao nờn việc phỏt triển cỏc hệ thống chọn đường tốc độ cao đang rất được quan tõm.
2.3.2.2. Cỏc giải thuật tỡm đường tối ưu
y Giải thuật Dijkstra cho kỹ thuật chọn đường tập trung.
Bài toỏn đặt ra là: tỡm đường đi cú “độ dài” (một đại lượng được dựng để làm thước đo, vớ dụ độ trễ, cước phớ truyền tin) cực tiểu, từ một nỳt (nguồn) cho trước đến mỗi nuỳt cũn lại của mạng (đớch). Ở đõy ta coi mạng như là một đồ thị cú hướng G(V,E), V là tập đỉnh với n đỉnh tương ứng với n nỳt mạng, E là tập cung của đồ thị. Ma trận trọng số là