Đề tài PBL4: Xây dựng hệ thống truyền tải tệp tin bằng TCP, UDP, HTTP, HTTPS

Đề tài xây dựng hệ thống truyền tải tập tin TCP UDP HTTP HTTPS. Tìm hiểu phương thức truyền tải, ưu nhược điểm và ứng dụng thực tế. Tài liệu tham khảo hữu ích.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Dự án

2023

71
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan đề tài xây dựng hệ thống truyền tải tệp tin

Trong kỷ nguyên số, việc xây dựng một hệ thống truyền tải tệp tin hiệu quả là nền tảng cho mọi hoạt động trao đổi dữ liệu. Đề tài này tập trung phân tích và triển khai một hệ thống hoàn chỉnh, sử dụng các giao thức mạng phổ biến nhất hiện nay: TCP, UDP, HTTP và HTTPS. Mục tiêu không chỉ dừng lại ở việc tạo ra một ứng dụng, mà còn là đi sâu vào bản chất của lập trình mạngmô hình client-server. Việc hiểu rõ cách thức hoạt động, ưu và nhược điểm của từng phương thức là chìa khóa để tối ưu hóa tốc độ, độ tin cậy và tính bảo mật khi truyền file qua mạng. Hệ thống được phát triển không chỉ là một sản phẩm kỹ thuật mà còn là một đồ án môn học mạng máy tính tiêu biểu, thể hiện khả năng áp dụng lý thuyết vào giải quyết bài toán thực tiễn.

1.1. Mục tiêu và ý nghĩa của việc truyền file qua mạng LAN

Mục tiêu chính của đề tài là xây dựng một ứng dụng có khả năng truyền file qua mạng LAN một cách nhanh chóng và an toàn. Ứng dụng này phải hỗ trợ hai giao thức truyền thống là FTP (dựa trên TCP) và TFTP (dựa trên UDP). Giao diện người dùng cần được thiết kế thân thiện, dễ sử dụng cho cả Client và Server. Về phía Server, hệ thống phải cung cấp các chức năng quản lý tài khoản người dùng chi tiết. Ý nghĩa của đề tài vượt ra ngoài khuôn khổ một bài tập lập trình. Nó giải quyết nhu cầu cấp thiết về việc chia sẻ tài nguyên trong mạng nội bộ, từ đó nâng cao hiệu suất làm việc và cộng tác. Đồng thời, đây là một báo cáo đề tài truyền file có giá trị tham khảo cao cho sinh viên ngành công nghệ thông tin, cung cấp cái nhìn sâu sắc về kiến trúc và hoạt động của các dịch vụ mạng nền tảng.

1.2. Phân tích mô hình client server trong lập trình mạng

Nền tảng của hệ thống truyền tải tệp tin này là mô hình client-server. Đây là một kiến trúc mạng máy tính phổ biến, bao gồm hai thành phần chính: máy chủ (Server) và máy khách (Client). Server có vai trò cung cấp tài nguyên hoặc dịch vụ, luôn ở trạng thái sẵn sàng lắng nghe và xử lý yêu cầu. Client là bên chủ động gửi yêu cầu để sử dụng dịch vụ từ Server. Theo tài liệu nghiên cứu của Đại học Bách khoa Đà Nẵng, để Client và Server có thể giao tiếp, chúng phải tuân theo một chuẩn chung gọi là giao thức. Trong kiến trúc này, máy chủ thường có cấu hình phần cứng mạnh mẽ hơn để phục vụ nhiều máy khách cùng lúc. Cơ chế hoạt động rất rõ ràng: Client gửi yêu cầu, Server xử lý và trả về kết quả. Mô hình này là cốt lõi cho hầu hết các ứng dụng chat và gửi file cũng như các dịch vụ web hiện đại.

II. Thách thức khi truyền file vai trò của các giao thức

