Tải bản đầy đủ (.pdf) (110 trang)

Mạng máy tính-chương 3: Tầng giao vận pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.22 MB, 110 trang )

Chương 3
Tầng giao vận
Tầng giao vận
3-1
Computer Networking:
A Top Down Approach
Featuring the Internet
,
3
rd
edition.
Jim Kurose, Keith Ross
Addison-Wesley, July
2004.
Ghi chú
Slides này dựa trên sildes của J.F Kurose and K.W. Ross .
Chương 3: Tầng giao vận
Mục đích:
❒ Hiểu được các nguyên
lý của các dịch vụ
tầng giao vận:
❍ Ghép/tách kênh
Truy

n tin c

y
❒ Học về các giao thức giao
vận trong Internet:
❍ UDP: phi kết nối
❍ TCP: hướng kết nối


Ki

m soát t

c ngh

n TCP
Tầng giao vận
3-2

Truy

n tin c

y
❍ Kiểm soát luồng
❍ Kiểm soát tắc nghẽn

Ki

m soát t

c ngh

n TCP
Chương 3. Nội dung
❒ 3.1 Các dịch vụ tầng
giao vận
❒ 3.2 Ghép và tách kênh
❒ 3.3 Truyền phi kết nối:

UDP
❒ 3.5 Truyền hướng kết
nối: TCP
❍ Cấu trúc đoạn
❍ Truyền tin cậy

Ki

m soát lu

ng
Tầng giao vận
3-3
UDP
❒ 3.4 Các nguyên lý
truyền tin cậy

Ki

m soát lu

ng
❍ Quản trị kết nối
❒ 3.6 Các nguyên lý kiểm
soát tắc nghẽn
❒ 3.7 Kiểm soát tắc nghẽn
trong TCP
Các dịch vụ và giao thức giao vận
❒ Cung cấp
truy


n thông logic
giữa các tiến trình chạy trên
các hosts khác nhau
❒ Các giao thức giao vận chạy
trên các hệ thống cuối
❍ Bên gửi: cắt thông báo từ

ng d

ng g

i xu

ng thành
application
transport
network
data link
physical
network
data link
network
data link
physical
network
data link
physical
network
data link

physical
Tầng giao vận
3-4

ng d

ng g

i xu

ng thành
nhiều đoạn, chuyển từng
đoạn xuống tầng mạng
❍ Bên nhận: lắp ghép các
đoạn thành thông báo,
chuyển thông báo cho tầng
ứng dụng
❒ Nhiều giao thức
❍ Internet: TCP and UDP
application
transport
network
data link
physical
network
data link
physical
data link
physical
Tầng giao vận <> Tầng mạng


T

ng m

ng:
truyền
thông logic giữa các
hosts

transport layer:
truyền
thông logic gi

a các
Tầng giao vận
3-5
thông logic gi

a các
tiến trình
❍ Dựa vào các dịch vụ tầng
mạng
Các giao thức giao vận Internet
❒ Tin cậy, đúng thứ tự
(TCP)
❍ Kiểm soát tắc nghẽn
❍ Kiểm soát luồng
❍ Thiết lập kết nối


Không tin c

y, không
application
transport
network
data link
physical
network
data link
network
data link
physical
network
data link
physical
network
data link
physical
Tầng giao vận
3-6

Không tin c

y, không
đúng thứ tự: UDP
❍ no-frills extension of
“best-effort” IP
❒ services not available:
❍ delay guarantees

❍ bandwidth guarantees
application
transport
network
data link
physical
network
data link
physical
data link
physical
Chương 3. Nội dung
❒ 3.1 Các dịch vụ tầng
giao vận
❒ 3.2 Ghép và tách kênh
❒ 3.3 Truyền phi kết nối:
UDP
❒ 3.5 Truyền hướng kết
nối: TCP
❍ Cấu trúc đoạn
❍ Truyền tin cậy

Ki

m soát lu

ng
Tầng giao vận
3-7
UDP

❒ 3.4 Các nguyên lý
truyền tin cậy

Ki

m soát lu

ng
❍ Quản trị kết nối
❒ 3.6 Các nguyên lý kiểm
soát tắc nghẽn
❒ 3.7 Kiểm soát tắc nghẽn
trong TCP
Ghép/tách kênh
= process= socket
Chuyển các gói vào đúng socket
Tách kênh ở nút nhận:
Nhận dữ liệu từ nhiều sockets,
Đóng gói bằng tiêu đề
(để sau sử dụng cho tách
kênh)
Ghép kênh ở nút gửi:
Tầng giao vận
3-8
application
transport
network
link
physical
P1

application
transport
network
link
physical
application
transport
network
link
physical
P2
P3
P4
P1
host 1
host 2
host 3
Tách kênh như thế nào
❒ host nhận IP datagrams
❍ Mỗi datagram có địa chỉ IP
nguồn, IP đích
❍ Mỗi datagram mang một
đoạn dữ liệu từ tầng giao
vận

