Tải bản đầy đủ (.docx) (34 trang)

Bai tap lon INTERNET va cac giao thuc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (316.05 KB, 34 trang )

Bài tập nhóm Internet và các giao thức (Tel1409)

Lời mở đầu

N

gày nay, với sự phát triển của khoa học kỹ thuật, máy tính trở nên
phổ biến với mọi người, nó mang lại cho con người khả năng to lớn
và làm được những công việc phi thường : tính toán nhanh, chính
xác các phép toán phức tạp, điều khiển tự động và làm việc theo sự
lập trình của con người. Máy tính ra đời không chỉ là công cụ giải phóng sức
lao động, hỗ trợ tối đa trong sản xuất mà còn là phương tiện học tập, giải trí bổ
ích trong đời sống của mọi người. Sự phát triển của máy tính cũng như công
nghệ thông tin sẽ mang lại những thành tựu to lớn cho sự phát triển kinh tế của
đất nước. Là phương tiện tiếp cận nhanh nhất đến các thành tựu của khoa học
kỹ thuật. Sức mạnh của máy tính được tăng lên nhiều lần khi các máy tính được
kết nối thành một mạng máy tính. Với mạng máy tính toàn cầu chúng ta có thể
dễ dàng tiếp cận với thế giới bên ngoài, tiếp cận với những thành tựu khoa học
tiên tiến nhất trên thế giới. Mạng viễn thông nói chung, máy tính và mạng máy
tính nói riêng là công cụ không thể thiếu trong hoạt động của bộ máy nhà nước,
các doanh nghiệp, trường học, ... và rất nhiều các lĩnh vực sản xuất khác. Nó
đóng vai trò như cầu nối để trao đổi thông tin giữa các chính phủ, các tổ chức
xã hội và giữa mọi người với nhau. Để các máy máy tính có thể liên lạc với
nhau qua mạng, chúng phải sử dụng cùng 1 ngôn ngữ hay còn gọi là 1 giao
thức (Protocol). Giao thức là 1 hệ luật và chuẩn cho phép các máy tính trong
mạng liên lạc với nhau. Giao thức giao tiếp hay còn gọi là Giao thức truyền
thông, Giao thức liên mạng, Giao thức tương tác, Giao thức trao đổi thông tin
(tiếng Anh là communication protocol), tuy nhiên, tránh nhầm với giao thức
trong các ngành khác - là một tập hợp các quy tắc chuẩn dành cho việc biểu
diễn dữ liệu, phát tín hiệu, chứng thực và phát hiện lỗi dữ liệu - những việc cần
thiết để gửi thông tin qua các kênh truyền thông, nhờ đó mà các máy tính (và


các thiết bị) có thể kết nối và trao đổi thông tin với nhau. Các giao thức truyền
thông dành cho truyền thông tín hiệu số trong mạng máy tính có nhiều tính năng
để truyền tải cũng như sao chép thông tin, tập tin dữ liệu với nhau. Một trong
những loại giao thức truyền tập tin khá phổ biến trong các thiết bị truyền thông
đó chính là TFTP – Trivial File Transfer Protocol, giao thức truyền tập tin đơn
giản, cung cấp dịch ít tốn kém và không phức tạp cho việc truyền và nhận dữ
liệu.

Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

MỤC LỤC
Trang
LỜI MỞĐẦU.............................................................................…….………….1
MỤC LỤC ..............................................................................………………......2
BẢNG
PHÂN
…………......3

CÔNG......................................................................

1. GIỚI THIỆU CHUNG VỀ TFTP........................................…...............……...
1.1 Giới thiệu chung....................................................................................4
1.3 Khái niệm..............................................................................................8
1.1Mối quan hệ giữa FTP và TFTP.............................................................9
1.4 Lịch sử phát triển.................................................................................11

2. ĐẶC TÍNH TFTP..........................................................................................

2.1 Mô hình kết nối mạng
........................................................................13
2.2 Tiến trình giao thức TFTP.................................................................15
2.3 Khuôn dạng bản tin TFTP..................................................................19
2.4 Các chuẩn kỹ thuật của TFTP..................................................……...24
3. XU HƯỚNG PHÁT TRIỂN CỦA TFTP....................................…................25
4. KẾT LUẬN ....................................................................................................29
TÀI LIỆU THAM KHẢO ..................................................................................30

Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

BẢNG PHÂN CÔNG CÔNG VIỆC NHÓM
STT
STT Trong
Trong
Nhóm
Lớp

1

39

2

7

Họ và Tên


Nội Dung Chính Cần
Ghi chú
Tìm Hiểu

- Tổng quan về cả hệ
Nguyễn Phụng thống phân công công
Long
việc cho các thành viên. Nhóm trưởng
B15DCVT237 - Tìm hiểu về mô hình
kết nối mạng.
-Tổng quan về cả hệ
thống chuẩn bị cho
Bùi
Thành thuyết trình, bản báo
Công
cáo kể cả mục lục, tham
B15DCVT045 khảo.
- Viết lời nói đầu, kết
luận

3

14

Dương Phương
- Tìm hiểu về xu hướng
Duy
phát triển
B15DCVT109


4

6

Tống Đăng Cầu - Tìm hiểu về tiến trình
B15DCVT037 giao thức

Lê xuân Hạ
5

21
B15DCVT125

6

53

Nhóm đề tài 07-TFTP

- Tìm hiểu về định
nghĩa giao thức và lịch
sử phát triển của nó.
- Các chuẩn kỹ thuật

Trần
Hồng
Quân
- - Khuôn dạng bản tin.
B15DCVT317



Bài tập nhóm Internet và các giao thức (Tel1409)

