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.. TCP/IP là một
Trang 2Truyề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.
Trang 3Cơ 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
Trang 4Cơ 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) 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.
Trang 5Mô hình OSI
Trang 6Mô hình OSI
Trang 8Mạ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:
Trang 9 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)
Trang 10Transport (TCP, UDP, )
Network (IP, ) Link (device driver, )
Trang 11Nhữ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
Trang 12Mạ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
Transport (TCP, UDP, )
Network (IP, ) Link (device driver, )
Trang 13Mạ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
Transport (TCP, UDP, )
Network (IP, ) Link (device driver, )
Trang 14 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ý
Trang 15Mạng Internet với TCP/IP
Trang 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ý
Trang 17Đóng gói dữ liệu trong TCP/IP
Trang 18Lớ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
Trang 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
Trang 20Một số địa chỉ IP đặc biệt
Trang 22 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
Trang 23Lớ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
Trang 25Port Addresses
Trang 26 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
Trang 27 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
Trang 28Lớ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
Trang 30Dị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.
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.
Trang 31Mô hình Client / Server
Xử lý Yêu cầu
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
Trang 32Mô hình Client / Server
Trang 33Mô hình Client / Server
Các chế độ giao tiếp:
Trang 34Cá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
Trang 35Các kiểu kiến trúc chương trình
Interfaces to Presentation GUI
Business Logic
Actual Program Rules
Trang 36Các kiểu kiến trúc chương trình
Kiến trúc đơn tầng:
User Interface Business Rule Data Storage
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
Trang 37Cá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
Trang 38Cá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.
Client
Application Server Database Server
Middleware
Trang 39Các kiểu kiến trúc chương trình
Database Logic
Database Logic Business Logic
Presentation Logic Presentation Logic
Business Logic Database Logic
Trang 40Socket 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)
Trang 41Socket 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ỏ
Trang 42Các loại socket
Trang 43t Client
TCP
port port port port
Trang 44 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:
Trang 45Sockets and Ports
other ports
Trang 46Lập trình Socket với TCP
–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
–Khởi tạoTCP socket ở local
–Xác định IP address, port number của server
Trang 47– Cho phép server chấp nhận nhiều client tại một thời điểm.
Trang 48TCP Protocol
Trang 49Lậ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.
Trang 50Lậ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.
Trang 51UDP Protocol