Việc truyền tải tệp tin qua mạng internet phải đối mặt với ba thách thức lớn: độ tin cậy, tốc độ và bảo mật. Dữ liệu có thể bị mất mát, đến sai thứ tự hoặc bị nghe lén trong quá trình truyền. Để giải quyết những vấn đề này, các giao thức mạng khác nhau đã ra đời, mỗi loại có một vai trò riêng. Việc lựa chọn giao thức phù hợp phụ thuộc hoàn toàn vào yêu cầu của ứng dụng. Một hệ thống cần đảm bảo tính toàn vẹn dữ liệu tuyệt đối sẽ ưu tiên TCP. Ngược lại, một ứng dụng streaming thời gian thực sẽ chọn UDP để tối ưu tốc độ. Trong khi đó, HTTP và HTTPS phục vụ cho việc truyền tải tài nguyên trên nền tảng web, với HTTPS cung cấp thêm lớp bảo mật thiết yếu. Việc hiểu rõ so sánh TCP và UDP cũng như các giao thức khác là bước đầu tiên để thiết kế hệ thống phân tán hiệu quả.

2.1. So sánh TCP và UDP Lựa chọn giữa tin cậy và tốc độ

TCP (Transmission Control Protocol) và UDP (User Datagram Protocol) là hai giao thức cốt lõi của tầng giao vận. Sự khác biệt cơ bản giữa chúng quyết định đến việc lựa chọn cho các ứng dụng khác nhau. TCP là giao thức hướng kết nối, đảm bảo dữ liệu được truyền đi một cách đáng tin cậy. Nó sử dụng cơ chế bắt tay ba bước (three-way handshake) để thiết lập kết nối, đánh số thứ tự các gói tin và yêu cầu gửi lại nếu có lỗi xảy ra. Điều này làm cho TCP phù hợp với các ứng dụng yêu cầu tính toàn vẹn dữ liệu cao như truyền file (FTP), email (SMTP) hay duyệt web (HTTP). Ngược lại, giao thức UDP là giao thức không kết nối và truyền file không tin cậy. Nó gửi các gói tin (datagram) đi mà không cần xác nhận, giúp giảm độ trễ và tăng tốc độ. Do đó, UDP là lựa chọn lý tưởng cho các ứng dụng thời gian thực như game online, gọi video hoặc streaming.

2.2. Vấn đề bảo mật và sự cần thiết của mã hóa SSL TLS

Một trong những thách thức lớn nhất của các giao thức truyền thống như TCP, UDP và HTTP là chúng truyền dữ liệu ở dạng văn bản thuần (plain text). Điều này tạo ra lỗ hổng bảo mật nghiêm trọng, cho phép kẻ tấn công dễ dàng nghe lén và đánh cắp thông tin nhạy cảm. Để giải quyết vấn đề này, giao thức HTTPS ra đời, tích hợp thêm một lớp bảo mật là mã hóa SSL/TLS (Secure Sockets Layer/Transport Layer Security). Lớp mã hóa này hoạt động giữa tầng ứng dụng và tầng giao vận. Nó đảm bảo ba yếu tố cốt lõi: bảo mật (dữ liệu được mã hóa), toàn vẹn (dữ liệu không bị thay đổi) và xác thực (đảm bảo giao tiếp đúng với máy chủ mong muốn thông qua chứng chỉ số SSL). Việc sử dụng HTTPS là tiêu chuẩn bắt buộc cho mọi hoạt động truyền file an toàn trên internet ngày nay, đặc biệt là với các giao dịch tài chính hoặc trao đổi thông tin cá nhân.

III. Hướng dẫn xây dựng hệ thống truyền tệp tin với TCP và UDP

Xây dựng một hệ thống truyền tệp tin từ gốc đòi hỏi sự am hiểu sâu sắc về lập trình socket, đây là giao diện lập trình ứng dụng (API) cho phép các chương trình giao tiếp qua mạng. Socket đóng vai trò như một điểm cuối trong kênh giao tiếp hai chiều. Về cơ bản, có hai loại socket tương ứng với hai giao thức chính của tầng giao vận: Stream Socket sử dụng TCP và Datagram Socket sử dụng UDP. Quá trình triển khai một ứng dụng mạng sử dụng các socket này tuân theo một luồng xử lý chặt chẽ trong mô hình client-server. Server sẽ tạo socket, gắn nó với một cổng (port) cụ thể và lắng nghe kết nối. Client sẽ tạo socket và yêu cầu kết nối đến địa chỉ IP và cổng của Server. Sau khi kết nối được thiết lập, việc truyền và nhận dữ liệu có thể bắt đầu.

3.1. Kỹ thuật lập trình Socket TCP cho truyền file đáng tin cậy

