Chuyển các segment từ máy tính gởi tới máy tính nhận - Các giao thức tầng mạng hoạt động trên cả máy tính gởi/nhận và các thiết bị mạng trung gian ( router). Máy tính gởi: nhận các segment từ tầng giao vận, đóng gói thành datagram - Máy tính nhận: chuyển các segment lên tầng giao vận - Router: kiểm tra và chuyển tiếp các datagram
Trang 1Giớ i thiệ u
Dị ch vụ dồ n kênh và phân kênh Giao thứ c UDP
Giao thứ c TCP
Biên soạ n : Lê Minh
LOGO
Cung cấ p đư ờ ng
truyề n logic giữ a các
tiế n trình chạ y trên
các máy tính khác
nhau
Dùng hai giao thứ c:
TCP và UDP
Giớ i thiệ u
I
Biên soạ n : Lê Minh
Trang 2Các giao thứ c củ a tầ ng giao vậ n chạ y trên các
thiế t bị đầ u cuố i ( máy tính,PDA … )
Phía gở i : chia các thông điệ p (message) nhậ n
từ tầ ng ứ ng dụ ng thành các segment và chuyể n xuố ng tầ ng mạ ng
Phía nhậ n : tái hợ p các segment thành thông
điệ p và gở i lên cho tầ ng ứ ng dụ ng
Giớ i thiệ u
I
Biên soạ n : Lê Minh
LOGO
Tầ ng mạ ng:
truyề n logic giữ a các máy tính
PDU : datagram Datagram có thể bị
mấ t, trùng lắ p và
đúng thứ tự
Tầ ng giao vậ n:
Cung cấ p đư ờ ng truyề n logic giữ a các tiế n trình
PDU: segment Phụ thuộ c vào và mở
rộ ng thêm các dị ch
vụ củ a tầ ng mạ ng
Quan hệ tầ ng giao vậ n vớ i tầ ng mạ ng
1
Trang 3Mở rộ ng việ c truyề n dữ liệ u giữ a các thiế t bị
đầ u cuố i củ a tầ ng mạ ng thành việ c truyề n dữ
liệ u giữ a các tiế n trình
TCP: giao thứ c tin cậ y, gở i nhậ n theo đúng
thứ tự
Kiể m soát tắ t nghẽ n Điề u khiể n lư u lư ợ ng Thiế t lậ p đư ờ ng truyề n
UDP: giao thứ c không tin cậ y, gở i nhậ n không
theo thứ tự
Giao thứ c tầ ng giao vậ n
2
Biên soạ n : Lê Minh
LOGO
Tầ ng mạ ng sử dụ ng cùng mộ t kênh truyề n
giữ a hai máy tính cho việ c liên lạ c vớ i nhau
Mỗ i máy tính có thể chạ y nhiề u ứ ng dụ ng
cùng lúc, mỗ i ứ ng dụ ng đư ợ c gở i xuố ng tầ ng
mạ ng qua mộ t cổ ng bằ ng mộ t tiế n trình.
Dữ liệ u gở i đúng từ tiế n trình gở i đế n tiế n
trình nhậ n?
Dị ch vụ dồ n kênh và phân kênh
II
Transport Layer Network Layer
Transport Layer Network Layer
HTTP FTP Telnet
Biên soạ n : Lê Minh
Trang 4Bên gở i : thự c hiệ n dị ch vụ dồ n kênh
Nhậ n dữ liệ u từ nhiề u tiế n trình ứ ng dụ ng
khác nhau từ tầ ng ứ ng dụ ng Thêm tiêu đề để tạ o thành segment và chuyể n
xuố ng tầ ng mạ ng
Bên nhậ n: thự c hiệ n dị ch vụ phân kênh
Nhậ n dữ liệ u từ tầ ng mạ ng chuyể n lên Căn cứ vào tiêu đề củ a segment để chuyể n dữ
liệ u đế n đúng tiế n trình nhậ n
Dị ch vụ dồ n kênh và phân kênh
II
Biên soạ n : Lê Minh
LOGO
Căn cứ để phân kênh?
Mỗ i tiế n trình đư ợ c gở i qua mộ t cổ ng
Mỗ i gói tin (segment) sẽ
nguồ n/đích Datagram ở tầ ng mạ ng
sẽ có IP nguồ n/đích
Dị ch vụ dồ n kênh và phân kênh
II
Trang 5Dị ch vụ dồ n kênh và phân kênh
II
Biên soạ n : Lê Minh
LOGO
Là giao thứ c đơ n giả n củ a tầ ng giao vậ n
Giao thứ c không hư ớ ng kế t nố i:
Không “bắ t tay” giữ a bên gở i và bên nhậ n Các UDP segment đư ợ c xử lý độ c lậ p
Giao thứ c không tin cậ y:
Các UDP segment có thể bị mấ t mát khi truyề n Không có cơ chế kiể m soát tắ t nghẽ n
Tạ i sao dùng UDP??
Giao thứ c UDP
III
Biên soạ n : Lê Minh
Trang 6Tạ i sao dùng UDP?
Không cầ n thiế t lậ p đư ờ ng truyề n Không cầ n lư u lạ i trạ ng thái ở 2 bên gở i/nhậ n
Trư ờ ng tiêu đề củ a gói tin nhỏ
Không cầ n cơ chế kiể m soát tắ t nghẽ n
Thư ờ ng đư ợ c dùng bở i các ứ ng dụ ng đa
phư ơ ng tiệ n:
Chấ p nhậ n mấ t mát dữ liệ u
Cầ n tố c độ truyề n nhanh
Muố n truyề n tin cậ y vớ i giao thứ c UDP: ứ ng
dụ ng phả i có cơ chế khắ c phụ c lỗ i
Giao thứ c UDP
III
Biên soạ n : Lê Minh
LOGO
Source port: đị a chỉ
cổ ng nguồ n
Dest port: đị a chỉ
cổ ng đích
Checksum: kiể m tra
lỗ i củ a segment
segment (byte) – tính
cả header
Cấ u trúc gói tin UDP
1
source port # dest port #
32 bits
Application data (message)
UDP segment format
Trang 7Mụ c đích: phát hiệ n lỗ i trong các segment đã
gở i
Phía gở i:
Chia nộ i dung củ a segment thành các từ có độ dài 16 bit
Tính checksum bằ ng cách lấ y tổ ng (có nhớ )
củ a các từ 16 bit này, sau đó lấ y bù 1
Đặ t kế t quả tính checksum vào trư ờ ng checksum củ a UDP segment
Giá trị ban đầ u củ a trư ờ ng checksum trong segment là bao nhiêu??
UDP checksum
2
Biên soạ n : Lê Minh
LOGO
Phía nhậ n:
Chia nộ i dung củ a segment nhậ n đư ợ c thành các từ có độ dài 16 bit
Tính tổ ng củ a các từ 16 bit kể cả trư ờ ng
checksum
Nế u kế t quả bằ ng 111111111 11111111 thì dữ liệ u nhậ n đư ợ c không lỗ i
Nế u có bấ t kỳ bit nào trong kế t quả là 0 thì dữ liệ u nhậ n đư ợ c có lỗ i
UDP sẽ làm gì khi có lỗ i xả y ra???
UDP checksum
2
Biên soạ n : Lê Minh
Trang 8Là giao thứ c theo hư ớ ng kế t nố i:
Tiế n trình gở i và nhậ n phả i “bắ t tay” vớ i nhau
để xác đị nh các tham số đả m bả o cho việ c truyề n dữ liệ u
Kế t nố i TCP:
Là kế t nố i điể m – điể m Cung cấ p kênh truyề n song công
Có bộ đệ m ở phía gở i và nhậ n
đặ t trong mỗ i segment Giá trị MMS có thể
thay đổ i đư ợ c.
Giao thứ c TCP
IV
Biên soạ n : Lê Minh
LOGO
Cấ u trúc gói tin TCP
1
source port # dest port #
32 bits
Dữ liệ u từ tầ ng ứ ng dụ ng (độ dài thay đổ i)
sequence number acknowledgement number
Receive window Urg data pnter checksum
F S R P A U
head len not used
Options (độ dài thay đổ i)
URG: urgent data
(thư ờ ng không dùng)
ACK: giá trị ACK
đã nhậ n đư ợ c
PSH: push data now
(thư ờ ng không dùng)
RST, SYN, FIN:
Thiế t lậ p kế t nố i
(thiế t lậ p và
đóng kế t nố i)
Số
lư ợ ng byte bên nhậ n
có thể nhậ n
Đư ợ c xác
đị nh bở i số byte dữ liệ u
đã gở i/nhậ n
Internet checksum (giố ng ở UDP)
Trang 9TCP sẽ đánh số thứ tự cho từ ng byte củ a dòng
dữ liệ u nhậ n đư ợ c từ tầ ng ứ ng dụ ng
Mỗ i segment sẽ mang mộ t số Seq number, là
số thứ tự củ a byte đầ u tiên trong phầ n dữ liệ u
củ a segment đó ( không phả i là số thứ tự củ a
segment)
Ví dụ : A cầ n truyề n cho B file có kích thư ớ c
5000 byte, MMS là 1000 byte, byte đầ u tiên có
số thứ tự là 0
Sequence number và ACK number
2
Biên soạ n : Lê Minh
LOGO
Giá trị ban đầ u củ a sequency number đư ợ c
chọ n ngẫ u nhiên
Việ c đánh số sequency number phụ thuộ c vào
từ ng bên truyề n nhậ n
ACK number: số seq # củ a segment tiế p theo
mong muố n nhậ n đư ợ c từ bên kia
Sequence number và ACK number
2
Biên soạ n : Lê Minh
Trang 10Ví dụ
Seq #: số thứ
tự củ a byte dữ liệ u đầ u tiên trong segment ACK #:
• Số seq# củ a segment tiế p
theo mong
chờ từ phía kia
• Đư ợ c tính
kiể u “tích lũy”
Sequence number và ACK number
2
1000 byte data
Host sends another
500 bytes
host ACKs receipt of data
time
Biên soạ n : Lê Minh
LOGO
Tầ ng mạ ng cung cấ p dị ch vụ IP: dị ch vụ
truyề n không tin cậ y
trên dị ch vụ IP
Đả m bả o truyề n đúng và đủ dữ liệ u (segment)
cho bên nhậ n
Căn cứ vào ACK và timer để thự c hiệ n việ c
truyề n lạ i các segment, 1 segment sẽ đư ợ c
truyề n lạ i khi:
“Không” nhậ n đư ợ c ACK xác nhậ n từ bên
nhậ n
Truyề n dữ liệ u tin cậ y vớ i TCP
3
Trang 11Các hoạ t độ ng củ a bên gở i:
Nhậ n dữ liệ u từ tầ ng ứ ng dụ ng:
• Chia dữ liệ u ra và đóng gói thành các segment căn cứ vào giá trị MMS
sequency number củ a segment
• Tiế n hành gở i segment và khở i độ ng timer cho
từ ng segment
Truyề n dữ liệ u tin cậ y vớ i TCP
3
Biên soạ n : Lê Minh
LOGO
Các hoạ t độ ng củ a bên gở i:
Sau khoả ng thờ i gian chờ (timeout) cho mỗ i segment, nế u không nhậ n đư ợ c ACK xác nhậ n
từ bên nhậ n:
• Gở i lạ i segment đó
• Khở i độ ng lạ i timer cho segment
Nế u nhậ n đư ợ c ACK xác nhậ n từ bên nhậ n
trư ớ c thờ i gian timeout:
• gử i tiế p segment có số sequency tư ơ ng ứ ng vớ i
số ACK vừ a nhậ n đư ợ c
sẽ trả lờ i lạ i bằ ng segment chứ a ACK
Truyề n dữ liệ u tin cậ y vớ i TCP
3
Biên soạ n : Lê Minh
Trang 12Ví dụ :
ACK xác nhậ n từ bên nhậ n bị thấ t lạ c
Truyề n dữ liệ u tin cậ y vớ i TCP
3
Biên soạ n : Lê Minh
LOGO
Ví dụ :
ACK xác nhậ n thứ 2 đế n trư ớ c thờ i gian timeout củ a mình
Truyề n dữ liệ u tin cậ y vớ i TCP
3
Trang 13Ví dụ :
ACK xác nhậ n thứ 2 đế n trư ớ c thờ i gian timeout củ a ACK thứ nhấ t
Truyề n dữ liệ u tin cậ y vớ i TCP
3
Biên soạ n : Lê Minh
LOGO
Mụ c đích: tránh hiệ n tư ợ ng bên gở i làm tràn
bộ đệ m bên nhậ n
Khi khở i tạ o kế t nố i TCP, mỗ i bên sẽ khở i tạ o
cho mình bộ đệ m nhậ n (RevBuffer)
Dữ liệ u nhậ n đư ợ c từ bên gở i sẽ đư ợ c lư u
trong bộ đệ m nhậ n trư ớ c khi đư ợ c xử lý
Điề u khiể n lư u lư ợ ng trong TCP
4
Biên soạ n : Lê Minh
Trang 14Bên nhậ n báo cho bên gở i biế t độ lớ n củ a vùng
đệ m còn rỗ i ( RcvWindow) củ a mình ??
Khi bộ đệ m bên nhậ n đầ y (RcvWindow = 0)??
Điề u khiể n lư u lư ợ ng trong TCP
4
source port # dest port #
32 bits
Dữ liệ u từ tầ ng ứ ng dụ ng (độ dài thay đổ i)
sequence number acknowledgement number
Receive window Urg data pnter checksum
F S R P A U
head len not used
Options (độ dài thay đổ i)
Biên soạ n : Lê Minh
LOGO
Thiế t lậ p kế t nố i : bắ t
tay 3 bư ớ c giữ a client và
server:
B1: client gở i 1 segment SYN tớ i server ( không chứ a data, chứ a số Seq#
khở i đầ u) B2: server trả lờ i bằ ng 1 segment SYN-ACK ( khở i
server) B3: client trả lờ i bằ ng 1 segment SYN-ACK
Quả n lý kế t nố i TCP
5
Trang 15Đóng kế t nố i:
B1: client gở i segment FIN tớ i server
B2: server gở i segment ACK xác nhậ n, gở i lạ i 1 segment FIN
B3: client gở i lạ i 1 segment ACK xác nhậ n
segment FIN B4: server nhậ n đư ợ c segment ACK, đóng kế t
nố i
Quả n lý kế t nố i TCP
3
closing
Biên soạ n : Lê Minh