Bài giảng Mạng máy tính - Chương 3: Lớp truyền tải nêu lên các nguyên lý của dịch vụ lớp truyền tải (ghép/tách kênh, truyền số liệu tin cậy, điều khiển luồng, kiểm soát nghẽn); giao thức truyền tải UDP.
Chapter LỚP TRUYỀN TẢI Nguyễn Hồng Sơn Chương 3-Lớp truyền tải 3-1 TỔNG QUAN ❒ Các nguyên lý ❒ Giao thức truyền tải UDP dịch vụ lớp truyền tải: ❍ ❍ ❍ ❍ Ghép/tách kênh (multiplexing/demulti plexing) Truyền số liệu tin cậy Điều khiển luồng (flow control) Kiểm soát nghẽn (congestion control) Chương 3-Lớp truyền tải 3-2 NỘI DUNG ❒ Các dịch vụ lớp truyền tải ❒ Ghép/tách kênh (Multiplexing demultiplexing) ❒ Giao thức truyền tải không kết nối UDP ❒ Các nguyên lý truyền số liệu tin cậy Chương 3-Lớp truyền tải 3-3 VAI TRO LỚP TRUYÊN TAI Application (HTTP, SMTP, FTP ) Hô trợ cac ứng dung truyên thông Transport (UDP, TCP ) Cung câp chê truyên tai data cac ứng dung ma không phu thuôc mang Network (IP, ICMP ) Tim đường va chuyên tiêp goi tin cac nut mang Data Link (Ethernet, ADSL ) Physical Truyên data qua môt liên kêt hai điêm nôi trực tiêp Truyên va nhân cac tin hiêu mang thông tin bit đường truyên vât ly Chương 3-Lớp truyền tải 3-4 Giao thức dịch vụ truyền tải ❒ Thực giao tiếp logic u Tr n yề it tả u đầ ối cu n đế u đầ ối cu trình ứng dụng chạy host khác ❒ Các giao thức truyền tải chạy đầu cuối ❍ Bên truyền: chia data thành phân đoạn (segment) chuyển xuống lớp mạng ❍ Bên nhận: tái lập segment thành data chuyển cho lớp ứng dụng ❒ Có nhiều giao thức truyền tải ❍ Internet: TCP UDP application transport network data link physical application transport network data link physical Chương 3-Lớp truyền tải 3-5 Các giao thức lớp truyền tải Internet ❒ Chuyển phát theo thứ tự, tin cậy (TCP) n đế ối cu network data link physicalnetwork u đầ data link physical network data link physical ối cu ❍ u đầ ❍ network data link physical từ thứ tự, không tin cậy (UDP) ❒ Các dịch vụ không hỗ trợ: i tả ❒ Chuyển phát không theo n ❍ network data link physical ề uy ❍ Kiểm soát nghẽn Điều khiển luồng Thiết lập kết nối Tr ❍ application transport network data link physical network data link physical application transport network data link physical Kiểm sốt trễ Đảm bảo băng thơng Chương 3-Lớp truyền tải 3-6 Ly co hai chê đô truyên tai ❒ Cac ứng dung la đa dang: co loai cân đô chinh xac cao, co loai cân nhanh (thời gian thực) ❒ TCP: cho cac ứng dung nhay cam với lôi (data services) vi du email, truyên file ❒ UDP: cho cac ứng dung châp nhân lôi nhay cam với trê VoIP, Video streaming Chương 3-Lớp truyền tải 3-7 NỘI DUNG ❒ Các dịch vụ lớp truyền tải ❒ Ghép/tách kênh (Multiplexing demultiplexing) ❒ Giao thức truyền tải không kết nối UDP ❒ Các nguyên lý truyền số liệu tin cậy Chương 3-Lớp truyền tải 3-8 Ghép/tách kênh Tách host thu: Ghép host tryền: Chuyển data nhận đến socket Tập hợp data từ nhiều socket, đóng gói gắn header = socket application transport network link = process P3 P1 P1 application transport network P2 P4 application transport network link link physical host physical host physical host Chương 3-Lớp truyền tải 3-9 Cách tách kênh ❒ host nhận gói IP Mỗi gói có địa IP nguồn địa IP đích ❍ Mỗi gói IP chứa segment lớp truyền tải ❍ Mỗi segment có số port nguồn đích ❒ host dùng địa IP số port để chuyển segment đến socket ❍ 32 bits source port # dest port # Các field khác Data ứng dụng Định dạng TCP/UDP segment Chương 3-Lớp truyền tải 3-10 Hiệu rdt3.0 ❒ Ví dụ: Gbps, Tp=15 ms , Kích thước gói =8000 bit : d trans ❍ ❍ ❍ L 8000bits = = = microseconds R 10 bps U sender: utilization – tỉ lệ thời gian máy truyền thực làm công việc truyền 008 L / R U = = 0.00027 = sender 30.008 RTT + L / R microsec 1KB pkt 30 msec -> thông lượng 33kB/sec qua liên kết 1Gbps Giao thức mạng giới hạn sử dụng tài nguyên vật lý! Chương 3-Lớp truyền tải 3-40 rdt3.0: hoạt động ARQ không liên tục (Idle ARQ hay stop-and-wait) sender receiver Truyền bit đầu gói, t = Truyền bit sau gói, t=L/R Bit đầu đến Bit sau đến, gửi ACK RTT ACK đến, gửi gói kế, t = RTT + L / R U sender = L/R RTT + L / R = 008 30.008 = 0.00027 microsec Chương 3-Lớp truyền tải 3-41 Các giao thức dùng kỹ thuật ống dẫn Pipelining: máy truyền cho phép nhiều gói gửi liên tiếp khơng cần có báo nhận ACK ❍ ❍ Tăng số Đệm máy truyền máy nhận ❒ ARQ liên tục: Selective repeat Go-back-N Automatic Repeat reQuest Chương 3-Lớp truyền tải 3-42 Kỹ thuật Pipelining Nhằm gia tăng hiệu sử dụng đường truyền (utilization) sender receiver Truyền bit đầu gói, t = Truyền bit sau gói, t=L/R Nhận bit đầu gói Bit sau gói đến, gửi ACK RTT Bit sau gói thứ hai đến, gửi ACK Bit sau gói thứ ba đến, gửi ACK ACK đến, gửi gói kế tiếp, t = RTT + L / R tăng utilization lên ba lần U sender = 3*L/R RTT + L / R = 024 30.008 = 0.0008 microsecon Chương 3-Lớp truyền tải 3-43 Các giao thức theo ARQ liên tục Go-back-N ❒ Máy truyền có đến N gói chưa báo nhận gửi qua ống ❒ Máy thu gửi ACK cho gói mà từ trước nhận tốt ❒ Máy truyền có định thời cho gói chưa báo nhận ❍ Nếu định thời hết hạn, truyền lại tất gói chờ Selective Repeat ❒ Máy truyền có đến N gói chưa báo nhận gửi qua ống ❒ Máy thu gửi ACK cho gói nhận tốt ❒ Máy truyền có định thời cho gói chưa báo nhận ❍ Nếu định thời hết hạn, truyền lại gói tương ứng Chương 3-Lớp truyền tải 3-44 Go-Back-N Máy truyền: ❒ Số k-bit (seq #) header gói ❒ “cửa sổ”có kích thước N, số gói truyền liên tiếp chưa có báo nhận Gói chờ báo nhận Gói có số Đã báo nhận Còn trống chưa dùng Chưa báo nhận Khe trống Cửa sồ truyền ❒ ACK(n): báo nhận cho tất gói đến n Có thể nhận trùng ACK ❒ Bộ định thời cho gói đợi ❒ timeout(n): truyền lại tất gói từ n trở ❍ Chương 3-Lớp truyền tải 3-45 Sơ đồ trạng thái máy truyền GoBack-N rdt_send(data) Λ base=1 nextseqnum=1 if (nextseqnum < base+N) { sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ } else refuse_data(data) Đợi rdt_rcv(rcvpkt) && corrupt(rcvpkt) timeout start_timer udt_send(sndpkt[base]) udt_send(sndpkt[base+1]) … udt_send(sndpkt[nextseqnum-1]) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) base = getacknum(rcvpkt)+1 If (base == nextseqnum) stop_timer else start_timer Chương 3-Lớp truyền tải 3-46 Sơ đồ trạng thái máy nhận Go-Back-N Chỉ tất trường hợp ngoại trừ trường hợp nhận gói có thứ tự mong muốn default udt_send(sndpkt) Λ Đợi expectedseqnum=1 sndpkt = make_pkt(expectedseqnum,ACK,chksum) rdt_rcv(rcvpkt) && notcurrupt(rcvpkt) && hasseqnum(rcvpkt,expectedseqnum) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(expectedseqnum,ACK,chksum) udt_send(sndpkt) expectedseqnum++ Chương 3-Lớp truyền tải 3-47 Hoạt động Go-Back-N Chương 3-Lớp truyền tải 3-48 Selective Repeat ❒ Máy thu báo nhận cho gói mà nhận tốt ❍ Đệm gói cần (chờ thứ tự để giao cho giao thức cao hơn) ❒ Máy truyền gửi lại gói khơng nhận ACK ❍ Bộ định thời cho gói truyền chưa có báo nhận ❒ Cửa sổ truyền ❍ Kích thước N, N số liên tục gán cho gói để truyền ❍ Giới hạn số gói truyền liên tục Chương 3-Lớp truyền tải 3-49 Selective repeat: cửa sổ truyền thu Gói chờ báo nhận Gói có số Đã báo nhận Chưa báo nhận Còn trống chưa dùng Khe trống Cửa sồ truyền (a) Tuần tự truyền với cửa sổ có kích thước N Ngồi trật tự báo nhận Bộ đệm trống chứa thêm Cần chưa thấy Khe trống Cửa sồ nhận Chờ gói có (a) Tuần tự nhận với cửa sổ có kích thước N Chương 3-Lớp truyền tải 3-50 Selective repeat Máy truyền data từ : ❒ Nếu kế sẵn sàng, truyền gói (cửa sổ cịn chỗ) Máy thu Gói n khoảng sổ thu ❒ Gửi ACK(n) timeout(n): ❒ Không trật tự: đệm lại ❒ Truyền lại gói n, khởi động ❒ Đúng trật tự: chuyển giao lại định thời ACK(n) khoảng cửa sổ: ❒ Loại số n khỏi danh sách đợi ❒ Tăng biên cửa sổ lên cho lớp trên, cửa sổ hướng đến số gói Gói n chờ nhận đến ❒ Gửi ACK(n) Chương 3-Lớp truyền tải 3-51 Hoạt động Selective repeat Chương 3-Lớp truyền tải 3-52 Ví dụ ❒ seq #’s: 0, 1, 2, ❒ window size=3 ❒ Quan hệ số kích thước cửa sổ Chương 3-Lớp truyền tải 3-53 HẾT CHƯƠNG Chương 3-Lớp truyền tải 3-54 ... udt_send(sndpkt) start_timer Chương 3 -Lớp truyền tải 3-3 7 rdt3.0 Hoạt động Khơng Mất gói Chương 3 -Lớp truyền tải 3-3 8 rdt3.0 hoạt động (2) Mất ACK Time out sớm Chương 3 -Lớp truyền tải 3-3 9 Hiệu rdt3.0 ❒... make_pkt(expectedseqnum,ACK,chksum) udt_send(sndpkt) expectedseqnum++ Chương 3 -Lớp truyền tải 3-4 7 Hoạt động Go-Back-N Chương 3 -Lớp truyền tải 3-4 8 Selective Repeat ❒ Máy thu báo nhận cho gói mà nhận tốt ❍ Đệm gói... S-IP: B D-IP:C IP:B Chương 3 -Lớp truyền tải 3-1 5 NỘI DUNG ❒ Các dịch vụ lớp truyền tải ❒ Ghép/tách kênh (Multiplexing demultiplexing) ❒ Giao thức truyền tải không kết nối UDP ❒ Các nguyên lý truyền