Chương 3.
Tầng liên kết dữ liệu
Trang 2Nội dung
1 Tổng quát về tầng liên kết dữ liệu
2 Kiểm soát lỗi
3 Điều khiển truy nhập đường truyền
4 Chuyển tiếp dữ liệu
5 Mạng cục bộ (LAN)
6 Mạng diện rộng (WAN)
Trang 31 Tổng quan
Trang 4Tầng liên kết dữ liệu trên mô hình TCP/IP
Application Transport Network Data-link Physical
Logic Link Control sublayer
• Kiểm soát luồng
• Dồn kênh, phân kênh các giao thức Media Access Control sublayer
• Đóng gói dữ liệu
• Định địa chỉ vật lý
• Phát hiện và sửa lỗi
• Điều khiển truy nhập đường truyền
802.3 Ethernet Token Bus 802.4 Token Ring 802.5 802.11 WiFi … WiMax 802.16
Trang 5• Điều khiển truyền dữ liệu
trên liên kết vật lý giữa 2 nút
mạng kế tiếp
• Triển khai trên mọi nút mạng
• Các thức triển khai và cung
cấp dịch vụ phụ thuộc vào
đường truyền(WiFi, Wimax,
3G, cáp quang, cáp đồng )
• Truyền thông tin cậy (cơ chế
giống TCP nhưng đơn giản
hơn) hoặc không
• Đơn vị truyền: frame (khung
tin)
application transport network
data link
physical
application transport network
data link
physical
Triển khai trên hệ thống mạng
Trang 6Triển khai trên các nút mạng
physical transmission
cpu memory
host bus (e.g., PCI)
network adapter card
application transport network link
link physical
Trang 7Các chức năng chính
• Đóng gói:
• Đơn vị dữ liệu: khung tin (frame)
• Bên gửi: thêm phần đầu cho gói tin nhận được từ tầng mạng
• Bên nhận: bỏ phần đầu, chuyển lên tầng mạng
• Địa chỉ hóa: sử dụng địa chỉ MAC
• Điều khiển truy nhập đường truyền: nếu mạng đa truy nhập, cần có giao thức điều khiển đa truy
Trang 8Chế độ truyền
• Simplex (Đơn công): Mỗi thiết bị trên liên kết
vật lý chỉ thực hiện 1 chức năng (phát tín hiệu hoặc thu tín hiệu) Ví dụ: Hệ thống truyền hình tương tự, truyền thanh
• Half-duplex (Bán song công): Mỗi thiết bị trên liên kết vật lý có 2 chức năng phát và thu,
nhưng chỉ thực hiện 1 chức năng tại mỗi thời
điểm Ví dụ: truyền thông bằng bộ đàm
• Full-duplex (Song công đầy đủ): Mỗi thiết bị
trên liên kết vật lý có thể phát và thu đồng thời
Ví dụ: truyền thông trong hệ thống mạng, hệ
thống điện thoại
Trang 9Định danh: địa chỉ MAC
• Địa chỉ MAC: 48 bit, được quản lý bởi IEEE
• Mỗi cổng mạng được gán một MAC
• Không thể thay đổi địa chỉ vật lý
Trang 102 Kiểm soát lỗi
Trang 11Nguyên lý phát hiện lỗi
Kênh truyền có lỗi bit
N
Y Báo lỗi
EDC: Error Detection Code
• Mã parity
• Mã checksum
• Mã vòng CRC (được sử dụng chủ yếu trong các giao thức trên tầng liên kết dữ liệu)
Data’
Trang 12• Mã đơn:
• Phát hiện lỗi bít đơn
• Không phát hiện nếu nhiều
hơn 1 bit lỗi
• Không phát hiện được nếu
dữ liệu bị chèn thêm bit
• Mã hai chiều:
• Phát hiện và sửa lỗi bít đơn
• Phát hiện lỗi trên nhiều bit?
101011 111100 011101 001010
101011
1 0 1100 011101 001010
fedc(Pgửi) != fedc (Pnhận) ∀ Pgửi != Pnhận
Mã chẵn lẻ (parity)
Trang 15• Gửi:
• Chia dữ liệu thành các phần có kích thước n bit
• Tính tổng các phần Nếu kết quả tràn quá n bit, cộng các bit tràn vào phần kết quả
• Đảo bit kết quả cuối cùng được checksum
• Truyền checksum kèm theo dữ liệu
• Nhận:
• Tách dữ liệu và checksum
• Chia dữ liệu thành các phần có kích thước n bit
• Tính tổng các phần và checksum Nếu kết quả tràn quá n bit,
cộng các bit tràn vào phần kết quả
• Nếu kết quả cuối xuất hiện bit 0 à dữ liệu bị lỗi
Mã Checksum
Trang 16Dữ liệu: 0011 0110 1000
Tính checksum 4 bit:
0011 0110 1000 10001
1 0010 Đảo bit à mã checksum: 1101
Chuỗi bit truyền: 0011 0110 1000 1101
+
Bít
tràn
Mã checksum: Ví dụ
Trang 17Nhận chuỗi bit: 0011 0110 1000 1101
Kiểm tra:
0011 0110 1000 1101 11110
Trang 19Đảo bit à 1100
+
+
1011 1001 1001 11101
1 1110 Đảo bit à 0001
+
+
Trang 20Đặc điểm checksum
• Phát hiện tất cả các lỗi liên quan đến số bit lẻ
cũng như lỗi liên quan đến số bit chẵn.
• Nếu nhiều hơn 1 subunit bị lỗi cùng thứ tự bit làm cho tổng của chúng không đổi, thì phương pháp checksum sẽ không thể phát hiện ra.
00101001 bit thứ nhất bị lỗi à 0
10111001 bit thứ nhất bị lỗi à 1
00011101 checksum
11111111 sum 00000000
Trang 21Mã vòng CRC (Cyclic Redundancy Check)
• Biểu diễn đa thức dưới dạng chuỗi bit P
• Chia Fk cho P, lấy phần dư R (có kích thước k bit)
phát hiện và sửa lỗi (nếu được)
Trang 23Mã CRC – Ví dụ
XOR
Trang 2410011
Trang 2510011
Trang 27100100001001 0000 10011
10011
000010001
10011 00010001
10011 00010000
10011
Bài tập mã CRC (1)
Trang 2810001 00010000
10001 00001 10011
Trang 29Làm gì sau khi phát hiện lỗi
• Các loại lỗi
• Mất khung dữ liệu
• Khung dữ liệu bị lỗi
• Thông báo lỗi bị mất
• Làm thế nào để báo cho bên gửi?
• Báo nhận: ACK (acknowledgements):
• Báo lỗi: NAK (negative acknowledgements), báo cho người gửi về một gói tin bị lỗi
• Phản ứng của bên gửi?
• Truyền lại nếu là NAK
• Nếu không nhận được cả ACK/NAK? Timeout
Trang 30Các kỹ thuật báo nhận, phát lại
• Có 3 phiên bản chuẩn hóa
• Dừng và chờ (Stop and Wait) ARQ
• Chỉ phát tiếp khi nhận được ACK của gói đã phát
• Hoặc nếu gặp timeout mà chưa nhận được ACK thì phát lại gói vừa phát.
• Quay lại N (Go Back N) ARQ
• Sẽ xem ở tầng 4
• Loại bỏ chọn lọc (Selective Reject) ARQ
• Sẽ xem ở tầng 4
Trang 31rcv ACK send pkt1
rcv NAK resend pkt1
pkt0 is OK
Stop-and-wait ARQ
Trường hợp thông thường
Trang 32rcv ACK send pkt1
rcv sth corrupted !
resend pkt1
pkt0 is OK
rcv pkt1 duplicate, discard it
Stop-and-wait ARQ
Trường hợp lỗi ACK/NAK
Time
Trang 34• Dữ liệu và ACK có thể bị mất
• Nếu không nhận được ACK?
• Truyền lại như thế nào?
• Cơ chế
• Các gói được đánh số và bên gửi tự động truyền lại cho đến khi nhận được ACK của gói
• Chờ hết Timeout mới truyền lại
• Timeout nên dài bao lâu?
• Ít nhất là 1 RTT (Round Trip Time)
• Mỗi gói tin gửi đi cần 1 timer
• Nếu gói tin vẫn đến đích, chỉ ACK bị mất?
• Phía nhận lọc gói tin dư căn cứ số hiệu gói tin trùng lặp
Stop-and-wait ARQ: Khi ACK bị mất
Trang 35Minh họa ARQ
Trang 36Minh họa ARQ (tiếp)
Trang 37Tổng kết phát hiện lỗi
• Tăng tính tin cậy của dữ liệu
• Cải thiện hiệu năng mạng
• Cải thiện an toàn thông tin dữ liệu
• False Positives
• Không thể tự khắc phục lỗi
Trang 383 Kiểm soát luồng
Trang 39Kiểm soát luồng dữ liệu
• Mục tiêu: Đảm bảo trạm gửi không làm quá tải trạm
nhận
• Trạm đích
• Lưu trữ các khung dữ liệu trong bộ nhớ đệm
• Thực hiện một số thao tác trước khi chuyển dữ liệu lên tầng trên
• Bộ nhớ đệm có thể bị đầy, dẫn tới mất khung dữ liệu
• Không đặt vấn đề lỗi truyền tin
• Các khung dữ liệu luôn luôn được truyền chính xác
• Độ trễ truyền tin không đáng kể
• Giải pháp
• Cơ chế dừng và chờ
• Cơ chế cửa sổ trượt (sẽ xem ở tầng 4)
Trang 40Cơ chế dừng và chờ
• Nguyên tắc
• Nguồn gửi một khung dữ liệu
• Đích nhận khung dữ liệu, xử lí, sau đó thông báo sẵn sàng nhận các khung dữ liệu tiếp theo bằng một thông báo báo nhận (acknowledgement)
• Nguồn phải chờ đến khi nhận được báo nhận mới truyền tiếp khung dữ liệu tiếp theo
Trang 41Cơ chế dừng và chờ
frame
frame
frame Packet Packet
transmitter receiver
Trang 42• Khung dữ liệu dài khả năng lỗi lớn
• Trong môi trường truyền tin chia sẻ, không cho phép trạm nào chiếm dụng lâu đường truyền
Trang 43Bài tập
• Cho một liên kết có tốc độ R=100Mbps
• Cần truyền 1 dữ liệu có kích thước tổng tại tầng liên kết dữ liệu là L=100KB
• Giả sử kích thước một khung liên kết dữ liệu là: 1KB
• RTT giữa 2 nút của liên kết là 3ms
• Hỏi thời gian truyền khi áp dụng phương pháp kiểm
soát luồng Stop-and-wait.
Trang 44Thời gian phát với cơ chế dừng
T transmit
RTT
Trang 45Thời gian phát với cơ chế dừng
Trang 464 Điều khiển truy nhập
đường truyền
Trang 47• Điểm-điểm (point-to-point): ADSL, Telephone modem,
Leased line…
• Điểm-đa điểm (point-to-multipoint):
• Mạng LAN có dạng bus, mạng LAN hình sao dùng hub
• Mạng không dây
• Cần giao thức điều khiển truy nhập để tránh xung đột
shared wire (e.g.,
cabled Ethernet) (e.g., 802.11 WiFi)shared RF shared RF(satellite) cocktail party humans at a
(shared air, acoustical)
Các dạng liên kết
Trang 48• Phân hoạch tài nguyên sử dụng kỹ thuật chia kênh (Channel Partitioning Protocols):
• Chia tài nguyên của đường truyền thành nhiều phần nhỏ (Thời gian - TDMA, Tần số - FDMA, Mã - CDMA)
• Chia từng phần nhỏ đó cho các nút mạng
• Truy nhập ngẫu nhiên (Random Access Protocols):
• Kênh không được chia, cho phép đồng thời truy nhập, chấp nhận là có xung đột
• Cần có cơ chế để phát hiện và tránh xung đột
• e.g Pure Aloha, Slotted Aloha, CSMA/CD, CSMA/CA…
• Lần lượt:
• Theo hình thức quay vòng
• Token Ring, Token Bus….
Phân loại các giao thức đa truy nhập
Multiple Access Protocols
Trang 49Phân loại các giao thức đa truy nhập
Multiple Access Protocols
Trang 504.1 Các phương pháp chia kênh
(Channelization protocols)
Trang 51TDMA và FDMA
FDMA
frequency
time TDMA:
frequency
time
4 máy
Ví dụ:
Trang 52CDMA (Code Division Multiple Access)
phổ tần số & mọi lúc.
bằng lý thuyết mã hóa.
khoảng thời gian ngắn gọi là chip.
Trang 53CDMA (Code Division Multiple
Access)
• Thông thường, có 64 hoặc 128 chip mỗi bit.
• Xét ví dụ đơn giản: 8 chip/bit
• Mỗi trạm được gán một mã m-bit duy nhất gọi là chuỗi chip (chuỗi của 1 và -1)
• Ví dụ: với m=8, trạm A gán chuỗi chip
• (−1 −1 −1 +1 +1 −1 +1 +1) à 1
• (+1 +1 +1 −1 −1 +1 −1 −1) à 0
• Tất cả các chuỗi chip đều đôi một trực giao:
tích bên trong được chuẩn hóa của hai chuỗi
chip riêng biệt bất kỳ, S và T (viết là 𝑆 " 𝑇), là 0.
• Để chọn được các chuỗi bit đó: Walsh codes
Trang 54CDMA (Code Division Multiple
Access)
Trang 55CDMA (Code Division Multiple
Trang 56• Aloha (Pure Aloha)
• Frame-time: thời gian để truyền hết một frame có kích thước lớn nhất (= MTU/R)
• Khi một nút mạng cần truyền dữ liệu:
• Nếu cần truyền thì truyền ngay Nếu frame đó không bị xungđột với frame của nút khác àtruyền thành công
• Nếu có xung đột: truyền lại sau một khoảng thời gian ngẫunhiên
4.2 Điều khiển truy nhập ngẫu nhiên (Random Access Protocols)
Trang 57• Hoạt động như Aloha với các yêu cầu:
time slot & Frame chỉ
được truyền vào
đầu slot
à giảm nguy cơ
collision
Slotted Aloha
Trang 58• Đa truy nhập sử dụng sóng mang
• CSMA:
• Carrier Sense Multiple Access
• Cảm nhận sóng mang để quyết định
đường truyền có bận hay không?
• Nghe trước khi nói
• Đụng độ xảy ra do trễ trên đường truyền
• CSMA/CA: CSMA with Collision Avoidance
• CSMA/CD: CSMA with Collision Detection
• Phát hiện đụng độ : nghe trong khi nói
• Giải quyết đụng độ với backoff (thuật toán quay lui)
Trang 59• Tham khảo: DATA AND COMPUTER
COMMUNICATIONS – Chương 5
• Sóng mang có tần số lớn (năng lượng lớn) để
truyền được xa (cả môi trường có dây & không dây)
• Song mang là giao động tuần hoàn (không mang
thông tin)
• Tín hiệu/dữ liệu (mang thông tin) cần được truyền đi
xa Thường có tần số rất thấp (năng lượng yếu) dùng sóng mang “cõng” tín hiệu/dữ liệu đầu vào
• Phương pháp AM, FM (tín hiệu đầu vào analog)
• Các phương pháp Coding (dữ liệu đầu vào digital)
Nhắc lại khái niệm
sóng mang (Carrier)
Trang 60Carrier Sense Multiple Access with
Collision Detection (CSMA/CD)
frame
nếu không, frame sẽ được gửi lại.
Trang 61CSMA/CD Start
K = 0
Áp dụng một trong các phương thức persistent:
1-persistent, 0-persistent, p-persistent
Kết thúc truyền hay Phát hiện xung đột?
Tiếp tục truyền
& nhận
Phát hiện xung đột
Gửi tín hiệu Jamming
Không
Không
K: số lần truyền lại Tp: thời gian propagation lớn nhất Tb: backoff time
Trang 62Carrier Sense Multiple Access with
Collision Avoidance (CSMA/CA)
• Ý tưởng: trạm phải có khả năng nhận trong khi
truyền để phát hiện xung đột từ các trạm khác
nhau
• Với mạng có dây, nếu xảy ra xung đột thì năng
lượng của tín hiệu nhận được gần như tăng gấp đôi và trạm có thể cảm nhận được khả năng xảy
ra xung đột
• Với mạng không dây, phần lớn năng lượng được
sử dụng để truyền và năng lượng của tín hiệu
nhận được chỉ tăng 5-10% nếu xảy ra xung đột
à Trạm không thể sử dụng nó để cảm nhận xung đột
à CSMA/CA được thiết kế đặc biệt cho mạng
không dây.
Trang 63Đặc điểm của CSMA/CA
• Backoff lũy thừa nhị phân
• Khoảng cách giữa các khung (Interframe
Spacing)
• Chất lượng mạng không dây
• Hành vi thích ứng
Trang 64CSMA/CA Start
K = 0
Kênh rỗi
Chờ khoảng IFS
Kênh vẫn rỗi
Chọn 1 số ngẫu nhiên trong khoảng
0 à 2^k-1
Chờ khoảng thời gian Tb
Tb = R*Tp
Gửi frame
Chờ khoảng timeout
Nhận được ACK
K = K+1
K: số lần truyền lại Tp: thời gian propagation lớn nhất Tb: backoff time Có
Có
Có Có
Không
Không
Không Không
Trang 65Các kiểu truy cập của CSMA
• Liên tục cảm nhận kênh.
• Nếu idle: gửi luôn
• Nếu busy: chờ đến bao giờ idle thì gửi luôn
• Nếu idle: gửi luôn
• Nếu busy: chờ một khoảng thời gian ngẫu nhiên
• Nếu idle: gửi với xắc suất p
• (nếu không gửi thì chờ một khoảng thời gian
random)
Trang 66Ưu điểm của CSMA
giao tiếp trên mạng tại một thời điểm
phần cứng hoặc phần mềm phức tạp
nhiều môi trường mạng, bao gồm cả mạng có dây và không dây.
cứng hoặc phần mềm đắt tiền
Trang 684.3 Truy cập có kiểm soát
(Controlled Access Protocols)
kiếm thông tin lẫn nhau để tìm ra trạm nào có quyền gửi
để tránh sự xung đột của các tin nhắn trên
một phương tiện dùng chung.
• Reservation
• Polling
Trang 69• Dòng thời gian có hai loại thời kỳ:
• Khoảng thời gian đặt trước có độ dài thời gian cố định
• Thời gian truyền dữ liệu của các khung có thể thay
đổi.
• Nếu có M trạm, khoảng thời gian đặt trước được chia thành M khe và mỗi trạm có một khe.
• Giả sử nếu trạm 1 có frame để gửi thì nó sẽ
truyền 1 bit trong khe 1 Không trạm nào khác
được phép truyền trong khe này.
• Trạm thứ i có thể thông báo rằng nó có frame để gửi bằng cách chèn bit 1 vào khe thứ i Sau khi tất cả N khe đã được kiểm tra, mỗi trạm sẽ biết
trạm nào muốn truyền.
• Các trạm đã dành chỗ sẽ truyền frame của
chúng theo thứ tự đó.
Trang 70Reservation
Trang 71Polling
Trang 72Token passing
• Các trạm được kết nối logic với nhau dưới dạng vòng và
quyền truy cập vào các trạm được quyết định bởi token
• Token là một mẫu bit đặc biệt hoặc một thông báo nhỏ, lưu chuyển từ trạm này sang trạm tiếp theo theo một số thứ tự
được xác định trước.
• Với Token ring: token được truyền từ trạm này sang trạm
lân cận khác trong vòng
• Với Bus Token: mỗi trạm sử dụng bus để gửi token đến
trạm tiếp theo theo một số thứ tự được xác định trước.
• Trong cả hai trường hợp, token thể hiện sự cho phép gửi
• Nếu một trạm có frame được xếp hàng đợi để truyền khi nó nhận được mã thông báo, nó có thể gửi khung đó trước khi chuyển mã thông báo đến trạm tiếp theo Nếu nó không có frame để gửi, nó sẽ chuyển token một cách đơn giản cho
nút tiếp theo
Trang 73Token ring
Trang 74A B C D
Token bus
Trang 765 Chuyển tiếp dữ liệu
Trang 77• Bảng địa chỉ MAC
• Địa chỉ MAC của host
• Cổng kết nối với host
• TTL: thời gian giữ lại
thông tin trong bảng
Trang 78• Địa chỉ nguồn chưa có
trong bảng MAC Table,
5 6
A A’
Source: A Dest: A’
MAC addr interface TTL
(ban đầu rỗng)
Trang 79Khi nhận được 1 frame
1 Tìm đ/c cổng vào (tự học – MAC learning)
2 Tìm địa chỉ cổng ra dùng bảng chuyển tiếp
3 if tìm thấy cổng ra
then {
if cổng ra == cổng vào
then hủy bỏ frame
else chuyển tiếp frame đến cổng ra
}
else quảng bá frame đến tất cả các cổng
Switch: Cơ chế chuyển tiếp
Trang 805 6
A A’
Source: A Dest: A’
MAC addr interface TTL
MAC Table (ban đầu rỗng)
A A’
A A’
A A’
A A’
A A’
A’ A
Ví dụ
Trang 81• Các switch có thể được nối với nhau
Nối chồng các switch với nhau
Trang 826 Mạng cục bộ (LAN)
Trang 83• Repeater (bộ lặp), Hub (bộ chia)
Trang 84• Xử lý gói tin: lưu và
chuyển tiếp
(store-and-forward)
• Router: thiết bị tầng mạng
• Switch: thiêt bị tầng liên kết
dữ liệu
• Chuyển tiếp gói tin:
• Router: sử dụng thuật toán
định tuyến tính toán bảng
chuyển tiếp (Forwarding
Table), chuyển tiếp theo địa
network link physical
link physical
switch
datagram
application transport network link physical
frame
frame
frame
datagramRouter vs Switch
Trang 85Router kết nối LAN
Ví dụ: Gửi dữ liệu từ A tới B qua router R
• A soạn một gói tin IP với địa chỉ nguồn là A,
địa chỉ đích là B
• Gói tin chuyển xuống tầng liên kết dữ liệu: đóng gói thành khung tin tầng 2 với địa chỉ MAC nguồn là A, địa chỉ MAC đích là R
R
1A-23-F9-CD-06-9B222.222.222.220
111.111.111.110 E6-E9-00-17-BB-4B CC-49-DE-D0-AB-7D
222.222.222.221 88-B2-2F-54-1A-0F
Switch Switch