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.
50 trang |
Chia sẻ: lylyngoc | Lượt xem: 1760 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Tổng quan về Mạng máy tính và Lập trình mạng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
* 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 * 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. * Cơ chế giao tiếp liên quá trình Phân loại: * 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. * Mô hình OSI Mô hình OSI đầy đủ: Mô hình OSI gồm 7 tầng * 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 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ẽ. * * 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 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) * * Mạng TCP/IP Tầng ứng dụng Standard apps HTTP FTP Telnet User apps Tầng vận chuyển TCP UDP Programming Interface: Sockets Tầng mạng IP Tầng kết nối Device drivers TCP/IP Stack Application (http,ftp,telnet,…) Transport (TCP, UDP,..) Network (IP,..) Link (device driver,..) 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 * * Mạng TCP/IP TCP (Transport Control 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 tính. Ví dụ: HTTP FTP Telnet TCP/IP Stack Application (http,ftp,telnet,…) Transport (TCP, UDP,..) Network (IP,..) Link (device driver,..) * Mạng TCP/IP UDP (User Datagram 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 là datagrams từ máy này sang máy khác. Ví dụ: Clock server Ping TCP/IP Stack Application (http,ftp,telnet,…) Transport (TCP, UDP,..) Network (IP,..) Link (device driver,..) 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ý * Mạng Internet với TCP/IP * Đó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ý * Đóng gói dữ liệu trong TCP/IP * 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 * Đị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 * Một số địa chỉ IP đặc biệt * Lớp Transport Có 2 dạng dịch vụ: TCP (Tranmission Control Protocol) UDP (User Datagram Protocol) * 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 * 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 * 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) * Port Addresses * 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 * 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 * 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 * 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 * * 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. * Mô hình Client / Server Xử lý Yêu cầu Phục vụ Lắng nghe yêu cầu Nhận yêu cầu Xử lý yêu cầu Gửi kết quả trả về cho Client Tạo ra 1 yêu cầu Gửi yêu cầu qua Server Chờ Server xử lý Nhận kết quả trả về và xử lý theo mục đích riêng Dạng thức của thông điệp phải tuân theo protocol của dịch vụ. * Mô hình Client / Server Web Client Web Server Yêu cầu Phục vụ file1.htm Trình duyệt Trang Web Xử lý Mô hình Client-Server của dịch vụ WEB: * 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 * 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 * Các kiểu kiến trúc chương trình Mô hình của 1 chương trình ứng dụng * Các kiểu kiến trúc chương trình Kiến trúc đơn tầng: Sử dụng trên 1 máy tính Dễ cài đặt Nhiều nhược điểm Cần có kiến trúc mới – Client/Server * 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 * 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. Mô hình Client/Server 3 tầng Client Application Server Database Server Middleware * 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 ứng dụng * 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 logical connection sockets (end points) 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 * Các loại socket * * Ports TCP và UDP sử dụng port để xác định chương trình sẽ nhận dữ liệu khi đến 1 máy tính server Port Client TCP TCP or UDP port port port port app app app app port# data Data Packet * 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 Sockets and Ports 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 * 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. * TCP Protocol 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. * 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. * UDP Protocol