Stream Socket, dựa trên giao thức TCP/IP, tạo ra một luồng dữ liệu hai chiều, đáng tin cậy và có thứ tự. Quá trình làm việc của một ứng dụng TCP được mô tả chi tiết trong các sơ đồ của tài liệu gốc. Server: Bắt đầu bằng việc gọi hàm socket() để tạo socket, sau đó dùng bind() để gán một cổng và listen() để chờ yêu cầu từ Client. Khi có yêu cầu, hàm accept() sẽ chấp nhận, tạo ra một kênh giao tiếp ảo. Client: Cũng gọi socket() để tạo socket và sau đó dùng connect() để gửi yêu cầu kết nối đến Server. Một khi kết nối thành công, cả hai bên có thể dùng các hàm read()write() để trao đổi dữ liệu. Cuối cùng, hàm close() được gọi để chấm dứt phiên làm việc. Kỹ thuật socket programming này là nền tảng cho giao thức FTP, đảm bảo mọi tệp tin được truyền đi một cách toàn vẹn.

3.2. Cách dùng Datagram Socket UDP cho truyền file không tin cậy

Khác với TCP, Datagram Socket sử dụng giao thức UDP hoạt động theo hướng không kết nối, tập trung vào tốc độ thay vì độ tin cậy. Quá trình thiết lập đơn giản hơn rất nhiều. Server: Chỉ cần gọi socket() để tạo socket và bind() để gán cổng. Server không cần listen() hay accept() vì không có kết nối nào được thiết lập. Client: Chỉ cần gọi socket() để chuẩn bị. Sau đó, cả Client và Server có thể ngay lập tức trao đổi thông tin qua lại bằng hai hàm send()receive(). Đơn vị trao đổi là các gói tin Datagram Packet. Mỗi gói tin phải chứa đầy đủ thông tin địa chỉ của người gửi và người nhận (IP, Port). Do tính chất truyền file không tin cậy, việc kiểm tra lỗi và sắp xếp lại thứ tự gói tin phải được xử lý ở tầng ứng dụng nếu cần thiết. Đây là cơ chế hoạt động của TFTP.

IV. Cách triển khai truyền tải tệp tin an toàn bằng HTTP HTTPS

Trong khi TCP và UDP là các giao thức tầng giao vận, HTTP và HTTPS là các giao thức tầng ứng dụng, đóng vai trò là xương sống của World Wide Web. Giao thức HTTP (HyperText Transfer Protocol) được thiết kế để truyền tải tài nguyên web, nhưng nó cũng là một phương tiện mạnh mẽ để truyền tệp tin. Các hoạt động này được thực hiện thông qua cơ chế yêu cầu và phản hồi đơn giản. Tuy nhiên, điểm yếu cố hữu của HTTP là thiếu bảo mật. Để giải quyết vấn đề này, giao thức HTTPS (HTTP Secure) được phát triển. Về bản chất, HTTPS chính là HTTP hoạt động trên một kênh được mã hóa bằng SSL/TLS, đảm bảo mọi dữ liệu trao đổi giữa client và server đều được bảo vệ an toàn khỏi các mối đe dọa trên mạng.

4.1. Quy trình HTTP request response để upload và download file

Việc truyền file qua HTTP tuân theo quy trình HTTP request/response cơ bản. Để tải tệp tin về máy (download file http), Client (thường là trình duyệt web) sẽ gửi một yêu cầu với phương thức GET đến URL của tài nguyên. Server sau khi nhận yêu cầu sẽ xử lý và trả về một phản hồi HTTP có mã trạng thái 200 OK, với nội dung của tệp tin nằm trong phần thân (body) của phản hồi. Ngược lại, để tải tệp tin lên máy chủ (upload file server), Client sẽ sử dụng phương thức POST hoặc PUT. Dữ liệu của tệp tin sẽ được đính kèm trong phần thân của yêu cầu, thường sử dụng kiểu multipart/form-data. Server sẽ nhận yêu cầu, xử lý và lưu trữ tệp tin, sau đó gửi lại phản hồi xác nhận. Quy trình này rất linh hoạt và được hỗ trợ bởi mọi nền tảng web hiện đại.

4.2. Triển khai truyền file an toàn với giao thức HTTPS và SSL