M

i đo

n có s


hi

u c

ng
source port # dest port #
32 bits
other header fields
Tầng giao vận
3-9

M

i đo

n có s

hi

u c

ng
nguồn, đích
❒ host sử dụng địa chỉ IP và số
hiệu cổng để chuyển đoạn đến
cổng thích hợp
application
data
(message)

TCP/UDP segment format
Tách kênh phi kết nối
❒ Tạo socket với số hiệu cổng:
DatagramSocket mySocket1 = new
DatagramSocket(99111);
DatagramSocket mySocket2 = new
DatagramSocket(99222);

UDP socket đ
ượ
c xác đ

nh
❒ Khi host nhận UDP
segment:
❍ Kiểm tra số hiệu cổng đích
trong segment
❍ Chuyển UDP segment đến
socket có s

hi

u c

ng đích
Tầng giao vận
3-10

UDP socket đ
ượ

c xác đ

nh
bằng bộ đôi:
(dest IP address, dest port number)
socket có s

hi

u c

ng đích
Tách kênh phi kết nối (tiếp)
DatagramSocket serverSocket = new DatagramSocket(6428);
P2
P1
P1
P3
Tầng giao vận
3-11
Client
IP:B
client
IP: A
server
IP: C
SP: 6428
DP: 9157
SP: 9157
DP: 6428

SP: 6428
DP: 5775
SP: 5775
DP: 6428
SP cung cấp “địa chỉ quay về”
Tách kênh hướng kết nối
❒ TCP socket được xác
định bằng bộ tứ:
❍ IP nguồn
❍ port nguồn

IP đích
❒ Server có thể hỗ trợ
nhiều TCP sockets đồng
thời:
❍ Mỗi socket được xác đinh
bởi bộ 4 của nó
Tầng giao vận
3-12

IP đích
❍ port đích
❒ Host nhận sử dụng cả 4
giá trị để chuyển đoạn
socket tương ứng
❒ Web server có nhiều
socket cho mỗi client
đang kết nối
❍ non-persistent HTTP sẽ có
socket khác nhau cho các

requests
Tách kênh hướng kết nối (tiếp)
P1
P1
P2
P4 P5
P6
P3
SP: 5775
DP: 80
Tầng giao vận
3-13
Client
IP:B
client
IP: A
server
IP: C
SP: 9157
DP: 80
SP: 9157
DP: 80
D-IP:C
S-IP: A
D-IP:C
S-IP: B
DP: 80
D-IP:C
S-IP: B
Tách kênh hướng kết nối: Web

Server đa luồng
P1
P1
P2
P4
P3
SP: 5775
DP: 80
Tầng giao vận
3-14
Client
IP:B
client
IP: A
server
IP: C
SP: 9157
DP: 80
SP: 9157
DP: 80
D-IP:C
S-IP: A
D-IP:C
S-IP: B
DP: 80
D-IP:C
S-IP: B
Chương 3. Nội dung
❒ 3.1 Các dịch vụ tầng
giao vận

❒ 3.2 Ghép và tách kênh
❒ 3.3 Truyền phi kết nối:
UDP
❒ 3.5 Truyền hướng kết
nối: TCP
❍ Cấu trúc đoạn
❍ Truyền tin cậy

Ki

m soát lu

ng
Tầng giao vận
3-15
UDP
❒ 3.4 Các nguyên lý
truyền tin cậy

Ki

m soát lu

ng
❍ Quản trị kết nối
❒ 3.6 Các nguyên lý kiểm
soát tắc nghẽn
❒ 3.7 Kiểm soát tắc nghẽn
trong TCP
UDP: User Datagram Protocol [RFC 768]

❒ Dịch vụ “nỗ lực tối đa”, các
đoạn UDP có thể:
❍ Mất
❍ Đến sai thứ tự

Phi k
ế
t n

i:

Không b

t tay gi

a ben
Tại sao lại dùng UDP?
❒ Không thiết lập kết nối (trễ)
❒ Đơn giản: không trạng thái
kết nối ở cả bên gửi và bên
nh

n
Tầng giao vận
3-16

Không b

t tay gi


a ben
gửi và bên nhận
❍ Mỗi đoạn được xử lý độc
lập với các đoạn khác
nh

n
❒ Tiêu đề đoạn nhỏ
❒ Không kiểm soát tắc nghẽn:
UDP có thể truyền nhanh
như mong muốn
UDP
❒ Thường được sử dụng cho
streaming multimedia
❍ Chấp nhận lỗi
❍ Cảm tốc độ
❒ Các ud khác dùng UDP

DNS
source port # dest port #
32 bits
length
checksum
Số bytes
của đoạn UDP,
bao gồm
cả tiêu đề
Tầng giao vận
3-17


