You are on page 1of 53

Chương 5:

Tầng liên kết dữ liệu

Đọc trước: Chapter 3 – The Data


Link Layer;
Chapter 4 – The Medium Access
Control Sublayer;
Computer Networks, Tanenbaum
1
Tổng quan
l  Tầng liên kết dữ liệu

l  Dịch vụ: l  Công nghệ mạng LAN


l  Đóng gói, địa chỉ hóa l  Ethernet
l  Phát hiện và sửa lỗi l  Wireless LAN
l  Kiểm soát luồng l  Công nghệ mạng WAN
l  Kiểm soát truy nhập đường l  Frame relay
truyền l  ATM
l  ….
2
Giới thiệu về
Tầng liên kết dữ liệu

3
Nút mạng và liên kết
“link”
l  Nút mạng:
l  PCs, Laptop, Routers,
Server…
l  Liên kết:
l  Kênh truyền thông giữa
các nút kế tiếp
l  Hữu tuyến: Ethernet LAN,
ADSL, fiber optic…
l  Không dây: Wi-fi, Wi-Max,
vệ tinh,…
l  Tầng liên kết dữ liệu:
Truyền dữ liệu giữa các
thành phần kế tiếp

4
Tầng liên kết dữ liệu và kiến trúc
phân tầng
Application Media independent
sub-layer
Transport

Network LLC
(Logical Link Control)
Data-link
MAC
Physical (Media Access Control) Media dependent
sub-layer

802.2 LLC

802.3 802.4 802.5 802.11 ….. 802.16


Ethernet Token Bus Token Ring Wi-Fi Wi-Max
5
IEEE 802.x series
Tổng quan về các chức năng

Framing Flow control

Media Access Control

Addressing Error control

Datalink layer

6
Các chức năng (1)
l  Đóng gói - Framing:
l  Bên gửi: đặt gói tin tầng mạng vào khung tin,
thêm phần đầu, phần đuôi
l  Bên nhận: Bỏ phần đầu, phần đuôi và lấy gói tin
truyền lên tầng mạng

l  Địa chỉ hóa - Addressing:


l  Địa chỉ vật lý đặt trong phần đầu gói tin để định
danh nút nguồn, nút đích
7
8
Các chức năng (2)
l  Điều khiển truy nhập đường truyền
l  Nếu là mạng đa truy nhập, cần có các giao thức
truy nhập đường truyền cho nhiều máy trạm
l  Kiểm soát luồng:
l  Kiểm soát tốc độ truyền của bên gửi sao cho bên
nhận hoạt động tốt, không bị quá tải
l  Kiểm soát lỗi:
l  Phát hiện và sửa các lỗi bít
l  e.g. parity check, checksum, CRC check
9
Kiểm soát lỗi
Phát hiện lỗi
Sửa lỗi

10
Nguyên lý phát hiện lỗi
EDC= Error Detection Code (redundancy)
Mã phát hiện lỗi

Data Data
Y
All bit in Error
Data’
OK? N

Data EDC Data’ EDC’

Link with bit errors

11
Mã chẵn lẻ
l  Mã đơn
l  Phát hiện lỗi bít đơn

l  Mã hai chiều 101011 101011


l  Phát hiện và sửa lỗi bít đơn
111100 101100
011101 011101
001010 001010

l  Khái niệm về checksum của


Internet?
12
CRC: Cyclic Redundancy Check
Mã vòng
l  Dữ liệu được xem như một số nhị phân: D
l  Chọn một chuỗi r+1 bit, G (chuỗi sinh – Generator)
l  Tìm một chuỗi R độ dài r bit, sao cho chuỗi ghép của D và R
là một số nhị phân chia hết cho G (chia modulo 2)
l  <D, R> chia hết cho G

D D
Y
N
<D’, R’> mod G =
0?
<D, R> mod G = 0

D R D’ R’

13
Link with bit errors
CRC: Cách tìm R

l  <D, R> có thể viết dưới dạng l  Ví dụ G