Để đảm bảo truyền file an toàn, việc sử dụng HTTPS là bắt buộc. Quá trình hoạt động của HTTPS bắt đầu bằng một bước gọi là SSL/TLS Handshake. Khi Client kết nối đến Server, Server sẽ gửi lại chứng chỉ số SSL của mình. Chứng chỉ này chứa thông tin về danh tính của Server và đã được xác thực bởi một bên thứ ba đáng tin cậy (Certificate Authority - CA). Client sẽ kiểm tra tính hợp lệ của chứng chỉ này. Nếu hợp lệ, Client và Server sẽ thương lượng và tạo ra một khóa phiên (session key) duy nhất. Kể từ thời điểm đó, toàn bộ dữ liệu, bao gồm cả các yêu cầu và phản hồi HTTP, sẽ được mã hóa SSL/TLS bằng khóa phiên này trước khi gửi đi. Quá trình này giúp ngăn chặn hiệu quả các cuộc tấn công nghe lén (man-in-the-middle), đảm bảo tính riêng tư và toàn vẹn cho dữ liệu được truyền tải.

V. Phân tích thiết kế hệ thống truyền file client server thực tế

Từ cơ sở lý thuyết về các giao thức, việc phân tích và thiết kế một hệ thống thực tế là bước tiếp theo. Sơ đồ hoạt động tổng quát cho thấy một kiến trúc rõ ràng, nơi FTP Client và TFTP Client giao tiếp với các Server tương ứng. Các Server này lại có thể tương tác với một cơ sở dữ liệu để quản lý thông tin người dùng. Việc thiết kế hệ thống phân tán như vậy đòi hỏi phải có các sơ đồ chức năng chi tiết để mô tả mọi hoạt động. Các sơ đồ này không chỉ giúp định hình cấu trúc phần mềm mà còn là tài liệu quan trọng cho quá trình triển khai và bảo trì. Ví dụ, một sơ đồ chức năng cho FTP Server sẽ bao gồm các nhánh quản lý File, Account, Group, và User, với các hành động cụ thể như thêm, sửa, xóa.

5.1. Luồng xử lý yêu cầu trong một ứng dụng chat và gửi file

Một ứng dụng chat và gửi file là một ví dụ điển hình của việc áp dụng các giao thức mạng. Luồng xử lý bắt đầu khi Client yêu cầu kết nối và đăng nhập. Server sẽ xác thực thông tin qua lệnh USERPASS. Nếu thành công, Client có thể thực hiện các thao tác như liệt kê danh sách tệp tin (LIST), tải tệp xuống (RETR), hoặc tải tệp lên (STOR). Mỗi lệnh từ Client sẽ được Server phân tích và xử lý. Ví dụ, với lệnh RETR, Server sẽ kiểm tra sự tồn tại của tệp, mở kênh dữ liệu, và bắt đầu truyền dữ liệu. Toàn bộ quá trình này được mô tả chi tiết qua các sơ đồ biểu diễn trong tài liệu nghiên cứu, cho thấy logic xử lý từng bước của cả Server và Client, đảm bảo hệ thống hoạt động một cách chính xác và hiệu quả.

5.2. Tham khảo source code truyền file Java và Python phổ biến

Việc hiện thực hóa thiết kế trên đòi hỏi kỹ năng lập trình cụ thể. Java và Python là hai ngôn ngữ rất mạnh trong lĩnh vực lập trình mạng. Java cung cấp các thư viện java.net.Socketjava.net.ServerSocket mạnh mẽ để xây dựng các ứng dụng TCP, cũng như DatagramSocket cho UDP. Nhiều source code truyền file java mã nguồn mở có thể được tìm thấy, minh họa cách xây dựng một FTP server/client hoàn chỉnh. Tương tự, Python với thư viện socket tích hợp sẵn cho phép viết code gửi file python một cách nhanh chóng và ngắn gọn. Thư viện http.server của Python còn cho phép dựng một web server đơn giản để chia sẻ file qua HTTP chỉ với vài dòng lệnh. Việc tham khảo các mã nguồn này giúp rút ngắn thời gian phát triển và học hỏi các phương pháp lập trình tối ưu.

VI. Đánh giá và hướng phát triển cho hệ thống truyền tệp tin

