Giáo trình Mạng máy tính - Chương 3: Tầng ứng dụng
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Mạng máy tính - Chương 3: Tầng ứng dụng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- giao_trinh_mang_may_tinh_chuong_3_tang_ung_dung.pdf
Nội dung text: Giáo trình Mạng máy tính - Chương 3: Tầng ứng dụng
- Chương 03 Tầng ứng dụng MẠNG MÁY TÍNH Tháng 09/2011
- 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: Application . E-mail . Web Presentation . Instant Message Session . Telnet, SSH Transport . FTP, P2P file sharing . Networked Games Network . Video conference Data link Physical Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 2
- Nội dung Các khái niệm Một số dịch vụ mạng Lập trình ứng dụng Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 3
- Process - 1 Process = tiến trình . chương trình chạy trên máy . Nhiều luồng công việc (thread – tiểu trình) Liên lạc giữa các tiến trình: . Trên cùng 1 máy: • hệ điều hành – Chia sẻ bộ nhớ – Truyền thông điệp giữa các tiến trình User Process User Process shared OS - Kernel resources Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 4
- Process - 2 . Trên 2 máy khác nhau: • truyền dữ liệu qua đường mạng – VD: socket, name pipe, User Process User Process OS-Kernel OS-Kernel Network Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 5
- Ứng dụng mạng Chạy trên các end-system Liên lạc với nhau qua mạng Kiến trúc: . Server-client . Peer-to-peer Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 6
- Server - client Server: . Luôn luôn “sống” . Chạy trên 1 địa chỉ cố định . Nhận và xử lý yêu cầu từ client Client: . Liên lạc và gởi yêu cầu cho Server . Có thể dùng IP “động” . 2 client không thể liên lạc trực tiếp với nhau VD: . Web: WebServer (IIS, Apache, ), web browser (IE, FireFox, ) . FTP: FTP Server (ServerU), FTP Client Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 7
- Peer-to-peer ứng dụng có cả hai chức năng của server và client Các client liên lạc trực tiếp Dùng địa chỉ “động” Quản lý khó VD: Skype, Bittorrent Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 8
- Process - 3 “Địa chỉ” của một người: Địa chỉ nhà Tên người • “Địa chỉ” của tiến trình: – Địa chỉ IP – Port: • 0 1023: port chuẩn • 1024 49151: port cố định, đăng ký trước • : port linh động 9
- Một số khái niệm khác - 1 Giao thức tầng ứng dụng: . Do người cài đặt ứng dụng xây dựng . VD: HTTP, FTP, Những yêu cầu dịch vụ của tầng ứng dụng: . Truyền dữ liệu đáng tin cậy . Thời gian . Băng thông . Bảo mật dữ liệu Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 10
- Một số khái niệm khác - 2 Các dịch vụ tầng transport cung cấp: . TCP service • Dịch vụ hướng kết nối • truyền dữ liệu đáng tin cậy . UDP service • Dịch vụ hướng không kết nối • dữ liệu truyền không đáng tin cậy • nhanh hơn TCP Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 11
- Một số khái niệm khác -3 Tham khảo thêm: Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 12
- Nội dung Các khái niệm Một số dịch vụ mạng Lập trình ứng dụng Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 13
- Nội dung Các khái niệm Một số dịch vụ mạng . DHCP . DNS Lập trình ứng dụng Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 14
- DHCP - Đặt vấn đề Cấu hình IP??? Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 15
- DHCP - Đặt vấn đề Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 16
- DHCP - Đặt vấn đề Giải quyết??? Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 17
- DHCP – giới thiệu DHCP = Dynamic Host Configuration Protocol . RFC 1533, 1534, 1541, 1542, 2131 Tiền thân: BOOTP Hoạt động tầng ứng dụng . Giao thức hoạt động ở tầng Transport: UDP Chức năng: cấp phát địa chỉ IP động Mô hình Client - Server: . Server • Port: 67 • Cung cấp địa thông tin cấu hình TCP/IP cho các client . Client: • Port: 68 • Yêu cầu server cấp thông tin cấu hình TCP/IP Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 18
- DHCP - Mô hình hoạt động - 1 DHCP Discover UDP Broadcast DHCP Offer UDP Broadcast MAC: đã biết DHCP Request IP: chưa xác định IP Address, subnet mask Lease time DHCPDHCP Ack sever IP Address Default Gateway DNS Server 19 Tham khảo: Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 19
- DHCP - Mô hình hoạt động - 2 Xin cấp mới: . Discover: client tìm DHCP Server . Offer: DHCP gợi ý một địa chỉ IP . Request: Client yêu cầu cấp 1 địa chỉ IP . Ack: Server xác nhận đồng ý và giải phóng địa chỉ IP . Nak: Server từ chối địa chỉ IP mà client yêu cầu Xin cấp lại: . Request . Ack/ Nak Huỷ thông tin được cấp: . Release Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 20
- DHCP – sơ đồ hoạt động Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 21
- DHCP – Format message Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 22
- DHCP – Format message Op 1 Loại thông điệp Htype 1 Loại địa chỉ vật lý Hlen 1 Kích thước 1 địa chỉ vật lý Hops 1 Client set là 0, dùng cho relay agent Xid 4 Transaction ID, Secs 2 Được điền bởi client Flags 1 Cho biết gói tin này có phải là gói tin broadcast không Ciaddr 4 Địa chỉ của Client, dùng trong các trường hợp renew, Yiaddr 4 Địa chỉ của “đối tác” Siaddr 4 Địa chỉ của next server để “mồi”và được dùng trong các thông điệp DHCPOFFER, DHCPACK Giaddr 4 Địa chỉ của relay agent Chaddr 16 Địa chỉ vật lý của client Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 23
- DHCP – lệnh console Kiểm tra thông tin cấu hình IP: Ipconfig /all Xin cấp một IP mới: Ipconfig /renew Trả địa chỉ IP đang dùng: Ipconfig /release Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 24
- Nội dung Các khái niệm Một số dịch vụ mạng . DHCP . DNS Lập trình ứng dụng Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 25
- DNS - Đặt vấn đề - 1 Internet Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 26
- DNS - Đặt vấn đề - 2 Domain Name IP Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 27
- DNS – giới thiệu DNS = Domain Name System Rfc 1034, 1035 Chức năng . Dùng phân giải tên miền thành địa chỉ IP và ngược lại Lịch sử: . Đầu tiên, lưu trữ bằng file hosts . Ngày nay, lưu trữ bằng 1 CSDL phân tán • Tạo thành cây domain • Mỗi node – Name Server (NS) – Có một tên miền (domain name) – Có thể có sub domain Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 28
- DNS – mô hình hoạt động Hoạt động tầng Application Tầng Transport: . UDP: truy vấn (query) – port 53 . TCP: cập nhật thông tin (zone transfer) Mô hình Client – Server . Server: • Primary NS – Chứa thông tin về một zone • Secondary NS – Backup của primary NS . Client - Resolver • Port linh động Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 29
- Internet domain space Name space . Top Level Database (TLD) com edu gov vn fr uk Second Level Database Domain vnn com edu gov Zone Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 30 Tham khảo thêm:
- DNS – thuật ngữ Root . Name space: . Tập các tên miền trên Internet Domain: vn . là một nhánh trong name space Zone: . Là một vùng domain tương ứng với edu com “biên” quản lý trong DNS . Phân loại: • Primary zone khtn bachkhoa • Secondary zone • Stub zone FQDN (Fully Qualitified Domain cntt vatly Name) . Tên đầy đủ . + + “.” . VD: www.cntt.khtn.edu.vn. Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 31
- DNS – Internet domain space – thống kê Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 32
- DNS – ví dụ . vn www – 172.29.70.253 mail – 172.29.70.252 edu ftp – 172.29.70.252 172.29.70.254 khtn 172.29.70.200 cntt vatly ftp – 172.29.70.4 www – 172.29.10.2 Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 33
- LƯU TRỮ Lưu dữ liệu dưới dạng các resource record – RR (name, value, type, ttl) . SOA: thông tin cho toàn bộ 1 zone . MX: thông tin của server nhận mail của miền . NS: thông tin các name server quản lý zone • Name: tên miền • Vaule: địa chỉ NS của miền . A: dùng để phân giải tên máy thành địa chỉ IP Name: hostname Value: IP address . CNAME: lưu tên phụ của 1 máy • Name: tên alias • Value: tên thật . PTR: dùng để phân giải địa chỉ IP thành tên máy • Name: IP addr. • Value: hostname Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 34
- DNS – phân giải - 1 root DNS server Đệ qui (recursive 2 3 query) 7 6 . Server nhận câu truy vấn phải trả lời thông tin cuối cùng: local DNS server TLD DNS server 4 phân giải được hay dns.khtn.edu.vn 5 không? 1 8 . VD: máy authoritative DNS server cl1.khtn.edu.vn truy dns.cs.umass.edu vấn tên miền cl1.khtn.edu.vn gaia.cs.umass.edu gaia.cs.umass.edu Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 35
- DNS – phân giải - 2 root DNS server Tuần tự (iterated 2 query) 3 TLD DNS server . Server nhận câu truy 4 vấn không phải trả lời thông tin cuối 5 cùng, chỉ trả lời local DNS server thông tin về NS “gần dns.khtn.edu.vn 7 6 nhất” 1 8 . VD: máy authoritative DNS server cl1.khtn.edu.vn truy dns.cs.umass.edu vấn tên miền cl1.khtn.edu.vn gaia.cs.umass.edu gaia.cs.umass.edu Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 36
- DNS – Phân giải - caching Lưu tạm kết quả đã truy vấn trong cache Caching Table Host Name IP Address TTL clientA.contoso.msft. 192.168.8.44 28 seconds ClientA is at 192.168.8.44 Request: ClientA? Internet Request: ClientA? Client1 ClientAWhere’s is at Client2 192.168.8.44Client A? Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 37
- DNS – phân giải - ví dụ Request . Reply Address vn of com com server Address of yahoo.com vnn server yahoo Address of www.yahoo.com Address of www.yahoo.com Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 38
- Nội dung Các khái niệm Một số dịch vụ mạng Lập trình ứng dụng . TCP . UDP Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 39
- socket Socket . “Cánh cửa” giữa ứng dụng và giao thức tầng transport (TCP, UDP) . cung cấp interface để lập trình mạng tại tầng Transport . Một socket là một end-point của một liên kết giữa hai ứng dụng Windows Socket Application Programming Interface (Winsock API) . thư viện các hàm socket . xây dựng các ứng dụng mạng trên nền TCP/IP Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 40
- Lập trình ứng dụng mạng 1. Xác định kiến trúc mạng: Client – Server, Peer-to- Peer 2. Giao thức sử dụng tầng Transport: TCP, UDP 3. Các port sử dụng ở Server và Client 4. Giao thức tầng ứng dụng khi trao đổi dữ liệu giữa hai end-host 5. Lập trình Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 41
- Lập trình ứng dụng – TCP - 1 Giai đọan 1: Server tạo Socket và lắng nghe yêu cầu kết nối tại PORT 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() Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 42
- TCP - 2 . Giai đọan 2: Client tạo Socket, yêu cầu thiết lập một nối kết với ServerS ERVER 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 1 kết nối đến từ Client Kết nối đến server connect() Chấp nhận một kết nối từ Client (socket mới được tạo) accept() Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 43
- TCP - 3 . Giai đọan 3: Trao đổi thông tin giữa Client và Server SERVER CLIENT Tạo socket để kết nối đến server socket() Đợi 1 kết nối đến từ Client Kết nối đến server connect() Chấp nhận một kết nối từ Client (socket mới được tạo) accept() Truyền/nhận dữ liệu Truyền/nhận dữ liệu send()/receive() send()/receive() Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 44
- TCP - 4 . Giai đoạn 4: Kết thúc phiên làm việc SERVER CLIENT Truyền/nhận dữ liệu Truyền/nhận dữ liệu send()/receive() send()/receive() Đóng kết nối Đóng kết nối (socket của connection) close() close() Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 45
- TCP - 5 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 1 kết nối đến từ Client Kết nối đến server connect() Chấp nhận một kết nối từ Client (socket mới được tạo) accept() Truyền/nhận dữ liệu Truyền/nhận dữ liệu send()/receive() send()/receive() Đóng kết nối Đóng kết nối (socket của connection) close() close() SơKhoa đồ Côngtương nghệ tác thônggiữa Servertin - Đại-Client học Khoa theo học giao tự thức nhiên TCP TP Hồ Chí Minh 46
- Lập trình ứng dụng – UDP - 1 Mô hình UDP . Giai đoạn 1: Server tạo Socket tại PORT Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 47
- UDP - 2 . Giai đoạn 2: Client tạo Socket Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 48
- UDP - 3 . Giai đoạn 3: Trao đổi thông tin giữa Client và Server Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 49
- Tài liệu tham khảo Slide của J.F Kurose and K.W. Ross về Computer Networking: A Top Down Approach Khoa Công nghệ thông tin - Đại học Khoa học tự nhiên TP Hồ Chí Minh 50