Bố cục báo cáo. Chương 1: Cơ sở lý thuyếtChương này trình bày tổng quan về hội nghị trực tuyến, bao gồm các khái niệm,các thành phần, và các yêu cầu.Chương 2: Phân tích và thiết kế hệ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT – HÀN KHOA KHOA HỌC MÁY TÍNH
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT – HÀN KHOA KHOA HỌC MÁY TÍNH
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN
………
………
………
………
………
………
………
………
………
………
Đà Nẵng, tháng 12 năm 2023
Giảng viên hướng dẫn
TS Lê Tân
Trang 4LỜI CẢM ƠN
Để bài tập lớn môn học Lập trình mạng này đạt kết quả tốt đẹp, chúng em đãnhận được sự hỗ trợ nhiệt tình của thầy Với tình cảm sâu sắc, chân thành, cho phépchúng em được bày tỏ lòng biết ơn sâu sắc đến thầy TS Lê Tân đã tạo điều kiện giúp
đỡ chúng em trong quá trình học tập và quá trình nghiên cứu và phát triển đề tài Với
sự quan tâm, dạy dỗ, chỉ bảo tận tình và chu đáo của thầy, đến nay chúng em đã có thểhoàn thành đề tài và bài báo cáo bài tậ lớn môn học Mạng máy tính này trong thời gianqua
Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế, bài báo cáo bài tậplớn này khó tránh khỏi 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ô để có thể bổ sung, sữa chữa sai sót và trao dồi thêmkinh nghiệm, phục vụ tốt hơn cho công tác thực tế sau này
Em xin chân thành cảm ơn!
Trang 5MỤC LỤC
LỜI CẢM ƠN i
DANH MỤC VIẾT TẮT iv
DANH MỤC HÌNH ẢNH v
MỞ ĐẦU 1
1 Giới thiệu 1
2 Mục tiêu nhiệm vụ 1
3 Đóng góp của đề tài 1
4 Nội dung và kế hoạch thực hiện 2
5 Bố cục báo cáo 2
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 3
1.1 Eclipse 3
1.1.1 Lý thuyết về Eclipse 3
1.2 Sơ lược về ngôn ngữ lập trình Java 3
1.2.1 Java là gì? 3
1.2.2 Tại sao nên chọn Java? 4
1.3 Giới thiệu về lập trình mạng 5
1.4 Sự ra đời và phát triển của mạng máy tính 5
1.5 Tổng quan về tạo nên chương trình áp dụng mạng máy tính 6
1.6 Các kiến thức dành cho lập trình mạng 8
1.6.1 Kiến thức cơ bản về mạng 8
1.7 Kiến trúc mạng máy tính 9
1.7.1 Đặc điểm chính của kiến trúc mạng 9
1.7.2 Loại hình kiến trúc mạng 9
1.7.3 Kiến trúc mạng lớp (Layered Network Architecture) 9
1.8 Tổng quan về mạng TCP/IP 10
1.8.1 Lịch sử hình thành 10
1.8.2 Định nghĩa 10
1.8.3 Nguyên lý hoạt động của mô hình mạng TCP/IP 11
1.8.4 Các giao thức TCP/IP phổ biến 12
1.8.5 Ưu nhược điểm 12
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 14
2.1 Yêu cầu chức năng 14
2.2 Kiến trúc hệ thống với TCP/IP 14
Trang 62.3 Quản lý kết nối và luồng dữ liệu: 14
2.4 Biểu đồ phân rã chức năng 15
2.5 Biểu đồ use-case tổng quát 15
2.6 Đặc tả use-case chi tiết cho từng chức năng 15
2.6.1 Đặc tả use-case quản lý kết nối 15
2.6.2 Đặc tả use-case chia sẻ màn hình 16
2.6.3 Đặc tả use-case điều khiển từ xa: 17
2.7 Biểu đồ tuần tự 17
2.8 Biểu đồ hoạt động 19
CHƯƠNG 3: CÀI ĐẶT VÀ KẾT QUẢ THỬ NGHIỆM 20
3.1 Thuật toán chương trình điều khiển máy tính từ xa 20
3.2 Kết quả 21
KẾT LUẬN 22
TÀI LIỆU THAM KHẢO 23
Trang 7DANH MỤC VIẾT TẮT
IDE Integrated Development Environment
TCP/IP Transmission Control Protocol/Internet Protocol
Trang 8DANH MỤC HÌNH ẢNH
Hình 1 1 Mô phỏng giao thức TCP/IP 11
Hình 1 2 Các tầng trong mô hình TCP/IP 11
Hình 2 1 Biểu đồ phân rã chức năng 15
Hình 2 2 Biểu đồ Use-case 15
Hình 2 3 Biểu đồ tuần tự 18
Hình 2 4 Biểu đồ hoạt động 19
Hình 3 1 Máy đích cấp quyền 21
Hình 3 2 Máy tính điều khiển nhập IP 21
Trang 9MỞ ĐẦU
1 Giới thiệu.
Trong thời đại ngày nay, làn sóng phát triển của công nghệ không chỉ là một xuhướng mà còn là một sức mạnh vô cùng mạnh mẽ, tác động đến mọi khía cạnh củacuộc sống con người Điều này không chỉ là một biểu hiện của sự tiến bộ, mà còn làmột nhu cầu ngày càng tăng của con người đối với những giải pháp hiện đại và tiệních
Nhìn chung, nhu cầu về công nghệ ngày càng cao không chỉ là sự mong đợi về
sự thuận tiện trong cuộc sống hàng ngày mà còn là yêu cầu về sự kết nối và truy cậpthông tin một cách nhanh chóng và linh hoạt Vậy nên Em quyết định phân tích vàthiết kế chương trình điều khiển máy tính từ xa
Để hoàn thành được đồ án này, Em xin cảm ơn TS Lê Tân - Giảng viên
Trường Đại Học CNTT&TT Việt Hàn đã giúp đỡ và chỉ dạy tận tình để em hoàn thành
đề tài này
2 Mục tiêu nhiệm vụ.
Thiết kế xây dựng được chương trình điều khiển máy tính từ xa đơn giản theo
mô hình mạng TCP/IP, đáp ứng các yêu cầu sau:
- Giao diện bắt mắt, dễ dàng sử dụng và phù hợp với mọi người dùng sử dụng
- Chương trình dễ tương tác dễ sử dụng, đáp ứng được nhu cầu của người dùng,
dễ dàng tiếp cận, nhằm đáp ứng cho việc truy cập máy tính, hỗ trợ kỹ thuật vàlàm việc từ xa
1
Trang 10- Về mặt cá nhân thì việc nghiên cứu và phát triển đề tài giúp bản thân phát triểnhơn về kĩ năng lập trình cũng như khả năng tư duy, góp phần lớn cho việc tuyểndụng cũng như tìm kiếm việc làm sau này.
4 Nội dung và kế hoạch thực hiện
Để đạt được mục tiêu đề ra, đề tài sẽ thực hiện theo các nội dung sau:
- Nghiên cứu tổng quan về Remote Desktop và mô hình mạng TCP/IP
- Thiết kế và triển khai ứng dụng điều khiển máy tính từ xa theo mô hình mạngTCP/IP
- Đánh giá chất lượng ứng dụng
5 Bố cục báo cáo.
Chương 1: Cơ sở lý thuyết
Chương này trình bày tổng quan về hội nghị trực tuyến, bao gồm các khái niệm,các thành phần, và các yêu cầu
Chương 2: Phân tích và thiết kế hệ thống
Chương này phân tích các yêu cầu và thiết kế hệ giao diện hệ thống, công nghệliên quan đến việc xây dựng ứng dụng điều khiển máy tính từ xa theo mô hình mạngTCP/IP
Chương 3: Cài đặt và kết quả thử nghiệm
Chương này trình bày về thuật toán, môi trường cài đặt và kết quả
2
Trang 11CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Eclipse
1.1.1 Lý thuyết về Eclipse
Eclipse là một môi trường phát triển tích hợp (IDE - Integrated DevelopmentEnvironment) mã nguồn mở được sử dụng chủ yếu để phát triển ứng dụng Java, nhưngcũng hỗ trợ nhiều ngôn ngữ lập trình khác thông qua các plugin IDE này được pháttriển bởi Eclipse Foundation, một tổ chức phi lợi nhuận quản lý và phát triển nhiều dự
án mã nguồn mở khác nhau
Eclipse cung cấp một loạt các tính năng hỗ trợ phát triển phần mềm, bao gồm:
- Editor mã nguồn: Cho phép bạn viết mã nguồn với nhiều ngôn ngữ lậptrình
- Debugger: Giúp theo dõi và sửa lỗi trong mã nguồn của bạn
- Quản lý phiên bản: Hỗ trợ tích hợp với các hệ thống quản lý phiên bảnnhư Git
- Kiểm thử và triển khai: Cung cấp các công cụ để kiểm thử và triển khaiứng dụng
- Hỗ trợ plugin: Cho phép tích hợp nhiều plugin mở rộng, giúp hỗ trợnhiều ngôn ngữ lập trình và nền tảng khác nhau
Eclipse không chỉ được sử dụng cho phát triển Java, mà còn cho nhiều ngônngữ khác nhau nhờ vào khả năng mở rộng của nó thông qua các plugin Nó là mộttrong những IDE phổ biến và được sử dụng rộng rãi trong cộng đồng phần mềm mãnguồn mở và phát triển ứng dụng
1.2 Sơ lược về ngôn ngữ lập trình Java.
1.2.1 Java là gì?
Java là một ngôn ngữ đa nền tảng, điều này có nghĩa là bạn có thể viết mã mộtlần và chạy ở nhiều nền tảng khác nhau mà không cần thay đổi mã nguồn Điều nàyđạt được thông qua JVM, làm cho Java trở thành một lựa chọn lập trình linh hoạt chocác dự án có yêu cầu di động cao
3
Trang 12Java được thiết kế với nguyên tắc hướng đối tượng, giúp tổ chức mã nguồn mộtcách rõ ràng và tái sử dụng mã dễ dàng hơn Người lập trình Java có thể sử dụng cáckhái niệm như đối tượng, lớp, kế thừa và đa hình để xây dựng các ứng dụng phức tạp.
Java sử dụng mô hình quản lý bộ nhớ tự động, giúp giảm áp lực cho lập trìnhviên khi quản lý bộ nhớ JVM có trách nhiệm tự động thu gom rác, giúp người lậptrình tránh được nhiều vấn đề liên quan đến quản lý bộ nhớ thủ công
Java chú trọng vào an toàn và bảo mật, có các tính năng như kiểm soát truy cập
và quản lý bộ nhớ để ngăn chặn các vấn đề bảo mật phổ biến như tràn bộ đệm
Java đi kèm với một loạt các API và thư viện mạnh mẽ, giúp lập trình viên tiếtkiệm thời gian và công sức khi phát triển ứng dụng Cộng đồng Java cũng phát triển vàduy trì nhiều thư viện mở rộng
1.2.2 Tại sao nên chọn Java?
Đa Nền Tảng và Linh Hoạt:
- Java là ngôn ngữ lập trình đa nền tảng, có thể chạy trên nhiều hệ điều hành khácnhau mà không cần biên dịch lại
- Linh hoạt cho các dự án có yêu cầu di động và tương thích với nhiều môitrường
Hướng Đối Tượng và Cấu Trúc Mạnh Mẽ:
- Java sử dụng hướng đối tượng, giúp tổ chức mã nguồn một cách rõ ràng và tái
Phong Phú API và Thư Viện Mạnh Mẽ:
- Java đi kèm với nhiều API và thư viện mạnh mẽ, giúp giảm thời gian và côngsức khi phát triển ứng dụng
4
Trang 13 Hỗ Trợ Đa Luồng và Hiệu Suất:
- Cung cấp công cụ và thư viện hỗ trợ đa luồng, giúp xử lý hiệu quả nhiều côngviệc cùng một lúc
sự kết nối toàn cầu, lập trình mạng đóng vai trò quan trọng trong việc hỗ trợ các ứngdụng trực tuyến, dịch vụ điện toán đám mây, và Internet of Things (IoT)
Ngành lập trình mạng bao gồm nhiều khía cạnh, từ thiết kế và triển khai hạ tầngmạng đến phát triển ứng dụng và giao thức liên mạng Lập trình viên mạng chịu tráchnhiệm xây dựng những hệ thống mạng linh hoạt, an toàn và hiệu quả, đồng thời giữcho chúng hoạt động ổn định và đáp ứng đòi hỏi ngày càng cao về tốc độ và khả năng
mở rộng
Các chủ đề quan trọng trong lập trình mạng bao gồm bảo mật mạng, quản lýbăng thông, tối ưu hóa hiệu suất, và triển khai các dịch vụ mạng như DNS, DHCP, vàVPN Lập trình viên mạng cũng phải theo dõi và áp dụng các tiêu chuẩn và giao thứcnhư TCP/IP, SNMP, và OSI để đảm bảo sự tương thích và tính chuẩn mực trong cácmôi trường mạng phức tạp
Với sự bùng nổ của Internet và sự phổ cập của các thiết bị di động, lập trìnhmạng không chỉ đóng vai trò trong việc kết nối máy tính mà còn mở ra những tháchthức mới và cơ hội sáng tạo Điều này thúc đẩy sự phát triển liên tục của kiến thức và
kỹ năng trong lĩnh vực này, làm cho lập trình mạng trở thành một ngành nghề đầy tiềmnăng và quan trọng trong thế giới công nghệ ngày nay
1.4 Sự ra đời và phát triển của mạng máy tính
5
Trang 14Lịch sử lập trình mạng và mạng máy tính bắt đầu từ những năm đầu của thế kỷ
20 và đã phát triển mạnh mẽ qua các giai đoạn khác nhau, đồng hành với sự tiến bộcủa công nghệ và yêu cầu ngày càng tăng về kết nối toàn cầu:
1 Những Năm Đầu (1950-1970): Những năm này đánh dấu sự bắt đầu của lậptrình mạng, tập trung chủ yếu vào việc phát triển các mô hình kết nối máy tính đầutiên UNIVAC I, máy tính đầu tiên sản xuất hàng loạt, đã có khả năng kết nối với cácthiết bị ngoại vi khác Cùng với đó, ARPANET - mạng máy tính đầu tiên - đã đượctriển khai vào cuối thập kỷ 1960 bởi Bộ Quốc phòng Hoa Kỳ (DoD), tạo ra nền tảngcho sự phát triển của Internet
2 Era Điều Khiển Quản Lý (1970-1980): Sự xuất hiện của giao thức TCP/IP vàonhững năm 1970 đánh dấu bước tiến lớn trong việc phát triển mạng Nó đã giúp tạonên mô hình OSI, một kiến trúc tiêu chuẩn để hiểu và triển khai mạng máy tính Tronggiai đoạn này, nghiên cứu về mạng máy tính tập trung vào việc nghiên cứu và triểnkhai các giao thức và các mô hình kết nối
3 Sự Phổ Cập và Sự Ra Đời Của Internet (1980-1990): Thập kỷ này chứng kiến
sự phổ cập của mạng máy tính và sự mở rộng của Internet Sự ra đời của World WideWeb (WWW) vào cuối thập kỷ 1980 đã mở ra một kỷ nguyên mới, tăng cường sự kếtnối giữa người dùng và thông tin trên toàn cầu
4 Kỷ Nguyên Internet và Mạng Máy Tính (1990-2000): Internet phát triển mạnh
mẽ và trở thành một phần không thể thiếu trong đời sống hàng ngày Các giao thức vàngôn ngữ như HTML và HTTP đã được phát triển để hỗ trợ việc truyền tải thông tinqua Internet Mô hình client-server trở nên phổ biến, tăng cường khả năng tương tácgiữa người dùng và các dịch vụ trực tuyến
5 Kỷ Nguyên Mạng Di Động và Cloud (2000-nay): Sự bùng nổ của thiết bị diđộng và sự phổ biến của công nghệ đám mây đã thách thức và làm thay đổi cáchchúng ta xây dựng và quản lý mạng máy tính Mô hình phân tán và sự linh hoạt trongquản lý mạng đã trở thành ưu tiên hàng đầu
Ngày nay, lịch sử lập trình mạng và mạng máy tính tiếp tục phát triển, với sựxuất hiện của các công nghệ mới như Internet of Things (IoT), 5G, và sự mở rộng củatrí tuệ nhân tạo (AI), mang lại những thách thức và cơ hội mới cho cộng đồng lập trìnhmạng
1.5 Tổng quan về tạo nên chương trình áp dụng mạng máy tính
6
Trang 15Việc tạo ra các chương trình về lập trình mạng là một quá trình phức tạp và đòihỏi sự hiểu biết sâu rộng về cả mạng máy tính và kỹ thuật lập trình Dưới đây là mộtphân tích chi tiết hơn về các khía cạnh quan trọng của quá trình này:
1 Hiểu Rõ Về Mạng Máy Tính:
Kiến Thức Về Giao Thức và Tiêu Chuẩn: Lập trình viên mạng cần phảihiểu rõ về các giao thức mạng như TCP/IP, UDP, DNS, DHCP và các tiêu chuẩn nhưOSI để hiểu cách thông tin được truyền tải và quản lý qua mạng
Bảo Mật Mạng: Hiểu biết về bảo mật mạng là quan trọng, bao gồm cácphương pháp mã hóa, chứng thực và quản lý rủi ro
2 Ngôn Ngữ Lập Trình:
Ngôn Ngữ Đặc Biệt Cho Lập Trình Mạng: Có nhiều ngôn ngữ lập trình
mà lập trình viên mạng thường sử dụng, bao gồm Python, Java, C++, và Ruby Mỗingôn ngữ có những ưu điểm và ứng dụng đặc biệt trong lập trình mạng
3 Chuẩn Bị Dữ Liệu và Giao Thức Liên Kết:
Chuẩn Bị Dữ Liệu: Các chương trình lập trình mạng thường phải xử lý
và truyền tải dữ liệu
Giao Thức Liên Kết An Toàn: Sự hiểu biết về giao thức liên kết an toànnhư SSL/TLS là quan trọng để đảm bảo tính bảo mật trong truyền tải dữ liệu
4 Quản Lý Mạng và Tương Tác Từ Xa:
Quản Lý Mạng Từ Xa: Việc phát triển chương trình quản lý và tương tác
từ xa đòi hỏi khả năng hiểu rõ về cách kết nối và quản lý máy tính từ xa thông quagiao thức như SSH (Secure Shell)
5 Kiểm Thử và Gỡ Lỗi:
Kiểm Thử Mạng: Chương trình lập trình mạng cần phải được kiểm thử
kỹ lưỡng để đảm bảo tính ổn định và an toàn Điều này bao gồm kiểm thử hiệu suất,kiểm thử bảo mật và kiểm thử tích hợp
Gỡ Lỗi Mạng: Kỹ năng gỡ lỗi mạng là quan trọng để xác định và sửa lỗikhi chương trình không hoạt động như mong đợi
6 Tài Liệu Hóa và Bảo Trì:
Tài Liệu Hóa: Việc viết tài liệu chi tiết và rõ ràng về cách chương trìnhhoạt động là quan trọng để người sử dụng và nhóm hỗ trợ hiểu rõ về ứng dụng
7
Trang 16 Bảo Trì: Cập nhật và bảo trì chương trình để đảm bảo tính tương thíchvới các phiên bản mới của hệ điều hành, thư viện và công nghệ mạng.
Tạo ra các chương trình về lập trình mạng đòi hỏi sự kết hợp của kiến thứcvững về mạng máy tính, kỹ năng lập trình chuyên sâu và khả năng thích nghi với các
xu hướng và thách thức mới trong lĩnh vực công nghệ mạng
1.6 Các kiến thức dành cho lập trình mạng
Lập trình mạng đòi hỏi lập trình viên phải có một kiến thức sâu rộng về mạngmáy tính, giao thức liên mạng, bảo mật, và các khái niệm cơ bản về phần cứng và phầnmềm mạng Dưới đây là một danh sách chi tiết về các kiến thức quan trọng cho lậptrình mạng:
1.6.1 Kiến thức cơ bản về mạng
Kiến Thức Về Giao Thức và Tiêu Chuẩn:
o TCP/IP Protocol Suite: Hiểu biết sâu rộng về giao thức TCP/IP, bao gồm cáctầng như Application, Transport, Internet, và Link
o UDP và TCP: Hiểu về sự khác biệt giữa UDP (User Datagram Protocol) vàTCP (Transmission Control Protocol), cũng như ứng dụng của chúng trong các trườnghợp khác nhau
o IPv4 và IPv6: Kiến thức về cả hai phiên bản địa chỉ IP là quan trọng, với khảnăng làm việc với cả địa chỉ IPv4 dạng chấm và IPv6 dạng hai-chấm
Cấu Trúc và Địa Chỉ IP:
o Subnetting và Supernetting: Hiểu về quy trình chia mạng thành các subnet nhỏhơn (subnetting) và kết hợp các mạng thành một mạng lớn hơn (supernetting)
o Routing Protocols: Hiểu về các giao thức định tuyến như OSPF, EIGRP, vàBGP, và cách chúng tương tác để xây dựng bảng định tuyến