Sau quá trình phân tích, thiết kế và triển khai, hệ thống truyền tải tệp tin đã đáp ứng được các mục tiêu cơ bản đề ra. Ứng dụng có thể truyền file nhanh chóng, an toàn qua các giao thức FTP và TFTP. Giao diện được xây dựng thân thiện, và Server có đủ chức năng quản lý người dùng. Đây là một kết quả thành công cho một đồ án môn học mạng máy tính. Tuy nhiên, công nghệ luôn phát triển không ngừng. Do đó, việc xác định các hướng phát triển trong tương lai là cực kỳ quan trọng để hệ thống không trở nên lỗi thời và có thể đáp ứng các nhu cầu ngày càng phức tạp của người dùng. Việc nhìn nhận các ưu nhược điểm của các giao thức đã sử dụng là cơ sở để đề xuất các cải tiến tiềm năng.

6.1. Tổng kết báo cáo đề tài truyền file và kết quả đạt được

Bản báo cáo đề tài truyền file này đã trình bày một cách có hệ thống toàn bộ quá trình nghiên cứu và xây dựng ứng dụng. Về mặt lý thuyết, báo cáo đã phân tích sâu sắc bốn giao thức TCP, UDP, HTTP, HTTPS, đồng thời làm rõ mô hình client-server và kỹ thuật socket programming. Về mặt thực tiễn, sản phẩm cuối cùng là một chương trình hoạt động ổn định, cho phép người dùng thực hiện các thao tác truyền tải và quản lý tệp tin qua mạng LAN. Giao diện người dùng trực quan giúp người dùng dễ dàng thao tác. Kết quả này không chỉ chứng minh sự hiểu biết về lý thuyết mạng máy tính mà còn thể hiện kỹ năng lập trình và giải quyết vấn đề của nhóm thực hiện. Đây là một nền tảng vững chắc để tiếp tục nghiên cứu và phát triển các hệ thống phức tạp hơn.

6.2. Triển vọng thiết kế hệ thống phân tán và truyền file P2P

Hướng phát triển tiềm năng nhất cho hệ thống này là mở rộng từ mô hình client-server truyền thống sang các kiến trúc hiện đại hơn. Một trong số đó là thiết kế hệ thống phân tán, nơi nhiều máy chủ có thể phối hợp với nhau để tăng khả năng chịu tải và độ tin cậy. Một hướng đi khác đầy hứa hẹn là triển khai cơ chế truyền file P2P (Peer-to-Peer). Trong mô hình P2P, mỗi máy tính trong mạng vừa đóng vai trò là client, vừa là server, cho phép chia sẻ tệp tin trực tiếp với nhau mà không cần thông qua một máy chủ trung tâm. Kiến trúc này giúp giảm tải cho server, tăng tốc độ download khi có nhiều người cùng tải một tệp và có khả năng mở rộng tốt hơn. Việc tích hợp thêm các giao thức bảo mật nâng cao và cơ chế nén dữ liệu cũng là những cải tiến đáng giá trong tương lai.

18/09/2025

Trích đoạn nội dung tài liệu

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN se PBL4: DỰ ÁN HỆ ĐIÊU HÀNH & MẠNG MÁY TÍNH Đề tài: Xây dựng hệ thống truyền tải tệp tin bằng phương thie TCP, UDP HTTP HTTPS SINH VIEN THUC HIEN: Nguyễn Minh Nhật =LOP:21TCLC_DT1 NHOM: 21Nh14 Võ Anh Quân LỚP: 2ITCLC_DT1 NHÓM: 21Nh14 Huỳnh Duy Tin LỚP: 2ITCLC_DTI NHÓM: 2INh14 GIẢNG VIÊN HƯỚNG DÂN: Th.S: Nguyễn Thế Xuân Ly Đà Nẵng 12/ 2023 MUC LUC ecseeecaeeaeuecueeeecaesecseeecsccseeseescaecaeeececsesaeecsecseaececeecesueceessaesaeeectesietseeeseeesieeeseetenaeeeees 1 "5 90509212. 2 DANH SÁCH HÌNH VẼ,. ee 10 II M6 hinh client-server. 10 II TY vài 0:0 cởi AiIÁÁẶỀỶVỶVVVẶỶVỶẶV.

Tổng quan về Socket. Mô hình client-server sử đụng Socket ở hướng kết nối TCP. Mô hình client-server sử đụng Socket ở hướng không kết nối UDP 17 1. Giao thite TCP.

SH S111 011011101101 11 1101111111161 re 20 NI. Cách thức hoạt động của p1ao thức. Các chế độ truyền File cho TCP. Ưu điểm và nhược điểm của giao thức TCP.

28 an vo na. Cách thức hoạt động của giao thức. Các chế độ truyền File. Ưu điểm và nhược điểm của giao thức UDP.

