Mô hình Client - Server• Ưu điểm: – Khả năng quản lý các thao tác tại server – Khả năng quản lý các thao tác tại client – Đồng bộ dữ liệu tại client – Đồng bộ các phiên bản client • Khuy
Trang 2Nội dung
• Mô hình Client - Server.
• 7 tầng OSI và họ giao thức TCP/IP.
• TCP và UDP
• Lập trình TCP, UDP Socket với NET framework
• Lập trình TCP, UDP nâng cao với NET
Trang 3Mô hình Client - Server
Phương pháp lập trình hướng đối
tượng - lightmoon9 3
Trang 4Mô hình Client - Server
• Ưu điểm:
– Khả năng quản lý các thao tác tại server
– Khả năng quản lý các thao tác tại client
– Đồng bộ dữ liệu tại client
– Đồng bộ các phiên bản client
• Khuyết điểm:
– Sử dụng tài nguyên xử lý trên server
– Phát triển hệ thống phức tạp
– Triển khai hệ thống cần môi trường mạng
Phương pháp lập trình hướng đối
tượng - lightmoon9 4
Trang 5Mô hình Client - Server
• Các loại hệ thống ứng dụng:
– Hệ thống web
– Hệ thống Server-Client App
• App có thể là win app, web app, mobi app
Phương pháp lập trình hướng đối
tượng - lightmoon9 5
Trang 6Nội dung
• Mô hình Client - Server.
• 7 tầng OSI và họ giao thức TCP/IP.
• TCP và UDP
• Lập trình TCP, UDP Socket với NET framework
• Lập trình TCP, UDP nâng cao với NET
Trang 77 tầng OSI và họ giao thức TCP/IP
Phương pháp lập trình hướng đối
tượng - lightmoon9 7
Trang 87 tầng OSI và họ giao thức TCP/IP
• Cung cấp kiến thức về hoạt động của kết nối liên mạng
• Đưa ra trình tự công việc để thiết lập và thực hiện một giao thức cho kết nối của các thiết bị trên mạng
• Các thuận lợi:
– Chia nhỏ các hoạt động phức tạp của mạng thành các
phần công việc đơn giản
– Cho phép nhà thiết kế có khả năng phát triển trên từng module chức năng
– Cung cấp khả năng định nghĩa các chuẩn giao tiếp có tính tương thích cao “plug and play” và tích hợp nhiều nhà
cung cấp sản phẩm
Phương pháp lập trình hướng đối
tượng - lightmoon9 8
Trang 97 tầng OSI và họ giao thức TCP/IP
Phương pháp lập trình hướng đối
tượng - lightmoon9 9
Trang 107 tầng OSI và họ giao thức TCP/IP
Phương pháp lập trình hướng đối
tượng - lightmoon9 10
Trang 117 tầng OSI và họ giao thức TCP/IP
Phương pháp lập trình hướng đối
tượng - lightmoon9 11
Trang 127 tầng OSI và họ giao thức TCP/IP
Phương pháp lập trình hướng đối
tượng - lightmoon9 12
Trang 137 tầng OSI và họ giao thức TCP/IP
Phương pháp lập trình hướng đối
tượng - lightmoon9 13
Trang 14Nội dung
• Mô hình Client - Server.
• 7 tầng OSI và họ giao thức TCP/IP.
• TCP và UDP
• Lập trình TCP, UDP Socket với NET framework
• Lập trình TCP, UDP nâng cao với NET
Trang 15TCP-UDP Socket
Phương pháp lập trình hướng đối
tượng - lightmoon9 15
Trang 16TCP-UDP Socket
Phương pháp lập trình hướng đối
tượng - lightmoon9 16
Trang 17TCP-UDP Socket
Phương pháp lập trình hướng đối
tượng - lightmoon9 17
Trang 18TCP-UDP Socket
Multiplexing dùng nhiều cổng Có Chỉ số cổng nhận dạng duy
nhất một tiến trình trên máy gửi
và máy nhận
- Giống như TCP
Truyền dữ liệu tuần tự Có TCP tái sắp xếp bất kỳ dữ liệu
nào nhận sai thứ tự Không UDP không có khái niệm sắp xếp dữ liệu Truyền tin cậy Có TCP công nhận dữ liệu, gửi
lại những phân đoạn bị mất
Các trường sequence và ACK trong TCP header
Không hỗ trợ
Kiểm soát dòng Có TCP dùng các cửa sổ trượt
để kiểm tra các cửa sổ của máy gửi.
Không
Connection Có Quá trình bắt tay 3 lần thiết lập
quá trình khởi động cổng Phi kết nối Kiểu giao thức của IP 6 17
Phương pháp lập trình hướng đối
tượng - lightmoon9 18
Trang 19TCP-UDP Socket
Phương pháp lập trình hướng đối
tượng - lightmoon9 19
Trang 20TCP - Transmission Control Protocol
TCP và UDP là 2 giao thức ở tầng giao vận và cùng sử dụng giao
thức IP trong tầng mạng Nhưng không giống như UDP, TCP cung cấp dịch vụ liên kết tin cậy và có liên kết
Có liên kết ở đây có nghĩa là 2 ứng dụng sử dụng TCP phải thiết lập liên kết với nhau trước khi trao đổi dữ liệu
Sự tin cậy trong dịch vụ được cung cấp bởi TCP được thể hiện như sau:
• Dữ liệu từ tầng ứng dụng gửi đến được được TCP chia thành các segment có kích thước phù hợp nhất để truyền đi
• Khi TCP gửi 1 segment, nó duy trì một thời lượng để chờ phúc đáp từ trạm nhận Nếu trong khoảng thời gian đó phúc đáp
không tới được trạm gửi thì segment đó được truyền lại.
• Khi TCP trên trạm nhận nhận dữ liệu từ trạm gửi nó sẽ gửi tới trạm gửi 1 phúc đáp tuy nhiên phúc đáp không được gửi lại
ngay lập tức mà thường trễ một khoảng thời gian
Phương pháp lập trình hướng đối
tượng - lightmoon9 20
Trang 21TCP - Transmission Control Protocol
Sự tin cậy (tt) :
• TCP duy trì giá trị tổng kiểm tra (checksum) trong phần
Header của dữ liệu để nhận ra bất kỳ sự thay đổi nào trong quá trình truyền dẫn Nếu 1 segment bị lỗi thì TCP ở phía trạm nhận sẽ loại bỏ và không phúc đáp lại để trạm gửi truyền lại segment bị lỗi đó.
• Giống như IP datagram, TCP segment có thể tới đích một cách không tuần tự Do vậy TCP ở trạm nhận sẽ sắp xếp lại dữ liệu
và sau đó gửi lên tầng ứng dụng đảm bảo tính đúng đắn của
dữ liệu
• TCP cung cấp khả năng truyền dữ liệu một cách an toàn giữa các máy trạm trong hệ thống các mạng Nó cung cấp thêm các chức năng nhằm kiểm tra tính chính xác của dữ liệu khi đến
và bao gồm cả việc gửi lại dữ liệu khi có lỗi xảy ra
Phương pháp lập trình hướng đối
tượng - lightmoon9 21
Trang 22TCP – Hoạt động của giao thức
Phương pháp lập trình hướng đối
tượng - lightmoon9 22
Trang 23TCP – Hoạt động của giao thức
Phương pháp lập trình hướng đối
tượng - lightmoon9 23
Trang 24TCP – Pha1 : thiết lập kết nối
Phương pháp lập trình hướng đối
tượng - lightmoon9 24
Trang 25TCP – Pha2: Truyền dữ liệu
Phương pháp lập trình hướng đối
tượng - lightmoon9 25
Trang 26TCP – Pha2: Truyền dữ liệu
Phương pháp lập trình hướng đối
tượng - lightmoon9 26Quá trình khôi phục lỗi
Trang 27TCP – Pha3: Kết thúc kết nối
Phương pháp lập trình hướng đối
tượng - lightmoon9 27
Trang 28TCP - Header
Phương pháp lập trình hướng đối
tượng - lightmoon9 28
Trang 29TCP - Header
Phương pháp lập trình hướng đối
tượng - lightmoon9 29
Trang 30TCP - Header
Phương pháp lập trình hướng đối
tượng - lightmoon9 30
Trang 31TCP - Header
Phương pháp lập trình hướng đối
tượng - lightmoon9 31
Trang 32TCP - Header
Phương pháp lập trình hướng đối
tượng - lightmoon9 32
Trang 33Phương pháp lập trình hướng đối
tượng - lightmoon9 33
Trang 34Phương pháp lập trình hướng đối
tượng - lightmoon9 34
Trang 35Phương pháp lập trình hướng đối
tượng - lightmoon9 35
Trang 36Nội dung
• Mô hình Client - Server.
• 7 tầng OSI và họ giao thức TCP/IP.
• TCP và UDP
• Lập trình TCP, UDP Socket với NET framework
• Lập trình TCP, UDP nâng cao với NET
Trang 37Lập trình TCP, UDP socket
Phương pháp lập trình hướng đối
tượng - lightmoon9 37
Trang 38Lập trình TCP, UDP socket
Phương pháp lập trình hướng đối
tượng - lightmoon9 38
Trang 39Lập trình TCP socket
Phương pháp lập trình hướng đối
tượng - lightmoon9 39
Trang 40Lập trình TCP , UDP socket
Phương pháp lập trình hướng đối
tượng - lightmoon9 40
Trang 41Lập trình TCP , UDP socket
Phương pháp lập trình hướng đối
tượng - lightmoon9 41
Trang 42Lập trình TCP socket – Ví dụ
Phương pháp lập trình hướng đối
tượng - lightmoon9 42
Trang 43Lập trình TCP socket – Ví dụ
Phương pháp lập trình hướng đối
tượng - lightmoon9 43
Trang 44Lập trình TCP socket – Ví dụ
Phương pháp lập trình hướng đối
tượng - lightmoon9 44
Trang 45Lập trình TCP socket – Ví dụ
Phương pháp lập trình hướng đối
tượng - lightmoon9 45
Trang 46Lập trình TCP socket – Ví dụ
Phương pháp lập trình hướng đối
tượng - lightmoon9 46
Trang 47Lập trình TCP socket – Ví dụ
Phương pháp lập trình hướng đối
tượng - lightmoon9 47
Trang 48Lập trình TCP, UDP socket – Sử dụng Stream
Phương pháp lập trình hướng đối
tượng - lightmoon9 48
Trang 49Lập trình TCP socket – Sử dụng Stream Vd1
Phương pháp lập trình hướng đối
tượng - lightmoon9 49
Trang 50Lập trình TCP socket – Sử dụng Stream Vd1
Phương pháp lập trình hướng đối
tượng - lightmoon9 50
Trang 51Lập trình TCP socket – Sử dụng Stream Vd2
Phương pháp lập trình hướng đối
tượng - lightmoon9 51
Trang 52Lập trình TCP socket – Sử dụng Stream Vd2
Phương pháp lập trình hướng đối
tượng - lightmoon9 52
Trang 53Lập trình TCP socket – Sử dụng Stream Vd2
Phương pháp lập trình hướng đối
tượng - lightmoon9 53
Trang 54Lập trình UDP Socket
Phương pháp lập trình hướng đối
tượng - lightmoon9 54
Trang 55Xem lại qui trình chạy TCP Socket
Phương pháp lập trình hướng đối
tượng - lightmoon9 55
Trang 56Xem lại qui trình chạy TCP Socket
Phương pháp lập trình hướng đối
tượng - lightmoon9 56
Trang 57Lập trình UDP Socket -Vd1
Phương pháp lập trình hướng đối
tượng - lightmoon9 57
Trang 58Lập trình UDP Socket -Vd1
Phương pháp lập trình hướng đối
tượng - lightmoon9 58
Trang 59Lập trình UDP Socket –Vd2 Chat – Có giao diện
Phương pháp lập trình hướng đối
tượng - lightmoon9 59
Mã nguồn xem trong file source đính kèm
Trang 60Lập trình UDP Socket –Vd2 Chat – Có giao diện
Phương pháp lập trình hướng đối
tượng - lightmoon9 60
Mã nguồn xem trong file source đính kèm
Trang 61Lập trình TCP, UDP socket – Sử dụng Stream
Phương pháp lập trình hướng đối
tượng - lightmoon9 61
Trang 62Nội dung
• Mô hình Client - Server.
• 7 tầng OSI và họ giao thức TCP/IP.
• TCP và UDP
• Lập trình TCP, UDP Socket với NET framework
• Lập trình TCP, UDP nâng cao với NET
Trang 63TCP: TCPListener & TCPClient
Trang 64TCP: TCPListener & TCPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 64
Trang 65TCP: TCPListener & TCPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 65
Trang 66TCP: TCPListener & TCPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 66
Trang 67TCP: TCPListener & TCPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 67
Trang 68TCP: TCPListener & TCPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 68
Trang 69TCP: TCPListener & TCPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 69
Trang 70TCP: TCPListener & TCPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 70
Trang 71TCP: TCPListener & TCPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 71
Trang 72TCP: TCPListener & TCPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 72
Trang 73TCP: TCPListener & TCPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 73
Trang 74Nội dung
• Mô hình Client - Server.
• 7 tầng OSI và họ giao thức TCP/IP.
• TCP và UDP
• Lập trình TCP, UDP Socket với NET framework
• Lập trình TCP, UDP nâng cao với NET
Trang 75UDP: UDPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 75
Trang 76UDP: UDPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 76
Trang 77UDP: UDPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 77
Trang 78UDP: UDPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 78
Trang 79UDP: UDPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 79
Trang 80UDP: UDPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 80
Trang 81UDP: UDPClient
Phương pháp lập trình hướng đối
tượng - lightmoon9 81
Trang 82Phương pháp lập trình hướng đối
tượng - lightmoon9 82
Trang 83Phương pháp lập trình hướng đối
tượng - lightmoon9 83
Trang 84Phương pháp lập trình hướng đối
tượng - lightmoon9 84
Trang 85Phương pháp lập trình hướng đối
tượng - lightmoon9 85
Trang 86Thread – Sử dụng thread trong các chương trình server
Phương pháp lập trình hướng đối
tượng - lightmoon9 86
Trang 87Thread – Sử dụng thread trong các chương trình server
Phương pháp lập trình hướng đối
tượng - lightmoon9 87
Trang 88Thread – Sử dụng thread trong các chương trình server
Phương pháp lập trình hướng đối
tượng - lightmoon9 88
Trang 89Thread – Sử dụng thread trong các chương trình server
Phương pháp lập trình hướng đối
tượng - lightmoon9 89
Trang 90Thread – ThreadPool – Chia sẻ dữ liệu giữa các thread
• Sinh viên tự xem phần này trong tài liệu đính kèm
Phương pháp lập trình hướng đối
tượng - lightmoon9 90
Trang 91Thảo luận mô hình chương trình chat
• Thảo luận về 2 loại hệ thống chat
– Sử dụng TCP
– Sử dụng UDP
Phương pháp lập trình hướng đối
tượng - lightmoon9 91
Trang 92tượng - lightmoon9