l  D.2r XOR R
10101001000 1001
l  <D, R> chia hết cho G 1001 D 1011110
l  D.2r XOR R = n.G 1110
l  D.2r = n.G XOR R 1001
l  Có nghĩa là R là số dư khi chia D.2r 1110
cho G (phép chia modulo 2) 1001
1111
1001
R= D.2 mod G
r
1100
1001
R=110, chuỗi bít gửi đi là 1010
10101001110 1001
110
D R 14
R
CRC biểu diễn dưới dạng đa thức

l  1011 : x3 +x +1
l  Ví dụ một số mã CRC được sử dụng trong thực tế:
l  CRC-8 = x8 + x2 + x + 1
l  CRC-12 = x12+x11+x3+x2+x
l  CRC-16-CCITT = x16 + x12 + x5 + 1
l  CRC-32 = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5
+ x4 + x2 + x + 1
l  G càng dài, mã CRC phát hiện lỗi càng hiệu quả
l  CRC được sử dụng rộng rãi trong thực tế
l  Wi-fi, ATM, Ethernet…
l  Phép toán XOR được cài đặt bởi phần cứng
l  Phát hiện chuỗi bít bị lỗi có độ dài nhỏ hơn r+1 bit

15
Các kỹ thuật kiểm soát lỗi
l  Đảm bảo truyền tin tin cậy l  Các kỹ thuật sử dụng:
trên môi trường truyền tin l  Phát hiện lỗi (đã học)
không tin cậy l  Báo nhận
l  Truyền lại với timeout
l  Điều kiện l  Truyền lại với báo không nhận
l  Các khung dữ liệu luôn l  Kỹ thuật tự động truyền lại
luôn được truyền chính xác (ARQ automatic repeat
l  Độ trễ truyền tin không request). Có 3 phiên bản
đáng kể chuẩn hóa
l  Dừng và chờ (Stop and
l  Các loại lỗi Wait)ARQ
l  Mất khung dữ liệu l  Quay lại N(Go Back N) ARQ
l  Loại bỏ chọn lọc (Selective
l  Khung dữ liệu bị lỗi Reject) ARQ
l  Thông báo lỗi bị mất l  Tương tự cơ chế kiểm soát
luồng dữ liệu

16
Kiểm soát truy nhập
đường truyền

17
Các dạng liên kết
l  Điểm-nối-điểm
l  ADSL
l  Telephone modem
l  Leased Line….
l  Quảng bá
l  Mạng LAN truyền thống với hình trạng bus hay mạng hình
sao dùng hub (công nghệ lỗi thời)
l  Wireless LAN
l  HFC:
l  …
l  Các mạng quảng bá cần giao thức điều khiển truy
nhập để tránh xung đột -> Giao thức đa truy nhập

18
Phân loại các giao thức đa truy
nhập
l  Chia kênh:
l  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)
l  Chia từng phần nhỏ đó cho các nút mạng
l  Truy nhập ngẫu nhiên:
l  Kênh không được chia, cho phép đồng thời truy nhập, chấp
nhận là có xung đột
l  Cần có cơ chế để phát hiện và tránh xung đột
l  e.g. Pure Aloha, Slotted Aloha, CSMA/CD, CSMA/CA…
l  Lần lượt:
l  Theo hình thức quay vòng
l  Token Ring, Token Bus….
19
Các phương pháp chia kênh
l  FDMA: frequency division multiple access
l  TDMA: time division multiple access

l  CDMA: code division multiple access

20
Ví dụ:
TDMA và FDMA 4 máy
FDMA

frequency

time
TDMA:

frequency

time 21
CDMA
l  Nhiều nguồn phát có thể chia sẻ một giải tần chung
trên một kênh truyền vật lý duy nhất
l  Các tín hiệu của các nguồn khác nhau được mã hóa
bằng các mã ngẫu nhiên khác nhau
l  Sau đó được trộn lẫn và phát đi trên cùng một giải tần
chung
l  Và chỉ được phục hồi duy nhất ở cuối kênh với mã
ngẫu nhiên tương ứng.
l  Áp dụng lý thuyết trải phổ (spread spectrum), CDMA
đưa ra hàng loạt các ưu điểm mà nhiều công nghệ
khác chưa thể đạt được.
http://en.wikipedia.org/wiki/Spread_spectrum

