АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Опис протоколу TFTP

Читайте также:
  1. Опис протоколу RFC 3164.
  2. Опис протоколу UDP
  3. Перед підписанням протоколу учасникам процесуальної дії нада- сп.ся можливість ознайомитися із текстом протоколу.
  4. По текущему протоколу
  5. ПРИМЕР НАСТРОЙКИ ПОДКЛЮЧЕНИЯ ТР ПО ПРОТОКОЛУ PPPoE
  6. Стаття 106. Підготовка протоколу та додатка
  7. Тема 2.5. Основи ділового протоколу
  8. Фототаблиці, схеми, зліпки, носії комп'ютерної інформації та інші матеріали, які пояснюють зміст протоколу.

Застосування
Основне призначення TFTP - забезпечення простоти реалізації клієнта. У зв'язку з цим він використовується для завантаження бездискових робочих станцій, завантаження оновлень і конфігурацій в «розумні» мережеві пристрої, записи статистики з міні-АТС (CDR) і апаратних маршрутизаторів / файрволов.
Безпека
Оскільки протокол не підтримує аутентифікації, єдиний метод ідентифікації клієнта - це його мережеву адресу (який може бути підроблений). Зазвичай в Unix-системах tftpd доступний тільки каталог / tftpboot. Однак у старих TFTP-серверах було можливим отримати файл паролів командою GET.. / etc / passwd.
Демон tftpd (одна з реалізацій tftp-сервера) відмовляється обробляти файли, що містять у своєму імені комбінацію «/.. /» або що починається з «.. /». Запис дозволяється тільки в файли, які вже існують (будь-якого розміру, наприклад нульового), і доступні для публічної запису (права доступу:-rw-rw-rw-). [1]
Додатковий захист від доступу до довільних файлів здійснюється за допомогою зміни кореневого каталогу на каталог tftpd (зазвичай / usr / TFTPRoot).
Типи пакета
Спочатку в TFTP-пакеті йде поле розміром в 2 байти, визначальне тип пакету:
• Read Request (RRQ, # 1) - запит на читання файлу.
• Write Request (WRQ, # 2) - запит на запис файлу.
• Data (DATA, # 3) - дані, передані через TFTP.
• Acknowledgment (ACK, # 4) - підтвердження пакета.
• Error (ERR, # 5) - помилка.
• Options Acknowledgment (OACK, # 6) - підтвердження опцій.

Узагальнений алгоритм тестування тестування системи (програм клієнт та сервер)

l Старт сервера.

l Старт клієнта з цієї ж машини.

l Старт клієнта з іншої машини.

l Одночасна робота декількох клієнтів.

2. Пооператорна схема алгоритму програми клієнт з фрагментами программи (з вимірюванням часу передачі/прийому пакета).

2.1 Ініціалізація бібліотеки

WSAStartup(02, WSA);

2.2 Відкриття сокету, підключення

Result:= TRUE;

Sock:= socket(AF_INET, SOCK_STREAM, 0);

Addr.sin_family:= AF_INET;

Addr.sin_port:= htons(5005);

Addr.sin_addr.S_addr:= localhost;

bind(Sock, Addr, SizeOf(Addr));

listen(Sock, SOMAXCONN);

2.3 Відправка запиту на зчитування/запису файлу.

2.4 Прийняття відповіді.

2.5 Відсилання підтвердження.

2.6 Відключення.

3. Пооператорна схема алгоритму програми сервер з фрагментами програми.

3.1 Ініціалізація бібліотеки

WSAStartup(02, WSA);

3.2 Відкриття сокету.

Result:= TRUE;

Sock:= socket(AF_INET, SOCK_STREAM, 0);

Addr.sin_family:= AF_INET;

Addr.sin_port:= htons(5005);

Addr.sin_addr.S_addr:= htonl(INADDR_ANY);

bind(Sock, Addr, SizeOf(Addr));

listen(Sock, SOMAXCONN);

3.3 Прийняття підключеннь.

Len:= SizeOf(ClientAddr);

ClientSock:= WinSock.accept(Sock, @CLientAddr, @Len);

Writeln('Client connect from '+IntToStr(htons(ClientAddr.sin_port)));

S:= '';

3.4 Прийняття данних.

recv(ClientSock, S, SizeOf(S), 0);

Writeln('Receive message from '+IntToStr(htons(ClientAddr.sin_port))+': ' + S);

3.5 Обробка пакету.

case s[0] of

chr(1):

AcceptPRQ;

chr(2):

AcceptWRQ;

 

3.6 Формування відповіді.

StrCopy(@FileName[0], @S[2]);

Len:= Length(FileName);

StrCopy(@Mode[0], @S[2 + Length(FileName)]);

f:= FileOpen(Filename, FileRead);

sz:= SizeOfFile(f);

TransmitFile(Sock, f, sz, sz, Nil, nil, 0);

CloseFile(f);

3.7 Отримання підтвердження.

3.8 Перейти на 4.3.


1 | 2 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)