Giao thitc HTTP.1 S111 11011101111 11 1101111111161 re 28 IDt*Iaaiaai. Mô hình kiến trúc xử lý trong HTTP. Các phương thức HÏTTP. Ứng dụng của giao thức HTTP.

Ưu điểm và nhược diém cua giao thite HTTP. Các cách truyền file cua giao thite HTTP. cccccccseeeseseeceeeeeee 32 lo i6 ae. 28 ID VAN ángaadadadaađaiiiiääiÃi4ẢÝ.

Cách thức hoạt động của p1ao thức. Ưu điểm và nhược điểm của giao thức. Ứng dụng của giao thức HTTPR.-s- s9 2111211 111 xe grg 32 CHƯƠNG 2. PHẦN TÍCH THIẾT KÉ HỆ THÓNG.

Sơ đồ hoạt động tông quát. _ Sơ đồ chức năng của FTP. Sơ đồ chức năng của TFTEP. Sơ đồ biểu diễn quá trình xử lý chỉ tiết của các chức năng.

Sơ đỗ biếu diễn các chức năng của Server FTP. Sơ đồ biếu diễn các chức năng của Client FTP. Sơ đồ biếu diễn quá trình xử lí của Server TFTP. Sơ đỗ biếu diễn quá trình xử lí các chức năng của Client TFTP.

TRIÊN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ. Giao diện và chức năng của chương trỉnh. Giao diện chính của chương trình SerVer. Giao diện chính của chương trình C lient.

Giao diện chức năng của Server FTÌP. Giao diện chức năng của Client F”TTP. Giao diện chức năng của Server TF”TTP. Giao diện chức năng của Client TÌFTP.

Đánh giá kết quả.--s- + S1 111 112112111221 1212121 211211 trau 70 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.--2:-2222:2222122221222211 222 ccee 71 TÀI LIỆU THAM KHẢO. 72 Trang 3 DANH SACH HINH VE Hinh 1: Socket trong m6 hinh OSÌ. 11 Hình 2: Server tạo socket,bind|listen. -- 2111111115251 1 1111552511111 nhe 12 Hinh 3: Client tạo socket yêu cầu kết nối.- - s21 E221 E111211211111121 1x6 13 Hinh 4: Trao đổi thông tin giữa Client và Šerver.-- 5252 22x22 22221 2xe2 14 Hình 5: Kết thúc phiên làm viỆc.- 5 SE 195121111111 12111121121111 1x2 15 Hinh 6: Toàn bộ quá trình làm việc TCP.

222122211211 221 1551121115122 x22 16 Hình 7: Server tạo socket()„bind(). 17 Hình §: Client tạo socket(). 17 Hinh 9: Trao đổi thông tin giữa Client và Šerver. -- 5-52 22x21 222221 2xe2 18 Hình 10: Toàn bộ quá trình làm việc UDP.

19 Hình 11: Mô hình hoạt động của ø1ao thức FTTP. 26 Hình 14: Cấu trúc của gói tin RRQ. - 5 21 2 1112121121121111 11212012 30 Hình 15: Cấu trúc của của gói tin RRQ theo chuẩn RFC 2048.--5s: 30 Hình 16: Cấu trúc của gói tin WR.- c1 2n122111121 221121 rey 30 Hình 17: Cấu trúc của gói tin WRQ theo chuẩn REC 2048.-5-cc sen 30 Hình 18:Cấu trúc gói tin DAATTA.-522222222222152112112112212112122112122121 2 e2 30 Hình 19:Cấu trúc gói tin ACK.s- 5s 2111 1212112112111 11112121121 x re 31 Hình 20: Câu trúc gói tin ERROR.- 2-21 11121271 1121121211212 1 12x 31 Hình 21: Cấu trúc của gói tin OACK. s5 S22 1211121112112 0101121121 32 Hình 22: Quá trình nhận File từ máy chủ TT TTP.- 52c 2S S1 22122 ze2 32 Hinh 23: Quá trình gửi File lên máy chủ.