Bảng thuật ngữ viết tắt
Từ viết
tắt

Từ đầy đủ

Nghĩa tiếng việt

TFTP

Trivial File Transfer Protocol

Giao thức truyền tệp nhỏ gọn

FTP

File Transfer Protocol

Giao thức truyền tập tin

TCP

Transmition Control Protocol

Giao thức điều khiển truyền tải


UDP

User Datagram Protocol

Giao thức phi kết nối

DHCP

Dynamic Host Configuration Protocol Giao thức cấp IP động

ACK

Acknowledgement

Gói tin xác thực

BOOTP

Bootstrap

Giao thức bootstrap
Danh mục hình vẽ

Hình

Tên hình

Trang

Hình 1.1 FTP và TFTP ở lớp ứng dụng


5

Hình 1.2 Quá trình bootstrapping cho máy trạm không có ổ đĩa

6

Hình 1.3 FPT và TFTP tương ứng với TCP và UDP

7

Hình 1.4 TFTP truyền tập tin nội bộ mạng

9

Hình 2.1 Mô hình kết nối mạng trong TFTP

13

Hình 2.2 Tiêu đề TFTP

21

Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

1.Giới thiệu chung
1.1. Nhu cầu về TFTP

Tại sao phải có TFTP trong khi ta đã có FTP ?

Hình 1.1 FTP và TFTP ở lớp ứng dụng

Mặc

FTP(File
Transfer Protocol) là giao thức truyền tập tin tổng quát nhất trong bộ giao thức
TCP/IP, nhưng nó rất phức tạp. Nhiều ứng dụng không cần đến tất cả các tính
năng mà FTP cung cấp. Do đó người ta đưa ra một giao thức thứ hai cung cấp
dịch vụ ít tốn kém và không phức tạp. Được biết dưới tên TFTP(Trivial File
Transfer Protocol).
Sự phức tạp của FTP một phần là do chính giao
thức, với hàng chục lệnh và mã trả lời, và một phần là do nhu cầu sử dụng Giao
Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

thức điều khiển truyền TCP (Transmition Control Protocol) là bất kỳ thiết bị nào
muốn sử dụng FTP không chỉ cần riêng chương trình FTP, mà còn cần cài đặt
một bản thực thi TCP đầy đủ. Nó phải xử lý nhu cầu của FTP cho dữ liệu đồng
thời và kiểm soát các kết nối kênh và các yêu cầu khác.
Đối với một máy tính thông thường như máy Macintosh hoặc
UNIX, thì không có vấn đề gì , đặc biệt là với các ổ cứng lớn ngày nay và bộ
nhớ nhanh, rẻ. Nhưng hãy nhớ rằng FTP đã được phát triển hơn ba thập kỷ
trước, khi phần cứng chậm và bộ nhớ rất đắt. Hơn nữa, ngay cả ngày nay, máy
tính thông thường không phải là thiết bị duy nhất được sử dụng trên mạng. Có
một số thiết bị được kết nối mạng không có khả năng của máy tính “thực”,
nhưng vẫn cần có khả năng chuyển tập tin. Đối với các thiết bị này, việc triển

khai FTP và TCP đầy đủ là một vấn đề không cần thiết.

Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

Hình 1.2 Quá trình bootstrapping cho máy trạm không có ổ đĩa
Một trong những ví dụ đáng chú ý nhất của các thiết bị trên là
các máy trạm không có ổ đĩa (diskless workstations) . Đây là những máy tính
không có bộ nhớ vĩnh viễn, vì vậy khi chúng khởi động, chúng không thể đọc
toàn bộ việc triển khai TCP / IP từ ổ đĩa cứng như hầu hết các máy tính . Chúng
chỉ bắt đầu bằng một lượng nhỏ là phần mềm đã tích hợp và phải lấy thông tin
cấu hình từ máy chủ và sau đó tải xuống phần còn lại của phần mềm từ một thiết
bị mạng khác. Vấn đề tương tự phát sinh đối với một số thiết bị phần cứng khác
không có đĩa cứng.Quá trình khởi động các thiết bị này thường được gọi
là bootstrapping và xảy ra theo hai giai đoạn.
1. Đầu tiên, máy trạm được cung cấp địa chỉ IP và các tham số khác, thông qua

việc sử dụng giao thức cấu hình máy chủ như BOOTP hoặc DHCP .
2. Thứ hai, khách hàng tải xuống phần mềm, chẳng hạn như hệ điều hành và

trình điều khiển, cho phép nó hoạt động trên mạng giống như bất kỳ thiết bị
nào khác. Điều này đòi hỏi khả năng chuyển các tập tin một cách nhanh
chóng và dễ dàng. Các hướng dẫn để thực hiện việc khởi động này phải phù
hợp với chip bộ nhớ chỉ đọc (ROM) và điều này làm cho kích thước của
phần mềm một lần nữa là một vấn đề quan trọng , đặc biệt là nhiều năm
trước.

Nhóm đề tài 07-TFTP



Bài tập nhóm Internet và các giao thức (Tel1409)

Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

