Bài giảng Mạng máy tính và lập trình mạng

ppt 51 trang ngocly 1170
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Mạng máy tính và lập trình mạ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:

  • pptbai_giang_mang_may_tinh_va_lap_trinh_mang.ppt

Nội dung text: Bài giảng Mạng máy tính và lập trình mạng

  1. Tổng quan về MMT và Lập trình mạng ⚫ Truyền thông ⚫ Cơ chế giao tiếp liên quá trình (IPC) ⚫ Mô hình OSI ⚫ Mạng TCP/IP ⚫ Dịch vụ mạng ⚫ Mô hình Client/Server ⚫ Các kiểu kiến trúc chương trình 1
  2. Truyền thông ⚫ Là sự giao tiếp, trao đổi thông tin giữa 2 hay nhiều thực thể trong hệ thống. ⚫ Trong hệ thống máy tính, hệ thống mạng máy tính: truyền thông là sự giao tiếp bên trong 1 quá trình hay giữa các quá trình với nhau thông qua các cơ chế truyền thông. ⚫ Hệ thống đơn nhiệm (monotasking): ⚫ Giao tiếp chỉ trong phạm vi 1 chương trình. ⚫ Dùng biến toàn cục, tham số gọi hàm, trị trả về của hàm ⚫ Hệ thống đa nhiệm (multitasking): ⚫ Nhiều quá trình được thực thi song song. ⚫ Dùng cơ chế giao tiếp liên quá trình (InterProcess Communication) được cung cấp bởi hệ điều hành và hệ điều hành mạng. 2
  3. Cơ chế giao tiếp liên quá trình ⚫ Phân loại: Loại 1: Giao tiếp giữa các quá trình trên cùng 1 máy tính Loại 2: Giao tiếp giữa nhiều quá trình trên các máy tính khác nhau 3
  4. Cơ chế giao tiếp liên quá trình ⚫ IPC loại 1: giao tiếp trên cùng 1 máy tính. ⚫ Thông qua hạt nhân (kernel) của hệ điều hành. ⚫ Dùng vùng nhớ dùng chung hay tập tin chia sẻ: ⚫ Một quá trình ghi ⚫ Một quá trình đọc ⚫ IPC loại 2: giao tiếp trên các máy tính khác nhau. ⚫ Thông qua các hạt nhân (kernel) của nhiều hệ điều hành. ⚫ Phải có quy tắc trao đổi thông tin (protocol) giữa các hạt nhân và giữa các quá trình. ⚫ Một số IPC phổ biến: Pipe, Socket, RPC. 4
  5. Mô hình OSI ⚫ Mô hình OSI đầy đủ: Mô hình OSI gồm 7 tầng 5
  6. Mô hình OSI ⚫ Kiến trúc các hệ điều hành mạng: Cùng chức năng, không tương tác được với nhau 6
  7. Tổng quát về TCP/IP ⚫ Một số đặc tính: ⚫ Độc lập về hình thái của mạng. ⚫ Độc lập về phần cứng của mạng. ⚫ Các chuẩn giao thức mở. ⚫ Mô hình địa chỉ toàn cầu. ⚫ Nền tảng client/server mạnh mẽ. ⚫ Các chuẩn về giao thức ứng dụng mạnh mẽ. 7
  8. Mạng TCP/IP ⚫ TCP/IP: giao thức chung để giao tiếp trên Internet. ⚫ Mạng TCP/IP dùng mô hình OSI đơn giản: Mô hình OSI đơn giản gồm 5 tầng 8
  9. TCP/IP ⚫ TCP/IP là một tập của các protocols (một bộ giao thức) định nghĩa cách thức truyền dữ liệu qua môi trường Internet ⚫ TCP/IP là tên của mô hình mạng được ghép giữa hai giao thức chính trong mạng làTCP (Transmission Control Protocol) và IP (Internet Protocol) 9
  10. Mạng TCP/IP ⚫ Tầng ứng dụng ⚫ TCP/IP Stack ⚫ Standard apps ⚫ HTTP ⚫ FTP ⚫ Telnet Application ⚫ User apps (http,ftp,telnet, ) ⚫ Tầng vận chuyển ⚫ TCP Transport ⚫ UDP (TCP, UDP, ) ⚫ Programming Interface: ⚫ Sockets Network ⚫ Tầng mạng (IP, ) ⚫ IP Link ⚫ Tầng kết nối (device driver, ) ⚫ Device drivers 10
  11. Những điểm khác giữa OSI và TCP/IP ⚫ Lớp ứng dụng trongTCP/IP xử lý các chức năng của các lớp 5,6, và7 trong mô hình OSI ⚫ Lớp transport trongTCP/IP cung cấp cơ chế UDP truyền dữ liệu không tin cậy, khác với lớp transport trong mô hình OSI là luôn đảm bảo dữ liệu truyền tin cậy 11
  12. Mạng TCP/IP ⚫ TCP (Transport Control ⚫ TCP/IP Stack Protocol) là giao thức vận chuyển dựa trên kết nối logic trực tiếp giữa 2 máy Application (http,ftp,telnet, ) tính. Transport ⚫ Ví dụ: (TCP, UDP, ) ⚫ HTTP Network ⚫ FTP (IP, ) ⚫ Telnet Link (device driver, ) 12
  13. Mạng TCP/IP ⚫ UDP (User Datagram ⚫ TCP/IP Stack Protocol) là giao thức vận chuyển phi kết nối thực hiện gửi các packets gọi Application (http,ftp,telnet, ) là datagrams từ máy này sang máy khác. Transport (TCP, UDP, ) ⚫ Ví dụ: Network ⚫ Clock server (IP, ) ⚫ Ping Link (device driver, ) 13
  14. TCP/IP và mạng Internet ⚫ Một liên mạng(internet) dùngTCP/IP được xem như là một mạng đơn kết nối các máy tính với nhiều loại ⚫ Mạng Internet là sự kết nối giữa các mạng vật lý độc lập thông qua các thiết bị liên mạng ⚫ Với mô hìnhTCP/IP, các mạng khác nhau kết nối với nhau được xem như là một mạnglớn đồng nhất, không quan tâm đến sự khác nhau giữa các thiết bị vật lý hay môi trường ⚫ Mỗi máykết nối vào mạng xem như kết nối đến một mạng luận lý, không quan tâm đến mạng vật lý 14
  15. Mạng Internet với TCP/IP 15
  16. Đóng gói dữ liệu trong TCP/IP ⚫ Đơn vị dữ liệu trong lớp ứng dụng gọi là message ⚫ Giao thứcTCP và UDP tạo ra một đơnvị dữ liệu tương ứng là segment và user datagram. ⚫ Đơn vị dữ liệu trong lớp IP được gọi là datagram ⚫ Datagram phải được đóng gói(encapsulate) trong một frame để truyền trên mạng vật lý ⚫ Frame sẽ được truyền theo dạng tín hiệu trên đường truyền vật lý 16
  17. Đóng gói dữ liệu trong TCP/IP 17
  18. Lớp Network ⚫ Mô hình TCP/IP cung cấp giao thức liên mạng(internetworkprotocol -IP), là một cơ chế truyền dữ liệu không tin cậy và phi kết nối(connectionless) ⚫ IP cắ tdữ liệu ra thành các gói gọi là datagrams, và mỗi gói được truyền độc lập ⚫ Datagram có thể đi theo các đường khác nhau và có thể đến không đúng thứ tự hoặc trùng nhau. ⚫ IP không giữ thông tin đường đi cũng như không sắp xếp lại các gói khi chúng đến 18
  19. Địa chỉ IP ⚫ Là địa chỉ luận lý trong mạng để xác định địa chỉ của các máy trong mạng (ngoài địa chỉ vật lý) cho việc truyền nhận dữ liệu ⚫ Địa chỉ IP có32 bit nhị phân chia ba phần: class type, netid, hostid ⚫ Để biểu diễn ở dạng ngắn hơn và dễ đọc, địa chỉ IP được chia thành dạng 4 phầnx 8 bit, cách nhau bằng dấu chấm, một phần được biểu diễn theo giá trị thập phân 19
  20. Một số địa chỉ IP đặc biệt 20
  21. Lớp Transport ⚫ Có 2 dạng dịch vụ: ⚫ TCP (Tranmission Control Protocol) ⚫ UDP (User Datagram Protocol) 21
  22. Lớp Transport ⚫ Cung cấp sự truyền nhận luận lý giữa các process ứng dụng giữa các máy trong mạng ⚫ Các giao thức lớp transport hoạt động ở các hệ thống đầu cuối ⚫ Lớp transport so với lớp network: – network layer: dữ liệu truyền nhận giữa các hệ thống – transport layer: dữ liệu được truyền nhận giữa các processes, dựa trên các dịch vụ của lớp network và mở rộng một số chức năng 22
  23. Lớp Transport ⚫ Định nghĩa một tập các kết nối mức khái niệm cho các processes gọi là protocol ports. Một protocol port là một điểm đích dùng để lưu dữ liệu cho một process cụ thể ⚫ Việc quản lý giao tiếp giữa các processes và các ports tương ứng được hệ điều hành cung cấp ⚫ Các protocol lớp transport là port-to-port protocols, truyền dữ liệu giữa process gởi đên process nhận ⚫ Mỗi port được xác định bằng một số nguyên dương 16 bits nhị phân 23
  24. Lớp Transport ⚫ Mở rộng cách đánh địa chỉ cho process. – Địa chỉ port : xác định ứng dụng mạng trên mỗi máy. – Địa chỉ củamột ứng dụng mạng (IP,port) 24
  25. Port Addresses 25
  26. UDP ⚫ User datagram protocol (UDP) là protocol đơn giản trong hai protocol ở lớp transport ⚫ Chỉ thêm thông tin về các địa chỉ port, điều khiển lỗi checksum và độ dài thông tin length ⚫ UDP chỉ cung cấp các chức năng cơ bản cho cơ ⚫ chế truyền end-to-end, không cung cấp các chức năng xử lý lỗi và truyền lại dữ liệu bị hỏng hoặc mất. ⚫ Đây là giao thức phi kết nối 26
  27. TCP ⚫ Cung cấp các dịch vụ đầy đủ cho các ứng dụng ⚫ Là giao thức port-to-port tin cậy, connection- ⚫ oriented: kết nối phải được thiết lậptrước khi dữ liệu được truyền ⚫ Khi thiết lập kết nối, TCP tạomột mạch ảo(virtual circuit ) giữa bên gởi và bên nhận trong suốt quá trình truyềnnhận ⚫ Có sự thông báo khi truyền dữ liệu đến phần tử nhận. Sau khi kết thúc việc truyền nhận thì đóng kết nối 27
  28. Lớp ứng dụng ⚫ Định nghĩa các giao thức cho các ứng dụng mạng ⚫ Nhìn ở góc độ hệ điều hành, ứng dụng được hiểu như là các processes. Các giao thức lớp ứng dụng phải định nghĩa cách thức giao tiếp giữa các processes qua các vấn đề: – Định dạng của message –Thứ tự của các message trao đổi –Các công việc phải thực thi khi một process nhận hay truyềndữ liệu 28
  29. Lớp ứng dụng ⚫ Các ứng dụng mạng hoạt động theo mô hìnhclient/server –Server : là phần tử thụ động Chờ yêu cầu từ client, xử lý và trả kết quả cho client –Client : là phần tử chủ động Kết nối đến server để gởi yêu cầu. Chờ nhận kết quả trả về và xử lý kết quả. Vấn đề quan trọng khi lập trình các ứng dụng mạng là định nghĩa giao thức giữa client và server 29
  30. Dịch vụ mạng ⚫ Net service: chương trình ứng dụng thực hiện 1 tác vụ nào đó trên hệ thống mạng. ⚫ Một số dịch vụ mạng phổ biến: ⚫ Print service: In ấn trên mạng. ⚫ File service: chia sẻ file, dữ liệu, chương trình ⚫ Web service: cung cấp dịch vụ web. ⚫ Mail service: cung cấp dịch vụ thư tín điện tử. ⚫ Có nhiều mô hình để xây dựng dịch vụ mạng, nhưng cơ bản nhất là mô hình Client - Server. 30
  31. Mô hình Client / Server Phục vụ Xử lý Yêu cầu ⚫ Tạo ra 1 yêu cầu ⚫ Lắng nghe yêu cầu ⚫ Gửi yêu cầu qua Server ⚫ Nhận yêu cầu ⚫ Chờ Server xử lý ⚫ Xử lý yêu cầu ⚫ Nhận kết quả trả về và ⚫ Gửi kết quả trả về xử lý theo mục đích riêng cho Client Dạng thức của thông điệp phải tuân theo protocol của dịch vụ. 31
  32. Mô hình Client / Server ⚫ Mô hình Client-Server của dịch vụ WEB: Trình Trang Xử lý duyệt Web  Web Server file1.htm Web Client 32
  33. Mô hình Client / Server ⚫ Các chế độ giao tiếp: Chế độ giao tiếp nghẽn Chế độ giao tiếp không nghẽn 33
  34. Các kiểu kiến trúc chương trình ⚫ Chức năng của 1 chương trình ứng dụng: ⚫ Giao diện người dùng (User Interface): ⚫ Tương tác với người dùng ⚫ Nhập liệu, báo biểu, thông báo ra màn hình, ⚫ Dịch vụ nghiệp vụ (Business Rule): ⚫ Tính toán dữ liệu ⚫ Xử lý thông tin ⚫ Dịch vụ lưu trữ (Data Storage): ⚫ Lưu trữ dữ liệu ⚫ Truy vấn dữ liệu 34
  35. Các kiểu kiến trúc chương trình CLIENT SERVER Presentation Presentation Presentation Presentation Logic Logic Interfaces to Interfaces to Presentation GUI Presentation GUI Business Logic Business Logic Actual Program Actual Program Rules Application Communication Application Rules Database Logic Database Logic Interf aces to DBMS Interf aces to DBMS in Data Lay er in Data Lay er Data Data GOLDMAN: CSIS FIG. 01-11 Mô hình của 1 chương trình ứng dụng 35
  36. Các kiểu kiến trúc chương trình ⚫ Kiến trúc đơn tầng: User Interface ⚫ Sử dụng trên 1 máy tính Business Rule ⚫ Dễ cài đặt ⚫ Nhiều nhược điểm Data Storage Cần có kiến trúc mới – Client/Server 36
  37. Các kiểu kiến trúc chương trình ⚫ Kiến trúc 2 tầng (2-tiered): Client/Server kiểu Fat Client Client/Server kiểu Fat Server 37
  38. Các kiểu kiến trúc chương trình ⚫ Kiến trúc đa tầng (n tiered): ⚫ Thường gọi là Ứng dụng phân tán. ⚫ Mỗi thành phần có nhiệm vụ riêng. Middleware Application Database Client Server Server Mô hình Client/Server 3 tầng 38
  39. Các kiểu kiến trúc chương trình ⚫ So sánh kiến trúc 2 tầng và kiến trúc 3 tầng của Database Logic TIER 3 TIER ứng dụng MAINFRAMES SUPER-SERVERS Database Business Logic Logic Database Logic 2 TIER Business Middleware SERVERS Logic DEPARTMENTAL DEPARTMENTAL Business Logic Presentation Logic Presentation Logic Presentation 1 TIER Logic CLIENTS Fat Client Fat Server TWO-TIERED THREE-TIERED ARCHITECTURE ARCHITECTURES GOLDMAN: CSIS FIG. 01-24 39
  40. Socket Programming ⚫ Sockets ⚫ Điểm giao tiếp giữa máy tính và mạng ⚫ Được dùng để gửi và nhận dữ liệu ⚫ Được hỗ trợ bỡi nhiều hệ thống và ngôn ngữ lập trình ⚫ Phân loại: Server (passive) socket, client (active) socket và UDP socket sockets (end points) logical connection 40
  41. Socket API ⚫ Đượcgiới thiệu ở BSD 4.1 UNIX, 1981 ⚫ Được ứng dụng khởi tạo, sử dụng hay hủy bỏ ⚫ Dùng cơ chế client/server ⚫ Cung cấp hai dịch vụ chuyển dữ liệu thông qua socket API: ⚫ unreliable datagram ⚫ reliable, byte stream-oriented 41
  42. Các loại socket 42
  43. Ports ⚫ TCP và UDP sử dụng P o port để xác định server TCP r Client chương trình sẽ nhận t dữ liệu khi đến 1 máy tính app app app app port port port port TCP or UDP Packet 43 Data port# data
  44. Ports ⚫ Port là 1 con số nguyên ⚫ Một số port đã được dành riêng cho các dịch vụ mạng phổ biến: ⚫ ftp 21/tcp ⚫ telnet 23/tcp ⚫ smtp 25/tcp ⚫ login 513/tcp ⚫ Nên dùng giáo trị lớn hơn 1024 44
  45. Sockets and Ports agreed port socket any port socket message client server other ports Internet address = 138.37.94.248 Internet address = 138.37.88.249
  46. Lập trình Socket với TCP ⚫ Client phải kết nối đến server –server process phải chạy trước(phần tử thụ động) –server phải tạo một socket để lắng nghe và chấp nhận các kết nối từ client ⚫ Client kết nối đến server bằngcách: –Khởi tạoTCP socket ở local –Xác định IP address, port number của server process và kết nối đến 46
  47. Lập trình Socket với TCP ⚫ Sau khi client khởi tạo socket, nósẽ thiết lập kết nối đến server ⚫ Khi server nhận yêu cầu kết nối, nó sẽ chấp nhận yêu cầu và khởi tạo socket mới để giao tiếp với client. – Cho phép server chấp nhận nhiều client tại một thời điểm. 47
  48. TCP Protocol
  49. Lập trình Socket với UDP ⚫ Sau khi client khởi tạo socket, nósẽ thiết lập kết nối đến server ⚫ Khi server nhận yêu cầu kết nối, nó sẽ chấp nhận yêu cầu và khởi tạo socket mới để giao tiếp với client. – Cho phép server chấp nhận nhiều client tại một thời điểm. 49
  50. Lập trình Socket với UDP ⚫ Cung cấp cơ chế truyền không tin cậy các nhóm các byte (datagrams) giữa client và server. ⚫ Không cần thiết lập kết nối giữa client với server. ⚫ Sender phải gởi kèm địa chỉ IP và port đích ⚫ Server khi nhận dữ liệu sẽ phân tích địachỉ của sender để truyền lại. 50
  51. UDP Protocol