- ác S2 22112 10121212181 re 34 Hình 24: Sơ đồ hoạt động tông quát.- 55 122 2111111121121 1y 36 Hình 25: Sơ đồ chức năng của FTP. - s2 E2E121511111211211212121 1211 ncxy 36 Hình 26: Sơ đồ chức năng của TF TP. - + 2S 12E12112111111211121 11112 28g 37 Hình 27: Sơ đồ xử lí yêu cầu mở một kết nối của Server với Client.- 37 Hinh 28: Sơ đồ biếu diễn quá trình xử lí lệnh cmd USER.--- 2-52 s2- 38 Hinh 29: Sơ đồ biếu diễn quá trình xử lí lệnh cmd PASS.--2- 2525522 39 Hinh 30: Sơ đồ biếu diễn quá trình xử lí việc đăng nhập đầu tiên. 40 Hinh 31: Sơ đồ biếu diễn quá trình xử lí lệnh RETR.

- se sc££z£xzzzzzx2 41 Hinh 32: Sơ đồ biếu diễn quá trình xử lí lệnh STOR. -- 2 scc2£cz£zzzczx2 42 Hinh 33: Sơ đồ biếu diễn quá trình xử lí lệnh DELE / RMD.--5-- 2552 43 Hinh 34: Sơ đồ biếu diễn quá trình xử lí lệnh MKD / XMKD.- 55-55: 43 Hinh 35: Sơ đồ biếu diễn quá trình xử lí lệnh PWD / XPWD.cà: 44 Hinh 36: Sơ đồ biếu diễn quá trình xử lí lệnh FEATT. 5 2222 +s2£z£xzzzxse2 44 Hinh 37: Sơ đồ biếu diễn quá trình xử lí lệnh LIST / NLST.--2+sccsss2 44 Hinh 38: Sơ đồ biểu diễn quá trình xử lí lệnh RNER + RNFT.---s- 45 Hinh 39: Sơ đồ biếu diễn quá trình xử lí lệnh SYT.- ceeeeeeeeeeee 45 Hinh 40: Sơ đồ biếu diễn quá trình xử lí lệnh TYPE. 522222222 £se2 45 Hinh 41: Sơ đồ biếu diễn quá trình xử lí lệnh UPDATEPASS.

---- 5: 46 Hinh 42: Sơ đồ biếu diễn quá trình xử lí lệnh UPDATESTATUS. 46 Hinh 43: Sơ đồ biếu diễn quá trình xử lí lệnh UPDATEUSER.- 5-52 46 Hinh 44: Sơ đồ biếu diễn quá trình xử lí lệnh QUIT.- cece eseeeeeeeeee 47 Hinh 45: Sơ đồ biếu diễn quá trình xử lí chức năng Connect.--ss-55¿ 48 Hinh 46: Sơ đồ biếu diễn quá trình xử lí chức năng Dowload.-- --5¿ 49 Hinh 47: Sơ đồ biếu diễn quá trình xử lí chức năng Upload. 5-5552 50 Hinh 48: Sơ đồ biếu diễn quá trình xử lí chức năng Create Directory. 51 Hinh 49: Sơ đồ biếu diễn quá trình xử lí chức năng Refresih.-5- 5e: 52 Hinh 50: Sơ đồ biếu diễn quá trình xử lí chức năng Delete.

2 5-52 sec 53 Hinh 51: Sơ đồ biếu diễn quá trình xử lí chức năng UpdateUser.-- 54 Hinh 52: Sơ đồ biếu diễn chức năng Rename.-- 25s 2s 2 212121211 1xzxg 55 Hinh 53: Sơ đồ biếu diễn quá trình xử lí khi nhận gói tin Read Request. 56 Hinh 54: Sơ đồ biếu diễn quá trình xử lí khi nhận gói tin Write Request. 57 Hinh 55: Sơ đồ biếu diễn quá trình xử lí chức năng của nút GET.-- 58 Hinh 56: Sơ đồ biếu diễn quá trình xử lí chức năng của nút PUT. -a 60 Hinh 58: Giao diện chính của chương trình C Ïient.

--:- 2222222222 cssss2 60 Hinh 59: Giao diện chính của Client F”TP. c1 1111120 1151111 1kg cnnncrrrxy 61 Hinh 60: Giao diện chính của Client TFTP. c2 1111135111111 1 5 555121 x2 61 Hình 61: Giao diện của Server FTP khi Start.- ee 1212121111111 11k nhà 62 Hinh 62: Giao diện của Server FTP khi thêm ser/Group.--- --:- s55: 62 Hinh 63: Giao diện của Server FTP khi thém User/Group thành công. 63 Hinh 64: Giao diện của Server FTP khi xem thông tin của ser.

