Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
amm.dimm
Зарегистрирован: 03.02.2005 Сообщения: 15 Откуда: Воронеж
|
Добавлено: Чт Фев 03 2005 13:36 Заголовок сообщения: Сетевые протоколы (HTTP->TCP->IP->Ethernet) |
|
|
Если кто-нибудь разбирался с этими вещами... Мне надо пихать хтмл страницы в HTTP пакеты, их в TCP итд. Затем отправлять.
Мне осталось неясно 2 вопроса. Как указать, что тело http пакета содержит непакованные данные ( влом писать gzip, к тому же там данных-то будет байт 200 ). И по таблице Ethernet адресов нифига я не понял... где почитать может подскажете?
Да, и еще. Есть ли программки для отладки таких вещей, т. е. я формирую Ethernet кадр, а программка эта его пихает в сетевуху...
Заранее спасибо. |
|
Вернуться к началу |
|
 |
FUKS
Зарегистрирован: 14.04.2002 Сообщения: 148 Откуда: Москва
|
Добавлено: Чт Фев 03 2005 16:07 Заголовок сообщения: Re: Сетевые протоколы (HTTP->TCP->IP->Ethernet) |
|
|
Ну и задачка однако! Это ж совсем разные уровни.
пихать хтмл страницы в HTTP пакеты - для начала вообще-то полагается принять запрос на них от клиента, сервер же по своей инициативе их не рассылает, а клиент пихает запросы, а не страницы. Описание HTTP-заголовка есть? И не надо, можно запустить NetVampire, задать ему скачать HTTP-ресурс и посмотреть заголовки, для начала хватит (только Content-Type выставлять сооответствующий содержимому страницы, в данном случае text/html, можно с указанием кодировки).
Запрос:
Код: |
GET /page1.htm HTTP/1.0
Host: voronezh-hd.ru
Accept: */*
|
Ответ:
Код: |
HTTP/1.1 200 OK
Date: Thu, 03 Feb 2005 12:48:48 GMT
Server: Samyj Krutoj HTTP-Servak 0.99B (no OS)
Connection: close
Content-Type: text/html
|
(Типичный вариант, для прямого соединения, без проксей.)
Как указать, что тело http пакета содержит непакованные данные
А зачем это отдельно указывать? Это всё в том же Content-Type прописано.
И по таблице Ethernet адресов нифига я не понял... где почитать может подскажете?
А что, программа без операционной системы должна работать, напрямую с Ethernet-картой? Тогда она должна уметь опознавать её, т.е. знать как узнать её наличие в компе и номера портов, настраивать режим прямого доступа к памяти для неё... А под ОС всё это уже есть и доступно через WinSock API под Windows (подключается winsock.h в исходнике и пара dll-ок при линковке) или нативно встроено в Unix и т.п., функции socket, bind+listen+accept на сервере, connect на клиенте - это всё в любом хелпе/мане описано подробно.
Да, и еще. Есть ли программки для отладки таких вещей, т. е. я формирую Ethernet кадр, а программка эта его пихает в сетевуху...
Есть программа X-Spider, но не помню работает ли она с Ethernet-кадрами, не приходилось так глубоко копать. Ещё можно порыть по ключевому слову "сниффер". |
|
Вернуться к началу |
|
 |
amm.dimm
Зарегистрирован: 03.02.2005 Сообщения: 15 Откуда: Воронеж
|
Добавлено: Чт Фев 03 2005 17:21 Заголовок сообщения: |
|
|
пихать хтмл страницы в HTTP пакеты - для начала вообще-то полагается принять запрос на них от клиента, сервер же по своей инициативе их не рассылает, а клиент пихает запросы, а не страницы. -- ну эт-то ясно.
Как указать, что тело http пакета содержит непакованные данные
А зачем это отдельно указывать? Это всё в том же Content-Type прописано. -- это я раскопал. Кстати в Content-Type указывается тип данных, а насчет упаковки -- есть поле Content-Encoding. Как я выяснил, если его не указывать, а указать Content-Length (это если не бить данные на несколько http кусков (Transfert-Encoding: Chunked)) тогда их паковать не надо...
А что, программа без операционной системы должна работать, напрямую с Ethernet-картой? -- именно, сразу не написал, чтобы народ не распугать, потому что это к реализации самих протоколов не имеет никакого отношения. Прога будет в Микрухе крутиться, микруха соединена с Ethernet контроллером. Приходит запрос с парой-тройкой переменных, она коротенько отвечает.
Насчет Ethernet адресов -- я читал, что периодически рассылаются широковещательные запросы, из полученных ответов строится таблица Ethernet адресов, каждый из которых может быть использован в качестве Ethernet адреса получателя при отправке Ethernet кадра. Но все это было описано слишком поверхностно и размыто. Вот я и спрашиваю, может кто-нибудь знает хорошую литературу по этому поводу (желательно русскую).
Есть программа X-Spider, но не помню работает ли она с Ethernet-кадрами, не приходилось так глубоко копать. Ещё можно порыть по ключевому слову "сниффер". -- поищу.
Большое спасибо, что откликнулся...  |
|
Вернуться к началу |
|
 |
FUKS
Зарегистрирован: 14.04.2002 Сообщения: 148 Откуда: Москва
|
Добавлено: Чт Фев 03 2005 18:14 Заголовок сообщения: |
|
|
amm.dimm писал(а): | Кстати в Content-Type указывается тип данных, а насчет упаковки -- есть поле Content-Encoding. |
Даже не слышал о таком . А значит оно и не нужно, наворот это, в общем случае не используется. Похоже, оно намекает, что данные закодированы в виде Quoted-printable или Base64?
Как я выяснил, если его не указывать, а указать Content-Length ...
Content-Length тоже не обязательно указывать
Насчет Ethernet адресов -- я читал, что периодически рассылаются широковещательные запросы, из полученных ответов строится таблица Ethernet адресов, каждый из которых может быть использован в качестве Ethernet адреса получателя при отправке Ethernet кадра.
Насколько я знаю, обычно периодически они не рассылаются, поэтому после смены карточки в машине в локальной сети она не может работать, потому как остальные хосты в ЛС помнят её старый Ethernet-адрес. Если речь идёт об ARP-запросах, то они рассылаются каждым хостом одноразово, чтобы узнать Ethernet-адрес хоста локальной сети, которому принадлежит IP-адрес получателя. Конкретных подробностей этого дела не знаю.
Но все это было описано слишком поверхностно и размыто. Вот я и спрашиваю, может кто-нибудь знает хорошую литературу по этому поводу (желательно русскую).
Можно опять же поиском по ключевым словам пройтись, а самая толковая литература - RFC, но это на английском. Точных ссылок не дам, вот нарыл: http://www.ripn.net:8080/nic/archive.html
Большое спасибо, что откликнулся...
Жаль, что не могу помочь более конкретно. |
|
Вернуться к началу |
|
 |
amm.dimm
Зарегистрирован: 03.02.2005 Сообщения: 15 Откуда: Воронеж
|
Добавлено: Пт Фев 04 2005 09:26 Заголовок сообщения: |
|
|
удобный каталог, спасибо. |
|
Вернуться к началу |
|
 |
FUKS
Зарегистрирован: 14.04.2002 Сообщения: 148 Откуда: Москва
|
Добавлено: Пт Фев 04 2005 13:59 Заголовок сообщения: |
|
|
Да, вспомнил! Первоисточник - http://w3c.org/ |
|
Вернуться к началу |
|
 |
amm.dimm
Зарегистрирован: 03.02.2005 Сообщения: 15 Откуда: Воронеж
|
Добавлено: Пт Фев 04 2005 14:29 Заголовок сообщения: |
|
|
Прикольный у нас форум... из двух человек.
Чего-т я там ничего не нашел полезного, там html и на этом уровне все... |
|
Вернуться к началу |
|
 |
FUKS
Зарегистрирован: 14.04.2002 Сообщения: 148 Откуда: Москва
|
|
Вернуться к началу |
|
 |
|