22
Pure Aloha
l  Aloha được Sử dụng trong mạng di
động 1G, 2.5G, 3G sử dụng công
nghệ GSM
l  Pure Aloha:
l  Nếu có dữ liệu cần truyền, truyền
l  Nếu đang truyền mà nhận được dữ liệu
của trạm khác à có xung đột. Tất cả các
trạm cần truyền lại.
l  Vẫn có thể xung đột khi truyền lại
l  Không kiểm tra đường truyền trước khi
truyền
l  Các gói mầu ghi bị xung đột (có overlap
về thời gian)
23
Slotted Aloha
l  Thời gian được chia
thành các khe rời rạc
l  Các trạm chỉ bắt đầu
truyền ở đầu các khe
thời gian
l  Xác suất xung đột
giảm.
l  Gói mầu ghi bị xung
đột
24
CSMA
l  Carrier Sense Multiple Access (Đa truy nhập sử
dụng sóng mang)
l  Thế nào là CSMA: trong một cuộc họp
l  CSMA:
l  “Listen before talk” blah
blah
l  Nếu kênh bận, chờ blah

l  Nếu kênh rỗi, truyền

25
CSMA

l  CSMA: Các máy nghe trước muốn truyền:


l  Nếu kênh rỗi, truyền toàn bộ dữ liệu
l  Nếu kênh bận, chờ
l  Tại sao lại có xung đột?

Độ trễ lan truyền


26
Xung đột trong CSMA
l  Giả sử kênh truyền có 4
nút
l  Tín hiệu điện từ lan truyền
từ nút này đến nút kia mất
một thời gian nhất định
(trễ lan truyền)
l  Ví dụ:

27
CSMA/CA (Collision
Avoidance)
l  Dùng trong mạng WIFI 802.11
l  Nếu 2 hay nhiều trạm cùng phát hiện đường
truyền bận và cùng chờ thì có khả năng chúng sẽ
cùng truyền lại một lúc.
l  à xung đột,
l  Giải pháp CSMA/CA.
l  Mỗi trạm chờ một khoảng thời gian được tính ngẫu
nhiên à giảm xác xuất đụng độ.

28
CSMA/CD (Collision detection)
l  Dùng trong mạng Ethernet
l  CSMA có phát hiện xung đột: Listen while talk.
l  Nếu đường truyền rỗi, truyền
l  Nếu bận, chờ rồi truyền với xác suất p
l  Nghe đường truyền trong khi truyền, nếu có
xung đột chỉ phát 1 tín hiệu báo xung đột ngắn
và dừng ngay
l  Không tiếp tục truyền như CSMA
l  Thử truyền lại sau một khoảng thời gian ngẫu
nhiên. 29
CSMA/CD: Tóm tắt
l  Máy trạm nghe trước khi muốn truyền
l  Bận: Chờ, tiếp tục nghe
l  Rỗi: Bắt đầu truyền, vừa truyền vừa “nghe ngóng” xem có
xung đột hay không
l  Nghe trong thời gian bao lâu?
l  Nếu phát hiện thấy xung đột: Hủy bỏ quá trình truyền và
quay lại trạng thái chờ, nghe
l  Một số biến thể của CSMA
l  CSMA kiên nhẫn (persistance)
l  CSMA không kiên nhẫn
l  CSMA với xác suất p nào đó

30
So sánh chia kênh và truy
nhập ngẫu nhiên
l  Chia kênh
l  Hiệu quả, công bằng cho đường truyền với lưu lượng lớn
l  Lãng phí nếu chúng ta cấp kênh con cho một nút chỉ cần
lưu lượng nhỏ
l  Truy nhập ngẫu nhiên
l  Khi tải nhỏ: Hiệu quả vì mỗi nút có thể sử dụng toàn bộ
kênh truyền
l  Tải lớn: Xung đột tăng lên
l  Phương pháp quay vòng: Có thể dung hòa ưu điểm
của hai phương pháp trên

31
Token Ring – Mạng vòng dùng thẻ bài

l  Một “thẻ bài” luân