63 Hình 65: Giao diện chức năng hiến thị chức năng.-- 2 sc2EcE 22222 x 64 Hình 66: Giao diện hiền thị yêu cầu cập nhật thông tin ở lần đầu tiên đăng nhập. CH11111111 1111111111111 11 1111111111111 1111111111 111116111 11 111111111111 1111111 111111 11 1111111 11111011101 1y6 64 Hình 67: Giao diện hiên thị thông tin S€F. 65 Hình 68: Giao diện hiến thị chức năng đổi mật khâu. 72 22222: 65 Hinh 69: Giao diện Server TR TP khi được bật.

L2 2222222125551 51 2512 xx 66 Hình 70: Giao diện Server TEFTP khi Click nút Browse. co cá ác s+ 66 Hình 71: Giao diện Server TFTP khi Client yêu cầu gửi File.- 5s 67 Hình 72: Giao diện Server TETP khi Client yêu cầu nhận File.-- 2s szs: 67 Hình 73:Gnao diện chính của Client TF TP khi Click Browse. 68 Hinh 74: Giao diện của Client TETP khi gửi FIle.c 5 22222222222 ccss2 68 Hinh 75: Giao diện của Client TETP khi nhận F1Ìe.- cv 111121 1y sex 69 Hình 76: Giao diện của chent TETP khi nhận File thành công.-- 69 Trang 6 Trang 7 LOI MO DAU Ngày nay cùng với sự phát triển chóng mặt của khoa học kỹ thuật, một kỷ nguyên mới đã được mở ra-kỷ nguyên của công nghệ thông tin. Nhu cầu của con người càng lớn đặc biệt các ngành khoa học kỹ thuật khác đều cần đến sự hỗ trợ của công nghệ thông tin.

Cùng với sự bùng nỗ của internet, việc truyền tải các tệp tin lớn qua mạng đã trở thành một yêu cầu cấp bách đối với nhiều người dùng và tổ chức. Chính vì vậy, cần có một phương thức truyền dữ liệu trên internet để người dùng có thể gửi và tải tệp một các nhanh chóng. Giao thức FTP (File Transfer Protocol) và TFTP (Trivial File Transfer Protocol) đã trở thành những công cụ không thể thiếu trong việc đáp ứng nhu cầu này. FTP, với tính linh hoạt và khả năng truyền tải dữ liệu đáng tin cậy, đã trở thành một trong những giao thức phổ biến nhất cho việc chuyển đổi dữ liệu giữa máy tính và máy chủ trên mạng internet.

Tuy nhiên, trong môi trường internet ngày nay, việc truyền tải tệp tin lớn vẫn đôi khi gặp phải một số thách thức, như sự gián đoạn trong quá trình truyền tải hoặc hạn chế về số lượng kết nối đồng thời tới một địa chỉ IP. Để giải quyết những vấn đề này, TFTP đã ra đời với mục tiêu tối ưu hóa quá trình truyền tải các tệp tin nhỏ và đơn giản. Với những lý do trên nhóm chúng em xin chọn đề tài “Xây dựng hệ thống truyền tải tập tin FTP và TFTP.” Mục tiêu của đề tài: - _ Xây dựng được ứng dụng có thể truyền tải tệp tin một cách nhanh chóng, an toàn bằng hai giao thức FTP và TFTP. - Giao diện ứng dụng phải thân thiện, dễ sử dụng - Server phải cung cấp các chức năng quản lí tài khoản người dùng.

CO SO LY THUYET 1. M6 hinh client-server Mô hình client-server là mô hình mạng máy tính gồm có 2 thành phần chính đó là máy khách (client) và máy chủ (server). Server: có chức năng là cung cấp các thông tin (đữ liệu) cho một dich vụ cụ thé nào đó hoặc quyền truy cập đối với dịch vụ.Máy chủ thường có tải nguyên mạnh mẽ hơn về phần cứng và phần mềm so với máy khách, nhằm hỗ trợ nhiều yêu cầu từ các máy khách cùng một lúc.Các máy chủ thường cung cấp các dịch vụ như lưu trữ đữ liệu, máy chủ web, máy chủ cơ sở dữ liệu, máy chủ email, v.Client: Máy khách là các hệ thông kết nối đến máy chủ dé yêu cầu và sử dụng các dịch vụ hoặc tải nguyên.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