Nhập môn mạng máy tính: Chương 5 Ninh Xuân Hương Bài giảng Nhập môn mạng máy tính Chương 5: Lớp Transport (Lớp giao vận) cung cấp cho người học 3 nội dung cơ bản về lớp Transport bao gồm: Các vấn đề thiết kế lớp transport, lớp transport trên mạng TCPIP, giới thiệu giao diện lập trình mạng socket. Mời các bạn cùng tham khảo nội dung chi tiết.
NHẬP MÔN MẠNG MÁY TÍNH Chương LỚP TRANSPORT (LỚP GIAO VẬN) Khoa CNTT - Trường Đai Học Mở TPHCM GV: Ninh Xuân Hương Nội dung chương I. II. III. Các vấn đề thiết kế lớp transport Lớp transport mạng TCP/IP Giới thiệu giao diện lập trình mạng socket I. Các vấn đề thiết kế lớp transport 1. 2. Nhiệm vụ lớp transport Dịch vụ lớp transport 1. Nhiệm vụ lớp transport cấp dịch vụ gởi nhận liệu tin cậy chương trình hai máy Thực hiện: Cung • Chia ghép liệu từ lớp application • Kiểm soát lỗi, kiểm soát lưu lượng Lớp transport có vai trò quan trọng kiến trúc mạng nhiều lớp 2. Dịch vụ lớp transport a. b. Dịch vụ lớp transport Các thao tác sở a. Dịch vụ lớp transport Quan hệ lớp Các thuật ngữ entity: thực thể lớp transport TPDU (Transport Protocol Data Unit): đơn vị liệu giao thức lớp transport Transport address: địa lớp transport Transport • Transport Service Access Point • Port (mạng TCP/IP) Network address: địa lớp network • Địa IP (mạng TCP/IP) Các dạng dịch vụ kết nối (connection-oriented service) Không kết nối (connectionless service) Có Đơn vị liệu giao thức lớp transport TPDU packet frame b. Các thao tác sở (Transport service primitives) Các thao tác sở dịch vụ đơn giản Ví dụ: Mô hình client-server dạng có kết nối 10 e. Thiết lập kết nối TCP Thiết lập kết nối Host (Client) Host (Server) (Three-way handshake) Host Host 2: seq=x, ack=0, SYN=1, ACK=0 Host Host 1: seq=y, ack=x+1, SYN=1, ACK=1 Host Host 2: seq=x+1, ack=y+1, SYN=0, ACK=1 25 Sơ đồ thiết lập kết nối TCP 26 Hủy bỏ kết nối TCP Gởi TCP segment với FIN=1 Cần FIN segment ACK segment cho bên truyền thông 27 Ví dụ hủy kết nối TCP 28 2. Giao thức UDP thức dạng không kết nối Không có kiểm soát lỗi cần thực lớp application Đơn vị liệu: UDP datagram/segment Giao • UDP header: bytes • UDP data Sử dụng khái niệm port tương tự TCP 29 UDP port 30 UDP header Source port: địa port chương trình gởi Destination port: địa port chương trình nhận UDP length: kích thước header+data UDP checksum: phát lỗi cho header+data 31 Ví dụ: port UDP headr 32 III. Giới thiệu giao diện lập trình mạng socket 1. 2. Khái niệm Socket API Giới thiệu Windows Sockets (WinSock) 33 1. Khái niệm Socket API API (Application Programming Interface) Giao diện lập trình ứng dụng: tập hợp hàm cung cấp cho chương trình ứng dụng Socket APIs trừu tượng hoá việc truyền thông dạng client/server giao thức TCP/IP với mô hình socket Socket API sử dụng cho giao thức khác IPX/SPX, DECNet, …) 34 Hai dạng Socket APIs Berkeley Sockets (BSD Sockets) cung cấp thao tác sở (primitives) dùng UNIX Windows Sockets (WinSock) Có mở rộng hỗ trợ chế messagedriven Windows 35 Ví dụ Các thao tác sở TCP BSD sockets 36 2. Giới thiệu WinSock giao diện lập trình mạng dùng hệ điều hành Windows mô hình socket Chương trình sử dụng WinSock API, liên kết với thư viện WinSock WinSock: 37 Kiến trúc TCP/IP Microsoft Windows 38 Dịch vụ WinSock Các • • • • thao tác sở Liên kết chương trình ứng dụng với socket Khởi tạo, chấp nhận kết nối Gởi nhận liệu Đóng kết nối hàm bất đồng Các hàm chuyển đổi liệu Các 39 Các dạng socket Stream socket • Trao đổi liệu tin cậy chiều dùng TCP Datagram socket • Trao đổi liệu chiều dùng UDP Socket định nghĩa theo: Giao thức sử dụng Địa 40 [...]... Byte stream 19 c Giao thức TCP Đơn vị dữ liệu: TCP segment • TCP header ≥ 20 bytes • TCP data ≥ 0 bytes Kích thước TCP segment bị giới hạn bởi: • IP payload ( 655 15 bytes) • MTU (Maximum Transfer Unit) Ví dụ: MTU mạng Ethernet ~ 150 0 bytes 20 Giao thức TCP (tt) Mỗi byte truyền trên kết nối TCP có số thứ tự trình tự (sequence number) 32 bit Giao thức cơ bản: sliding window • Sender gởi segment,... data Sử dụng khái niệm port tương tự TCP 29 UDP port 30 UDP header Source port: địa chỉ port chương trình gởi Destination port: địa chỉ port chương trình nhận UDP length: kích thước header+data UDP checksum: phát hiện lỗi cho header+data 31 Ví dụ: port trên UDP headr 32 III Giới thiệu giao diện lập trình mạng socket 1 2 Khái niệm Socket API Giới thiệu Windows Sockets (WinSock) 33 1 Khái niệm Socket... Client-Server dạng có kết nối II 12 II Lớp transport trên mạng TCP/IP 1 2 Giao thức TCP (Transmission Control Protocol) Giao thức UDP (User Datagram Protocol) 13 1 Giao thức TCP a b c d e Giới thiệu TCP Mô hình dịch vụ TCP Giao thức TCP TCP segment header Thiết lập kết nối TCP 14 a Giới thiệu TCP cấp dịch vụ gởi nhận chuỗi byte tin cậy giữa hai chương trình trên mạng có thể không tin cậy Thực thể TCP: Cung... IP Chia 15 b Mô hình dịch vụ TCP Dịch vụ TCP thực hiện trên kết nối TCP (TCP connection) Kết nối TCP bao gồm hai đầu cuối (endpoint), được gọi là socket Socket number (socket address): • Địa chỉ IP – 32 bit • Port – 16 bit 16 Port niệm trừu tượng nhiều ứng dụng TCP trên một máy Well-known ports: dùng cho các dịch vụ chuẩn, ví dụ: Khái Port 21: FTP - File Tranfer Protocol 25: SMTP - Email... mạng socket 1 2 Khái niệm Socket API Giới thiệu Windows Sockets (WinSock) 33 1 Khái niệm Socket API API (Application Programming Interface) Giao diện lập trình ứng dụng: tập hợp các hàm cung cấp cho chương trình ứng dụng Socket APIs trừu tượng hoá việc truyền thông dạng client/server trên bộ giao thức TCP/IP với mô hình socket Socket API có thể sử dụng cho các bộ giao thức khác như IPX/SPX, DECNet,... Host 1 (Client) và Host 2 (Server) (Three-way handshake) Host 1 Host 2: seq=x, ack=0, SYN=1, ACK=0 Host 2 Host 1: seq=y, ack=x+1, SYN=1, ACK=1 Host 1 Host 2: seq=x+1, ack=y+1, SYN=0, ACK=1 25 Sơ đồ thiết lập kết nối TCP 26 Hủy bỏ kết nối TCP Gởi TCP segment với FIN=1 Cần một FIN segment và một ACK segment cho một bên truyền thông 27 Ví dụ hủy kết nối TCP 28 2 Giao thức UDP thức dạng không... …) 34 Hai dạng Socket APIs Berkeley Sockets (BSD Sockets) cung cấp các thao tác cơ sở (primitives) dùng trên UNIX Windows Sockets (WinSock) Có các mở rộng hỗ trợ cơ chế messagedriven của Windows 35 Ví dụ Các thao tác cơ sở trên TCP của BSD sockets 36