Bài giảng Mạng máy tính - Chương 6: Tầng vận chuyển
Tầng Vận chuyển
CHỨC NĂNG - 1
Cung cấp kênh truyền dữ liệu ở mức logic
giữa 2 tiến trình trên 2 máy
Application
Presentation
Session
application
transport
network
network
data link
data link
network
data link
physical
network
data link
Transport
Network
network
data link
network
data link
Data link
Physical
application
transport
network
physical
2
data link
NỘI DUNG
Giới thiệu
Nguyên tắc truyền dữ liệu đáng tin cậy
Giao thức TCP
Giao thức UDP
3
NHẮC LẠI
source
message
M
M
application
transport
network
link
segment
H
t
H
packet
frame
H
M
M
n
t
H H H
l
n
t
physical
link
physical
switch
destination
H H
M
M
network
link
physical
n
t
H H H
t
l
n
H H
M
M
M
M
application
transport
network
link
n
t
H
t
H H
n
t
4
router
physical
TẦNG VẬN CHUYỂN - 1
P2
P3
M
M
Process nhận?
application
transport
network
Ht D
Ht D
P1
M
P4
M
segment
H
n
Gởi đến Process?
application
transport
network
M
application
transport
network
Ht D
DHt D
segment
H
n
5
TẦNG VẬN CHUYỂN - 2
Thực thi ở end-system
Bên gởi: thực hiện Dồn kênh
Nhận dữ liệu từ tầng ứng dụng (từ các socket)
Phân đoạn thông điệp ở tầng ứng dụng thành các
segment
Dán nhãn dữ liệu: đóng gói theo giao thức tại tầng
Transport
Chuyển các segment xuống tầng mạng (network layer)
Bên nhận: thực hiện Phân kênh
Nhận các segment từ tầng mạng
Phân rã các segment thành thông điệp tầng ứng dụng
Chuyển thông điệp lên tầng ứng dụng (đến socket tương
ứng)
6
TẦNG VẬN CHUYỂN - 3
Hỗ trợ
Truyền dữ liệu đáng tin cậy
Điều khiển luồng
Điều khiển tắt nghẽn
Thiết lập và duy trì kết nối
Truyền dữ liệu không đáng tin cậy
Nổ lực gởi dữ liệu hiệu quả nhất
Không hỗ trợ
Đảm bảo thời gian trễ
Đảm bảo băng thông
7
DỒN KÊNH – PHÂN KÊNH - 1
Dồn kênh (Multiplexing):
Thực hiện tại bên gởi
Thu thập dữ liệu từ các socket
dán nhãn dữ liệu với 1 header
Phân kênh (Demultiplexing):
Thực hiện tại bên nhận
phân phối các segment nhận được cho socket tương ứng
Khi đóng gói dữ liệu ở tầng transport, header sẽ
thêm vào:
Source port
Destination port
8
DỒN KÊNH – PHÂN KÊNH - 2
32 bits
source port #
dest port #
other header fields
application
data
(message)
Cấu trúc của một segment
9
DỒN KÊNH – PHÂN KÊNH - 3
P2
6428
P1
5775
SP: 6428
DP: 5775
SP: 5775
Client
IP:A
server
IP: B
DP: 6428
10
NỘI DUNG
Giới thiệu
Nguyên tắc truyền dữ liệu đáng tin cậy
Giao thức TCP
Giao thức UDP
11
BÀI TOÁN
Làm sao để truyền
đáng tin cậy???
12
NGUYÊN LÝ TRUYỀN DỮ LIỆU ĐÁNG TIN CẬY
Bên nhận
Bên gửi
Đường truyền tin cậy
Nghi thức
Nghi thức
truyền tin cậy
truyền tin cậy
Đường truyền không tin cậy
b. Triển khai dvụ
a. Cung cấp dvụ
Đặc tính của đường truyền không tin cậy quyết định độ
phức tạp của nghi thức truyền tin cậy
13
NỘI DUNG
Nghi thức truyền dữ liệu đáng tin cậy
RDT 1.0
RDT 2.0, RDT 2.1, RDT 2.2
RDT 3.0
Pipeline
Go-back-N
Gởi lại có chọn
14
GIẢI QUYẾT LỖI BIT
Bên gởi
Gởi kèm theo thông tin kiểm tra lỗi
Sử dụng các phương pháp kiểm tra lỗi
Checksum, parity checkbit, CRC,..
Bên nhận
Kiểm tra có xảy ra lỗi bit?
Hành động khi xảy ra lỗi bit?
Báo về bên gởi
15
GIẢI QUYẾT MẤT GÓI
Bên nhận
Gởi tín hiệu báo
Gởi gói tin báo hiệu ACK, NAK
Bên gởi
Định nghĩa trường hợp mất gói
Chờ nhận tín hiệu báo
Hành động khi phát hiện mất gói
16
GIAO THỨC RDT
RDT = Reliable Data Transfer
Nguyên tắc: dừng và chờ
Bên gởi
Gởi gói tin kèm theo thông tin kiểm tra lỗi
Dừng và chờ đến khi nào gói tin vừa gởi đến được bên nhận an
toàn: nhận được gói tin ACK
Gởi lại khi có lỗi xảy ra: lỗi bit, mất gói
Bên nhận:
Kiểm tra lỗi, trùng lắp dữ liệu
Gởi gói tin phản hồi
Phiên bản:
RDT 1.0
RDT 2.0
RDT 2.1
RDT 2.2
RDT 3.0
17
NGUYÊN LÝ PIPE LINE
Cho phép gởi nhiều gói tin khi chưa nhận ACK
Sử dụng buffer để lưu các gói tin
Bên gởi: lưu gói tin đã gởi nhưng chưa ack
Bên nhận: lưu gói tin đã nhận đúng nhưng chưa đúng thứ
tự
Giải quyết mất gói
Go back N
Selective Repeat (gởi lại có chọn)
18
RDT1.0 : ĐƯỜNG TRUYỀN LÝ TƯỞNG
Giả thiết: kênh truyền bên dưới tuyệt đối
Không lỗi bit
Không mất gói tin
FSM (finite state machine) cho bên gửi và nhận
Bên gửi chuyển dữ liệu xuống kênh bên dưới
Bên nhận đọc dữ liệu từ kênh truyền bên dưới
rdt_send(data)
rdt_rcv(packet)
Wait for
call from
below
Wait for
call from
above
extract (packet,data)
deliver_data(data)
packet =
make_pkt(data)
udt_send(packet)
sender
receiver
19
RDT2.0 KÊNH TRUYỀN CÓ LỖI BIT - 1
Giả thiết: kênh truyền có thể xảy ra lỗi bit
Sử dụng các cơ chế kiểm tra lỗi
checksum
Làm sao để khắc phục khi nhận ra lỗi?
Acknowledgement(ACKs): bên nhận báo cho bên
gửi đã nhận được dữ liệu
Nagetive acknowledgement(NAKs): bên nhận báo
gói tin bị lỗi
Bên gửi sẽ gửi lại gói tin khi nhận NAK
So với rdt1.0, rdt2.0:
Nhận dạng lỗi
Cơ chế phản hồi: ACK, NAK
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Mạng máy tính - Chương 6: Tầng vận chuyển", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_mang_may_tinh_chuong_6_tang_van_chuyen.pdf