Hình 1.3 FPT và TFTP tương ứng với TCP và UDP
Các máy chủ TFTP cho phép các kết nối từ máy khách TFTP thực
hiện các hoạt động gửi và nhận tệp. Nhiều máy chủ chạy các máy chủ FTP cũng
sẽ chạy một modul máy chủ TFTP riêng biệt. Người dùng TFTP bắt đầu các kết
nối bằng cách bắt đầu một chương trình máy khách TFTP, thường sử dụng giao
diện dòng lệnh tương tự như của nhiều máy khách FTP, sự khác biệt ở đây chính
là số lượng lệnh nhỏ hơn nhiều khi sử dụng trong TFTP.
Giải pháp cho các nhu cầu trên đây là tạo ra một phiên bản FTP
"nhẹ" để chú trọng vấn đề kích thước chương trình nhỏ và tính đơn giản hơn là
vấn đề đa dạng chức năng. Giao thức mới này, được gọi là giao thức Truyền tải
tệp tin nhỏ gọn (TFTP) , được phát triển lần đầu vào cuối những năm 1970 và
được chuẩn hóa lần đầu vào năm 1980. Phiên bản hiện đại, được gọi là TFTP
phiên bản 2 , được ghi lại trong RFC 783 vào năm 1981, được sửa đổi và xuất
bản như RFC 1350, Giao thức TFTP (Bản sửa đổi 2) , vào năm 1992. Đây là
phiên bản hiện tại của TFTP.

1.2. Khái niệm
Giao thức truyền tệp nhỏ gọn TFTP (Trivial File Transfer
Protocol) là một giao thức truyền tệp khóa đơn giản cho phép khách hàng lấy
tệp từ hoặc đặt tệp lên máy chủ từ xa. Một trong những ứng dụng chính của nó
là trong giai đoạn đầu của các nút khởi động từ một mạng cục bộ. TFTP đã được

sử dụng cho ứng dụng này bởi vì nó rất đơn giản để thực hiện.
TFTP Là 1 giao thức rất đơn giản để truyền nhận file. Sự đơn
giản thể hiện ở ngay cái tên của nó: Trivial File Transfer Protocol , giao thức này
không cần đến những tưng tác phức tạp giữa client và server. TFTP giới hạn thao
tác chỉ trong việc truyền tập tin và không cung cấp việc xác minh. Không giống
như FTP, TFTP không cần dịch vụ chuyển tin đáng tin cậy mà nó sử dụng giao
thức UDP của tầng Transport, có sử dụng cơ cế timeout và việc truyền lại để
đảm bảo dữ liệu được truyền đến nơi nhận. Bên gửi truyền một tập tin theo
những khối có kích thước cố định (512 byte) và đợi lờI xác nhận của mỗi gói tin
Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

trước khi gửi tiếp. Bên phía nhận gửi trả lời đã nhận sau khi nhận được mỗi
khối.

Hình 1.4 TFTP truyền tập tin nội bộ mạng
Giao thức truyền tệp(TFTP) là giao thức chính được sử dụng cho phần
lớn các tệp truyền tải chung trong mạng nội bộ TCP / IP. Một trong những mục
tiêu của các nhà thiết kế FTP là giữ cho giao thức tương đối đơn giản, nhưng
điều đó thực sự chỉ có thể ở một mức độ hạn chế. Để cho phép giao thức hữu ích
trong nhiều trường hợp và giữa nhiều loại thiết bị, FTP cần một bộ tính năng và
khả năng khá lớn. Kết quả là, trong khi FTP không phức tạp như một số giao
thức khác, nó vẫn còn khá phức tạp trong một số khía cạnh so với TFTP.

1.3. Mối quan hệ giữa FTP và TFTP
Có lẽ cách tốt nhất để hiểu mối quan hệ giữa TFTP và FTP là so sánh nó
với mối quan hệ giữa UDP và TCP ở lớp truyền tải. UDP là một thay thế “rút
gọn” được đơn giản hóa từ TCP, được sử dụng khi tính đơn giản được chú trọng

hơn chức năng phong phú. Tương tự như vậy, TFTP là một phiên bản FTP đơn
giản, chỉ cho phép các hoạt động cơ bản và thiếu một số khả năng ưa thích của
FTP, để giữ cho việc triển khai thực hiện dễ dàng và kích thước chương trình
nhỏ.
Một số khác biệt đáng kể cụ thể hơn giữa FTP và TFTP:
Truyền tải (Transport): So sánh với TCP và UDP không chỉ dựa trên các tính

năng ,sự đơn giản, nhưng vì FTP sử dụng TCP để vận chuyển trong khi TFTP sử
dụng UDP .Giống như TFTP, UDP là đơn giản và điều này làm cho chúng được
Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

nhúng với nhau như là một chương trình phần cứng được thiết lập trong một
thiết bị mạng.
Giới hạn bộ lệnh (Limited Command Set):FTP bao gồm một bộ lệnh phong

phú để cho phép gửi các tệp, nhận, đổi tên, xóa và vv. TFTP chỉ cho phép gửi và
nhận tệp.
Giới hạn giữ liệu (Limited Data Representations): TFTP không bao gồm một

số tùy chọn dữ liệu thường dùng của FTP; nó chỉ cho phép chuyển tập tin ASCII
hoặc tệp nhị phân đơn giản.
Thiếu xác thực (Lack of Authentication): UDP không sử dụng cơ chế đăng

