Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 106 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
106
Dung lượng
2,92 MB
Nội dung
Chương Tầng Application A note on the use of these ppt slides: We’re making these slides freely available to all (faculty, students, readers) They’re in PowerPoint form so you see the animations; and can add, modify, and delete slides (including this one) and slide content to suit your needs They obviously represent a lot of work on our part In return for use, we only ask the following: v If you use these slides (e.g., in a class) that you mention their source (after all, we’d like people to use our book!) v If you post any slides on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material Computer Networking: A Top Down Approach 6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 Thanks and enjoy! JFK/KWR All material copyright 1996-2012 J.F Kurose and K.W Ross, All Rights Reserved Tầng Application 2-1 Chương 2: Nội dung 2.1 Các nguyên lý ứng dụng mạng 2.2 Web HTTP 2.3 FTP 2.4 E-Mail 2.6 Các ứng dụng P2P 2.7 Lập trình socket với UDP TCP § SMTP, POP3,IMAP 2.5 DNS Tầng Application 2-2 Chương 2: tầng application Mục tiêu: v Khái niệm khía cạnh thực giao thức ứng dụng mạng § Mơ hình clientserver § Mơ hình peer-topeer v Tìm hiểu giao thức phổ biến tầng application § § § § v HTTP FTP SMTP / POP3 / IMAP DNS Lập trình ứng dụng mạng § socket API Tầng Application 2-3 Một số ứng dụng mạng v v v v v v E-mail Web Remote access Chia file P2P Trò chơi nhiều người mạng Streaming stored video (YouTube, Hulu, Netflix) v v v v v v Thoại IP (e.g., Skype) Hội thảo video thời gian thực Mạng xã hội Mạng tìm kiếm … … Tầng Application 2-4 Tạo ứng dụng mạng Viết chương trình để: v Chạy hệ thống đầu cuối khác v Truyền thông qua mạng v Ví du: phần mềm web server giao tiếp với trình duyệt Khơng cần viết phần mềm cho thiết bị mạng lõi v Các thiết bị mạng lõi không chạy ứng dụng người dùng v Các ứng dụng hệ thống đầu cuối cho phép quảng bá phát triển ứng dụng nhanh chóng application transport network data link physical application transport network data link physical application transport network data link physical Tầng Application 2-5 Các kiến trúc ứng dụng Cấu trúc ứng dụng: v Client-Server v peer-to-peer (P2P) (Mạng ngang hàng) v Lai Client-Server P2P Tầng Application 2-6 Kiến trúc Client-server server: v v v Luôn hoạt động Địa IP cố định Trung tâm phục vụ lưu trữ liệu clients: client/server v v v v Giao tiếp với server Có thể kết nối khơng liên tục Có thể dùng địa IP động Khơng giao tiếp trực tiếp với client khác Tầng Application 2-7 Kiến trúc P2P (ngang hàng) v v v v Không có server Các hệ thống đầu cuối truyền thông trực tiếp với Các peer yêu cầu dịch vụ từ peer khác cung cấp dịch vụ ngược lại cho peer khác § Có khả tự mở rộng – peer mang lại lực dịch vụ mới, nhu cầu dịch vụ Các peer kết nối không liên tục thay đổi địa IP § Quản lý phức tạp peer-peer Tầng Application 2-8 Các tiến trình liên lạc Tiến trình (process): chương trình chạy host v v Trong host, hai tiến trình giao tiếp với cách sử dụng truyền thơng liên tiến trình (interprocess communication) định nghĩa hệ điều hành Các tiến trình host khác truyền thông với trao đổi thông điệp (message) clients, servers Tiến trình client: tiến trình khởi tạo truyền thơng Tiến trình server: tiến trình chờ đợi để liên lạc v Chú ý: ứng dụng với kiến trúc P2P có tiến trình client server Tầng Application 2-9 Sockets v v Tiến trình gửi/nhận thơng điệp đến/ từ socket Socket tương tự cổng vào § Tiến trình gởi đẩy thơng điệp khỏi cửa § Tiến trình gởi dựa cổng hạ tầng truyền thông bên để phân phối thơng điệp đến socket tiến trình nhận application process socket application process transport transport network network link physical Internet link Được kiểm soát Bởi nhà phát triển ứng dụng Được điều khiển hệ điều hành physical Tầng Application 2-10 Peer churn Xử lý peer churn: v Các peer đến (churn) v Mỗi peer biết địa hai 15 kế nhiệm v Mỗi peer định kỳ ping hai kế nhiệm để kiểm tra 12 tồn v Nếu người vừa kế nhiệm bỏ 10 đi, chọn kế nhiệm Ví dụ: peer đột ngột rời khỏinhư người kế nhiệm tức thời Xử lý peer churn: Peer churn v Các 15 12 10 Ví dụ: peer đột ngột rời khỏi v peer peer đến (churn) v Mỗi peer biết địa hai kế nhiệm v Mỗi peer định kỳ ping hai kế nhiệm để kiểm tra tồn v Nếu người vừa kế nhiệm bỏ đi, chọn kế nhiệm người kế nhiệm tức thời phát rời khỏi peer 5; peer trở thành người kế nhiệm v yêu cầu người kế nhiệm tức thời nó; người kế nhiệm tức thời trở thành người kế nhiệm thứ Chương 2: Nội dung 2.1 Các nguyên lý ứng dụng mạng 2.2 Web HTTP 2.3 FTP 2.4 electronic mail 2.6 ứng dụng P2P 2.7 lập trình socket với UDP TCP § SMTP, POP3, IMAP 2.5 DNS Tầng Application 2-94 Lập trình Socket Mục tiêu: tìm hiểu cách xây dựng ứng dụng client/server mà truyền thông dùng sockets socket: cánh cửa tiến trình ứng dụng giao thức transport end-end application process socket application process transport transport network network link physical Internet link Được điều khiển Nhà phát triển ứng dụng Được điều khiển hệ điều hành physical Tầng Application 2-95 Lập trình Socket Hai loại socket cho hai dịch vụ transport: § UDP: datagram khơng tin cậy § TCP: tin cậy, byte định hướng dịng (stream-oriented) Ví dụ ứng dụng: 1. Client đọc dòng ký tự (dữ liệu) từ bàn phím gởi liêu đến server 2. server nhận liệu chuyển đổi ký tự sang chữ hoa 3. server gởi liệu sửa đổi cho client 4. client nhận liệu bị sửa đổi hiển thị dịng lên hình nó.Tầng Application 2-96 Lập trình Socket với with UDP UDP: khơng “kết nối” client server v v v Không bắt tay trước gởi liệu Bên gửi rõ địa IP đích số port cho packet Bên nhận lấy địa IP số port người gởi từ packet nhận UDP: liệu truyền bị nhận khơng thứ tự Quan điểm ứng dụng: v UDP cung cấp truyền khơng tin cậy nhóm byte (“dâtgrams”) client server Tầng Application 2-97 Sự tương tác socket Client/server: UDP server (chạy địa IP server) Tạo socket, port= x: serverSocket = socket(AF_INET,SOCK_DGRAM) Đọc datagram từ serverSocket Viết trả lời đến serverSocket định địa client, port number client Tạo socket: clientSocket = socket(AF_INET,SOCK_DGRAM) Tạo datagram với địa IP server Và port=x; gởi datagram thông qua clientSocket Đọc datagram từ clientSocket đóng clientSocket Application 2-98 Ví dụ ứng dụng: UDP client Python UDPClient Bao gồm thư viện socket Python’ from socket import * serverName = ‘hostname’ serverPort = 12000 Tạo socket UDP cho server Nhận thơng điệp từ bàn phím người dùng Đính kèm tên server, port đến thông điệp; gởi vào tron socket Đọc ký tự trả lời từ socket vào chuỗi In chuỗi nhận đóng socket clientSocket = socket(socket.AF_INET, socket.SOCK_DGRAM) message = raw_input(’Input lowercase sentence:’) clientSocket.sendto(message,(serverName, serverPort)) modifiedMessage, serverAddress = clientSocket.recvfrom(2048) print modifiedMessage clientSocket.close() Tầng Application 2-99 Ví dụ ứng dung: UDP server Python UDPServer from socket import * serverPort = 12000 Tạo UDP socket serverSocket = socket(AF_INET, SOCK_DGRAM) Đính kèm socket đến số port cục bộ12000 serverSocket.bind(('', serverPort)) print “The server is ready to receive” Lặp mãi Đọc từ UDP socket vào thông điệp, lấy địa IP client(địa IP client port) Gởi chuỗi chữ hoa trở lại cho client while 1: message, clientAddress = serverSocket.recvfrom(2048) modifiedMessage = message.upper() serverSocket.sendto(modifiedMessage, clientAddress) Tầng Application 2-100 Lập trình Socket với TCP client phải tiếp xúc với server v v Tiến trình server phải chạy trước server phải tạo socket (cửa) để mời client đến liên lạc client tiếp xúc server bằng: v v v Khi tiếp xúc với client, server TCP tạo socket cho tiến trình serverđể truyền thơng với client § Cho phép server nói chuyện với nhiều client § Số source port dùng để phân biệt client (xem tiếp chương 3) Tạo socket TCP, xác định địa IP, số port tiến trình server Khi client tạo socket: client Nhìn góc độ ứng dụng: TCP thiết lập kết nối đến server TCP TCP cung cấp việc truyền byte tin cậy theo thứ tự client server Tầng Application 2-101 Tương tác socket Client/server: TCP server (chạy hostid) client create socket, port=x, for incoming request: serverSocket = socket() wait for incoming TCP connection request connectionSocket = connection serverSocket.accept() read request from connectionSocket write reply to connectionSocket close connectionSocket setup create socket, connect to hostid, port=x clientSocket = socket() send request using clientSocket read reply from clientSocket close clientSocket Tầng Application 2-102 Ví dụ ứng dụng: TCP client Python TCPClient from socket import * serverName = ’servername’ Tạo TCP socket cho server, port 12000 xa serverPort = 12000 clientSocket = socket(AF_INET, SOCK_STREAM) clientSocket.connect((serverName,serverPort)) sentence = raw_input(‘Input lowercase sentence:’) Khơng cần đính kèm tên server, port clientSocket.send(sentence) modifiedSentence = clientSocket.recv(1024) print ‘From Server:’, modifiedSentence clientSocket.close() Tầng Application 2-103 Ví dụ ứng dụng: TCP server Python TCPServer Tạo socket TCP chào đón server bắt đầu lắng nghe yêu cầu TCP đến Lặp mãi server đợi accept() cho yêu cầu đến, socket tạo trở Đọc byte từ socket khơng đọc địa UDP) Đóng kết nối đến client này(nhưng khơng đóng socket chào đón) from socket import * serverPort = 12000 serverSocket = socket(AF_INET,SOCK_STREAM) serverSocket.bind((‘’,serverPort)) serverSocket.listen(1) print ‘The server is ready to receive’ while 1: connectionSocket, addr = serverSocket.accept() sentence = connectionSocket.recv(1024) capitalizedSentence = sentence.upper() connectionSocket.send(capitalizedSentence) connectionSocket.close() Tầng Application 2-104 Chương 2: tóm tắt v v v Các kiến trúc ứng dụng § client-server § P2P Các yêu cầu dịch vụ ứng dụng: § Độ tin cậy, băng thơng, độ trễ Mơ hình dịch vụ vận chuyển Internet § Kết nối định hướng, tin cậy: TCP § Không tin c, datagrams: UDP v v Các giao thức: § HTTP § FTP § SMTP, POP, IMAP § DNS § P2P: BitTorrent, DHT Lập trình socket : TCP, UDP sockets Tầng Application 2-105 Chương 2: tóm tắt Quan trọng: tìm hiểu giao thức! v v trao đổi thơng điệp u cầu /trả lời điển hình: § client u cầu thơng tin dịch vụ § server đáp ứng với liệu, mã trạng thái Các định dạng thơng điệp: § headers: trường cho biết thơng tin liệu § data: thơng tin để Các chủ đề quan trọng: v v v v v Điều khiển với thơng điệp liệu § in-band, out-of-band Tập trung không tập trung Không trạng thái có trạng thái Truyền tin cậy khơng tin cậy “sự phức tạp mạng biên” Tầng Application 2-106