T
chuyển lần lượt qua
từng nút mạng
l  Nút nào giữ thẻ bài
sẽ được gửi dữ liệu (nothing
to send)
l  Gửi xong phải chuyển T
thẻ bài đi
l  Một số vấn đề
l  Tốn thời gian chuyền
thẻ
l  Trễ
l  Mất thẻ bài…. data
32
Tổng kết các phương pháp kiểm
soát đa truy nhập
l  Chia kênh
l  Truy nhập ngẫu nhiên

l  Quay vòng

l  Phân tích ưu, nhược điểm

33
Kiểm soát luồng dữ
liệu

34
Kiểm soát luồng dữ liệu
l  Đảm bảo trạm gửi không làm quá tải trạm nhận
l  Trạm đích
l  Lưu trữ các khung dữ liệu trong bộ nhớ đệm
l  Thực hiện một số thao tác trước khi chuyển dữ liệu lên tầng trên
l  Bộ nhớ đệm có thể bị đầy, dẫn tới mất khung dữ liệu
l  Không đặt vấn đề lỗi truyền tin
l  Các khung dữ liệu luôn luôn được truyền chính xác
l  Độ trễ truyền tin không đáng kể
l  Giải pháp
l  Cơ chế dừng và chờ
l  Cơ chế cửa sổ trượt

35
Cơ chế dừng và chờ
l  Nguyên tắc
l  Nguồn gửi một khung dữ liệu

l  Đí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)
l  Nguồn chờ đến khi nhận được báo nhận mới truyền
tiếp khung dữ liệu tiếp theo

36
ole 2
Cơ chế dừng và chờ
transmitter
Emetteur receiver
Récepteur
répéter
eReseau.donnerPaquet() Packet
Paquets Paquets
Packet
uireTrame(p)
sique.prendreTrame(t)
sique.attendreAquittement() frame
Trâme

Ack

répéter
ePhysique.donnerTrame()
ePaquet(t) Trâme
frame
eau.prendrePaquet(p)
sique.envoyerAcquittement()

frame
Trâme
Trâme

37

Conception et architectures des réseaux 16


38
Cơ chế dừng và chờ
l  Ưu điểm
l  Đơn giản, đặc biệt thích hợp với các khung dữ liệu lớn

l  Nhược điểm
l  Với các khung dữ liệu nhỏ, thời gian sử dụng đường truyền bị
lãng phí
l  Không thể sử dụng các khung dữ liệu lớn một cách phổ biến
l  Bộ nhớ đệm có hạn
l  Khung dữ liệu dài khả năng lỗi lớn
l  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

39
Cơ chế cửa sổ trượt: nguyên tắc
l  Gửi nhiều khung dữ liệu để giảm thời gian chờ.
l  Các khung đã gửi đi chưa báo nhận được lưu trữ
tạm thời trong bộ nhớ đệm.
l  Số khung được truyền đi phụ thuộc vào bộ nhớ
đệm.
l  Khi nhận được báo nhận
l  giải phóng khung dữ liệu đã truyền thành công khỏi bộ
nhớ đệm
l  Truyền tiếp các khung bằng với số khung đã truyền thành
công

40
Cơ chế cửa sổ trượt: Nguyên tắc
l  Xét hai trạm A, B kết nối bằng một đường truyền song
công
l  B có bộ nhớ đệm n khung dữ liệu
l  Như vậy B có thể nhận cùng một lúc n khung dữ liệu mà không
cần báo nhận
l  Báo nhận
l  Để ‘nhớ’ các khung dữ liệu đã báo nhận, cần đánh số các khung
dữ liệu
l  B báo nhận một khung bằng cách báo số khung dữ liệu mà B
đang chờ nhận, ngầm định đã nhận tất cả các khung trước đó
l  Một báo nhận có thể dùng cho nhiều khung dữ liệu

41
Cơ chế cửa sổ trượt

42

Trong cửa sổ là các khung sẽ phát Trong cửa sổ là các khung chờ nhận
Cơ chế cửa sổ trượt

