Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

Chương 3

Tầng giao vận

Computer
Networking: A Top
Down Approach
7th edition
Người dịch: Nguyễn Thanh Thủy Jim Kurose, Keith Ross
Tài liệu được dịch cho mục đích giảng dạy (được sự đồng ý của tác giả).
Addison-Wesley
March 2017
All material copyright 1996-2012
J.F Kurose and K.W. Ross, All Rights Reserved

Tầng giao vận 3-1

Chương 3: Tầng giao vận


Mục đích:
 Hiểu được các  Nghiên cứu về các giao
nguyên lý đằng sau thức tầng giao vận trong
các dịch vụ tầng giao mạng Internet:
vận:  UDP: vận chuyển không kết
 Ghép kênh/phân kênh nối
(multiplexing,  TCP: Vận chuyển tin cậy,
demultiplexing) hướng kết nối
 Truyền dữ liệu tin cậy  Điều khiển tắc nghẽn trong
 Điều khiển luồng TCP
 Điều khiển tắc nghẽn

Tầng giao vận 3-2

1
Chương 3: Nội dung
3.1 Các dịch vụ tầng 3.5 Vận chuyển hướng
giao vận kết nối: TCP
3.2 Ghép kênh và  Cấu trúc đoạn dữ liệu
phân kênh (segment)
 Truyền dữ liệu tin cậy
3.3 Vận chuyển không
 Điều khiển luồng
kết nối: UDP
 Quản lý kết nối
3.4 Các nguyên lý
3.6 Các nguyên lý điều
truyền dữ liệu tin
khiển tắc nghẽn
cậy
3.7 Điều khiển tắc nghẽn
TCP
Tầng giao vận 3-3

Các dịch vụ và giao thức tầng giao vận


application
transport
 Cung cấp truyền thông logic network
data link
giữa các tiến trình ứng dụng physical
chạy trên các host khác nhau.
 Giao thức tầng giao vận chạy
trên các hệ thống đầu cuối
 Phía gửi: cắt các thông điệp
ứng dụng thành các đoạn
(segment), chuyển xuống tầng
mạng
 Phía nhận: Tập hợp lại các
application
đoạn thành các thông điệp, transport
network
chuyển lên tầng ứng dụng. data link
physical
 Có nhiều hơn một giao thức
tầng giao vận dành cho các
ứng dụng
 Internet: TCP và UDP
Tầng giao vận 3-4

2
Tầng giao vận và tầng mạng
 Tầng mạng: truyền Tình huống tương tự:
thông logic giữa các 12 em bé nhà Ann gửi thư đến
host 12 em bé nhà Bill:
 Các host = Các ngôi nhà
 Tầng giao vận:
 Các tiến trình = các em bé
truyền thông logic  Thông điệp ứng dụng = Nội
giữa các tiến trình dung bức thư (trong bì thư)
 Dựa vào và nâng cao  Giao thức giao vận = Quy ước

các dịch vụ tầng giữa các em bé nhà Ann và


nhà Bill
mạng
 Giao thức tầng mạng = Dịch
vụ bưu điện

Tầng giao vận 3-5

Các giao thức tầng giao vận trên Internet


application
 Truyền tin cậy, theo thứ transport
network
data link
tự: TCP physical
network
network data link
 Điều khiển tắc nghẽn data link physical
physical
 Điều khiển luồng network
data link
physical
 Thiết lập kết nối
network
 Truyền không tin cậy, data link
physical

không theo thứ tự: UDP network


data link
physical
 Mở rộng của giao thức IP network
data link application
physical transport
 Không có các dịch vụ: network
data link network
physical data link
 Đảm bảo trễ physical

 Đảm bảo băng thông

Tầng giao vận 3-6

3
Chương 3: Nội dung
3.1 Các dịch vụ tầng 3.5 Vận chuyển hướng
giao vận kết nối: TCP
3.2 Ghép kênh và  Cấu trúc đoạn dữ liệu
phân kênh (segment)
 Truyền dữ liệu tin cậy
3.3 Vận chuyển không
 Điều khiển luồng
kết nối: UDP
 Quản lý kết nối
