Professional Documents
Culture Documents
NỘI DUNG
❒ Tổng quan Giao thức truyền tải hướng kết nối, TCP
❍ Cấu trúc segment
❒ Truyền tải số liệu tin cậy
❒ Điều khiển luồng (flow control)
❒ Quản lý liên kết
❒ Kiểm soát nghẽn TCP
1
Tổng quan TCP
❒ RFCs: 793, 1122, 1323, 2018, ❒ Song công hoàn toàn:
2581
❍ Luồng số liệu chạy trên cả
❒ point-to-point: hai chiều của cùng kết nối
❍ Một truyền và một thu ❒ Kết nối có hướng
❒ Tin cậy, giữ đúng thứ tự (connection-oriented):
❒ Cơ chế ống dẫn (pipeline): ❍ Bắt tay thông qua tra đổi
thông điệp điều khiển
❍ Kiểm soát nghẽn và điều
khiển luồng, cài đặt cửa sổ ❒ Điều khiển luồng:
❒ Sử dụng bộ đệm truyền và ❍ Máy phát không làm tràn
nhận bộ đệm máy thu
Ứng dụng Ưng dụng
socket ghi data đọc data
socket
door door
TCP TCP
bộ đệm truyền bộ đệm thu
segment
2
Chỉ số tuần tự và báo nhận ACK
TCP xem toàn bộ khối số liệu là một dòng các byte liên tục
Chỉ số tuần tự trong mỗi segment là thứ tự trong dòng byte của
byte đầu tiên trong phần data của segment
Chỉ số báo nhận ACK trong segment là chỉ số tuần tự của byte kế
tiếp trong dòng byte mà máy gửi segment này đang chờ.
Nhận 'C' và
phản hồi
Seq=4
với data 3, A C
K =80
trống
3
NỘI DUNG
❒ Tổng quan Giao thức truyền tải hướng kết nối, TCP
❍ Cấu trúc segment
❒ Truyền tải số liệu tin cậy
❒ Điều khiển luồng (flow control)
❒ Quản lý liên kết
❒ Kiểm soát nghẽn TCP
4
Các sự kiện phía TCP sender
Nhận data từ ứng dụng: timeout:
❒ Tạo segment với chỉ số ❒ Truyền lại segment gây
tuần tự kế tiếp (seq #) ra timeout
❒ Khởi động timer nếu ❒ Khởi động lại timer
chưa chạy (như cho Nhận ACK:
segment cũ nhất chưa ❒ Nếu ack cho các
có báo nhận) segment cũ chưa có
❒ Khoảng thời gian báo nhận
timeout được gán: ❍ Cập nhật
TimeOutInterval ❍ Khởi động timer nếu còn
segment đang đợi
Seq=9 Seq=9
2, 8 b 2, 8 b
ytes d ytes d
ata ata
Seq=92 timeout
Seq=
100,
20 by
tes d
timeout
ata
= 100
ACK 0
10
X K=
A C ACK=
120
loss
Seq=9 Seq=9
2, 8 b 2, 8 b
ytes d Sendbase ytes d
ata
ata
= 100
Seq=92 timeout
SendBase
= 120 20
K= 1
=100 AC
ACK
SendBase
= 100 SendBase
= 120
time Timeout sớm
time
Mất ACK
Chương 4-Giao thức TCP 3-10
5
Kịch bản truyền lại (2)
Host A Host B
Seq=9
2, 8 b
ytes d
ata
=100
timeout
Seq=1 ACK
00, 20
bytes
data
X
loss
SendBase =120
ACK
= 120
time
ACK tích lũy đại diện
Segment đến đúng thứ tự với chỉ Gửi ngay một ACK đại diện báo
số mong đợi. Một segment khác nhận cho cả hai một lúc
đang được xúc tiến báo nhận
Segment đến không đúng thứ tự Gửi ngay ACK trùng chỉ số để chỉ ra
với chỉ số lớn hơn chỉ số mong byte đang đợi kế tiếp
đợi. Phát hiện mất segment
Segment đến bổ sung vào một Gửi ngay ACK,báo chờ segment với
phần hay toàn bộ số bị mất byte bắt đầu tại chỗ thiếu đầu tiên
6
Truyền lại nhanh (Fast Retransmit)
❒ Khoảng time out tương ❒ Nếu máy phát nhận 3
đối dài: ACK trùng cho cùng
❍ Chậm truyền lại segment data, xem như segmnet
bị mất kế tiếp đã bị mất:
❒ Phát hiện mất segment ❍ Truyền lại nhanh : truyền
qua ACK trùng. lại trước khi timer hết
hạn
❍ Sender gửi nhiều
segment liên tiếp
❍ Nếu segment bị mất sẽ
có nhiều ACK trùng.
Host A Host B
X
timeout
Truyề
n lại lầ
n2
time
Truyền lại sau khi nhận ba ACK trùng Chương 4-Giao thức TCP 3-14
7
Giải thuật truyền lại nhanh:
NỘI DUNG
❒ Tổng quan Giao thức truyền tải hướng kết nối, TCP
❍ Cấu trúc segment
❒ Truyền tải số liệu tin cậy
❒ Điều khiển luồng (flow control)
❒ Quản lý liên kết
❒ Kiểm soát nghẽn TCP
8
Điều khiển luồng (Flow Control
❒ Máy thu có bộ đệm ❒ Điều chỉnh tốc độ phù
thu: hợp: tốc độ truyền và
tốc độ lấy data
Data
từ Data trong Quá trình
IP Vùng trống bộ đệm ứng dụng
9
NỘI DUNG
❒ Tổng quan Giao thức truyền tải hướng kết nối, TCP
❍ Cấu trúc segment
❒ Truyền tải số liệu tin cậy
❒ Điều khiển luồng (flow control)
❒ Quản lý liên kết
❒ Kiểm soát nghẽn TCP
10
Bắt tay ba bước
close
Step 1: client gửi TCP FIN FIN
đến server
ACK
closed
11
Quản lý liên kết (3)
timed wait
ACK
closed
closed
Chu kỳ của
TCP server
12
NỘI DUNG
❒ Tổng quan Giao thức truyền tải hướng kết nối, TCP
❍ Cấu trúc segment
❒ Truyền tải số liệu tin cậy
❒ Điều khiển luồng (flow control)
❒ Quản lý liên kết
❒ Kiểm soát nghẽn TCP
24 Kbytes
8 Kbytes
time
time
13
Chi tiết kiểm soát nghẽn trong TCP
❒ Máy phát giới hạn truyền theo: Nhận thức nghẽn:
LastByteSent-LastByteAcked ❒ Sự kiện mất= timeout
≤ CongWin hay 3 ack trùng
❒ Sơ bộ, ❒ Máy phát giảm tốc
CongWin (CongWin) sau một sự
rate = Bytes/sec
RTT kiện mất
❒ CongWin là động,thay đổi theo Ba cơ chế:
tình trạng nghẽn của mạng (hàm ❍ AIMD: additive
số của nghẽn) increase-multiplicative
decrease
❍ slow start
❍ Đàm phán sau các sự
kiện timeout
Chương 4-Giao thức TCP 3-27
14
TCP Slow Start (2)
❒ Khi kết nối bắt đầu gia Host A Host B
tăng tốc độ nhanh
1 segmen
chóng theo hàm mũ cho t
RTT
đến khi phát hiện sự
kiện mất data đầu tiên: 2 segmen
ts
15
Hiệu chỉnh (2)
Câu hỏi đặt ra: khi
nào nên chuyển từ
tăng theo hàm mũ
sang tăng theo
tuyến tính?
Khi CongWin đạt 1/2
giá trị của nó trước
khi có timeout xảy
ra
Vì vậy thực hiện:
❒ Thay đổi ngưỡng
(Threshold)
❒ Khi có sự kiện nghẽn, gán
Threshold = CongWin/2
(giá trị cửa sổ nghẽn hiện
hành ngay trước khi có
timeout) Chương 4-Giao thức TCP 3-31
16
Chương 4-Giao thức TCP 3-33
HẾT CHƯƠNG 4
17