TFTP là một giao thức đơn giản được sử dụng phổ biến trong việc truyền tệp giữa các thiết bị mạng ngày nay. Bài viết dưới đây của Mstar Corp sẽ giúp mọi hiểu rõ hơn về TFTP và nguyên lý hoạt động của giao thức này.
TFTP là gì?
TFTP là viết tắt của từ Trivial File Transfer Protocol, là một giao thức được dùng để truyền tệp giữa các thiết bị mạng, cho phép một client có thể download một tập tin từ hoặc upload một tập tin vào một máy chủ từ xa remote host như switch, router, server… Giao thức TFTP còn được coi là phiên bản đơn giản hoá của giao thức FTP.
![Định nghĩa TFTP](https://mstarcorp.vn/wp-content/uploads/2024/07/Dinh-nghia-TFTP.jpg)
TFTP được ra mắt và phát triển vào những năm 1970, nó được sử dụng cho các ứng dụng như tải xuống chương trình cơ sở, phân phối phần mềm và sao lưu tệp. Giao thức TFTP khá đơn giản, không yêu cầu xác thực người dùng hoặc bảo mật và chỉ có chức năng truyền các tệp theo cách nguyên bản, không có bất kỳ chức năng chỉnh sửa hoặc giải pháp nén nào. TFTP sử dụng giao thức UDP để truyền tệp và sử dụng cổng 69 để truyền dữ liệu.
Nguyên lý hoạt động của TFTP
TFTP sử dụng phần mềm Server và Client để thiết lập sự kết nối giữa 2 thiết bị với nhau. Giao thức TFTP hoạt động dựa trên nguyên lý cơ bản sau:
- TFTP sử dụng giao thức UDP để truyền tệp và sử dụng cổng 69 để thiết lập kết nối/ giao tiếp.
- Sau khi thiết lập kết nối thành công, máy khách có thể gửi yêu cầu RRQ hoặc WRQ. RRQ (Read Request) là yêu cầu đọc và yêu cầu này được sử dụng để tải xuống một tệp từ máy chủ. Còn WRQ (Write Request) là yêu cầu ghi được sử dụng để tải lên một tệp lên máy chủ.
- Các file được truyền/giao tiếp ở dưới dạng các gói nhỏ, mỗi gói nhỏ là 512 byte.
- Khi một gói nhỏ được truyền từ máy chủ sang máy khách, máy chủ sẽ đợi thông báo từ máy khách đã được nhận các gói nhỏ. Khi đã xác nhận qua thông báo, máy chủ sẽ tiếp tục gửi gói nhỏ tiếp theo với dung lượng tương ứng là 512 byte.
- Quá trình truyền dữ liệu này sẽ được hiện nhiều lần cho đến khi gói nhỏ cuối cùng được truyền từ máy chủ sang bên máy khách.
![Nguyên lý hoạt động của TFTP là gì?](https://mstarcorp.vn/wp-content/uploads/2024/07/Nguyen-ly-hoat-dong-cua-TFTP-la-gi.jpg)
Điều sẽ xảy ra khi một Packet không được nhận từ phía máy khách
Khi máy chủ gửi một gói dữ liệu đến máy khách, máy chủ sẽ chờ thông báo xác nhận từ máy khách. Nếu máy chủ không nhận được thông báo xác nhận từ máy khách trong một khoảng thời gian nhất định thì máy chủ sẽ gửi lại gói dữ liệu đó. Nếu máy chủ nhận được xác nhận trước khi hết thời gian chờ, máy chủ sẽ gửi gói dữ liệu tiếp theo.
Cách để Client biết File Communicating đã hoàn tất
Packet cuối cùng được tạo ra với mục đích chia sẻ một tệp cụ thể có kích thước nhỏ hơn 512 byte. Ngay cả khi các packet được tạo trước đó có kích thước là bội số của 512 byte thì máy chủ vẫn sẽ gửi thêm một packet bổ sung có kích thước nhỏ hơn 512 byte. Packet được gửi bổ sung này là một xác nhận cho máy khách về việc truyền tệp đã được hoàn tất.
TFTP được sử dụng để làm gì
Dưới đây là một số chức năng nổi bật của giao thức TFTP:
Đọc và truyền tệp
TFTP có chức năng chính là đọc hoặc truyền tệp nhỏ, chức năng truyền của TPTF dùng để chuyển các tệp tin như là tệp tin dùng để khởi động máy tính hoặc để kết nối cấu hình hệ thống giữa các thiết bị mạng khác nhau.
Giao thức TFTP được sử dụng phổ biến trong các mạng cục bộ (LAN) để truyền các tệp giữa các thiết bị. Tuy nhiên, giao thức TFTP có điểm hạn chế là không cung cấp tính năng bảo mật cao, vì dữ liệu truyền đi không được mã hóa.
![Tầm quan trọng của TFTP](https://mstarcorp.vn/wp-content/uploads/2024/07/Tam-quan-trong-cua-TFTP.jpg)
Khởi động từ xa không cần ổ cứng
Giao thức TFTP được ứng dụng phổ biến trong các thiết bị không có ổ cứng, nhờ đó cho phép TFTP có thể sử dụng một phần nhỏ bộ nhớ của thiết bị vào một số mục đích như là để khởi động mạng hoặc hệ thống, lưu trữ tệp hoặc chạy ứng dụng.
Ngoài ra, TFTP cũng có thể được sử dụng với mục đích khởi động máy tính từ xa mà không cần đến ổ cứng dựa vào tính năng có thể điều chuyển bộ nhớ đó.
Nâng cấp phần mềm hoặc firmware cho các thiết bị mạng
TFTP còn thường được sử dụng với mục đích là nâng cấp phần mềm hoặc firmware cho các thiết bị mạng như là bộ định tuyến (router), switch, tường lửa,… Các bản cập nhật phần mềm hoặc firmware thường được cung cấp dưới dạng tệp nhỏ thì có thể được truyền qua giao thức TFTP.
Tạo bản sao lưu
Giao thức TFTP khá đơn giản, không yêu cầu xác thực người dùng hoặc bảo mật do đó các các tệp nhỏ có thể truyền tải dễ dàng và giao thức TFTP có thể dễ dàng tạo bản sao lưu với cấu hình mạng máy tính.
Ngoài ra, TFTP cũng có thể được sử dụng để sao lưu cấu hình bộ định tuyến (router). Điều này có thể đem lại sự hữu ích trong trường hợp bộ định tuyến bị hỏng hoặc bị đặt lại về trạng thái mặc định thì bạn có thể khôi phục mạng trong trường hợp gặp phải sự cố.
Quét virus
TFTP có khả năng phát hiện các phần mềm độc hại khi phân tích một máy tính. Giao thức TFTP hoạt động theo cách giảm tải cho hệ thống dễ dàng nhờ vào việc truyền tệp trực tiếp giữa hai máy tính trên cùng một mạng. Ngoài ra, TFTP còn cho phép người dùng phân tích các file một cách dễ dàng từ đó có thể phát hiện ra các tệp chứa phần mềm độc hại
Cài đặt License cho Router
Cài đặt License cho Router là quá trình cấp phép cho một Router với mục đích là để sử dụng các tính năng hoặc chức năng nâng cao hơn. Ở trường hợp này, tệp được truyền đi là tệp license chứa thông tin/dữ liệu xác thực cần thiết để cấp phép cho Router.
Hỗ trợ các thiết bị có công suất nhỏ
Giao thức TFTP khá đơn giản và không yêu cầu nhiều tài nguyên, vì vậy nó được sử dụng trên các máy tính bị hạn chế dung lượng để truyền tệp hoặc cấu hình một thứ nào đó.. Điều này khiến TFTP trở thành một lựa chọn phù hợp cho các thiết bị mạng như là bộ định tuyến và switch.
4 gói tin cơ bản của TFTP
Giao thức TFTP có 4 gói tin cơ bản sau:
- RRQ – Read Request (Yêu cầu đọc): Yêu cầu đọc dùng để tải xuống một tệp từ máy chủ.
- WRQ – Write Request (Yêu cầu ghi): Yêu cầu ghi dùng để tải lên một tệp lên máy chủ.
- DATA: Chứa dữ liệu/thông tin của tệp đang được truyền đi.
- ACK: Thông báo xác nhận việc nhận được dữ liệu.
![4 loại gói tin cơ bản của TFTP là gì?](https://mstarcorp.vn/wp-content/uploads/2024/07/4-loai-goi-tin-co-ban-cua-TFTP-la-gi.jpg)
Ưu điểm của TFTP
Giao thức TFTP khá đơn giản và được sử dụng phổ biến bởi sở hữu một vài ưu điểm nổi bật dưới đây:
- Đơn giản và dễ sử dụng: TFTP là một giao thức đơn giản, có chức năng chính là đọc hoặc truyền tệp nhỏ và không yêu cầu nhiều cấu hình hoặc cài đặt, do đó có thể sử dụng dễ dàng
- Hiệu quả: TFTP giúp truyền tệp nhanh chóng và hiệu quả bởi TFTP sử dụng giao thức UDP để truyền tệp và sử dụng cổng 69 để truyền dữ liệu.
- Khả năng tương thích: TFTP là một giao thức tiêu chuẩn được hỗ trợ bởi hầu hết các hệ điều hành và thiết bị mạng khác nhau, do đó nó có khả năng tương thích cao với hầu hết các hệ điều hành và thiết bị mạng.
Bên cạnh đó, TFTP cũng có một vài điểm hạn chế là không có xác thực hoặc tính năng bảo mật nên có thể khiến dữ liệu dễ bị nghe lén hoặc thay đổi.
![TFTP có ưu điểm gì?](https://mstarcorp.vn/wp-content/uploads/2024/07/TFTP-co-uu-diem-gi.jpg)
Tại sao nên sử dụng TFTP?
- TFTP yêu cầu ít tài nguyên hơn các giao thức truyền tệp khác: Điều này giúp TFTP được sử dụng phổ biến trên các máy tính bị hạn chế dung lượng để truyền tệp hoặc cấu hình một thứ nào đó..
- TFTP dễ triển khai và sử dụng: TFTP sử dụng giao thức đơn giản UDP, do đó giúp người dùng dễ triển khai và sử dụng
- TFTP không yêu cầu xác thực: Điều này làm cho TFTP trở thành một lựa chọn lý tưởng cho việc sử dụng các ứng dụng không yêu cầu bảo mật cao như là phân phối hệ điều hành hoặc phần mềm.
TFTP Client và Server Software
- Giao thức TFTP cung cấp các chương trình client và server với mục đích truyền tệp giữa các thiết bị mạng. Các chương trình client TFTP được tích hợp sẵn trong các phiên bản hiện tại của các hệ điều hành phổ biến như Windows, Linux và macOS.
- TFTPD32 là một chương trình của client TFTP với giao diện đồ họa miễn phí, TFTPD32 bao gồm cả chương trình server. Windows TFTP Utility chính là một ví dụ điển hình về chương trình client và server TFTP với giao diện đồ họa.
- TFTP server của Windows có thể tải xuống miễn phí và cần phải được cài đặt và năng cấp thêm. Hệ điều hành Linux và macOS sử dụng chương trình server TFTP có tên là tftpd nhưng trong một số trường hợp nó có thể bị tắt theo mặc định.
![Tìm hiểu về TFTP Client và Server Software](https://mstarcorp.vn/wp-content/uploads/2024/07/Tim-hieu-ve-TFTP-Client-va-Server-Software.jpg)
Hướng dẫn chi tiết cách cài đặt và sử dụng TFTP
Hiện nay có rất nhiều ứng dụng có thể cài đặt và sử dụng TFTP như là SolarwinTFTP, TFTPD32, TFTPD64…Dưới đây sẽ là bài viết hướng dẫn sử dụng SolarwinTFTP làm TFTP Server.
Để sử dụng Solarwinds TFTP làm TFTP Server, cần thực hiện các bước sau:
Bước 1: Tải xuống và cài đặt Solarwinds TFTP. Sau khi bạn cài đặt Solarwinds TFTP xong, ứng dụng sẽ có tên là TFTP Server.
Bước 2: Trên máy tính bạn tắt Firewall và các phần mềm AntiVirus hoặc mở port 69 trên firewall. Điều này sẽ mặc định cho việc firewall sẽ chặn cổng này để bảo vệ máy tính khỏi các truy cập trái phép.
![Cài đặt và sử dụng TFTP như thế nào?](https://mstarcorp.vn/wp-content/uploads/2024/07/Cai-dat-va-su-dung-TFTP-nhu-the-nao.jpg)
Bước 3: Tiến hành kết nối mạng giữa TFTP Client và TFTP Server. Để thực hiện, bạn cần kết nối hai thiết bị với cùng một mạng cục bộ ví dụ sử dụng cáp Ethernet để kết nối laptop với router. Đối với các thiết bị mạng khác, bạn có thể sử dụng các phương thức kết nối mạng khác nhau ví dụ như Wi-Fi, Bluetooth, hoặc kết nối vật lý bằng cáp.
Sau khi kết nối, bạn cần kiểm tra một lần nữa hai thiết bị có thể giao tiếp với nhau hay không bằng cách ping. Nếu bạn có thể ping được đến router thì bạn có thể tiếp tục thực hiện các bước tiếp theo để sử dụng TFTP. Đối với các thiết bị đặc biệt khác thì bạn có thể sử dụng cổng mgmt để truyền file.
Đặt IP cho cổng mạng trên Router
- Router(config)#interface f0/0
- Router(config-if)#no shutdown
- Router(config-if)#ip add 192.168.1.2 255.255.255.0
Đặt IP cho interface vlan
- Switch(config)#interface vlan 1
- Switch(config-if)#no shutdown
- Switch(config-if)#ip add 192.168.1.2 255.255.255.0
Ping đến địa chỉ TFTP Server
- Router#ping 192.168.1.2
- Type escape sequence to abort.
- Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds: !!!!!
- Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
Bước 4: Khởi động ứng dụng TFTP Server
Khi khởi động thì ứng dụng TFTP Server sẽ tự động bật và gán với tất cả card mạng hiện có trên laptop. Bạn có thể vào File > Configure để kiểm tra cấu hình của TFTP Server.
Tab General
- Status: Đây là Trạng thái của TFTP Server. Ở đây bạn có thể khởi động lại TFTP Server bằng việc nhấn chọn Stop rồi nhấn Start.
- Storage: Đây chính là thư mục gốc của TFTP. Thư mục này chứa các tập tin để gửi tới Remote Host hoặc lưu trữ các tập tin nhận từ Remote Host. Ở đây bạn có thể thay đổi đường dẫn này tới thư mục chứa file của bạn.
Tab Server Binding: Xác định card mạng phù hợp sẽ được sử dụng để truyền file. Tại đây, bạn có thể chọn tất cả card mạng hoặc chỉ định chính xác card mạng mà bạn kết nối tới Router.
Bước 5: Sau khi thiết lập đã được hoàn tất, bạn có thể sử dụng TFTP để truyền và nhận file. Các câu lệnh và cách thức thực hiện TFTP sẽ khác nhau trên các thiết bị và các ứng dụng.
Backup Config Switch hoặc Router
Router#copy running-config tftp: //Backup file running-config ra tftp
Address or name of remote host []? 192.168.1.1 //Địa chỉ TFTP Server
Destination filename [Router-confg]? Router_Backup //Tên File được lưu trong TFTP !!
7400 bytes copied in 0.548 secs (13504 bytes/sec)
Router#
Khôi phục cấu hình Switch hoặc Router (File config đã được backup ra TFTP)
Router#copy tftp: running-config // Đây là lệnh thực hiện hành động sao chép khôi phục lại cấu hình bộ chuyển mạch (Switch) hoặc bộ định tuyến (Router).
Address or name of remote host []? 192.168.1.1 //Địa chỉ TFTP Server
Source filename []? Router_Backup //Nhập tên tệp config đã được Backup ra TFTP
Destination filename [running-config]?
Accessing tftp://192.138.1.1/Router_Backup…
Loading Router_Backup from 192.168.1.1 (via GigabitEthernet0/0): !
[OK – 7400 bytes]
7400 bytes copied in 0.440 secs (16818 bytes/sec)
Router#
Cài đặt License cho Router
File License FDO22241GVZ_20181014212247331.lic đã được sao chép vào thư mục Root của TFTP
Router#license install tftp://192.168.1.1/ FDO22241GVZ_20181014212247331.lic
Installing licenses from “tftp://192.168.1.1/ FDO22241GVZ_20181014212247331.lic”
Installing…Feature:throughput… Successful:Supported
1/1 licenses were successfully installed
0/1 licenses were existing licenses
0/1 licenses were failed to install
Router#
*Oct 15 03:54:57.275: %ISR_THROUGHPUT-6-LEVEL: Throughput level has been set to 50000 kbps
*Oct 15 03:54:57.276: %LICENSE-6-INSTALL: Feature throughput 1.0 was installed in this device.
UDI=ISR4321/K9:FDO22241GVZ; StoreIndex=1:Primary License Storage
Router#
Backup IOS của Router (Switch)
Flash chính là nơi lưu trữ IOS hoặc file config trên switch hay Router.
Switch#dir flash: //Xác định tên File IOS và đường dẫn
Directory of flash:/
1 -rw- 4414921 c2960-lanbase-mz.122-25.FX.bin
64016384 bytes total (59601463 bytes free)
Switch#copy flash:c2960-lanbase-mz.122-25.FX.bin tftp://192.168.1.1/ c2960-lanbase-mz.122-25.FX.bin //backup file IOS ra TFTP
Cài đặt IOS mới cho Switch
Switch#copy tftp://192.168.1.1/c2960-lanbase-mz.122-25.FX.bin flash:c2960-lanbase-mz.122-25.FX.bin //Copy file IOS mới vào Flash:
Switch#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#boot system flash:c2960-lanbase-mz.122-25.FX.bin //chuyển boot sang file IOS mới vừa copy vào flash:
Switch(config)#end
Switch#reload //Khởi động lại switch để boot bằng IOS mới
So sánh chi tiết sự khác biệt giữa TFTP và FTP
Dưới đây là bảng so sánh cho thấy sự khác nhau giữa TFTP và FTP:
TFTP | FTP |
Giao thức đơn giản và dễ sử dụng dùng để truyền dữ liệu, không yêu cầu xác thực. | Giao thức dùng để truyền dữ liệu nhưng yêu cầu xác thực của người dùng như tên và mật khẩu hợp lệ để truy cập |
Giao thức truyền tệp đơn giản, không sử dụng mã hóa trong quá trình truyền tệp và chỉ hỗ trợ truyền các tệp nhỏ không lớn quá 1 Terabyte | Được phép truy cập nặc danh nhưng có giới hạn về thông tin được chuyển giao |
Hoạt động thông qua cổng UDP 69 | Hoạt động thông qua cổng TCP số 20 và 21 |
Dựa trên giao thức UDP ít tốn kém chi phí nhưng có sự hạn chế về độ bảo mật | Dựa trên giao thức TCP nên có tính năng bảo mật cao |
Chỉ cho phép truyền tệp tin một chiều | Cho phép trao đổi các tệp tin qua mạng TCP/IP |
Giao thức truyền tệp đơn giản và được sử dụng cho các mục đích đặc biệt. | Giao thức này được sử dụng với mục đích chung, hướng phiên và hoàn chỉnh. |
Thích hợp để tải lên và tải xuống các tệp bởi người dùng từ xa | Thích hợp dùng để truyền các cấu hình đến và đi từ thiết bị mạng |
Đơn giản | Có độ phức tạp hơn |
Giới hạn 5 messenger trong TFTP | Ít bị giới hạn nên có thể chứa nhiều lệnh hoặc messenger |
Tốc độ truyền tin nhanh hơn FTP | Tốc độ truyền chậm hơn TFTP |
Không có tính năng xác thực nên là giao thức không đáng tin cậy | Đòi hỏi tính xác thực nên là giao thức đáng tin cậy |
Có thể nói, TFTP là một giao thức truyền tệp đơn giản và dễ sử dụng mặc dù có một vài điểm hạn chế về tính bảo mật nhưng giao thức này vẫn được sử dụng phổ biến. Hy vọng bài viết trên đây sẽ cung cấp một vài kiến thức cơ bản cho mọi người về giao thức TFTP.