Slide 1 Tầng Ứng dụng MỤC TIÊU Cung cấp các dịch vụ mạng cho người dùng cuối Các ứng dụng mạng phổ biến E mail Web Instant Message Telnet, SSH FTP, P2P file sharing Networked Games V[.]
Tầng Ứng dụng 09/2010 MỤC TIÊU E-mail Web Instant Message Telnet, SSH FTP, P2P file sharing Networked Games Video conference Application Presentation Session Transport Network Data link Physical BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM Cung cấp dịch vụ mạng cho người dùng cuối Các ứng dụng mạng phổ biến: 09/2010 NỘI DUNG Các khái niệm Một số dịch vụ mạng Lập trình ứng dụng BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM 09/2010 PROCESS - Process = tiến trình chương trình chạy máy Nhiều luồng cơng việc (thread – tiểu trình) BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM Liên lạc tiến trình: Trên máy: hệ điều hành Chia sẻ nhớ Truyền thông điệp tiến trình User Process OS - Kernel User Process shared resources 09/2010 PROCESS - Trên máy khác nhau: User Process BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM truyền liệu qua đường mạng VD: socket, name pipe, … User Process OS-Kernel OS-Kernel Network 09/2010 ỨNG DỤNG MẠNG Chạy end-system Liên lạc với qua mạng Kiến trúc: BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM Server-client Peer-to-peer 09/2010 SERVER - CLIENT Server: Luôn “sống” Chạy địa cố định Nhận xử lý yêu cầu từ client BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM Client: Liên lạc gởi yêu cầu cho Server Có thể dùng IP “động” client liên lạc trực tiếp với VD: Web: WebServer (IIS, Apache, …), web browser (IE, FireFox, …) FTP: FTP Server (ServerU), FTP Client 09/2010 PEER-TO-PEER ứng dụng có hai chức server client Các client liên lạc trực tiếp Dùng địa “động” Quản lý khó VD: Skype, Bittorrent BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM PROCESS - “Địa chỉ” người: Địa nhà Tên người “Địa chỉ” tiến trình: Địa IP Port: 1023: port chuẩn 1024 49151: port cố định, đăng ký trước …: port linh động 09/2010 MỘT SỐ KHÁI NIỆM KHÁC - Giao thức tầng ứng dụng: Do người cài đặt ứng dụng xây dựng VD: HTTP, FTP, … BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM Những yêu cầu dịch vụ tầng ứng dụng: Truyền liệu đáng tin cậy Thời gian Băng thông Bảo mật liệu 10 09/2010 MỘT SỐ KHÁI NIỆM KHÁC -3 BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM Tham khảo thêm: http://www.iana.org/assignments/port-numbers 12 http://www.bctes.com/network-applications-tcp-udp-port-numbers.html 09/2010 NỘI DUNG Các khái niệm Một số dịch vụ mạng Lập trình ứng dụng BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM 13 09/2010 NỘI DUNG Các khái niệm Một số dịch vụ mạng BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM DHCP DNS Lập trình ứng dụng 14 09/2010 NỘI DUNG Các khái niệm Một số dịch vụ mạng Lập trình ứng dụng BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM TCP UDP 15 09/2010 SOCKET Socket “Cánh cửa” ứng dụng giao thức tầng transport (TCP, UDP) cung cấp interface để lập trình mạng tầng Transport Một socket end-point liên kết hai ứng dụng BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM Windows Socket Application Programming Interface (Winsock API) thư viện hàm socket xây dựng ứng dụng mạng TCP/IP 16 Xác định kiến trúc mạng: Client – Server, Peer-toPeer Giao thức sử dụng tầng Transport: TCP, UDP Các port sử dụng Server Client Giao thức tầng ứng dụng trao đổi liệu hai end-host Lập trình BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM 09/2010 LẬP TRÌNH ỨNG DỤNG MẠNG 17 09/2010 LẬP TRÌNH ỨNG DỤNG – TCP - SERVER BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM Giai đọan 1: Server tạo Socket lắng nghe yêu cầu kết nối PORT CLIENT Tạo socket để lắng nghe kết nối socket() Đăng ký tên cho socket bind() Lắng nghe kết nối từ client listen() 18 09/2010 TCP - SERVER BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM Giai đọan 2: Client tạo Socket, yêu cầu thiết lập nối kết với Server CLIENT Tạo socket để lắng nghe kết nối socket() Đăng ký tên cho socket bind() Lắng nghe kết nối từ client listen() Tạo socket để kết nối đến server socket() Đợi kết nối đến từ Client Chấp nhận kết nối từ Client (socket tạo) accept() Kết nối đến server connect() 19 09/2010 TCP - Giai đọan 3: Trao đổi thông tin Client Server BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM SERVER CLIENT Tạo socket để kết nối đến server socket() Đợi kết nối đến từ Client Chấp nhận kết nối từ Client (socket tạo) accept() Truyền/nhận liệu send()/receive() Kết nối đến server connect() Truyền/nhận liệu send()/receive() 20