nhập hoặc các phương thức xác thực khác. Đây là một lần nữa đơn giản hóa,
mặc dù điều đó có nghĩa là các nhà khai thác các máy chủ TFTP phải hạn chế
nghiêm trọng các tệp mà họ cung cấp để truy cập. (Đây cũng là một phần lý do
tại sao TFTP không cho phép khách hàng thực hiện các hoạt động tệp “nguy

hiểm” như xóa.)
Do những hạn chế của nó, TFTP là một bản bổ sung, không phải là
sự thay thế cho TFP . Nó chỉ được sử dụng khi tính đơn giản của giao thức là
quan trọng hơn sự đa dạng tính năng. Ứng dụng phổ biến nhất của nó là
bootstrapping, được mô tả ở trên, mặc dù nó có thể được sử dụng cho các mục
đích khác. Một ứng dụng cụ thể mà tiêu chuẩn TFTP mô tả cho giao thức là vận
chuyển thư điện tử.
Truyền thông và nhắn tin trong TFTP rất khác so với trong FTP vì
các giao thức tầng vận tải khác nhau được sử dụng bởi mỗi giao thức. FTP sử
dụng chức năng phong phú của TCP, bao gồm định hướng dữ liệu luồng của nó,
cho phép nó gửi byte dữ liệu trực tiếp qua kết nối dữ liệu FTP. TCP cũng đảm
nhiệm việc phân phối dữ liệu đáng tin cậy cho FTP, đảm bảo các tập tin được
nhận chính xác. Ngược lại, vì TFTP sử dụng UDP, nó phải đóng gói dữ liệu
thành các thông điệp riêng lẻ cho cả điều khiển giao thức và truyền dữ
liệu.TFTP cũng phải chăm sóc việc truyền thời gian để phát hiện các datagram
bị mất và sau đó truyền lại khi cần thiết.
Các máy chủ TFTP cho phép các kết nối từ máy khách TFTP thực
hiện các hoạt động gửi và nhận tệp. Nhiều máy chủ chạy các máy chủ FTP cũng
sẽ chạy một modul máy chủ TFTP riêng biệt. Người dùng TFTP bắt đầu các kết
nối bằng cách bắt đầu một chương trình máy khách TFTP, thường sử dụng giao
Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

diện dòng lệnh tương tự như của nhiều máy khách FTP, sự khác biệt ở đây chính
là số lượng lệnh nhỏ hơn nhiều khi sử dụng trong TFTP.

1.4. Lịch sử phát triển
Với sự cần thiết được nêu tại phần 1.1 thì năm 1981 phiên

bản đầu tiên của TFTP đã được phát hành.
Tiêu chuẩn

Tên

Phát hành

Tác giả

RFC 783

The TFTP Protocol (Revision 1)

June 1981

K. Sollins

RFC 906

Bootstrap Loading using TFTP

June 1984

RFC 951

Bootstrap Protocol

Sep.1985

Ross

Finlayson
Bill Croft

RFC 1350

The TFTP Protocol (Revision 2)

July 1992

K. Sollins

Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

RFC 1782

TFTP Option Extension

March 1995

G. Malkin

RFC 2131

Dynamic Host Configuration Protocol

March 1997


R. Droms

RFC 2347

TFTP Option Extension

May 1998

G. Malkin

RFC 2348

TFTP Blocksize Option

May 1998

G. Malkin

RFC 2349

G. Malkin

RFC 5505

TFTP Timeout Interval and Transfer Size May 1998
Options
Principles of Internet Host Configuration May 2009

RFC 7440


FTP Windowsize Option

Masotta

Jan 2015P.

B. Aboba

Bảng 1.Mốc thời gian phát hành các chuẩn TFTP
TFTP luôn gắn liền với việc khởi động lại mạng (network
booting).Được công bố năm 1981 Trivial File Transfer Protocol(TFTP) tiêu
chuẩn RFC 783 được sử dụng như là giao thức truyền tập tin tiêu chuẩn cho tái
khởi động. Bootstrap Loading sử dụng tiêu chuẩn TFTP RFC 906, được xuất
bản năm 1984.
Ngay sau đó là chuẩn giao thức Bootstrap RFC 951 (BOOTP), được
xuất bản năm 1985, cho phép máy khách không ổ đĩa(disk-less) khám phá địa
chỉ IP của chính nó, địa chỉ của máy chủ TFTP và tên của Chương trình khởi
động mạng (NBP Network Bootstrap Promgram) để được chuyển giao TFTP,
nạp vào bộ nhớ, và thực thi.
Hoạt động cơ bản của TFTP không thay đổi kể từ khi RFC 1350
được xuất bản, nhưng một tính năng mới đã được bổ sung vào giao thức vào
năm 1995. RFC 1782, TFTP Option Extension , xác định một cơ chế mà máy
khách TFTP và TFTP có thể thương lượng một số tham số kiểm soát chuyển tập
tin trước khi bắt đầu chuyển. Điều này cho phép sự linh hoạt hơn trong cách sử
dụng TFTP, thêm một chút phức tạp vào TFTP, nhưng không phải là quá nhiều.
Dynamic Host Configuration Protocol tiêu chuẩn RFC 2131
(DHCP) được xuất bản năm 1997 cải thiện khả năng BOOTP. Cuối cùng,
Preboot Execution Environment (PXE) phiên bản 2.0 đã được phát hành vào
Nhóm đề tài 07-TFTP



Bài tập nhóm Internet và các giao thức (Tel1409)

tháng 12 năm 1998, và bản cập nhật 2.1đã được công bố vào tháng 9 năm 1999
dựa trên TFTP làm giao thức truyền tệp của nó.
Giao thức ban đầu có giới hạn kích thước tệp là:
512 byte / block x 65535 block = 32 MB. Năm 1998 giới hạn này được mở rộng
thành 65535 byte / block x 65535 block = 4 GB theo TFTP Blocksize Option
RFC 2348. Nếu blocksize vượt quá ngưỡng của MTU tại bất kỳ điểm nào của
đường dẫn mạng, việc phân mảnh IP ( IP fragmentation) và khôi phục lại
(reassembly) không những cần thêm chi phí (overhead) mà còn dẫn đến việc vận
chuyển bị lỗi trong BOOTP hoặc PXE ROM của máy chủ. Vì thế các gói TFTP
phải được lưu trong tiêu chuẩn Ethernet MTU (1500), giá trị khối được tính là
1500 trừ đi tiêu đề TFTP (4 byte), UDP (8 byte) và IP (20 byte) = 1468 byte /
block, giới hạn 1468 byte / khối x 65535 khối = 92 MB.
Vào tháng 1 năm 2015, TFTP Windowsize Option RFC 7440 đã
được xuất bản. Điều này cải thiện hiệu suất cho nhiều thứ như khởi động PXE
mà không có tác dụng phụ của việc phân mảnh IP.