3.4 Các nguyên lý
3.6 Các nguyên lý điều
truyền dữ liệu tin
khiển tắc nghẽn
cậy
3.7 Điều khiển tắc nghẽn
TCP
Tầng giao vận 3-7

Ghép kênh/Phân kênh


Ghép kênh tại phía gửi:
Phân kênh tại phía nhận:
Xử lý dữ liệu từ nhiều socket,
Sử dụng thông tin trong phần tiêu
thêm phần tiêu đề tầng giao vận
đề để phân phối các đoạn dữ liệu
(sau này dùng cho việc phân kênh)
(segment) đã nhận được đến
đúng socket
application

application P1 P2 application socket


P3 transport P4
Tiến
transport network transport trình
network link network
link physical link
physical physical

Tầng giao vận 3-8

4
Việc phân kênh được thực hiện như thế nào?

 Host nhận các IP datagram 32 bits


 Mỗi datagram có địa chỉ nguồn Số cổng nguồn Số cổng đích
IP và địa chỉ IP đích
 Mỗi datagram mang một đoạn Các trường khác trong
dữ liệu của tầng giao vận tiêu đề
 Mỗi segment có số hiệu cổng
nguồn và số hiệu cổng đích
Dữ liệu ứng dụng
 Host sử dụng địa chỉ IP & số (payload)
hiệu cổng để định hướng
đoạn đến socket phù hợp
Định dạng TCP/UDP segment

Tầng giao vận 3-9

Phân kênh hướng không kết nối

 Tạo các socket có số hiệu cổng  Khi tạo datagram để gửi


cục bộ của host: vào trong UDP socket, cần
DatagramSocket mySocket1 phải xác định:
= new DatagramSocket(12534);
 Địa chỉ IP đích
 Số hiệu cổng đích

 Khi host nhận UDP Các IP datagram với cùng


segment: số hiệu cổng đích, nhưng
 Kiểm tra số hiệu cổng đích có địa chỉ IP nguồn và/hoặc
trong segment các số hiệu cổng nguồn
 Định hướng UDP segment khác nhau sẽ được định
tới socket tương ứng với số hướng tới cùng socket tại
hiệu cổng đó đích
Tầng giao vận 3-10

5
Ví dụ phân kênh hướng không kết nối
DatagramSocket
DatagramSocket serverSocket = new
DatagramSocket DatagramSocket
mySocket2 = new mySocket1 = new
DatagramSocket (6428); DatagramSocket
(9157); application (5775);
application application
P1
P3 P4
transport
transport transport
network
network link network
link physical link
physical physical

Cổng nguồn: 6428 Cổng nguồn: ?


Cổng đích: 9157 Cổng đích: ?

Cổng nguồn: 9157 Cổng nguồn: ?


Cổng đích: 6428 Cổng đích: ?

Tầng giao vận 3-11

Phân kênh hướng kết nối


 TCP socket được xác  Host server có thể hỗ trợ
định bởi bộ-4 giá trị: nhiều TCP socket đồng
 Địa chỉ IP nguồn thời:
 Số hiệu cổng nguồn  Mỗi socket được xác định
 Địa chỉ IP đích bởi bộ-4 giá trị của nó
 Số hiệu cổng đích  Web server có các socket
 Phân kênh: Phía nhận khác nhau cho mỗi kết nối
sử dụng cả bốn giá trị từ client
này để định hướng  Kết nối HTTP không bền
segment tới socket phù vững sẽ có các socket khác
nhau cho mỗi yêu cầu.
hợp

Tầng giao vận 3-12

6
Ví dụ phân kênh hướng kết nối

application
application P4 P5 P6 application
P3 P2 P3
transport
transport transport
network
network link network
link physical link
physical physical
Server: địa
chỉ IP B

IP, cổng nguồn: B,80 Host: địa


Host: địa chỉ IP C
chỉ IP A IP, port đích: A,9157 IP, cổng nguồn: C,5775
IP, cổng đích: B,80
IP, cổng nguồn: A,9157
IP, cổng đích: B,80
IP, cổng nguồn: C,9157
IP, cổng đích: B,80
Cả ba segment, đều được hướng tới địa chỉ IP: B,
cổng đích: 80, nhưng được phân kênh tới các socket khác nhau Tầng giao vận 3-13

