Mục tiêu của đề tài là xây dựng một ứng dụng chat và chia sẻ file sử dụng mô hình P2P và giao thức TCP, nhằm cải thiện hiệu suất giao tiếp và chia sẻ dữ liệu giữa các người dùng trong mô
Trang 1VÀ TRUYỀN THÔNG VIỆT HÀN
KHOA KHOA HỌC MÁY TÍNH
BÀI TẬP ĐỒ ÁN MÔN HỌC LẬP TRÌNH MẠNG
ĐỀ TÀI:
SỬ DỤNG GIAO THỨC TCP VÀ MÔ HÌNH P2P ĐỂ XÂY DỰNG ỨNG DỤNG CHAT VÀ
CHIA SẺ FILE
Sinh viên: ĐẶNG SỸ HOÀI NAM - 22IT.140
ĐOÀN MINH ĐĂNG
Lớp : 22IRB
Giảng viên hướng dẫn: THS NGUYỄN THANH CẨM
Đà Nẵng, tháng 10 năm 2024
Trang 2MỞ ĐẦU
Trong thời đại công nghệ thông tin hiện nay, giao tiếp và chia sẻ dữ liệu trở
thành nhu cầu thiết yếu trong các hoạt động hàng ngày của con người Các ứng dụng chat và chia sẻ file trực tuyến đóng vai trò quan trọng trong việc kết nối mọi người, từ công việc đến giải trí Tuy nhiên, việc phụ thuộc vào các máy chủ trung gian trong những ứng dụng này đôi khi gây ra vấn đề về hiệu suất, bảo mật
truyền.
Mục tiêu của đề tài là xây dựng một ứng dụng chat và chia sẻ file sử dụng mô hình P2P và giao thức TCP, nhằm cải thiện hiệu suất giao tiếp và chia sẻ dữ liệu giữa các người dùng trong môi trường mạng Hệ thống sẽ hỗ trợ người dùng gửi tin nhắn và chia sẻ các file với nhau một cách nhanh chóng và bảo mật, đồng
thời giảm thiểu sự phụ thuộc vào các máy chủ trung gian.
Lý do chọn đề tài này là vì sự tiện lợi và tính thực tiễn của mô hình P2P trong việc xây dựng các ứng dụng kết nối người dùng trực tiếp với nhau, đặc biệt là trong các tình huống cần truyền tải dữ liệu lớn như file video, hình ảnh hay tài liệu Sử dụng giao thức TCP giúp đảm bảo tính ổn định và độ tin cậy của hệ
thống, đồng thời đáp ứng nhu cầu bảo mật cao trong các ứng dụng hiện đại.
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Đà Nẵng, ngày…tháng…năm 2024
Giảng viên hướng dẫn
ThS.Nguyễn Thanh Cẩm
Trang 4LỜI CẢM ƠN
- Để dự án này đạt kết quả tốt đẹp, em đã nhận được sự hỗ trợ, giúp đỡ của thầy cô Với tình cảm sâu sắc, chân thành, cho phép chúng em được bày tỏ lòng biết ơn sâu sắc đến tất cả quý thầy cô đã tạo điều kiện giúp đỡ trong quá trình học tập và nghiên cứu và phát triển đề tài
- Trước hết chúng em xin gửi tới các thầy cô trường Đại học Công nghệ thông tin và truyền thông Việt – Hàn lời chào trân trọng, lời chúc sức khỏe và lời cảm ơn sâu sắc Với sự quan tâm, dạy dỗ, chỉ bảo tận tình chu đáo của các giảng viên đã truyền tải các kĩ năng cần thiết, đến nay chúng em đã có thể hoàn thành bài tập lớn
- Đặc biệt chúng em xin gửi lời cảm ơn chân thành nhất tới thầy giáo
THS Nguyễn Thanh Cẩm đã quan tâm giúp đỡ, giúp đỡ tận tình chúng em hoàn thành tốt đồ án này trong thời gian qua.
- Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế, đồ án này không thể tránh được những thiếu sót Chúng em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các thầy cô để chúng em có điều kiện bổ sung, nâng cao
ý thức của mình, phục vụ tốt hơn cho công tác thực tế sau này.
Chúng em xin chân thành cảm ơn!
Trang 5MỤC LỤC
MỞ ĐẦU 1
CHƯƠNG 1: SƠ LƯỢC VỀ LẬP TRÌNH MẠNG 1
1 Khái niệm về lập trình mạng 1
1.1 Định nghĩa lập trình mạng 1
1.2 Ứng dụng của lập trình mạng trong thực tế 1
2 Các mô hình mạng 2
2.1 Mô hình 7 tầng OSI và mô hình 4 tầng TCP/IP: 2
2.1.1 Mô hình 7 tầng OSI: 2
2.1.2 Mô hình TCP/IP (4 tầng): 3
3 Các giao thức mạng 4
3.1 Giao thức TCP (Transmission Control Protocol): 4
3.2 Giao thức UDP (User Datagram Protocol): 4
3.3 Một số giao thức khác: 5
4 Sơ lược về các công nghệ sử dụng trong đồ án 6
4.1 Ngôn ngữ lập trình Java 6
4.2 MySQL 6
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG ỨNG DỤNG 8
2 Giới thiệu dự án 8
2.1 Giới thiệu về hệ thống quản lý tour du lịch 8
2.2 Yêu cầu chức năng cho hệ thống đăng ký tour 9
2.3 Tổng quan về giao thức TCP 9
2.4 Phân tích thiết kế hệ thống 11
2.5 Biểu đồ use case tổng quát 14
Hình 1:Biểu đồ use case tổng quát 15
Hình 2:Biểu đồ hoạt động UC đăng nhập 16
Hình 3: Biểu đồ trình tự UC đăng nhập 17
Hình 4: Biểu đồ hoạt động đăng kí tài khoản 18
Hình 5: Biểu đồ trình tự cho chức năng đăng kí tài khoản 19
Hình 6: Biểu đồ hoạt động cho UC đăng xuất 19
Hình 7: Biểu đồ trình tự cho UC đăng xuất 20
Hình 8: Biểu đồ hoạt động chức năng tìm kiếm tour 21
Hình 9:Biểu đồ trình tự chức năng tìm kiếm tour 22
Hình 10: Biểu đồ hoạt động UC thêm tour mới 23
Trang 6Hình 11: Biểu đồ trình tự UC thêm tour mới 24
Hình 12: Biểu đồ hoạt động của UC Tạo mới tài khoản cho người quản lý 25
Hình 13: Biểu đồ trình tự của UC Tạo mới tài khoản cho người quản lý 26
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG 27
Hình 14: Giao diện đăng nhập người dùng 27
Hình 15: Giao diện danh sách tour 28
Hình 16: Giao diện đặt tour 29
Hình 17: Giao diện thông tin người dùng 30
KẾT LUẬN 31
DANH MỤC TÀI LIỆU THAM KHẢO 33
Trang 7DANH MỤC HÌNH ẢNH
Trang 8CHƯƠNG 1: SƠ LƯỢC VỀ LẬP TRÌNH MẠNG
1 Khái niệm về lập trình mạng.
1.1 Định nghĩa lập trình mạng.
Lập trình mạng là quá trình phát triển các ứng dụng phần mềm có khả năng giao tiếp và trao đổi dữ liệu giữa các thiết bị qua mạng máy tính Nó liên quan đến việc sử dụng các giao thức và giao diện mạng để thực hiện truyền thông giữa các hệ thống hoặc ứng dụng khác nhau, thông qua các kết nối như mạng nội bộ (LAN) hoặc mạng diện rộng (WAN) bao gồm Internet
Trong lập trình mạng, các máy tính thường sử dụng các giao thức truyền thông như
TCP/IP, UDP, HTTP, để đảm bảo rằng dữ liệu được gửi đi đúng đích, đúng thứ tự,
o Giao tiếp thông qua các giao thức như HTTP/HTTPS, lập trình mạng
giúp việc truy cập và tải nội dung từ web server
2 Ứng dụng chat và nhắn tin:
o Các ứng dụng chat như WhatsApp, Messenger, Skype dựa trên lập
trình mạng để gửi tin nhắn và thực hiện các cuộc gọi video/thoại qua Internet
o Các giao thức TCP, UDP, hoặc WebSocket được sử dụng để đảm bảo
tốc độ và độ ổn định của kết nối
3 Thư điện tử (Email):
o Dịch vụ email như Gmail, Outlook cũng là ứng dụng của lập trình mạng Chúng sử dụng các giao thức như SMTP, IMAP, POP3 để gửi và
nhận email giữa các máy chủ và thiết bị
4 Trò chơi trực tuyến (Online gaming):
o Các trò chơi trực tuyến như League of Legends, PUBG, Minecraft yêu
cầu khả năng giao tiếp liên tục giữa nhiều người chơi trên các máy khác nhau qua mạng Lập trình mạng được sử dụng để quản lý các kết nối đa người chơi, đồng bộ hóa các hành động và sự kiện trong trò chơi
5 Hệ thống phân tán:
o Lập trình mạng đóng vai trò quan trọng trong các hệ thống phân tán, nơi các thành phần phần mềm chạy trên các máy khác nhau nhưng hoạt động
Trang 9như một hệ thống duy nhất Các ứng dụng này bao gồm microservices,
cloud computing, và các hệ thống quản lý dữ liệu lớn.
6 Ứng dụng quản lý từ xa:
o Các ứng dụng như Remote Desktop, SSH, VPN sử dụng lập trình mạng
để kết nối từ xa đến một máy tính khác qua mạng, giúp người dùng điều khiển hoặc quản lý thiết bị từ xa
7 Các ứng dụng IoT (Internet of Things):
o Lập trình mạng cũng là cơ sở cho các ứng dụng IoT, nơi các thiết bị như cảm biến, camera, và hệ thống nhà thông minh (smart home) có thể giao tiếp với nhau hoặc với một server qua mạng Internet
8 Streaming và truyền tải dữ liệu đa phương tiện:
o Các dịch vụ Netflix, Spotify, YouTube sử dụng lập trình mạng để
truyền phát video, âm thanh qua mạng với chất lượng cao, đồng thời tối
ưu hóa tốc độ và độ trễ thông qua các giao thức như HTTP Live
Streaming (HLS), Real-Time Streaming Protocol (RTSP).
2 Các mô hình mạng.
2.1 Mô hình 7 tầng OSI và mô hình 4 tầng TCP/IP:
2.1.1 Mô hình 7 tầng OSI:
Mô hình OSI (Open Systems Interconnection) là một khung tham chiếu gồm 7
tầng, được phát triển bởi ISO (International Organization for Standardization),
nhằm chuẩn hóa các giao thức mạng và xác định cách các hệ thống mạng giao tiếp với nhau Mỗi tầng có một chức năng cụ thể và độc lập
Các tầng của mô hình OSI:
2 Tầng Liên kết dữ liệu (Data Link Layer):
o Chức năng: Đảm bảo dữ liệu được truyền đi một cách chính xác qua liên kết vật lý, bao gồm đóng gói dữ liệu vào các khung (frames) và phát hiệnlỗi trong quá trình truyền
o Ví dụ: MAC Address, giao thức Ethernet, Switch
3 Tầng Mạng (Network Layer):
o Chức năng: Định tuyến các gói dữ liệu giữa các thiết bị trong mạng, quản lý địa chỉ IP, đảm bảo gói tin đến đúng đích
o Ví dụ: IP Address, Router, giao thức IP (Internet Protocol)
4 Tầng Giao vận (Transport Layer):
o Chức năng: Đảm bảo việc truyền tải dữ liệu một cách tin cậy, quản lý việc kiểm soát lưu lượng và phát hiện lỗi trong quá trình truyền dữ liệu
Trang 10o Ví dụ: Giao thức TCP (Transmission Control Protocol), UDP (User Datagram Protocol).
5 Tầng Phiên (Session Layer):
o Chức năng: Quản lý các phiên làm việc, bao gồm việc thiết lập, duy trì,
và kết thúc các phiên giao tiếp giữa các thiết bị
o Ví dụ: RPC (Remote Procedure Call), giao thức NetBIOS
6 Tầng Trình diễn (Presentation Layer):
o Chức năng: Chuyển đổi dữ liệu giữa các định dạng khác nhau để hệ thống có thể hiểu, như mã hóa, nén dữ liệu, giải mã
o Ví dụ: SSL/TLS, mã hóa dữ liệu, chuyển đổi định dạng dữ liệu
7 Tầng Ứng dụng (Application Layer):
o Chức năng: Cung cấp các giao diện cho người dùng và ứng dụng giao tiếp với mạng, cho phép truy cập các dịch vụ mạng như email, web, và truyền tệp
o Ví dụ: HTTP, FTP, SMTP, DNS
2.1.2 Mô hình TCP/IP (4 tầng):
Mô hình TCP/IP (Transmission Control Protocol/Internet Protocol) là một khung tham chiếu thực tế được sử dụng rộng rãi trong các hệ thống mạng như Internet Nóđơn giản hơn mô hình OSI, gồm 4 tầng chính, và là nền tảng của Internet hiện đại
Các tầng của mô hình TCP/IP:
1 Tầng Liên kết (Link Layer):
o Chức năng: Quản lý kết nối vật lý giữa các thiết bị trong mạng, đóng gói
và truyền dữ liệu thông qua liên kết vật lý, tương tự tầng Vật lý và Liên kết dữ liệu trong mô hình OSI
o Ví dụ: Ethernet, Wi-Fi, ARP (Address Resolution Protocol)
2 Tầng Internet (Internet Layer):
o Chức năng: Định tuyến các gói dữ liệu trên mạng, đảm bảo rằng chúng được gửi đến đúng địa chỉ IP đích Tầng này xử lý việc gán địa chỉ và phân đoạn gói tin khi cần
o Ví dụ: IP (Internet Protocol), ICMP (Internet Control Message Protocol),ARP (Address Resolution Protocol)
3 Tầng Giao vận (Transport Layer):
o Chức năng: Đảm bảo việc truyền dữ liệu một cách đáng tin cậy hoặc không đáng tin cậy giữa các thiết bị, tương tự như tầng Giao vận trong OSI Giao thức TCP đảm bảo truyền tải dữ liệu tin cậy, trong khi UDP cho phép truyền không tin cậy nhưng nhanh hơn
o Ví dụ: TCP (Transmission Control Protocol), UDP (User Datagram Protocol)
Trang 113 Các giao thức mạng.
3.1 Giao thức TCP (Transmission Control Protocol):
TCP là một giao thức hướng kết nối, đảm bảo tính tin cậy và chính xác của dữ liệu khi
truyền tải qua mạng TCP thực hiện quá trình "bắt tay ba bước" (three-way handshake) trước khi truyền dữ liệu, tạo một kết nối logic giữa client và server Sau đây là một số đặc điểm chính:
a) Đảm bảo tin cậy: TCP đảm bảo tất cả các gói tin được gửi đi sẽ đến đúng thứ
tự, không bị mất mát hay trùng lặp Nếu xảy ra lỗi, TCP sẽ tự động phát hiện và yêu cầu gửi lại
b) Kiểm soát luồng: TCP quản lý tốc độ truyền dữ liệu dựa trên khả năng nhận dữ
liệu của thiết bị đích, tránh tình trạng quá tải
c) Kiểm soát lỗi: TCP sử dụng các cơ chế kiểm tra lỗi (checksum) để phát hiện lỗi
trong quá trình truyền tải và đảm bảo dữ liệu được truyền đi chính xác
d) Ứng dụng: TCP phù hợp cho các ứng dụng yêu cầu tính tin cậy cao như email
(SMTP), truyền tệp (FTP), và trình duyệt web (HTTP/HTTPS)
Lý do chọn TCP/IP cho đồ án của bạn:
Tin cậy cao: Trong đồ án của bạn, nơi truyền tải dữ liệu (email, chat, đăng ký môn
học) cần phải đảm bảo dữ liệu không bị mất hoặc sai lệch, TCP sẽ là sự lựa chọn tốt
để đảm bảo điều này
Đảm bảo thứ tự: TCP đảm bảo rằng tất cả các dữ liệu sẽ đến đúng thứ tự, phù hợp
cho các ứng dụng cần duy trì thứ tự tin nhắn, file truyền tải
Quản lý lưu lượng: Với việc điều chỉnh tốc độ truyền dữ liệu, TCP tránh gây nghẽn
băng thông, làm cho ứng dụng ổn định hơn
3.2 Giao thức UDP (User Datagram Protocol):
UDP là giao thức không hướng kết nối, ưu tiên tốc độ hơn tính tin cậy UDP
không thực hiện bắt tay kết nối, không kiểm soát lỗi, không đảm bảo dữ liệu được truyền đúng thứ tự hay không bị mất Các đặc điểm chính:
Không tin cậy: Không có cơ chế đảm bảo dữ liệu được gửi thành công
hay nhận được đầy đủ.
Tốc độ cao: UDP cho phép truyền dữ liệu nhanh hơn so với TCP do
không có kiểm soát luồng và lỗi.
Ứng dụng: UDP thường được sử dụng cho các ứng dụng yêu cầu tốc độ
cao, có thể chấp nhận một số gói tin bị mất hoặc không cần đảm bảo toàn vẹn dữ liệu, như video streaming (YouTube, Zoom), game trực tuyến.
Trang 12Không chọn UDP cho đồ án của bạn vì nó không đảm bảo độ tin cậy và tính
chính xác của dữ liệu, điều này là rất quan trọng trong các ứng dụng như chat hoặc đăng ký môn học.
3.3 Một số giao thức khác:
A HTTP (HyperText Transfer Protocol):
Chức năng: Giao thức truyền tải siêu văn bản, được sử dụng rộng rãi để truyền
tải các tài liệu web như HTML, CSS, hình ảnh
Cơ chế hoạt động: Là giao thức không trạng thái (stateless), mỗi yêu cầu từ
client đến server là một phiên riêng lẻ
Ứng dụng: HTTP là nền tảng cho việc truy cập web, giúp tải các trang web lên
trình duyệt
B FTP (File Transfer Protocol):
Chức năng: Giao thức FTP được sử dụng để truyền tải các tệp tin giữa máy
client và server
Cơ chế hoạt động: FTP thiết lập kết nối bằng TCP, đảm bảo quá trình truyền
tải tệp tin được thực hiện một cách an toàn và chính xác
Ứng dụng: FTP thường được sử dụng cho việc tải lên/tải xuống tệp tin lớn giữa
các máy chủ và thiết bị người dùng
C DNS (Domain Name System):
Chức năng: DNS là giao thức chuyển đổi giữa tên miền (domain name) và địa
chỉ IP Khi người dùng nhập một URL (ví dụ: www.google.com), DNS sẽ dịch tên miền thành địa chỉ IP để trình duyệt có thể truy cập được máy chủ của trang web
Cơ chế hoạt động: DNS sử dụng cả TCP và UDP UDP thường được sử dụng
cho các truy vấn thông thường vì tốc độ cao, trong khi TCP được sử dụng cho các phản hồi dữ liệu lớn
Ứng dụng: DNS là nền tảng của Internet, giúp con người dễ dàng truy cập các
trang web mà không cần nhớ địa chỉ IP
4 Sơ lược về các công nghệ sử dụng trong đồ án
4.1 Ngôn ngữ lập trình Java
java.net:
ServerSocket: Dùng cho server để lắng nghe và chấp nhận kết nối từ client
thông qua một cổng (port) nhất định
Socket: Tạo kết nối giữa client và server, cho phép truyền dữ liệu hai chiều
giữa chúng
InetAddress: Để xử lý địa chỉ IP, cung cấp các phương thức để lấy địa chỉ IP
từ tên miền hoặc máy tính
DatagramSocket và DatagramPacket: Sử dụng trong giao tiếp UDP để gửi và
nhận các gói tin không kết nối
java.io:
Trang 13 InputStream và OutputStream: Được sử dụng để đọc và ghi dữ liệu theo
luồng byte
BufferedReader và PrintWriter: Hỗ trợ đọc và ghi dữ liệu theo định dạng ký
tự, giúp xử lý dữ liệu văn bản dễ dàng hơn
4.2 MySQL
Giới thiệu về cơ sở dữ liệu sử dụng trong đồ án
Cơ sở dữ liệu là thành phần quan trọng giúp lưu trữ và quản lý thông tin trong các ứng dụng Trong đồ án của bạn, cơ sở dữ liệu có thể được sử dụng để lưu trữ dữ liệu người dùng (như tài khoản, thông tin đăng nhập, các hoạt động), quản lý các giao dịch liên quan đến việc đăng ký môn học, hay lưu lại lịch sử tin nhắn, thông tin đăng ký nhóm trong chương trình chat
Cơ sở dữ liệu quan hệ (RDBMS) như MySQL là một lựa chọn phổ biến, vì nó có khả năng lưu trữ dữ liệu theo các bảng có quan hệ với nhau, hỗ trợ truy vấn mạnh mẽ với ngôn ngữ SQL, đồng thời có tính toàn vẹn và bảo mật cao MySQL là một hệ quản trị
cơ sở dữ liệu mã nguồn mở, được sử dụng rộng rãi nhờ tính linh hoạt, dễ triển khai và tích hợp tốt với các ứng dụng Java
Thư viện JDBC để kết nối Java với MySQL
JDBC (Java Database Connectivity) là một thư viện trong Java, cung cấp giao diện tiêu chuẩn để kết nối và tương tác với cơ sở dữ liệu quan hệ, như MySQL JDBC cho phép ứng dụng Java thực hiện các thao tác như kết nối đến cơ sở dữ liệu, thực hiện cáctruy vấn SQL, và thao tác với dữ liệu một cách dễ dàng
- ResultSet: Lưu trữ kết quả trả về từ một truy vấn SQL
- PreparedStatement: Cho phép thực hiện các truy vấn SQL với tham số, giúp cải thiệnhiệu năng và bảo mật
JDBC giúp ứng dụng của bạn dễ dàng thao tác với cơ sở dữ liệu, từ việc thêm, sửa, xóa dữ liệu cho đến truy xuất thông tin cần thiết để thực hiện các chức năng như đăng
ký, đăng nhập, quản lý người dùng trong đồ án
Trang 14CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG ỨNG DỤNG
2 Giới thiệu dự án
2.1 Giới thiệu về hệ thống quản lý tour du lịch
Hệ thống quản lý tour du lịch là một ứng dụng cho phép người dùng dễ dàng tìm kiếm,đặt và quản lý các tour du lịch thông qua một giao diện thân thiện Hệ thống cung cấp các tính năng để người dùng có thể xem và lựa chọn tour du lịch, cũng như quản lý cácthao tác liên quan đến việc đặt tour
Tóm tắt các chức năng của hệ thống:
1 Đăng nhập:
- Người dùng phải đăng nhập vào hệ thống với tài khoản cá nhân của mình Điều nàyđảm bảo tính bảo mật và phân quyền cho từng loại người dùng khác nhau (du khách, quản trị viên)
2 Đặt tour:
- Người dùng (du khách) có thể chọn và đặt các tour du lịch mà họ quan tâm Hệ thống sẽ kiểm tra tính hợp lệ như số lượng chỗ trống còn lại trong mỗi tour, và các yêucầu đặc biệt nếu có
3 Hiển thị danh sách tour:
- Hệ thống cung cấp danh sách các tour du lịch sẵn có, bao gồm thông tin về tên tour,địa điểm, ngày khởi hành, số lượng chỗ trống, và giá tour
4 Lưu trữ và xử lý dữ liệu người dùng:
- Hệ thống quản lý thông tin người dùng như tài khoản, lịch sử đặt tour, và các thôngtin liên quan Tất cả dữ liệu này được lưu trữ trong cơ sở dữ liệu, và hệ thống sẽ xử lý
để đảm bảo các thao tác như đặt tour, hủy tour, và cập nhật thông tin tour được thực hiện chính xác
Việc hỗ trợ đa người dùng giúp hệ thống vận hành hiệu quả trong môi trường có quy
mô lớn, đáp ứng được nhu cầu truy cập cùng lúc của hàng trăm người dùng
2.2 Yêu cầu chức năng cho hệ thống đăng ký tour
1 Đăng nhập và xác thực người dùng
Trang 15- Hệ thống phải có chức năng cho phép người dùng đăng nhập với tên đăng nhập và mật khẩu cá nhân.
- Thông tin đăng nhập được xác thực với cơ sở dữ liệu, đảm bảo rằng người dùng cung cấp thông tin chính xác và hợp lệ
- Hệ thống cần bảo vệ thông tin người dùng qua các cơ chế bảo mật như mã hóa mật khẩu
- Sau khi đăng nhập thành công, người dùng có quyền truy cập vào các chức năng tương ứng, như xem và đặt tour
2 Tìm kiếm, xem và đặt tour:
Hệ thống cho phép người dùng tìm kiếm các tour dựa trên nhiều tiêu chí, như địa điểm, thời gian, và giá cả
- Người dùng có thể xem chi tiết thông tin về tour, bao gồm thời gian khởi hành, số lượng chỗ trống còn lại, và giá tour
- Sau khi tìm thấy tour phù hợp, người dùng có thể tiến hành đặt tour Hệ thống sẽ kiểm tra tính hợp lệ của việc đặt tour, chẳng hạn như số lượng chỗ trống còn lại
3 Quản lý danh sách tour đã đặt:
- Người dùng có thể xem danh sách các tour đã đặt trong thời gian gần nhất, kèm theo các thông tin chi tiết về tour như ngày khởi hành, địa điểm và giá cả
- Hệ thống cho phép người dùng hủy đặt tour nếu cần thiết, và điều chỉnh danh sách tour đã đặt sao cho tuân thủ quy định của công ty du lịch
- Danh sách này sẽ được lưu trữ trong cơ sở dữ liệu, đảm bảo dữ liệu luôn chính xác
và nhất quán giữa các phiên làm việc
4 Tương tác giữa client và server qua giao thức TCP/IP và RMI
- Hệ thống phải hỗ trợ giao tiếp giữa client và server thông qua giao thức TCP/IP, đảm bảo kết nối mạng ổn định và truyền dữ liệu an toàn giữa các thành phần của hệ thống
- Mô hình Client-Server đảm bảo rằng các yêu cầu từ người dùng như đăng nhập, tìm kiếm, và đặt tour sẽ được xử lý bởi server một cách hiệu quả và nhanh chóng
- Sự kết hợp giữa TCP/IP và mô hình Client-Server đảm bảo hệ thống hoạt động hiệu quả trong môi trường phân tán, cho phép nhiều người dùng truy cập và sử dụng các chức năng đồng thời mà vẫn đảm bảo hiệu năng và tính nhất quán dữ liệu
2.3 Tổng quan về giao thức TCP
2.3.1 Nguyên lý hoạt động của TCP:
TCP sử dụng mô hình kết nối
client-server Kết nối TCP yêu cầu 3 bước bắt
tay (three-way handshake) như sau:
1 Trước hết, giao thức TCP phía máy gửi
phải yêu cầu thiết lập một kênh truyền
Trang 16bằng cách gửi một phân đoạn (segment) gọi là SYN đến giao thức TCP phía máy nhận.
2 Giao thức TCP phía máy nhận trả lại một phân đoạn (segment) gọi là ACK để xác nhận đã nhận được thành công
3 Giao thức TCP phía máy gửi tiếp tục gửi một phân đoạn ACK để xác nhận và sau
đó là quá trình gửi dữ liệu
2.3.2 Khái niệm Client và Server
Client là gì:
-Client TCP là một thực thể gửi yêu cầu tới server thông qua giao thức
TCP
-Vai trò chính:
Thiết lập kết nối: Khởi tạo yêu cầu kết nối đến server bằng gói SYN
Truyền dữ liệu: Gửi dữ liệu đến server qua các gói TCP
Nhận dữ liệu: Chờ phản hồi từ server (thông qua các gói ACK hoặc
dữ liệu từ server)
Kết thúc kết nối: Gửi yêu cầu ngắt kết nối (gói FIN) khi hoàn tất
2.3.3 Server hoạt động như thế nào?
Server TCP là một ứng dụng hoặc thiết bị lắng nghe các yêu cầu
từ client trên một cổng cố định
Quy trình hoạt động:
1 Lắng nghe (Listen): Server luôn mở một socket để chờ yêu
cầu kết nối từ các client
2 Chấp nhận yêu cầu (Accept): Khi nhận được gói SYN từ
client, server gửi lại SYN-ACK để chấp nhận kết nối
3 Xử lý yêu cầu: Sau khi kết nối được thiết lập, server nhận
dữ liệu từ client, xử lý, và gửi phản hồi
4 Đóng kết nối: Sau khi hoàn tất, server gửi gói FIN để ngắt
kết nối
2.3.4 Cấu trúc gói tin TCP (RFC)
Trang 172.4 Phân tích thiết kế hệ thống
2.4.1 Sơ đồ kiến trúc hệ thống
Hệ thống quản lý tour du lịch được xây dựng theo kiến trúc phân tán với sự tương tác giữa client và server thông qua giao thức TCP/IP Mô hình này cho phép nhiều người dùng từ các client khác nhau có thể truy cập và thực hiện các thao tác trên server, đồngthời đảm bảo dữ liệu được xử lý và lưu trữ một cách tập trung
Mô tả kiến trúc phân tán:
1 Client:
- Giao diện người dùng (UI): Cung cấp các tính năng như đăng nhập, tìm kiếm, xem
và đặt tour Giao diện này nhận yêu cầu từ người dùng và gửi các yêu cầu này đến server
- TCP/IP Communication: Kết nối client với server sử dụng giao thức TCP/IP, đảm bảo việc truyền dữ liệu ổn định và an toàn
Lợi ích của kiến trúc phân tán:
- Tính mở rộng: Hệ thống có thể mở rộng để hỗ trợ nhiều người dùng đồng thời mà không gây quá tải cho một thiết bị cụ thể
Trang 18- Quản lý tập trung: Mọi dữ liệu đều được quản lý tập trung trên server, giúp duy trì tính nhất quán và toàn vẹn dữ liệu.
- Phân tán chức năng: Với giao thức TCP/IP, các yêu cầu có thể được xử lý từ xa, giảm tải cho client và giúp server thực hiện các chức năng một cách nhanh chóng
Giao tiếp giữa client và server:
- Client gửi yêu cầu: Người dùng gửi yêu cầu đăng nhập, tìm kiếm, hoặc đặt tour thông qua giao thức TCP/IP
Server nhận yêu cầu từ client, sau đó xử lý và thực hiện các tác vụ như tìm kiếm thông tin tour, đặt tour hoặc truy vấn cơ sở dữ liệu
- Trả kết quả về client: Sau khi xử lý, server trả kết quả về cho client thông qua giao thức TCP/IP
- Cơ sở dữ liệu: Mọi dữ liệu liên quan đến người dùng, tour du lịch và các giao dịch đều được lưu trữ và cập nhật trong cơ sở dữ liệu, đảm bảo tính nhất quán và toàn vẹn
Trang 191 Đăng nhập Chức năng này cho phép Người quản lý và Du
5 Quên mật khẩu Chức năng này cho phép Du khách đặt lại mật
khẩu khi quên mật khẩu.
6 Đặt tour du lịch Chức năng này cho phép Du khách đặt tour du
9 Đăng xuất | Chức năng này cho phép Người quản lý và Du
khách đăng xuất và xóa phiên.
Bảng 2: Danh sách ca sử dụng