2. ĐẶC TÍNH TFTP
2.1. Mô hình kết nối mạng
TFTP là một giao thức đơn giản và rất ít khi gửi gói lập đi lập lại
(footprint). Do đó nó được cho là giải pháp lý tưởng cho các tạc vụ sau:

Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

Hình 2.1 Mô hình kết nối mạng trong TFTP

2.1.1 Network booting (Mạng dành cho tiến trình khởi động)
Một số thiết bị, bao gồm máy trạm workstations, máy client và router, có
thể khởi động (boot) từ mạng (network) thay vì khởi động từ ổ cứng (local hard
drive). Các thiết bị này ít sử dụng bộ nhớ trong các hoạt động bình thường và do
đó không cần trang bị ổ cứng.
Vì TFTP sử dụng UDP, có thể dễ dàng được đưa vào ROM của máy khách
(client's ROM). Boot file bao gồm hệ điều hành (OS) và ứng dụng mà máy
khách cần để thực hiện các nhiệm vụ của nó, được tải xuống qua TFTP, rồi tệp
sẽ được tải lên RAM của client và sẽ chỉ chạy tại đó.
2.1.2 Operating System network installations(Mạng dành cho tiến trình cài
đặt)
Các hệ điều hành chính như Windows, Linux và Mac OS X, có hỗ trợ cài
đặt qua mạng. Nghĩa là, thay vì sử dụng trình cài đặt qua DVD hoặc thanh USB,
bạn có thể chỉ cần kết nối máy đến máy chủ và sau đó thực hiện cài đặt từ đó.
Trong tiến trình cài đặt PXE boot cơ bản, TFTP được sử dụng để cung cấp
các chương trình khởi động mạng ban đầu Initial Network Bootstrap Program
(INBP), điển hình, WinPE (cho cài đặt Windows), Việc cài đặt PXE rất tuyệt vời
cho các mạng lớn, nơi bạn có thể thực sự thấy được các ưu điểm đáng kể về tiết
kiệm thời gian so với các cài đặt dựa trên DVD hoặc dựa trên USB.

Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

2.1.3 Nâng cấp IOS của thiết bị Cisco
TFTP server có thể đóng một vai trò quan trọng khi bạn nâng cấp IOS của
các thiết bị Cisco . Đầu tiên, nó có thể được sử dụng để sao chép các tệp cấu
hình ( startup configuration files) và tệp image files của hệ thống vào máy chủ
TFTP .

Những bản sao này sau này có thể được sử dụng
làm bản sao lưu. Và thứ hai, nó có thể được sử dụng để sao chép chính từ image
file của hệ thống mới từ máy chủ đến thiết bị Cisco mục tiêu.
2.1.4 Backing up and retrieving configuration files of network devices (Sao
lưu và truy xuất tệp cấu hình của thiết bị mạng):
Các thiết bị mạng không phải Cisco (ví dụ: Dell PowerConnect, HP
ProCurve, Juniper ScreenOS, 3COM, v.v.) cũng cho phép bạn sao lưu các tệp
cấu hình của chúng vào máy chủ TFTP.
2.1.5 Downloading executables to circuit boards(Tải tập tin thực thi xuống
bảng mạch):
Một số bảng mạch cho phép bạn tải xuống các tệp thực thi qua TFTP.
2.1.6 Mối quan tâm về bảo mật
Sự đơn giản của TFTP có những nhược điểm của nó. Có lẽ điều quan
trọng nhất là thiếu tính năng bảo mật. TFTP không có cấu trúc nào được mã hóa
cả. Nó cũng không hỗ trợ bất kỳ chức năng xác thực máy khách hoặc máy chủ
nào. Do đó, chẳng hạn, không có gì ngăn cản một hacker tấn công máy chủ
TFTP của bạn, buộc khách hàng của bạn phải khởi động lại, và sau đó buộc họ
phải tải xuống các cấu hình có mã độc.
Tuy nhiên, mặc dù nhược điểm của nó, vẫn chưa có gì có thể thay thế cho
TFTP. Vẫn không có giao thức chuyển tập tin nào ngoài kia có thể thực hiện các
nhiệm vụ được thiết kế cho TFTP, yêu cầu ít hơn hoặc cùng một lượng chi phí
(overhead), và cung cấp bảo mật tốt hơn. Và ngay cả khi xuất hiện người thay
Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

thế nó, thực tế là, ngay bây giờ, TFTP được sử dụng rộng rãi. Nó sẽ mất một
thời gian trước khi nó có thể được thay thế hoàn toàn.
Do đó, nếu bạn thực sự cần triển khai TFTP trong tổ chức của mình, bạn

sẽ phải tự mình tìm cách để giảm thiểu rủi ro. Ví dụ, bạn có thể hạn chế việc sử
dụng nó cho các mạng cục bộ (private), riêng (local). Bạn cũng có thể triển khai
một số loại kiểm soát truy cập, ví dụ: hạn chế quyền truy cập vào một số địa chỉ
IP của khách hàng nhất định. Nếu lưu trữ các tập tin cấu hình và dữ liệu là
không thể chấp nhận được với bạn, thì bạn cũng có thể muốn sử dụng một số
loại mã hóa trên máy chủ. Bạn có thể viết các kịch bản của riêng bạn để tự động
hóa mọi thứ hoặc thực hiện một số tích hợp hệ thống với các giải pháp bảo mật
khác. Hoặc là, hoặc bạn có thể cung cấp TFTP của một máy chủ truyền tệp đã có
một số cơ chế bảo mật tích hợp sẵn.
2.2. Tiến trình giao thức TFTP
2.2.1 Tổng quan sơ lược
Bất cứ giao dịch nào cũng bắt đầu với yêu cầu đọc và ghi một file, việc
này cũng phục vụ để yêu cầu kết nối. Nếu máy chủ cấp yêu cầu, kết nối được
mở, tệp sẽ gửi trong các khối (block) có độ dài cố định là 512byte. Mỗi gói dữ
liệu (data) chứa một khối (block) và phải được xác nhận (ACK) trước khi gói
tiếp theo có thể gửi. Gói dữ liệu nào ít hơn 512 byte thì sẽ là tín hiệu chấm dứt
của một cuộc trao đổi. Nếu một gói bị mất trong mạng, phía nhận sẽ timeout do
đó phía gửi sẽ truyền lại gói bị mất. Lưu ý rằng cả hai máy tham gia vào sự
chuyển giao này được coi là người gửi (sender) và người nhận (receivers). Một
gửi dữ liệu và nhận được ACK, người kia gửi ACK và nhận dữ liệu.
Hầu hết các lỗi sẽ gây ra mất kết nối. Lỗi thường là do gửi một gói lỗi.
Gói này không được xác nhận (ACK) ,và không được truyền lại (tức là, máy chủ
TFTP hoặc người dùng có thể mất kết nối sau gửi một gói tin lỗi), vì vậy đầu kia
của kết nối có thể không biết được đầu còn lại có kết nối không. Lỗi được gây ra
trong ba trường hợp :
- Không thể đáp ứng yêu cầu (ví dụ: không tìm thấy tệp,truy cập vi phạm, hoặc
không có người dùng như vậy).
- Nhận được một gói tin không đúng cấu trúc bởi sự chậm trễ (delay) hoặc trùng
lặp trong mạng (duplication in the network).
Nhóm đề tài 07-TFTP



Bài tập nhóm Internet và các giao thức (Tel1409)

- Mất quyền truy cập vào tài nguyên (ví dụ: hết bộ nhớ hoặc truy cập bị từ chối
trong quá trình chuyển giao).
TFTP chỉ nhận ra một trường hợp lỗi nhưng nó đó không gây ra mất kết
nối đó là port nguồn của gói nhận được không chính xác. Trong trường hợp này,
gói lỗi được gửi đến máy chủ lưu trữ gốc.

2.2.2 Tiến trình khởi tạo kết nối
Một cuộc vận chuyển được thiết lập bằng cách gửi một yêu cầu request
(WRQ để ghi lên file hoặc RRQ để yêu cầu đọc file), và nhận được trả lời: một
Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

gói xác nhận ACK cho yêu cầu ghi, hay là một gói ACK kèm theo một packet
dữ liệu đầu tiên cho yêu cầu đọc. . Nói chung 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.
Để tạo kết nối, mỗi đầu của kết nối sẽ chọn TID cho chính nó, được sử
dụng trong suốt thời gian kết nối . Các TID được chọn cho một kết nối là số
ngẫu nhiên trong khoảng 0 - 65,535, để xác suất mà cùng một số được chọn hai
lần nhỏ. Mỗi packet sẽ quan tâm đến TID của 2 đầu, TID nguồn và TID đích.
NhữngTID được trao cho UDP hỗ trợ (hoặc giao thức datagram khác). Một máy
chủ 1 chọn nguồn TID như mô tả ở trên và gửi yêu cầu request của nó tới TID
đã biết là 69 dạng thập phân (105 dạng bát phân) trên máy chủ 2. Câu trả

lời(response) cho yêu cầu (request) này , sử dụng TID được chọn bởi máy chủ 2
là TID nguồn (69) và TID đích là TID của người yêu cầu. Hai TID được chọn
sau đó được sử dụng cho phần còn lại của trao đổi.
Ví dụ sau đây cho thấy các bước được sử dụng để thiết lập kết nối để ghi
lên một file. Lưu ý rằng WRQ, ACK và DATA là tên của các yêu cầu ghi (write
request), xác nhận (acknowledgment) và kiểu dữ liệu của các gói tương ứng:
Trong trường hợp gửi file
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

Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

Trong trường hợp đọc file:
1. host A gửi "RRQ" tới host B với source= TID của A,đích = 69 (TID của B) .

2. Host B gửi một "DATA" (với số khối = 1) đến host A với source = TID của

B, đích = TID của A.

Tại thời điểm này, kết nối đã được thiết lập và dữ liệu đầu tiên có thể
được gửi bởi Máy chủ A với số thứ tự là 1. Trong lần tiếp theo bước và trong tất
cả các bước thành công, máy chủ phải đảm bảo rằng nguồn TID khớp với giá trị
đã được thỏa thuận trong các bước 1 và 2. Nếu một nguồn TID không khớp, gói

phải được loại bỏ và được gửi từ nơi khác. Một gói lỗi phải được gửi đến nguồn
không chính xác ghi trong gói, trong khi không làm phiền quá trình chuyển.Điều
này có thể được thực hiện chỉ khi TFTP trong thực tế nhận được một gói với một
TID không đúng.
Ví dụ sau đây minh họa một hoạt động chính xác của giao thức. Máy chủ
A gửi yêu cầu đến máy chủ lưu trữ B. Một nơi nào đó trong mạng, gói yêu cầu
(request) được nhân đôi, và sẽ hai acknowledgments được trả về host A, với các
TID khác nhau được chọn trên máy chủ B để đáp ứng với hai yêu cầu (request).
Khi lần đầu tiên phản hồi đến, máy chủ A tiếp tục kết nối. Khi thứ hai phản hồi
yêu cầu đến, nó sẽ bị từ chối, nhưng không có lý do để chấm dứt kết nối đầu
tiên. Do đó, nếu TID khác nhau được chọn cho hai kết nối trên máy chủ B và
Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

máy chủ A kiểm tra nguồn TID của các tin nhắn nhận được, kết nối đầu tiên có
thể được duy trì trong khi thứ hai bị từ chối bằng cách trả về một gói lỗi.
2.2.3 Tiến trình chấm dứt thông thường
Kết thúc truyền được đánh dấu bằng gói DATA được chưa trong khoảng 0
và 511 byte dữ liệu (ví dụ: Chiều dài datagram <516). Gói này là được thừa
nhận (acknowledged) bởi một gói ACK giống như tất cả các gói DATA khác.
Máy chủ thừa nhận gói DATA cuối cùng có thể chấm dứt kết nối bên của nó khi
gửi ACK cuối cùng. Mặt khác, dallying là được khuyến khích. Điều này có
nghĩa là máy chủ gửi ACK cuối cùng sẽ đợi trong một thời gian trước khi chấm
dứt kết nối để truyền lại ACK cuối cùng nếu nó đã bị mất. Người gửi ACK sẽ
biết rằng ACK đã bị mất nếu nó nhận được gói DATA cuối cùng một lần nữa.
Máy chủ gửi gói data cuối cùng phải truyền lại cho đến khi gói được xác nhận
hoặc gửi bị timeout. Nếu đáp ứng là ACK, quá trình truyền là đã hoàn tất thành
công. Nếu người gửi dữ liệu hết thời gian (timeout) và không được chuẩn bị để

truyền lại nữa, nghĩa là quá trình chuyển vẫn có thể hoàn thành thành công.
2.2.4 Tiến trình chấm dứt sớm
Nếu một yêu cầu (request ) không thể được cấp, hoặc một số lỗi xảy ra
trong quá trình truyền, sau đó một gói ERROR (opcode 5) được gửi đi. Đây chỉ
là một phép lịch sự vì nó sẽ không được truyền lại hoặc thừa
nhận(acknowledged), vì vậy nó có thể không bao giờ được nhận. Thời gian chờ
cũng phải được sử dụng để phát hiện lỗi.

2.3. Khuôn dạng bản tin TFTP
Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

TFTP là giao thức đơn giản để truyền tệp và do đó được đặt tên giao
thứctruyền tệp thông thường hoặc TFTP. Nó đã được triển khai trên giao thức
người dùng Internet Datagram (UDP hoặc Datagram).
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 .
Thứ tự nội dung của gói tin sẽ là:local medium header,Internet header,
Datagram header, TFTP header.
Ngoài ra, các gói có thể có một tiêu đề (LNI, tiêu đề ARPA, vv) để cho
phép chúng thông qua phương tiện vận chuyển cục bộ .
TFTP không chỉ định bất kỳ giá trị trong tiêu đề Internet. Mặt khác, các
trường nguồn và đích của tiêu đề Datagram được TFTP sử dụng và trường độ
dài phản ánh kích thước của gói TFTP. Các mã định danh chuyển (TID) được
TFTP sử dụng được chuyển tới lớp Datagram để sử dụng làm cổng; do đó chúng
phải nằm trong khoảng từ 0 đến 65.535.
Tiêu đề TFTP bao gồm trường mã hóa 2 byte cho biết loại gói (ví dụ:
DATA, ERROR, vv) Các opcodes và định dạng của các loại gói khác nhau được

thảo luận thêm trong trên các gói TFTP.
------------------------------------------| Local Medium | Internet | Datagram | TFTP |
-------------------------------------------Thứ tự tiêu đề
TFTP định nghĩa ba chế độ truyền: netascii, octet và mail
-

Netascii là dạng sửa đổi của ASCII. Nó bao gồm phần mở rộng 8 bit của không
gian ký tự ASCII 7 bit từ 0x20 đến 0x7F (các ký tự có thể in và không gian) và
tám ký tự điều khiển. Các ký tự điều khiển được phép bao gồm null (0x00),
nguồn cấp dữ liệu dòng (LF, 0x0A) và trả về vận chuyển (CR, 0x0D). Netascii
cũng yêu cầu kết thúc đánh dấu dòng trên một máy chủ được dịch sang cặp ký
tự CR LF để truyền và rằng bất kỳ CR nào phải được theo sau bởi một LF hoặc
null.
Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)
-