DNS
❍ SNMP
❒ Truyền tin cậy trên UDP:
thêm tính tin cậy ở tầng ứng
dụng
❍ Khắc phục lỗi theo ứng
dụng cụ thể!
Application
data
(message)
UDP segment format
UDP checksum
Bên gửi:
❒ Xem đoạn cần gửi như dãy
các s

nguyên 16
-
bit
Bên nhận:
❒ Tính checksum của đoạn nhận
đ
ượ
c
Mục đích: phát hiện “lỗi” (vd., lộn bit) trong đoạn dược
truyền
Tầng giao vận
3-18
các s


nguyên 16
-
bit
❒ checksum: tổng các số
nguyên trong dãy
❒ Đưa checksum vào trường
UDP checksum
đ
ượ
c
❒ Kiểm tra checksum tính được
có bằng giá trị trường
checksum:
❍ NO – có lỗi được phát hiện
❍ YES – không phát hiện lỗi.
Nh
ư
ng có th

có l

i.
Ví dụ Internet Checksum
❒ Ghi chú
❍ Khi cộng các số, nhớ ở bít quan trọng nhất phải
được cộng vào kết quả
❒ Ví dụ: cộng hai số nguyên 16-bit
Tầng giao vận
3-19
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0

1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sum
checksum
Chương 3. Nội dung
❒ 3.1 Các dịch vụ tầng
giao vận
❒ 3.2 Ghép và tách kênh
❒ 3.3 Truyền phi kết nối:
UDP
❒ 3.5 Truyền hướng kết
nối: TCP
❍ Cấu trúc đoạn
❍ Truyền tin cậy

Ki

m soát lu

ng
Tầng giao vận
3-20
UDP
❒ 3.4 Các nguyên lý
truyền tin cậy

Ki


m soát lu

ng
❍ Quản trị kết nối
❒ 3.6 Các nguyên lý kiểm
soát tắc nghẽn
❒ 3.7 Kiểm soát tắc nghẽn
trong TCP
Các nguyên lý truyền tin cậy
❒ Quan trọng trong các tầng ứng dụng, giao vận, liên kết
❒ top-10 các chủ đề quan trọng của networking!
Tầng giao vận
3-21
❒ Các đặc tính của kênh truyền không tin cậy sẽ quyết định độ
phức tạp của giao thức truyền tin cậy (rdt)
Truyền tin cậy: bắt đầu
send
receive
rdt_send(): được gọi từ tầng
trên.
deliver_data(): được gọi
bởi rdt để chuyển dữ liệu lên
tầng trên
Tầng giao vận
3-22
send
side
receive
side

udt_send(): được gọi bởi
rdt, để truyền gói qua kênh
không tin cậy đến bên nhận
rdt_rcv(): được gọi khi gói đến
đầu bên nhận của kênh
Truyền tin cậy: bắt đầu
Chúng ta sẽ:
❒ Phát triển tăng trưởng các bên gửi, nhận trong
giao thức truyền tin cậy (rdt)
❒ Chỉ xem xét truyền một chiều
❍ Nhưng thông tin điều khiển sẽ được truyền theo cả hai
chi

u!
Tầng giao vận
3-23
chi

u!
❒ Sử dụng máy hữu hạn trạng thái (FSM) để đặc
tả bên gửi, bên nhận
state
1
state
2
event causing state transition
actions taken on state transition
state: when in this
“state” next state
uniquely determined

by next event
event
actions
Rdt1.0: truyền tin cậy trên kênh tin cậy
❒ Kênh truyền ở dưới hoàn toàn tin cậy
❍ Không lỗi bít
❍ Không mất gói
❒ FSMs của bên gửi, bên nhận:
❍ Bên gửi gửi dữ liệu xuống kênh bên dưới

Bên nh

n nh

n d

li

u t

kênh bên d
ướ
i
Tầng giao vận
3-24

Bên nh

n nh


n d

li

u t

kênh bên d
ướ
i
Wait for
call from
above
packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packet,data)
deliver_data(data)
Wait for
call from
below
rdt_rcv(packet)
sender
receiver
Rdt2.0: kênh truyền có lỗi bit
❒ Kênh truyền bên dưới có thể làm đảo một số bít
trong gói
❍ checksum để phát hiện lỗi

Câu h


i
: khắc phục lỗi như thế nào:

acknowledgements (ACKs):
bên nhận thông báo cho bên gửi
r

ng đã nh

n đ
ượ
c gói không phát hi

n l

i
Tầng giao vận
3-25
r

ng đã nh

n đ
ượ
c gói không phát hi

n l

i


negative acknowledgements (NAKs):
bên nhận thông báo
cho bên gửi rằng đã nhận được gói CÓ lỗi
❍ Bên gửi phát lại gói khi nhận được NAK
❒ Các cơ chế trong rdt2.0 (ngoài rdt1.0):
❍ Phát hiện lỗi
❍ Phản hồi từ bên nhận: các thông báo điều khiển (ACK,NAK)
từ bên nhận sang bên gửi

×