43
Cơ chế cửa sổ trượt
l  Các khung dữ liệu đang được gửi đi được đánh số.
Số thứ tự phải lớn hơn hoặc bằng kích thước cửa
sổ
l  Các khung dữ liệu được báo nhận bằng thông báo
có đánh số
l  Được báo gộp. Nếu 1,2,3,4 được nhận thành công,
chỉ gửi báo nhận 4
l  Khi đã nhận được thông báo nhận được khung k, có
nghĩa là tất cả các khung k-1, k-2.. đã nhận được

44
Cơ chế cửa sổ trượt
l  Nguồn quản lý
l  Các khung đã gửi đi thành công
l  Các khung đã gửi đi chưa báo nhận
l  Các khung có thể gửi đi ngay
l  Các khung chưa thể gửi đi ngay
l  Đích quản lý
l  Các khung đã nhận được
l  Các khung đang chờ nhận

45
Piggy backing
l  A và B cùng truyền tin
l  Khi B cần báo nhận và cần truyền số liệu. B gửi kèm
báo nhận trong khung dữ liệu: Piggybacking
l  Nếu không, B gửi một khung báo nhận riêng
l  Sau khi gửi báo nhận, nếu B truyền khung dữ liệu, B
vẫn đặt số báo nhận trong khung dữ liệu
l  Cơ chế cửa sổ trượt hiệu quả hơn nhiều so với
dừng và chờ!
l  Quản lý phức tạp hơn

46
Bài tập
l  Cho một liên kết có tốc độ R=100Mbps
l  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
l  Giả sử kích thước một khung liên kết dữ liệu là: 1KB
l  RTT giữa 2 nút của liên kết là 3ms
l  Hỏi thời gian truyền khi áp dụng phương pháp kiểm soát
luồng Stop-and-wait.
l  Thời gian truyền với phương pháp cửa sổ trượt với kích
thước cửa sổ =7
l  Thời gian truyền nhanh nhất với phương pháp cửa sổ
trượt đạt được khi kích thước cửa sổ bằng bao nhiêu?
47
e2 Thời gian phát với cơ chế
dừng và chờ
transmitter
Emetteur receiver
Récepteur
ter
seau.donnerPaquet() Packet
Paquets Packet
Paquets
Trame(p)
ue.prendreTrame(t) T transmit
ue.attendreAquittement() frame
Trâme

RTT Ack

ter
ysique.donnerTrame()
quet(t) frame
Trâme
.prendrePaquet(p)
ue.envoyerAcquittement()

Trâme
frame
Trâme

48

Conception et architectures des réseaux 16


Thời gian phát với cơ chế
dừng và chờ
l  T tổng = Số frame * (T_transmit + RTT)
l  T_transmit (F) = L(Frame)/ R

l  Số frame = L/L(frame)

l  Với Số liệu đã cho


l  Số frame =100 KB/1KB =100

l  T_transmit (F) = 1KB/100 Mbps


=10^3*8/10^8 =8. 10^-5 (s)=0.08 (ms)
49
Cơ chế cửa sổ trượt

50
Thời gian truyền với cửa sổ 7
l  T truyền nhanh nhất = (T phát 7 gói + chờ )
*số lần.
l  1 lần Chờ = (T phát 1 gói + RTT) – T phát 7
gói
l  Số lần chờ = số gói /7

51
Thời gian truyền nhanh nhất
với cửa sổ trượt
l  Truyền nhanh nhất
đạt được khi nguồn
W gói
ACK
phát xong gói cuối
của cửa sổ thì đã
nhận được ACK của
gói đầu tiên.
l  Kích thước cửa sổ W

l  T phát (W gói) >= T


phát gói đầu + RTT
52
Thời gian truyền nhanh nhất
với cửa sổ trượt (cont.)
l  T phát (W gói) = W * 1KB/R
l  => (W-1)*1KB/R >= RTT

l  => W >= RTT*R/1KB +1

l  W>= 3ms * 100 Mbps/ 1KB + 1


l  W>=38.5
l  Giá trị nhỏ nhất của W = 39

l  Thời gian phát hết dữ liệu L = L/R + RTT =8


ms +3ms =11 ms
53

You might also like