-

Octet cho phép chuyển các byte 8 bit thô tùy ý, với tệp nhận được, kết quả là
byte-mỗi-byte giống hệt với byte được gửi. Chính xác hơn, nếu một host nhận
được một tệp octet và sau đó trả về nó, tệp trả về phải giống hệt với tệp gốc.
Mail :Chế độ truyền thư sử dụng chuyển Netascii, nhưng tệp được gửi tới người
nhận email bằng cách chỉ định địa chỉ email của người nhận làm tên tệp.
TFTP hỗ trợ 5 loại gói hoạt động opcode :

-


Đọc yêu cầu (RRQ)
Ghi yêu cầu (WRQ)
Dữ liệu (DATA)
Xác nhận (ACK)
Lỗi (ERROR)

Hình 2.2 Tiêu đề TFTP
Tiêu đề TFTP của gói chứa mã opcode được liên kết với gói đó.
Hai byte đầu tiên sẽ mở thông điệp TFTP tạo thành một opcode . Đối với
một yêu cầu đọc (RRQ) và một yêu cầu viết (WRQ) tên tệp chỉ định tệp trên
máy chủ mà máy khách muốn đọc hoặc ghi vào. Khi đọc một tệp, máy khách
gửi một gói RRQ với tên tệp và chế độ. Máy chủ phản hồi với một gói dữ liệu
với số khối 1. Máy khách gửi một thông điệp ACK về số khối 1. Máy chủ phản
hồi với khối dữ liệu tiếp theo, với số khối là 2. Máy khách gửi một ACK của
khối số 2. Điều này tiếp tục cho đến EOF. Mỗi gói dữ liệu chứa 512 byte dữ liệu,
ngoại trừ gói dữ liệu cuối cùng. Khi khách hàng nhận được một gói dữ liệu với ít
hơn 512 byte dữ liệu, nó biết nó đã nhận được gói tin cuối cùng.
Các gói RRQ và WRQ (mã số 1 và 2 tương ứng) : Tên tệp là một chuỗi
các byte trong netascii kết thúc bằng một byte không. Trường chế độ chứa chuỗi
Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

