Tầng truyền tải sv Tầng mạng tầng mạng: kênh liên lạc Ví dụ tương đồng – chủ luận lý giữa các máy gia đình: tầng truyền tải: kênh liên 12 đứa trẻ gửi thư cho 12 lạc luận lý giữa các tiến đứa trình tiến trình = đứa trẻ phụ thuộc vào, củng cố các thông điệp ứd = thư dịch vụ tầng mạng trong phong bì máy tính = nhà giao thức truyền tải = Ann và Bill giao thức mạng = dịch vụ bưu điện Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 1 Chương 3: Tầng truyền tải © 2011 6
Trang 1Trường Đại Học Bách Khoa Tp.HCM Khoa Khoa Học và Kỹ Thuật Máy Tính
ThS NGUYỄN CAO ĐẠT E-mail:dat@cse.hcmut.edu.vn
Bài giảng Mạng máy tính
Trang 2Bài giảng 6: Tầng truyền tải
Tham khảo:
Chương 3: “Computer Networking – A top-down approach”
Trang 3Chương 3: Tầng truyền tải
Mục tiêu:
tắc đằng sau các dịch
vụ của tầng truyền tải:
UDP: truyền tải không kết nối
TCP: truyền tải hương kết nối
Kiểm soát tắc nghẽn trong TCP
Trang 4 cấu trúc đoạn tin
truyền tải dự liệu tin cậy
kiểm soát lưu lượng
Trang 5Giao thức và dịch vụ truyền tải
cung cấp một kênh liên lạc luận lý
giữa các tiến trình ứng dụng trên
những máy khác nhau
các giao thức truyền tải chạy trên các
máy đầu cuối
phía gửi: chia thông điệp của ứng
dụng thành những đoạn (segment), đẩy xuống tầng mạng
phía nhận: ráp lại các đoạn thành
thông điệp hoàn chỉnh, đẩy lên tầng ứ/d
các giao thức truyền tải
Internet: TCP và UDP
ứng dụng
truyền tải
mạng liên kết dl vật lý
ứng dụng
truyền tải
mạng liên kết dl vật lý
Trang 6Tầng truyền tải s/v Tầng mạng
tầng mạng: kênh liên lạc
luận lý giữa các máy
tầng truyền tải: kênh liên
lạc luận lý giữa các tiến
trình
phụ thuộc vào, củng cố các
dịch vụ tầng mạng
Ví dụ tương đồng – chủ gia đình:
12 đứa trẻ gửi thư cho 12 đứa
Trang 7Các giao thức tầng truyền tải trong Internet
mạng liên kết dl vật lý
mạng liên kết dl vật lý
mạng liên kết dl vật lý
mạng liên kết dl vật lý
mạng liên kết dl vật lý
mạng liên kết dl vật lý
ứng dụng
truyền tải
mạng liên kết dl vật lý
Trang 8 cấu trúc đoạn tin
truyền tải dự liệu tin cậy
kiểm soát lưu lượng
Trang 9ứng dụng truyền tải mạng
liên kết vật lý
Dồn ở máy gửi:
Trang 10Phương pháp tách làm việc ntn?
máy nhận gói tin IP
mỗi gói tin có địa chỉ IP nguồn, địa chỉ IP đích
mỗi gói tin mang một đoạn
dữ liệu tầng truyền tải
mỗi đoạn có địa chỉ và cổng của máy nhận (đích)
định dạng đoạn dữ liệu TCP/UDP
Trang 11Sự tách không kết nối
DatagramSocket mySocket1 = new
nguồn khác nhau và/hoặc
số nguồn khác nhau được chuyển tới cùng một
socket
Trang 12chủ IP: C
SP: 6428 DP: 9157
SP: 9157 DP: 6428
SP: 6428 DP: 5775
SP: 5775 DP: 6428
SP cung cấp “địa chỉ phản hồi”
Trang 13trên để định hướng đoạn
dữ liệu tới đúng Socket phù
socket khác nhau cho mỗi khách kết nối tới
HTTP không ổn định sẽ có một socket riêng biệt cho mỗi người dùng
Trang 14Sự tách hướng kết nối (tt)
Khách IP:B
P1
Khách
IP: A
P1 P2
P4
Chủ IP: C
SP: 9157 DP: 80
SP: 9157 DP: 80
D-IP:C
S-IP: A D-IP:C
S-IP: B
SP: 5775 DP: 80 D-IP:C S-IP: B
Trang 15Sự tách hướng kết nối: Máy chủ Web chia luồng
khách IP:B
P1
khách
IP: A
P1 P2
chủ IP: C
SP: 9157 DP: 80
SP: 9157 DP: 80
D-IP:C
S-IP: A D-IP:C
S-IP: B
SP: 5775 DP: 80 D-IP:C S-IP: B
Trang 16 cấu trúc đoạn tin
truyền tải dự liệu tin cậy
kiểm soát lưu lượng
Trang 17UDP: User Datagram Protocol [RFC 768]
giao thức truyền tải Internet
protocol “không phức tạp”, “giản
không có bắt tay giữa người
gửi và người nhận UDP
mỗi đoạn UDP được xử lý độc
lập với những đoạn khác
Tại sao cần có UDP?
không thiết lập kết nối (giảm
độ trễ)
đơn giản: không có các trạng thái kết nối ở người gửi và người nhận
đoạn mào đầu của đoạn nhỏ
không có kiểm soát tắc nghẽn: UDP có thể truyền đi với tốc độ tối đa
Trang 18 truyền tải tin cậy qua
UDP: bổ sung tính tin cậy
định dạng đoạn UDP
độ dài, của đoạn UDP, bao gồm cả mào đầu
Trang 19Tổng kiểm tra UDP (checksum)
Người gửi:
xem đoạn nội dung dữ liệu
như là một chuỗi gồm những số nguyên 16-bit
tổng kiểm tra (TKT): cộng
(tổng bù 1) của nội dung của đoạn
người gửi đặt giá trị tổng
kiểm tra vào trường “tổng kiểm tra- checksum” UDP
Ko – phát hiện ra lỗi
Có – ko phát hiện ra lỗi
nhưng vẫn có thể có lỗi
? tìm hiểu sau Mục đích: phát hiện “lỗi” (vd: nhảy bit) trong đoạn dữ
liệu được truyền tải
Trang 21Các giao thức tạo đường ống
Tạo đường ống: người gửi cho phép gửi liên tục nhiều
gói tin mà không nhất thiết phải đợi cho đến khi gói tin đó được xác nhận
dải của các số thứ tự phải tăng lên
nhớ tạm tại người gửi và người nhận
Hai mô hình chung của giao thức tạo đường ống: quay-lại-N,
lặp-lựa-chọn
Trang 22Tạo đường ống: tăng hiệu suất s/d
bít đầu tiên được truyền, t = 0
3 * L / R RTT + L / R =
Tăng hiệu suất lên gấp 3!
Trang 23Các giao thức tạo đường ống
Quay-lại-N: bức tranh lớn
gói tin chưa có ACK trong
gói tin chưa có ACK trong đường ống
riêng lẻ
t/g cho mỗi gói tin chưa ACK
Khi bộ đếm hết giờ thì gửi lại chỉ những gói chưa ACK
Trang 24Lặp lựa chọn: bức tranh lớn
đường ống
tin chưa ACK
Khi bộ đếm t/g hết giờ, chỉ gửi lại những gói tin chưa ACK
Trang 25Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN
Quay-lại-N (Go back N)
Người gửi:
số thứ tự k-bit trong mào đầu của gói tin
cho phép “cửa sổ” lớn tới N gói tin liên tục chưa ack
ACK(n): ACK tất cả gói tin trước n, kể cả gói tin thứ n - “ACK cộng dồn”
có thể nhận được ACK trùng lặp
bộ đếm t/g cho mỗi gói tin đang trong quá trình gửi (chưa ack)
hết-giờ(n): gửi lại gói tin thứ n và tất cả gói tin có STT lớn hơn trong
cửa sổ
Trang 26GBN in
action
Trang 27 người gửi đếm thời gian cho mỗi gói tin chưa được ACK
N STT liên tục
hạn chế STT của các gói đã gửi mà chưa được ACK
Trang 28Lặp lựa chọn: cửa sổ của n/gửi và n/nhận
Trang 29Lặp lựa chọn
dữ liệu từ trên:
nếu STT tiếp theo nằm trong
cửa sổ, gửi gói tin
nếu n là gói chưa ACK nhỏ
nhât, tăng cửa sổ lên STT
chưa ACK tiếp theo
n thuộc [rcvbase-N,rcvbase-1]
ACK(n) ngoài ra:
bỏ qua
n/nhận
Trang 30Ví dụ: Lặp lựa chọn trong thực tế
Trang 32 cấu trúc đoạn tin
truyền tải dự liệu tin cậy
kiểm soát lưu lượng
Trang 33khiển) khởi tạo trạng thái của ng/gửi, ng/nhận trước khi trao đổi dữ liệu
lưu lượng đc kiểm tra:
ko “biên giới giữa th/điệp”
được tạo đường ống:
kiểm tra tắc nghẽn TCP và lưu lượng q/đ kích thước cửa sổ
bộ nhớ tạm gửi & nhận
socket
door
TCP send buffer
TCP receive buffer
socket door
segment
application writes data
application reads data
Trang 34Cấu trúc đoạn TCP
cổng nguồn cổng đích
32 bits
dữ liệu tầng ứng dụng (độ dài thay đổi)
số thứ tự
số xác nhận
cửa sổ nhận Urg data pnter tổng kiểm tra
phần phụ (độ dài thay đổi)
URG: dữ liệu khẩn cấp
(hầu như ko sử dụng)
ACK: ACK #
valid PSH: đẩy dữ liệu
(hầu như ko sử dụng)
RST, SYN, FIN:
khởi tạo K/N (thiết lập, kết thúc)
số byte ng/nhận sẵn sàng nhận
tính theo byte dữ liệu (không theo số đoạn!)
tổng kiểm tra
Internet (như trong UDP)
Trang 35máy B xác nhận việc nhận „C‟, gửi lại „C‟
t/gian
kịch bản telnet đơn giản
Trang 36Thời gian xoay vòng và thời gian chờ TCP
Hỏi: thiết lập giá trị thời gian
chờ TCP như thế nào?
dài hơn RTT
quá ngắn: thời gian chờ non
không cần thiết phải truyền
lại
quá dài: phản ứng chậm cho
việc mất đoạn
khi truyền gói tin đi và nhận được ACK
bỏ qua truyền tải lại
SampleRTT sẽ thay đổi, muốn
RTT đo được “mướt hơn”
lấy giá trị trung bình của những lần đo gần nhất, không chỉ giá trị hiện thời
của SampleRTT
Trang 37Thời gian xoay vòng và thời gian chờ
EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT
trung bình động có trọng số hàm mũ
ảnh hưởng của giá trị cũ giảm nhanh theo hàm mũ
giá trị thông dụng: = 0.125
Trang 39Thời gian xoay vòng và thời gian chờ
Thiết lập t/g chờ
EstimtedRTT + “biên an toàn”
đầu tiên đo độ biến thiên của EstimatedRTT so với SampleRTT :
TimeoutInterval = EstimatedRTT + 4*DevRTT
DevRTT = (1-)*DevRTT + *|SampleRTT-EstimatedRTT|
(thông thường, = 0.25)
sau đó thiết lập khoảng t/g chờ: