Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 31

TRƯỜ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

LẬP TRÌNH MẠNG

ĐỀ TÀI: TÌM HIỂU XÂY DỰNG


CHƯƠNG TRÌNH ĐIỀU KHIỂN
MÁY TÍNH TỪ XA.

Sinh viên thực hiện : Cao Văn Tính - Mã SV: 21IT386


Võ Trọng Đạt - Mã SV: 21IT386

Giảng viên hướng dẫn : GV.TS Lê Tân

Đà Nẵng, tháng 12 năm 2023


TRƯỜ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

LẬP TRÌNH MẠNG

ĐỀ TÀI: TÌM HIỂU XÂY DỰNG


CHƯƠNG TRÌNH ĐIỀU KHIỂN
MÁY TÍNH TỪ XA.

Sinh viên thực hiện : Cao Văn Tính - Mã SV: 21IT386


Võ Trọng Đạt - Mã SV: 21IT386

Giảng viên hướng dẫn : GV.TS Lê Tân

Đà Nẵng, tháng 12 năm 2023


NHẬ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
LỜ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ép
chú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 gian
qua.

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ập
lớ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êm
kinh 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!

i
MỤ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

ii
2.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

iii
DANH MỤC VIẾT TẮT
IDE Integrated Development Environment
JMV Java Virtual Machine
TCP/IP Transmission Control Protocol/Internet Protocol

iv
DANH 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

v
MỞ ĐẦ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 xu
hướ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ủa
cuộ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ập
thô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.

3. Đóng góp của đề tài.

Dựa theo quá trình làm cũng như dự đoán, đề tài mà sẽ đạt được những kết quả
như sau:

- Về mặt chung thì đề tài sẽ xây dựng và phát triển được một chương trình giúp
người dùng có thể dễ dàng tiếp cận, giao diện thân thiện, có thể dễ dàng sử
dụng.
1
- 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ển
hơ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ển
dụ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ạng
TCP/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ạng
TCP/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
CHƯƠ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 Development
Environment) mã nguồn mở được sử dụng chủ yếu để phát triển ứng dụng Java, nhưng
cũ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át
triể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ập
trì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ản
như 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ôn
ngữ khác nhau nhờ vào khả năng mở rộng của nó thông qua các plugin. Nó là một
trong 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ột
lầ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

3
đạ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 cho
các dự án có yêu cầu di động cao.

Java được thiết kế với nguyên tắc hướng đối tượng, giúp tổ chức mã nguồn một
cá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ác
khá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ình
viên khi quản lý bộ nhớ. JVM có trách nhiệm tự động thu gom rác, giúp người lập
trì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ết
kiệ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ác
nhau 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ôi
trườ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
sử dụng mã dễ dàng hơn.
- Cấu trúc mạnh mẽ hỗ trợ phát triển ứng dụng lớn và phức tạp.
 Quản Lý Bộ Nhớ Tự Động:
- JVM quản lý bộ nhớ tự động, giảm gánh nặng của lập trình viên khi phải theo
dõi và giải phóng bộ nhớ thủ công.
 Bảo Mật và An Toàn:
- Java được thiết kế với các tính năng an toàn và bảo mật, giảm rủi ro về các vấn
đề như tràn bộ đệm và tấn công khác.
4
 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ông
sức khi phát triển ứng dụng.
 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ông
việc cùng một lúc.
- Cộng Đồng Mạnh Mẽ và Tài Nguyên Học:
- Java có một cộng đồng lớn và tích cực, cung cấp nhiều tài nguyên, diễn đàn, và
hỗ trợ trực tuyến.
 Ứng Dụng Rộng Rãi:
- Java được sử dụng rộng rãi trong nhiều lĩnh vực, từ phát triển ứng dụng di động
đến các hệ thống doanh nghiệp lớn.

1.3. Giới thiệu về lập trình mạng


Lập trình mạng là một lĩnh vực quan trọng trong ngành công nghiệp công nghệ
thông tin, tập trung vào việc phát triển và duy trì các hệ thống mạng để kết nối, truyền
thông và tương tác giữa các thiết bị và người dùng khác nhau. Được xem là lá cờ của
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 ứng
dụ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ầng
mạ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ách
nhiệ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ức
như TCP/IP, SNMP, và OSI để đảm bảo sự tương thích và tính chuẩn mực trong các
mô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ình
mạ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ách
thứ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à

5
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ềm
nă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
Lị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ập
trì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 đầu
tiê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ác
thiết bị ngoại vi khác. Cùng với đó, ARPANET - mạng máy tính đầu tiên - đã được
triể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ảng
cho 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ào
nhữ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ạo
nê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. Trong
giai đ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ển
khai 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 Wide
Web (WWW) vào cuối thập kỷ 1980 đã mở ra một kỷ nguyên mới, tăng cường sự kết
nố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 tin
qua Internet. Mô hình client-server trở nên phổ biến, tăng cường khả năng tương tác
giữ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ách
chú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 trong
quả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ủa
trí 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ình
mạng.
6
1.5 Tổng quan về tạo nên chương trình áp dụng mạng máy tính
Việ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à đòi
hỏ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ột
phâ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ải
hiể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ác
phươ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ỗi
ngô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àn
như 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 qua
giao 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ỗi
khi chương trình không hoạt động như mong đợi.
6. Tài Liệu Hóa và Bảo Trì:

7
 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ình
hoạt động là quan trọng để người sử dụng và nhóm hỗ trợ hiểu rõ về ứng dụng.
 Bảo Trì: Cập nhật và bảo trì chương trình để đảm bảo tính tương thích
vớ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ức
vữ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ạng
má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ần
mề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ập
trì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ác
tầ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ường
hợ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.
 Giao Thức DNS và DHCP:
o DNS (Domain Name System): Hiểu về cách DNS chuyển đổi tên miền sang địa
chỉ IP và quy trình hoạt động của các máy chủ DNS.
o DHCP (Dynamic Host Configuration Protocol): Kiến thức về cách DHCP cấp
phát động địa chỉ IP và cấu hình mạng cho các thiết bị trong mạng.
 Công Nghệ VPN và Bảo Mật Mạng:

8
o VPN (Virtual Private Network): Hiểu về cách VPN tạo một kênh an toàn trên
mạng công cộng để bảo vệ dữ liệu truyền tải.
o Firewalls và IDS/IPS: Hiểu về cách firewalls làm việc để lọc gói tin và cách hệ
thống phát hiện/tấn công intrusion giám sát và ngăn chặn các hành vi đe dọa.
Điều này giúp lập trình viên mạng có một cơ sở vững chắc, từ việc xử lý gói tin
tới quản lý địa chỉ IP và bảo mật mạng, làm cho họ trở thành những người chuyên
nghiệp và hiệu quả trong xây dựng và duy trì các hệ thống mạng.
1.7. Kiến trúc mạng máy tính
1.7.1 Đặc điểm chính của kiến trúc mạng
- Topologia Mạng: Xác định cách các thiết bị kết nối và tương tác với nhau. Các
topologia phổ biến bao gồm Bus, Star, Ring, Mesh, và Hybrid.
- Phương Pháp Truyền Tải: Xác định cách dữ liệu được truyền tải qua mạng, ví
dụ như truyền tải dựa trên điểm đến (point-to-point) hoặc broadcast.
- Kiểu Kết Nối: Xác định cách thiết bị kết nối với nhau, có thể là kết nối có dây
hoặc không dây..
1.7.2 Loại hình kiến trúc mạng

 Mô Hình Client-Server:
- Mô Tả: Có ít nhất hai thành phần chính là Client và Server. Client yêu cầu và
nhận dữ liệu từ Server.
- Ưu Điểm: Quản lý tập trung, an toàn.
- Nhược Điểm: Độ phức tạp khi quản lý và triển khai Server.

 Mô Hình Peer-to-Peer (P2P):


- Mô Tả: Các thiết bị kết nối trực tiếp và chia sẻ tài nguyên mà không cần Server
trung tâm.
- Ưu Điểm: Linh hoạt và dễ mở rộng.
- Nhược Điểm: Quản lý truy cập và bảo mật có thể phức tạp.

 Mô Hình Hybrid:
- Mô Tả: Kết hợp cả hai mô hình Client-Server và P2P để kết hợp ưu điểm của cả
hai.
- Ưu Điểm: Linh hoạt, có thể tối ưu hóa hiệu suất và bảo mật.

9
- Nhược Điểm: Đôi khi có thể phức tạp trong triển khai.
1.7.3 Kiến trúc mạng lớp (Layered Network Architecture)
- Mô Tả: Phân chia kiến trúc mạng thành các lớp chức năng khác nhau, mỗi lớp
có trách nhiệm riêng.
- Ưu Điểm: Dễ bảo trì, linh hoạt khi mở rộng, phân chia nhiệm vụ.
- Nhược Điểm: Có thể tăng độ trễ trong việc truyền thông.

1.8. Tổng quan về mạng TCP/IP


1.8.1. Lịch sử hình thành

Giao thức TCP/IP được phát triển từ những năm 1970 và đã trở thành giao thức
tiêu chuẩn cho ARPANET, mạng máy tính đầu tiên của Mỹ. Nó đã tiếp tục được sử
dụng và phát triển trong quá trình phát triển của Internet và trở thành giao thức mạng
chính cho việc truyền thông và giao tiếp giữa các thiết bị trên Internet.

1.8.2. Định nghĩa

Giao thức TCP/IP (Transmission Control Protocol/Internet Protocol) là một bộ


giao thức tiêu chuẩn được sử dụng rộng rãi trong mạng máy tính và Internet. Nó cung
cấp các quy tắc và quy định cho việc truyền và nhận dữ liệu giữa các thiết bị mạng
khác nhau trên một mạng lưới.

TCP/IP là một bộ giao thức mạng lớn bao gồm hai phần chính:

- TCP (Transmission Control Protocol): Đảm bảo truyền tải dữ liệu tin cậy và ổn
định giữa các thiết bị trên mạng. TCP chịu trách nhiệm chia nhỏ dữ liệu thành
các gói tin, gửi và nhận các gói tin này, và đảm bảo rằng các gói tin được nhận
đúng thứ tự và không bị mất.
- IP (Internet Protocol): Định địa chỉ IP cho các thiết bị trên mạng và định tuyến
dữ liệu giữa các mạng khác nhau. IP chịu trách nhiệm đóng gói các gói tin TCP
và định địa chỉ đích để chúng đến được đúng nơi.

10
Hình 1.1. Mô phỏng giao thức TCP/IP

Hình 1. 2. Các tầng trong mô hình TCP/IP

1.8.3. Nguyên lý hoạt động của mô hình mạng TCP/IP

Bộ giao thức TCP/IP sử dụng mô hình giao tiếp client – server. Trong đó, người
dùng (client) được cung cấp dịch vụ (như gửi trang web) bởi một máy chủ (server)
trong mạng.

11
TCP/IP là sự kết hợp giữa 2 giao thức như tên gọi. Trong đó, IP (Giao thức liên
mạng) có nhiệm vụ gửi các gói tin đến đích đã định sẵn. Quy trình hoạt động của IP là
thêm các thông tin chỉ đường vào các gói tin để chúng đến được đích quy định.

Và giao thức TCP (Giao thức truyền vận) đóng vai trò kiểm tra và đảm bảo sự
an toàn cho mỗi gói tin khi đi qua mỗi trạm. Khi giao thức TCP nhận thấy gói tin bị lỗi
trong quá trình truyền vận, một tín hiệu sẽ được phát ra và yêu cầu hệ thống máy chủ
gửi lại một gói tin khác. Quá trình hoạt động này sẽ được làm rõ hơn ở chức năng của
mỗi tầng trong mô hình TCP/IP trong phần dưới đây.

Tóm lại, mô hình TCP/IP tương đối khác so với mô hình mạng bảy lớp – Mô
hình tham chiếu hệ thống mở (Open Systems Interconnection – OSI). Mô hình OSI
được ra đời sau, xác định cách các ứng dụng có thể giao tiếp qua mạng.

1.8.4. Các giao thức TCP/IP phổ biến.

HTTP, HTTPS, FTP được coi là 3 giao thức TCP/IP được sử dụng phổ biến
nhất hiện nay.

- Giao thức HTTP: Mục đích sử dụng HTTP để truyền dữ liệu không an toàn
giữa một web client và một web server. Bạn có thể hiểu đơn giản rằng, một web
client (trình duyệt Internet trên máy tính) sẽ gửi một yêu cầu đến một web
server để xem một trang web. Sau khi tiếp nhận yêu cầu, máy chủ web xử lý và
gửi thông tin trang web về cho web client.
- Giao thức HTTPS: HTTPS là giao thức được sử dụng để truyền thông tin dữ
liệu bảo mật bởi 1 web client và 1 web server. Giao thức này được dùng để gửi
dữ liệu giao dịch thẻ tín dụng hoặc các dữ liệu cá nhân khác từ một web client
tới một web server.
- FTP: FTP là giao thức trao đổi file dùng giữa hai hoặc nhiều máy tính với qua
Internet. Nhờ FTP, dù đang ở xa, người dùng vẫn có thể truy cập vào máy chủ
để truyền hoặc nhận dữ liệu.

1.8.5. Ưu nhược điểm.

 Ưu điểm: Như đã đề cập ở trên, TCP/IP là một mô hình có tính thực tế cao.
Những đặc điểm nổi bật của nó có thể được kể đến như:

12
 Thiết lập kết nối giữa các loại máy tính khác nhau.
 Hoạt động độc lập với hệ điều hành.
 Hỗ trợ nhiều giao thức định tuyến.
 Kiến trúc client – server, khả năng mở rộng cao.
 Có thể hoạt động độc lập.
 Hỗ trợ nhiều giao thức định tuyến.
 Nhẹ, không gây nhiều áp lực với máy tính hay mạng.
 Nhược điểm: TCP/IP cũng có một số điểm hạn chế cần được khắc phục:
 Việc cài đặt khá phức tạp, khó để quản lý.
 Tầng transport không đảm bảo việc phân phối các gói tin.
 Các giao thức trong TCP/IP không dễ để có thể thay thế.
 Không tách biệt rõ ràng các khái niệm về dịch vụ, giao diện và giao thức.
Do đó nó không hiệu quả để mô tả các công nghệ mới trong mạng mới.Dễ
bị tấn công SYN – một kiểu tấn công từ chối dịch vụ.

13
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1. Yêu cầu chức năng.

 Độ Tin Cậy và Bảo Mật:

TCP/IP đảm bảo độ tin cậy thông qua việc sử dụng cơ chế xác nhận ACK, đồng
thời hỗ trợ các giao thức bảo mật như TLS/SSL để giữ an toàn dữ liệu.

 Xác Thực và Quản Lý Phiên:

Xác thực và quản lý phiên sử dụng các tính năng của TCP/IP để đảm bảo môi
trường làm việc an toàn và đáng tin cậy.

2.2. Kiến trúc hệ thống với TCP/IP

Hệ thống được thiết kế với sự tích hợp của TCP/IP, bao gồm cả mô-đun máy
chủ và client để tối ưu hóa hiệu suất và độ ổn định.

TCP/IP được kết hợp chặt chẽ vào cơ sở hạ tầng mạng, đảm bảo hiệu suất và độ
trễ tối thiểu.

2.3. Quản lý kết nối và luồng dữ liệu:

 Quản lý kết nối:

TCP/IP quản lý kết nối từ xa thông qua các bước xác nhận và duy trì trạng thái
kết nối liên tục.

Cơ chế xác nhận của TCP/IP giúp đảm bảo rằng dữ liệu được truyền tải một
cách chính xác và không bị mất mát.

 Luồng dữ liệu:

TCP/IP được tối ưu hóa để chia sẻ màn hình và điều khiển từ xa, tận dụng độ tin
cậy và khả năng điều chỉnh truyền thông của giao thức.

14
2.4. Biểu đồ phân rã chức năng.

Hình 2. 1. Biểu đồ phân rã chức năng

2.5. Biểu đồ use-case tổng quát.

Hình 2. 2. Biểu đồ Use-case

2.6. Đặc tả use-case chi tiết cho từng chức năng.


2.6.1. Đặc tả use-case quản lý kết nối.

- Tác nhân: Người dùng.


- Mục tiêu: Cho phép người dùng quản trị kết nối và các vấn đề liên quan đến kết
nối từ xa.
15
- Tiền điều kiện: Người dùng chưa kết nối IP với máy tính khác.
- Hậu điều kiện: Người dùng kết nối được đúng IP.
Actor: Người dùng.
Các dòng sự kiện chính
1. Hiển thị danh sách kết nối hiện tại.
2. Cho phép người dùng thực hiện các tác vụ như kết nối, ngắt kết nối, và xoá
kết nối.
3. Xử lý các vấn đề mất kết nối, bao gồm cả cung cấp lựa chọn phục hồi.
Các dòng sự kiện khác: Nếu người dùng nhập thông tin sai hoặc không hợp lệ
màn hình sẽ báo đỏ.
Các yêu cầu đặc biệt: Không có.
Trạng thái hệ thống khi bắt đầu thực hiện Use-case: Trước khi bắt đầu thực
hiện Use-case không cần điều kiện gì.
Trạng thái hệ thống sau khi thực hiện Use-case: Sau khi thực hiện Use-case
hệ thống sẽ hiển thị màn hình máy tính kết nối.
Điểm mở rộng: Không có.
2.6.2. Đặc tả use-case chia sẻ màn hình.

- Tác nhân: Người dùng.


- Mục tiêu: Cho phép người dùng chia sẻ màn hình của mình.
- Tiền điều kiện: Cài đặt mật khẩu và mở cổng port.
- Hậu điều kiện: Người dùng chia sẻ thành công màn hình của mình.
Actor: Người dùng.
Các dòng sự kiện chính:
1. Chọn tuỳ chọn "Chia sẻ màn hình" trên giao diện chính.
2. Chọn màn hình hoặc cửa sổ ứng dụng để chia sẻ.
3. Xác định quyền truy cập cho người xem (đọc hoặc điều khiển).
4. Bắt đầu chia sẻ màn hình và cung cấp đường link hoặc mã để người khác
kết nối.
Các dòng sự kiện khác: Không có.
Các yêu cầu đặc biệt: Không có.
16
Trạng thái hệ thống khi bắt đầu thực hiện Use-case: Trước khi bắt đầu thực
hiện Use-case yêu cầu phải kết nối mạng.
Trạng thái hệ thống sau khi thực hiện Use-case: Sau khi thực hiện Use-case
hệ thống sẽ hiển thị cài đặt mật khẩu thành công.
Điểm mở rộng: Không có.
2.6.3. Đặc tả use-case điều khiển từ xa:

- Tác nhân: Người dùng.


- Mục tiêu: Cho phép người dùng điều khiển màn hình của người khác.
- Tiền điều kiện: Nhập đúng địa chỉ IP và mật khẩu.
- Hậu điều kiện: Người dùng điều khiển thành công màn hình của người khác.
Actor: Người dùng.
Các dòng sự kiện chính:
1. Chọn tùy chọn "Điều khiển từ xa" trên giao diện chính.
2. Chọn máy tính cần điều khiển từ danh sách kết nối.
3. Hiển thị màn hình máy tính từ xa và cung cấp các công cụ điều khiển như
bàn di chuyển, bàn phím, và chuột.
Các dòng sự kiện khác: Nếu người dùng không muốn điều khiển nữa thì bấm
thoát.
Các yêu cầu đặc biệt: Không có.
Trạng thái hệ thống khi bắt đầu thực hiện Use-case: Trước khi bắt đầu thực
hiện Use-case yêu cầu phải kết nối mạng.
Trạng thái hệ thống sau khi thực hiện Use-case: Sau khi thực hiện Use-case
hệ thống sẽ hiển thị màn hình của người khác.
Điểm mở rộng: Không có.

2.7. Biểu đồ tuần tự.

17
Hình 2. 3. Biểu đồ tuần tự.

18
2.8. Biểu đồ hoạt động.

Hình 2. 4. Biểu đồ hoạt động.

19
CHƯƠNG 3: CÀI ĐẶT VÀ KẾT QUẢ THỬ NGHIỆM
3.1. Thuật toán chương trình điều khiển máy tính từ xa.
3.1.1. Người dùng chọn kết nối từ xa
Người dùng mở ứng dụng Remote Desktop và chọn tùy chọn "Kết Nối Từ Xa."

3.1.2. Nhập địa chỉ IP


Người dùng nhập địa chỉ IP của máy tính đích.

3.1.3. Thiết lập kết nối


Ứng dụng Remote Desktop thiết lập một kết nối từ xa đến máy tính đích, sử
dụng giao thức phù hợp (ví dụ: RDP - Remote Desktop Protocol).

3.1.4. Phản hồi từ máy tính đích


Máy tính đích nhận yêu cầu kết nối và phản hồi về việc kết nối đã được thiết lập
hay không.

3.1.5. Hiển thị màn hình đích


Nếu kết nối thành công, ứng dụng Remote Desktop hiển thị màn hình từ xa của
máy tính đích.

3.1.6. Điều khiển từ xa


Ứng dụng Remote Desktop gửi các lệnh điều khiển từ xa (ví dụ: tín hiệu bàn
phím, chuột) đến máy tính đích.

3.1.7. Thực hiện điều khiển máy tính đích


Máy tính đích thực hiện các lệnh điều khiển nhận được, giống như nếu chúng
được thực hiện trực tiếp từ bàn phím và chuột.

3.1.8. Phản hồi trạng thái


Máy tính đích có thể gửi phản hồi về trạng thái thực hiện (ví dụ: thành công,
lỗi) để người dùng biết.

3.1.9. Kết thúc kết nối


- Người dùng hoặc ứng dụng Remote Desktop có thể chọn kết thúc kết nối từ xa.

- Ứng dụng Remote Desktop đóng kết nối và quay trở lại giao diện chính.

20
3.2. Kết quả

Hình 3. 1. Máy đích cấp quyền

Khi nhấn bắt đầu máy tính đích sẽ cấp mọi quyền truy cập và điều khiển cho
máy điều khiển khi nhập đúng địa chỉ IP của máy đích.

Hình 3. 2. Máy tính điều khiển nhập IP

Khi nhập địa chỉ IP và được máy đích cấp quyền truy cập máy điều khiển thực
hiện các thao tác điều khiển máy đích.

21
KẾT LUẬN
Mặc dù đã có nhiều cố gắng, tìm hiểu các kiến thức đã học, kết hợp tra cứu
các tài liệu chuyên ngành nhưng đề tài “Xây dựng chương trình điều khiển máy
tính từ xa” do hạn chế về thời gian, khả năng và kinh nghiệm nên không tránh khỏi
những thiếu sót nhất định nên đề tài đã hoàn thành ở mức độ sau:
- Tìm hiểu ngôn ngữ lập trình mạng Java: các giao thức mạng TCP/IP, UDP,
P2P
- Xây dựng được chương trình đơn giản sử dụng giao thức TCP/IP để điều khiển
máy tính từ xa.
 Hướng nghiên cứu phát triển:
 Phát triển hệ thống sử dụng TCP/IP bằng cách tích hợp các tính năng mới
và cải thiện hiệu suất.
 Mở rộng khả năng tích hợp với các hệ thống khác và đáp ứng nhu cầu
người dùng trong tương lai.
 Tìm hiểu sâu hơn về ngôn ngữ, các phần mềm ứng dụng để nâng cấp giao
diện đồ họa đẹp mắt, thân thiện hơn…
 Xây dựng chương trình có quy mô lớn hơn.

22
TÀI LIỆU THAM KHẢO
Tiếng Việt

[1]. "Lập Trình Mạng Cơ Bản" - Vũ Duy Tuấn (2011, NXB Thông Tin và Truyền
Thông)

[2]. "Mạng Máy Tính và Giao Thức TCP/IP" - Đặng Thị Oanh (2015, Đại học Quốc
gia Hà Nội)

Tiếng Anh

[1]. "Computer Networking: Principles, Protocols and Practice" - Olivier


Bonaventure (2015, Doc@INRIA Editions)

[2]. "TCP/IP Illustrated, Volume 1: The Protocols" - W. Richard Stevens (2nd


Edition, 2011, Addison-Wesley)

23

You might also like