Ví dụ phân kênh hướng kết nối


Server phân luồng
application
application application
P4
P3 P2 P3
transport
transport transport
network
network link network
link physical link
physical physical
Server: địa
chỉ IP B

IP,cổng nguồn: B,80 Host: địa


Host: địa chỉ IP C
chỉ IP A IP,cổng đích: A,9157 IP,cổng nguồn: C,5775
IP,cổng đích: B,80
IP,cổng nguồn: A,9157
IP, cổng đích: B,80
IP,cổng nguồn: C,9157
IP,cổng đích: B,80

Tầng giao vận 3-14

7
Chương 3: Nội dung
3.1 Các dịch vụ tầng 3.5 Vận chuyển hướng
giao vận kết nối: TCP
3.2 Ghép kênh và  Cấu trúc đoạn dữ liệu
phân kênh (segment)
 Truyền dữ liệu tin cậy
3.3 Vận chuyển không
 Điều khiển luồng
kết nối: UDP
 Quản lý kết nối
3.4 Các nguyên lý
3.6 Các nguyên lý điều
truyền dữ liệu tin
khiển tắc nghẽn
cậy
3.7 Điều khiển tắc nghẽn
TCP
Tầng giao vận 3-15

UDP: User Datagram Protocol [RFC 768]

 Là giao thức tầng giao vận  UDP được dùng trong:


của mạng Internet  Các ứng dụng streaming
 Dịch vụ “best effort”, các multimedia (chịu mất mát
UDP segment có thể: dữ liệu, bị ảnh hưởng bởi
 Bị mất tốc độ)
 Được vận chuyển không  DNS
đúng thứ tự tới ứng dụng  SNMP
 Hướng không kết nối:  Truyền tin cậy trên UDP:
 Không có giai đoạn bắt  Bổ sung đặc tính tin cậy
tay giữa bên gửi và bên vào tầng ứng dụng
nhận của UDP
 Khôi phục lỗi cụ thể của
 Mỗi UDP segment được ứng dụng
xử lý độc lập với các
segment khác

Tầng giao vận 3-16

8
UDP: Tiêu đề segment
Chiều dài, được tính theo
32 bits số byte của UDP segment,
source port # dest port # bao gồm cả phần tiêu đề

length checksum
Tại sao lại dùng UDP?
 Không cần thiết lập kết nối
Dữ liệu ứng dụng (vì việc này có thể làm tăng
(payload) độ trễ)
 Đơn giản: không lưu trạng
thái kết nối tại bên gửi, bên
nhận
 Kích thước tiêu đề nhỏ
Định dạng UDP segment
 Không điều khiển tắc nghẽn:
UDP có thể gửi nhanh theo
mong muốn
Tầng giao vận 3-17

UDP checksum
Mục tiêu: Phát hiện các “lỗi” (ví dụ: các bit bị bật lên)
trong các segment được truyền đến

Bên gửi: Bên nhận:


 Xử lý nội dung các đoạn,  Tính toán checksum của
bao gồm cả các trường segment đã nhận được
trong tiêu đề, như là chuỗi  Kiểm tra xem checksum đã
các số nguyên 16-bit tính có bằng giá trị của trường
 checksum: bổ sung thêm checksum hay không:
(tổng bù của 1) vào nội  KHÔNG – phát hiện có lỗi
dung segment  CÓ – không phát hiện lỗi.
 Bên gửi đặt giá trị Nhưng vẫn có thể có lỗi mà
checksum vào trong trường chưa được phát hiện? Xem
checksum của UDP thêm phần sau ….
Tầng giao vận 3-18

9
Ví dụ: checksum trên Internet

Ví dụ: Cộng hai số nguyên 16-bit

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

Bit dư 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

Tổng 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

Chú ý: Khi cộng các số nguyên, một bit nhớ ở phía cao
nhất cần phải được thêm vào kết quả

Tầng giao vận 3-19

10

You might also like