1. Trang chủ
  2. » Công Nghệ Thông Tin

Computer Networking - Chương 2 Lớp Application pdf

108 1,1K 12

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 108
Dung lượng 1,5 MB

Nội dung

Chương Lớp Application Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition Jim Kurose, Keith Ross Addison-Wesley, July 2004 Slide biên dịch sang tiếng Việt theo cho phép tác giả All material copyright 1996-2006 J.F Kurose and K.W Ross, All Rights Reserved Lớp Application Chương 2: Nội dung trình bày 2.1 Các nguyên lý ứng dụng mạng 2.2 Web HTTP 2.3 FTP 2.4 Electronic Mail  SMTP, POP3, IMAP 2.5 DNS 2.6 Chia sẻ file P2P 2.7 Lập trình socket vớiTCP 2.8 Lập trình socket với UDP 2.9 Xây dựng Web server Lớp Application Chương 2: Lớp Application Mục tiêu: Khái niệm, khía cạnh thực giao thức ứng dụng mạng  Các mô hình dịch vụ lớp transport  Mơ hình clientserver  Mơ hình peer-to-peer Nghiên cứu giao thức thơng qua xem xét số giao thức lớp application     HTTP FTP SMTP / POP3 / IMAP DNS Lập trình ứng dụng mạng  socket API Lớp Application Một số ứng dụng mạng E-mail Web Tin nhắn nhanh Đăng nhập từ xa Chia sẻ file P2P Trò chơi nhiều người mạng Streaming video clips Điện thoại Internet Hội thảo video thời gian thực Tính tốn lớn, tính tốn song song Lớp Application Tạo ứng dụng mạng Viết chương trình để:    chạy hệ thống đầu cuối khác, truyền thông qua mạng Ví dụ: Web: phần mềm Web server truyền thơng với phần mềm trình duyệt application transport network data link physical Phần mềm nhỏ viết cho thiết bị trung tâm mạng   thiết bị trung tâm mạng không chạy mã ứng dụng người dùng ứng dụng hệ thống đầu cuối cho phép phát triển ứng dụng nhanh, phổ biến application transport network data link physical application transport network data link physical Lớp Application 2.1 Các nguyên lý ứng dụng mạng Lớp Application Các kiến trúc ứng dụng Client-server Peer-to-peer (P2P) Lai client-server P2P Lớp Application Kiến trúc client-server server:    host hoạt động địa IP cố định nhóm server để chia sẻ công việc clients:     truyền thơng với server kết nối khơng liên tục có địa IP thay đổi khơng truyền thông trực tiếp với client khác Lớp Application Kiến trúc P2P túy khơng có server ln hoạt động truyền thông trực tiếp với hệ thống đầu cuối điểm kết nối không liên tục thay đổi địa IP Ví dụ: Gnutella Độ linh hoạt cao khó quản lý Lớp Application Lai client-server P2P Skype    ứng dụng điện thoại Internet Tìm địa thành viên xa: server trung tâm Kết nối trực tiếp Client-client (không thông qua server) Tin nhắn nhanh   Chat user P2P Mơ hình client-server: • User đăng ký địa IP họ với server trung tâm trực tuyến • User tiếp xúc với server trung tâm để tìm đ ịa IP c bạn Lớp Application 10 Ví dụ: Java client (TCP) tạo input stream gắn vào socket BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); sentence = inFromUser.readLine(); Gửi dòng đến server outToServer.writeBytes(sentence + '\n'); modifiedSentence = inFromServer.readLine(); đọc dòng từ server System.out.println("FROM SERVER: " + modifiedSentence); clientSocket.close(); } } Lớp Application 94 Ví dụ: Java server (TCP) import java.io.*; import java.net.*; class TCPServer { tạo socket mời tiếp xúc port 6789 Chờ, client tiếp cận với server Tạo input stream, gắn vào socket public static void main(String argv[]) throws Exception { String clientSentence; String capitalizedSentence; ServerSocket welcomeSocket = new ServerSocket(6789); while(true) { Socket connectionSocket = welcomeSocket.accept(); BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); Lớp Application 95 Ví dụ: Java server (TCP) Tạo output stream, gắn vào socket DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); Đọc dòng từ socket clientSentence = inFromClient.readLine(); capitalizedSentence = clientSentence.toUpperCase() + '\n'; Viết dòng từ socket outToClient.writeBytes(capitalizedSentence); } } } kết thúc vòng lặp while quay lại chờ cho kết nối client khác Lớp Application 96 2.8 Lập trình socket với UDP (xem thêm slide Lập trình socket) Lớp Application 97 Lập trình socket với UDP UDP: khơng “kết nối” client server không bắt tay người gửi rõ ràng gắn địa IP port đích vào gói phải trích địa IP, port người gửi từ gói nhận UDP: liệu truyền khơng theo thứ tự, bị mát góc nhìn ứng dụng UDP cung cấp việc truyền khơng tin cậy nhóm byte (“datagrams”) client server Lớp Application 98 Giao tiếp socket Client/server: UDP Server (chạy hostid) create socket, port=x, for incoming request: serverSocket = DatagramSocket() read request from serverSocket write reply to serverSocket specifying client host address, port number Client create socket, clientSocket = DatagramSocket() Create, address (hostid, port=x, send datagram request using clientSocket read reply from clientSocket close clientSocket Lớp Application 99 Ví dụ: Java client (UDP) input stream Client Process monitor inFromUser keyboard Input: nhận gói process (cịn gọi TCP nhận “dòng byte”) UDP packet receivePacket (còn gọi TCP gửi “dịng byte”) sendPacket Output: gửi gói client UDP clientSocket socket to network UDP packet UDP socket from network Lớp Application 100 Ví dụ: Java client (UDP) import java.io.*; import java.net.*; tạo input stream tạo client socket dịch hostname thành địa IP dùng DNS class UDPClient { public static void main(String args[]) throws Exception { BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); DatagramSocket clientSocket = new DatagramSocket(); InetAddress IPAddress = InetAddress.getByName("hostname"); byte[] sendData = new byte[1024]; byte[] receiveData = new byte[1024]; String sentence = inFromUser.readLine(); sendData = sentence.getBytes(); Lớp Application 101 Ví dụ: Java client (UDP) tạo datagram với liệu để gửi, độ dài, địa IP, port gửi datagram đến server DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876); clientSocket.send(sendPacket); DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); đọc datagram từ server clientSocket.receive(receivePacket); String modifiedSentence = new String(receivePacket.getData()); System.out.println("FROM SERVER:" + modifiedSentence); clientSocket.close(); } } Lớp Application 102 Ví dụ: Java server (UDP) import java.io.*; import java.net.*; Tạo datagram socket port 9876 class UDPServer { public static void main(String args[]) throws Exception { DatagramSocket serverSocket = new DatagramSocket(9876); byte[] receiveData = new byte[1024]; byte[] sendData = new byte[1024]; while(true) { Tạo không gian để nhận datagram nhận datagram DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); serverSocket.receive(receivePacket); Lớp Application 103 Ví dụ: Java server (UDP) String sentence = new String(receivePacket.getData()); lấy địa IP port #, người gửi InetAddress IPAddress = receivePacket.getAddress(); int port = receivePacket.getPort(); String capitalizedSentence = sentence.toUpperCase(); sendData = capitalizedSentence.getBytes(); tạo datagram để gửi tới client viết datagram vào socket } DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port); serverSocket.send(sendPacket); } } kết thúc vòng lặp while, quay lại chờ datagram khác Lớp Application 104 2.9 Xây dựng Web server Lớp Application 105 Xây dựng Web server đơn giản quản lý yêu cầu HTTP chấp nhận yêu cầu phân tích cú pháp header lấy file yêu cầu từ hệ thống file server tạo thông điệp đáp ứng HTTP:  sau tạo server, bạn u cầu file dùng trình duyệt (ví dụ: IE) xem giáo trình để biết thêm chi tiết dòng header + file gửi đáp ứng đến client Lớp Application 106 Chương 2: Tổng kết Tổng quan số vấn đề ứng dụng mạng! Các kiến trúc ứng dụng    client-server P2P lai yêu cầu dịch vụ:  tin cậy, bandwidth, trễ giao thức đặc biệt:  HTTP  FTP  SMTP, POP, IMAP  DNS lập trình socket mơ hình dịch vụ Internet transport   connection-oriented, tin cậy: TCP không tin cậy, datagrams: UDP Lớp Application 107 Chương 2: Tổng kết Phần quan trọng: nghiên cứu giao thức trao đổi thơng điệp u cầu/trả lời điển hình:   client yêu cầu thông tin dịch vụ service server đáp ứng với liệu, mã trạng thái dạng thông điệp:   headers: trường cho biết thông tin liệu liệu: thông tin để truyền thông đ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 thơng điệp tin cậy không tin cậy “sự phức tạp vấn đề liên quan đến mạng” Lớp Application 108 ... dụng mạng Lớp Application Các kiến trúc ứng dụng Client-server Peer-to-peer (P2P) Lai client-server P2P Lớp Application Kiến trúc client-server server:    host hoạt động địa IP cố định nhóm... ngày cache yêu cầu HTTP: If-modified-since: server: đáp ứng không chứa đối tượng cache cập nhật: HTTP/1.0 304 Not Modified server cache HTTP request msg If-modified-since: HTTP response... liệu back-end Web site Ví dụ:    Susan truy cập Internet từ PC She lần vào e-commerce site xác định Khi yêu cầu khởi tạo HTTP đến site, site tạo ID tạo điểm đăng nhập sở liệu back-end cho

Ngày đăng: 22/03/2014, 21:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w