Thứ Năm, 11 tháng 4, 2013

Tìm hiểu về giao thức TFTP,so sánh với FTP

Là 1 giao thức rất đơn giản để truyền nhận files. Sự đơn giản thể hiện ở ngay cái tên của nó: Trivial File Transfer Protocol (TFTP). Đầu tiên được thiết kế bởi Noel Chiappa, sau đó được nhiều người chỉnh sửa, bổ sung. Nó dùng cơ chế ACK và truyền lại (resending) theo ý tưởng của TCP, cơ chế kiểm lỗi thì dựa trên cơ chế thông điệp trong EFTP của PARC. TFTP đã được hiện thực trên nền tảng của UPD vì vậy nó có thể dùng để di chuyển file trên các máy trên các mạng khác nhau có hiện thực UDP. Nhưng điều này không loại trừ khả năng hiện thực TFTP trên các protocol datagram khác. Nó được thiết kế để hiện thực nhỏ gọn và đơn giản, do đó FTP là giao thức bổ sung các thiếu sót của TFTP. 
1 ví dụ về ứng dụng của TFTP: Boot từ xa các host diskless, TFTP dùng để download các file cấu hình cơ bản từ thư mục /boot (lúc này không cần cơ chế nhận dạng). 
Nếu dùng không cẩn thận, TFTP sẽ cho phép bất cứ ai download bất cứ file gì trên hệ thống của bạn. 

TFTP (chỉ) có thể: 
- Đọc và ghi file (hoặc mail) đến/đi từ 1 server từ xa. 
TFTP không thể: 
- Liệt kê các thư mục 
- Chưa có cơ chế nhận dạng user (nên không có bảo vệ bằng password như FTP) 
Hiện tại có 3 kiểu transfer được hỗ trợ: 
- Netascii: netascii là mã ASCII được chỉnh sửa theo đặc tả “Telnet Protocol Specification” - đây là ASCII 8 bit 
- Octet: 8 bit thô 
- Mail: là các kí tự netascii được gửi đến 1 user chứ không phải 1 file ( kiểu truyền mail này đã cổ xưa và không nên được hiện thực hay dùng) 
Ngòai ra 2 host có thể thoả thuận với nhau để xác định các kiểu transfer khác 

TFTP packet 
TFTP được hiện thực với nền tảng là Datagram Protocol (UDP), mà Datagram Protocol lại được hiện thực trên Internet Protocol, nên các packet của TFTP sẽ có 1 Internt header, 1 Datagram header, và 1 TFTP header. Ngòai ra, các packet có thể có 1 header (LNI, ARPA header…) để cho phép chúng đi qua các phương tiện truyền dẫn trong cục bộ. Thứ tự các nội dung trong 1 packet TFTP: 
———————————————— € ——————– 
| Local Medium | Internet | Datagram | TFTP | 
———————————————— € ——————– 

Giao thức khởi tạo kết nối: 
- Gửi request: WRQ với yêu cầu ghi lên file, và RRQ với yêu cầu đọc file 
- Nhận trả lời: 1 ACK packet cho yêu cầu ghi, hay là 1 ACK packet kèm theo 1 packet dữ liệu đầu tiên cho yêu cầu đọc. Trong ACK packet sẽ chứa số block của paket dữ liệu được truyền đi để đọc (block được đánh số tuần tự, bắt đầu từ 1). ACK packet của yêu cầu ghi sẽ có số block = 0. Nếu trả lời là 1 error packet thì yêu cầu bị từ chối. 
- Để thiết lập kết nối, mỗi terminal xác định 1 TID (Transfer Identifier) để dùng trong suốt quá trình giao tiếp. Đây là các số nguyên được chọn ngẫu nhiên trong khoảng 0 - 65,535. Mỗi packet sẽ quan tâm đến TID của 2 đầu. 
VD: 1. host A gửi “WRQ” đến host B với source = TID của A, destination = 69 (TID của B) 
2. host B gửi “ACK” (với block number = 0) đến A với source = TID của B, destination = TID của A 
- Sau khi gửi request và nhận trả lời xong, kết nối có thể được thiết lập, host A có thể gửi packet data đầu tiên với block number = 1. Trong các bước tiếp theo, các host sẽ kiểm tra source TID có đúng với giá trị thiết lập ở 1 và 2 không. Nếu không phù hợp, packet sẽ bị từ chối và 1 error packet sẽ được gửi đến source của packet bị sai đó, mà không làm đứt nghẽn kết nối.

TFTP Protocol


Definition: TFTP stands for Trivial File Transfer Protocol, a technology for transferring files between network devices. It is a simplified version of FTP (File Transfer Protocol).

Purpose of TFTP


TFTP was developed in the 1970s for computers lacking sufficient memory or disk space to provide full FTP support. Today, TFTP is also found on both consumer broadband routers and commercial routers such as those from Cisco. Home network administrators sometimes use TFTP to upgrade their router firmware, while professional administrators may also use TFTP to distribute software across corporate networks.

How TFTP Works


Like FTP, TFTP uses client and server software to make connections between two devices. From a TFTP client, individual files can be copied (uploaded) to or downloaded from the server. TFTP uses UDP for transporting data.

TFTP Clients and Servers


Command line TFTP clients are included in current versions of Microsoft Windows, Linux and Mac OS X. Some TFTP clients with graphical interfaces are also available for free download on the Internet.

Microsoft Windows does not ship with a TFTP server, but several free Windows TFTP servers are available online. Linux and Mac OS X systems typically use the tftpd TFTP server, although it may be disabled by default. Networking experts recommend configuring TFTP servers carefully to avoid potential security issues.

TFTP vs. FTP


TFTP differs from FTP in these key respects:

  • original versions of TFTP only allowed transferring files up to 32 megabytes in size (some newer TFTP servers remove this restriction)

  • unlike FTP, TFTP has no login feature (it does not prompt for user name and password)

  • TFTP uses UDP port 69 to establish network connections while FTP uses TCP ports 20 and 21


Because TFTP is implemented using UDP, it generally works only on local area networks (LANs).

0 nhận xét:

Đăng nhận xét