"netascii", "octet" hoặc "mail" (hoặc bất kỳ kết hợp nào ở trên và chữ thường,
chẳng hạn như "NETASCII", NetAscii ", v.v.) trong netascii chỉ ra ba chế độ
được xác định trong giao thức. Máy chủ lưu trữ nhận dữ liệu chế độ netascii
phải tự dịch dữ liệu định dạng. Chế độ Octet được sử dụng để truyền tệp có
trong 8 bit định dạng của máy mà từ đó tập tin đang được chuyển. Nó giả định
rằng mỗi loại máy có một định dạng 8 bit duy nhất phổ biến hơn và định dạng

đó được chọn. Ví dụ, trên một DEC-20, máy 36 bit, đây là bốn byte 8 bit cho
một từ bốn bit vỡ. Nếu máy chủ nhận tệp octet và sau đó trả về nó, tệp trả về
phải giống hệt với tệp gốc. Chế độ thư sử dụng tên của người nhận thư thay cho
tệp và phải bắt đầu bằng WRQ. Nếu không nó giống hệt với chế độ netascii.
Chuỗi người nhận thư phải có dạng "username" hoặc "username@hostname".
Nếu biểu mẫu thứ hai được sử dụng, nó cho phép tùy chọn chuyển tiếp thư bằng
máy tính chuyển tiếp.
2 bytes

string

1 byte

string

1 byte

-----------------------------------------------| Opcode | Filename | 0 |

Mode

| 0 |

-----------------------------------------------RRQ/WRQ packet
Các cuộc thảo luận ở trên giả định rằng cả người gửi và người nhận đang
hoạt động trong cùng một chế độ, nhưng không có lý do nào cho điều này. Ví
dụ, người ta có thể xây dựng một máy chủ lưu trữ. Không có lý do gì mà một cỗ
máy như vậy cần dịch netascii thành dạng văn bản riêng của nó . Thay vào đó,
người gửi có thể gửi tệp trong netascii, nhưng máy chủ lưu trữ có thể chỉ lưu trữ
chúng mà không cần dịch ở định dạng 8 bit.

Một tình huống như vậy là một vấn đề tồn tại trên các hệ thống DEC-20.
Cả netascii lẫn octet đều không truy cập được tất cả các bit trong một từ. Người
ta có thể tạo ra một chế độ đặc biệt cho một máy như vậy mà đọc tất cả các bit
trong một từ, nhưng trong đó người nhận lưu trữ thông tin ở định dạng 8-bit. Khi
một tập tin như vậy được lấy ra từ trang lưu trữ, nó phải được khôi phục về dạng
ban đầu của nó để có ích, vì vậy chế độ ngược lại cũng phải được thực hiện.
Các trang web của người dùng sẽ phải nhớ một số thông tin để đạt được
điều này. Trong cả hai ví dụ này, các gói yêu cầu sẽ chỉ định chế độ octet với
Nhóm đề tài 07-TFTP


Bài tập nhóm Internet và các giao thức (Tel1409)

máy chủ nước ngoài, nhưng máy chủ địa phương sẽ ở chế độ khác. Không có
chế độ cụ thể của máy hoặc ứng dụng nào được chỉ định trong TFTP, nhưng một
chế độ sẽ tương thích với đặc điểm kỹ thuật này.
Cũng có thể xác định các chế độ khác cho các cặp hợp tác của nhà, mặc
dù điều này phải được thực hiện cẩn thận. Không có yêu cầu rằng bất kỳ máy
chủ nào khác thực hiện chúng. Không có thẩm quyền trung tâm nào xác định các
chế độ này hoặc chỉ định tên cho chúng.
Dữ liệu gói DATA :Dữ liệu thực sự được truyền trong các gói DATA được
mô tả :
2 bytes

2 bytes

n bytes

---------------------------------| Opcode | Block # | Data


|

---------------------------------DATA packet
Các gói DATA (opcode = 3) có một số khối và trường dữ liệu. Các số khối
trên gói dữ liệu bắt đầu bằng một và tăng một số cho mỗi khối dữ liệu mới. Hạn
chế này cho phép chương trình sử dụng một số duy nhất để phân biệt giữa các
gói dữ liệu và bản sao mới. Trường dữ liệu từ 0 đến 512 byte. Nếu nó dài 512
byte , khối không phải là khối dữ liệu cuối cùng; nếu nó dài từ 0 đến 511 byte,
nó báo hiệu kết thúc quá trình chuyển.

-Gửi một gói DATA là một sự thừa nhận cho gói ACK đầu tiên của gói DATA
trước đó. Các gói WRQ và DATA được thừa nhận bởi các gói ACK hoặc

Nhóm đề tài 07-TFTP


×