<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Два студента пишут лабы &#187; Сетевые протоколы</title>
	<atom:link href="http://www.studcode.ru/archiv/category/konspekty/setevye-protokoly/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.studcode.ru</link>
	<description>Конспекты лекций, самостоятельные работы по  delphi, с++, php. Курсовые проекты. Все что мы сделали вы можете скачать без проблем!</description>
	<lastBuildDate>Wed, 27 Oct 2010 15:15:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Протокол IP</title>
		<link>http://www.studcode.ru/archiv/protokol-ip/</link>
		<comments>http://www.studcode.ru/archiv/protokol-ip/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 20:44:28 +0000</pubDate>
		<dc:creator>archey</dc:creator>
				<category><![CDATA[Сетевые протоколы]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сеть]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=561</guid>
		<description><![CDATA[IP – дейтаграммы
Межсетевой протокол  IP (Internet Protocol) обеспечивает доставку пакета данных от источ-ника к получателю через систему связанных между собой сетей. В протоколе IP отсутствуют функции подтверждения, контроля передачи, сохранения последовательности передаваемых пакетов и т.д. Надежность и прочие функции, отсутствующие у IP, при необходимости реали-зуются протоколами верхнего уровня. Пакеты данных IP носят название IP [...]]]></description>
			<content:encoded><![CDATA[<p>IP – дейтаграммы</p>
<p>Межсетевой протокол  IP (Internet Protocol) обеспечивает доставку пакета данных от источ-ника к получателю через систему связанных между собой сетей. В протоколе IP отсутствуют функции подтверждения, контроля передачи, сохранения последовательности передаваемых пакетов и т.д. Надежность и прочие функции, отсутствующие у IP, при необходимости реали-зуются протоколами верхнего уровня. Пакеты данных IP носят название IP – дейтаграмм.<br />
Дейтаграмма состоит из заголовка и поля данных.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="103" rowspan="2">
<p align="center">4б.<br />
      Номер<br />
      версии</p>
</td>
<td width="116" colspan="2" rowspan="2">
<p align="center">4б.<br />
      Длина<br />
      заголовка</p>
</td>
<td width="199" colspan="5">
<p align="center">8б.<br />
      Тип сервиса</p>
</td>
<td width="388" colspan="4" rowspan="2">
<p align="center">16б.<br />
      Общая длина</p>
</td>
</tr>
<tr>
<td width="35">
<p align="center">PR</p>
</td>
<td width="40">
<p align="center">D</p>
</td>
<td width="35">
<p align="center">T</p>
</td>
<td width="44">
<p align="center">R</p>
</td>
<td width="44">
<p align="center">н/и</p>
</td>
</tr>
<tr>
<td width="418" colspan="8" rowspan="2">
<p align="center">16б.<br />
      Идентификация пакета</p>
</td>
<td width="116" colspan="3">
<p>3б.Флаги</p>
</td>
<td width="272" rowspan="2">
<p align="center">13б.<br />
      Смещение фрагмента</p>
</td>
</tr>
<tr>
<td width="59">
<p>н/и</p>
</td>
<td width="30">
<p>D</p>
</td>
<td width="27">
<p>M</p>
</td>
</tr>
<tr>
<td width="197" colspan="2">
<p align="center">8б. Время жизни</p>
</td>
<td width="221" colspan="6">
<p align="center">8б. Протокол верхнего<br />
      уровня</p>
</td>
<td width="388" colspan="4">
<p> 16б. Контрольная сумма</p>
</td>
</tr>
<tr>
<td width="806" colspan="12">
<p align="center">32б.<br />
      IP    –адрес    источника</p>
</td>
</tr>
<tr>
<td width="806" colspan="12">
<p align="center">32б.<br />
      IP    –адрес    назначения</p>
</td>
</tr>
<tr>
<td width="806" colspan="12">
<p align="center">Опции и выравнивание</p>
</td>
</tr>
<tr>
<td width="806" colspan="12">
<p align="center">Прикладные данные</p>
</td>
</tr>
</table>
<p>Заголовок занимает как минимум 20 октетов, максимум 60.<br />
Номер версии – 4 (IPv 4) , может будет 6 (IPv 6).<br />
Длина заголовка  &#8211; указывается в 32 – битовых словах.<br />
Тип сервиса  &#8211; определяет требуемые характеристики обработки дейтаграмм.<br />
PR (б.0 &#8211; 2) – приоритет пакета: 0 – самый низкий (нормальный пакет) , 7 – самый высокий (управляющая информация).<br />
Может учитываться при перезагрузке сети.<br />
D,T,R – критерий выбора маршрута:<br />
D – 1 –минимизация задержки , 0 – нормальная;<br />
T – 1 – максимизация пропускной способности , 0 – норма;<br />
R &#8211; 1 – максимизация надежности.<br />
Б.6 – 7 &#8211;  зарезервированы.<br />
Общая длина – общий размер дейтаграммы (заголовок + данные) в октетах (max &#8211; 65535).<br />
Идентификатор пакета, флаги, смещение фрагмента – используется при фрагментации.<br />
Время жизни пакета (TTL) – если значение становится 0 , то пакет уничтожается. Каждый маршрутизатор принимает 1.<br />
Протокол верхнего уровня – указывает, какому протоколу верхнего уровня принадлежит информация в поле данных : 6 – TCP , 17 – UDP.<br />
Контрольная сумма – вычисляется для заголовка. Используется для проверки правильности пакета. В случае несовпадения вновь рассчитанной и указанной в заголовке пакет отбрасывать-ся. Пересчитывается в каждом маршрутизаторе.<br />
Опции – необязательны, используется при отладке сети.<br />
Выравнивание – используется для выравнивания заголовка до границы 32 – битного слова (заполняется нулями).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/protokol-ip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Стек протоколовTCP / IP</title>
		<link>http://www.studcode.ru/archiv/stek-protokolovtcp-ip/</link>
		<comments>http://www.studcode.ru/archiv/stek-protokolovtcp-ip/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 20:28:38 +0000</pubDate>
		<dc:creator>archey</dc:creator>
				<category><![CDATA[Сетевые протоколы]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сеть]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=555</guid>
		<description><![CDATA[Стек протоколовTCP / IP
7
6	HTTP, FTP, SMTP, POP3, SNMP, TELNET,
TFTP	I
5      4	TCP, UDP	II
3	IP,  ICMP, RIP, OSPF, ARP	III
2
1	ETHERNET, TOKEN RING, FDDI, X.25 , ATM,
SLIP, PPP 	IV
             Уровни стека:
1)	прикладной    I ;
2)	транспортный   II ;
3)	уровень межсетевого взаимодействия  [...]]]></description>
			<content:encoded><![CDATA[<p>Стек протоколовTCP / IP</p>
<p>7<br />
6	HTTP, FTP, SMTP, POP3, SNMP, TELNET,<br />
TFTP	I<br />
5      4	TCP, UDP	II<br />
3	IP,  ICMP, RIP, OSPF, ARP	III<br />
2<br />
1	ETHERNET, TOKEN RING, FDDI, X.25 , ATM,<br />
SLIP, PPP 	IV<br />
             Уровни стека:<br />
1)	прикладной    I ;<br />
2)	транспортный   II ;<br />
3)	уровень межсетевого взаимодействия  III (сетевой);<br />
4)	уровень сетевых протоколов   IV.<br />
<span id="more-555"></span><br />
На прикладном уровне реализованы широко используемые сервисы: гипертекст, электрон-ная почта и т.д. Прикладная программа передает данные транспортному уровню в требуемой форме.<br />
Основной задачей транспортного уровня является взаимодействие между прикладными программами. Для адресации приложения используется параметр – номер порта. Транспортный уровень управляет потоком информации и обеспечивает надежность передачи. Для этого ис-пользован механизм подтверждения  правильного приема с дублированием передачи утерянных и пришедших с ошибками пакетов. Протокол TCP обеспечивает гарантированную доставку данных за счет образования логических соединений между удаленными прикладными процес-сами. Протокол UDP не гарантирует доставку данных и служит для связи приложений и сетево-го уровня.<br />
Сетевой уровень является основой стека TCP / IP. Этот   уровень реализует концепцию сети с коммутацией пакетов. Основным протоколом этого уровня является протокол IP, обеспечи-вающий передачу пакетов по сети со сложной топологией в режиме установки соединения (не гарантируется доставка данных). Работу IP обслуживают другие протоколы: RIP, OSPF – мар-шрутизация (построение таблицы маршрутизации ), ICMP – передача управляющих сообщений, ARP – преобразование адресов. На этом уровне узлы сети адресуются с помощью IP – адресов. Уровень сетевых интерфейсов описывает, как IP – дейтаграммы передаются в конкретных сетях по протоколам канального и физического уровней. На этом уровне сетевые узлы адресуются с помощью физических адресов (например, в сети Ethernet – MAC-адрес сетевой карты или порта  маршрутизатора).</p>
<p>Адресация в Internet</p>
<p>Используются 4 типа адресов:<br />
1)	Физические(аппаратные, локальные).Используются на уровне сетевого интерфейса. Имеет каждая сетевая плата сетевого узла.<br />
2)	IP – адреса. Используются на сетевом уровне. Один узел может иметь несколько различ-ных адресов (м.б. подключен к нескольким сетям).<br />
3)	Порты. Используются на транспортном уровне. Уникальны для каждого приложения.<br />
4)	Символьные доменные имена. Используются на прикладном уровне. Как правило, уни-кальны.</p>
<p>IP – адреса</p>
<p>Схема IP адресации описана в документах RFC 990 и RFC  997.<br />
Каждый IP – адрес можно представить состоянщим из 2-х частей: адрес или номер сети и адрес (номер) узла в этой сети. Такое делениие облегчает маршрутизацию.<br />
Существует 5 классов IP – адресов:<br />
Часто IP – адрес задается в виде 4 – х десятичных чисел от 0 до 255 (192.168.0.1).<br />
Протокол IP поддерживает три способа адресации:<br />
1)	единичную;<br />
2)	широковещательную;<br />
3)	групповую.<br />
Широковещательная адресация бывает 2 – х типов :<br />
1)	направленная – одна  IP – дейтаграмма доставляется всем узлам указанной сети. Исполь-зуются адреса вида: сеть – Nсети , узел 11&#8230;1 (или 00.0) .<br />
2)	ограниченная – одна IP – дейтаграмма доставляется всем узлам данной сети. Использу-ются два адреса <img src='http://www.studcode.ru/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> 0.0.0.0 и 00…0) 255.255.255.25 (111…1).<br />
При групповой адресации дейтаграмма доставляется определенной группе устройств. Для этого группе устройств присваивается 28 – битный адрес и используется класс адресов – D.<br />
      Другие особые адреса:<br />
0.0.0.0 – адрес того узла, который генерировал пакет.<br />
Сеть – 0 , узел – Nузла – считается, что узел назначения в той же сети, что и узел, отпра-вивший пакет.<br />
127.0.0.1 – петля. Данные не передаются по сети, а возвращаются модулям верхнего уровня, как только что принятые. Используется для тестирования сетевого ПО в пределах одной маши-ны.<br />
Использование сетевых масок</p>
<p>Предназначены для более гибкой установки границы между номером сети и номером узла.<br />
Маска – это число, которое используется в паре с IP – адресом ; двоичная запись маски со-держит единицы в тех разрядах, которые должны в IP – адресе интерпретироваться как номер сети.<br />
 255.255.255.0 – маска класса С<br />
255.255.255.128</p>
<p>              1000 0000<br />
192.168.0.1 – в одной сети<br />
192.168.0.129 – в другой сети.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/stek-protokolovtcp-ip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Протокол TCP</title>
		<link>http://www.studcode.ru/archiv/protokol-tcp/</link>
		<comments>http://www.studcode.ru/archiv/protokol-tcp/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 21:27:19 +0000</pubDate>
		<dc:creator>archey</dc:creator>
				<category><![CDATA[Сетевые протоколы]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сеть]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=572</guid>
		<description><![CDATA[Протокол TCP   (RFC – 793, 1323, 2018, 1122, 1191)
Назначение и формат заголовка
TCP поддерживает надежную передачу потока данных с предварительным установлением связи между источником и получателем. На базе TCP реализованы HTTP, FTP, Telnet, SMTP, POP3 и др.
Протокол TCP характеризуется следующими возможностями:
1.	Перед фактической передачей данных необходимо установление связи, т.е. запрос на начало сеанса передачи данных [...]]]></description>
			<content:encoded><![CDATA[<p>Протокол TCP   (RFC – 793, 1323, 2018, 1122, 1191)</p>
<p>Назначение и формат заголовка</p>
<p>TCP поддерживает надежную передачу потока данных с предварительным установлением связи между источником и получателем. На базе TCP реализованы HTTP, FTP, Telnet, SMTP, POP3 и др.<br />
Протокол TCP характеризуется следующими возможностями:<br />
1.	Перед фактической передачей данных необходимо установление связи, т.е. запрос на начало сеанса передачи данных источником и подтверждением получателем. После обмена данными сеанс передачи должен быть явно завершен.<br />
2.	Доставка информации является надежной, не допускающей дублирования или нарушения очередности получения данных.<br />
3.	Возможность управления потоком данных для избежания переполнения и затора.<br />
4.	Доставка экстренных данных.<br />
TCP -канал представляет собой двунаправленный поток данных между источником и получателем. Данные передаются в виде пакетов различной длины, называемых сегментами. Каждый TCP -сегмент предваряется заголовком, за которым следуют данные, инкапсулирующие протоколы уровня приложения.<br />
<span id="more-572"></span></p>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="360" colspan="3" valign="top">
<p align="center">Порт отправителя      16 б.</p>
</td>
<td width="380" colspan="3" valign="top">
<p align="center">Порт получателя      16 б.</p>
</td>
</tr>
<tr>
<td width="740" colspan="6" valign="top">
<p align="center">Номер в последовательности    данных     32 б. SeqN </p>
</td>
</tr>
<tr>
<td width="740" colspan="6" valign="top">
<p align="center">Номер подтверждения       32 б. AckN</p>
</td>
</tr>
<tr>
<td width="132" valign="top">
<p align="center">Смещение<br />
      данных 4 б.</p>
</td>
<td width="97" valign="top">
<p align="center">Резерв<br />
      6 б.</p>
</td>
<td width="149" colspan="2" valign="top">
<p align="center">Контрольные<br />
      биты (фл.) 6 б.</p>
</td>
<td width="361" colspan="2" valign="top">
<p align="center">Окно      16 б. W</p>
</td>
</tr>
<tr>
<td width="379" colspan="4" valign="top">
<p align="center">Контрольная сумма        16 б.</p>
</td>
<td width="361" colspan="2" valign="top">
<p align="center">Указатель срочности    16 б.</p>
</td>
</tr>
<tr>
<td width="548" colspan="5" valign="top">
<p align="center">Опции (длина переменных)</p>
</td>
<td width="191" valign="top">
<p align="center">Выравнивание<br />
      (до 32 бит)</p>
</td>
</tr>
<tr>
<td width="740" colspan="6" valign="top">
<p align="center">Прикладные данные</p>
</td>
</tr>
</table>
<p>Тип сегмента  и некоторые  ситуации  указаны в поле “ контрольные биты ”(флаги).<br />
       1                       2                  3                       4                     5                     6<br />
URG	ACK	PSH	RST	SYN	FIN<br />
URG – 1 – поле указатель срочности задействовано.<br />
Поле указателей срочности определяет какие данные в сегменте срочные, а какие нет.<br />
Содержит смещение до 1 –го несрочного байта относительно 1- го байта данных в сегменте.<br />
ACK –1 – поле  “ номер подтверждения “ задействовано.<br />
Если АСК –1 , то сегмент выполняет функцию подтверждения.<br />
Подтверждающий сегмент может нести данные при дуплексном канале.<br />
PSH &#8211;  включена функция проталкивания.<br />
RST – перегрузка соединения.<br />
SYN – синхронизация номеров в очереди (используется при установке связи).<br />
FIN – данных для передачи нет (используется при разрыве связи).<br />
“Смещение данных” – размер заголовка в 32-разрядных словах.<br />
“Резерв” – нули.<br />
Окно – размер окна в байтах.<br />
Окно определяет, сколько сегментов может быть отправлено без немедленного получения подтверждения.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/protokol-tcp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Компонент NMUDP</title>
		<link>http://www.studcode.ru/archiv/komponent-nmudp/</link>
		<comments>http://www.studcode.ru/archiv/komponent-nmudp/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 21:23:51 +0000</pubDate>
		<dc:creator>archey</dc:creator>
				<category><![CDATA[Сетевые протоколы]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сеть]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=570</guid>
		<description><![CDATA[Настройка компонента
Чтобы передавать данные нужно настроить свойства:
Св. RemoteHost:String; // Ip-адрес или доменное имя получателя UDP-дейтаграммы.
Св. RemotePort:integer; // Номер порта получателя.
 Для приема данных:
Св. LocalPort:integer; // все UDP –пакеты с этим номером порта будут доставляться вашему приложению. Свойство может задаваться только в режиме конструирования.

Передача данных 
Пр. SendBuffer(buff: array of char; length:integer); // Передача length байтов сообщения, [...]]]></description>
			<content:encoded><![CDATA[<p>Настройка компонента</p>
<p>Чтобы передавать данные нужно настроить свойства:<br />
Св. RemoteHost:String; // Ip-адрес или доменное имя получателя UDP-дейтаграммы.<br />
Св. RemotePort:integer; // Номер порта получателя.<br />
 Для приема данных:<br />
Св. LocalPort:integer; // все UDP –пакеты с этим номером порта будут доставляться вашему приложению. Свойство может задаваться только в режиме конструирования.<br />
<span id="more-570"></span><br />
Передача данных </p>
<p>Пр. SendBuffer(buff: array of char; length:integer); // Передача length байтов сообщения, находящегося в buff (открытый массив символов).<br />
Пр. SendStream(datastream:tsream);  // Передача потока данных DataStream.<br />
После успешной посылки данных возникает событие  ondatasend </p>
<p>Прием данных</p>
<p> После приема данных возникает событие:<br />
Св. ondatareceived :tonreceive ;<br />
Tonreceive = procedure(sender :tcomponent; numberbytes: integer; fromIP: string; port:integer) of object .<br />
Numberbytes- количество байтов, которые пришли.<br />
FromIP-IP- адрес отправителя, port – порт отправителя.<br />
Пр. readbuffer (var buff: array of char ; var length : integer); //Чтение принятых данных в buff, length-количество байтов, которые нужно считать. Возвращается в length количество фактически принятых данных.<br />
Пр. readstream (data stream:tstream ) ; // Прием потока данных.<br />
Если при чтении возникают проблемы, то происходит одно из двух событий:<br />
Св. onbufferinvalid: tbufinvalid.<br />
Tbuffinvalid = procedure (var handled: boolean; var buff: array of char; var length:integer) of object.<br />
Например, если буфер недостаточно велик.<br />
Если программист устранил причину ошибки, то нужно установить параметр handled в  true.<br />
Св.  onStreamInvalid: tStream Invalid.<br />
tStreamInvalid = procedure (var handled: boolean ; stream : tstream ) of object.<br />
Возможна попытка повторного чтения.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/komponent-nmudp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Протокол UDP (RFC 768)</title>
		<link>http://www.studcode.ru/archiv/protokol-udp-rfc-768/</link>
		<comments>http://www.studcode.ru/archiv/protokol-udp-rfc-768/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 21:20:21 +0000</pubDate>
		<dc:creator>archey</dc:creator>
				<category><![CDATA[Сетевые протоколы]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сеть]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=568</guid>
		<description><![CDATA[Протокол UDP (RFC 768)
Предназначен для предоставления прикладным программам транспортных услуг. Не обеспечивает надежность при доставке данных. Установка связи перед передачей не осуществляется. Поэтому UDP-дейтаграммы распространяются по сети как независимые пакеты (а не в пределах сеанса связи). Протокол UDP транспортирует данные от одной прикладной программы к другой. Каждая программа адресуется номером порта.
Порты с номерами от 0 [...]]]></description>
			<content:encoded><![CDATA[<p>Протокол UDP (RFC 768)</p>
<p>Предназначен для предоставления прикладным программам транспортных услуг. Не обеспечивает надежность при доставке данных. Установка связи перед передачей не осуществляется. Поэтому UDP-дейтаграммы распространяются по сети как независимые пакеты (а не в пределах сеанса связи). Протокол UDP транспортирует данные от одной прикладной программы к другой. Каждая программа адресуется номером порта.<br />
Порты с номерами от 0 до 1023 зарезервированы и их использование контролируется специальной организацией. Номера портов от 1024 до 65535 могут свободно использоваться пользовательскими процессами. Порты с 1024 до 5000 называются временными.<br />
<span id="more-568"></span><br />
Длина пакета- общее количество байтов в UDP-дейтаграмме (заголовок+поле данных) . Контрольная сумма-0, если не вычисляется. Если контрольные суммы не совпадают, то пакет отбрасывается. Для расчета контрольной суммы UDP-дейтаграмма модифицируется следующим образом:</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/protokol-udp-rfc-768/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Структура Internet</title>
		<link>http://www.studcode.ru/archiv/struktura-internet/</link>
		<comments>http://www.studcode.ru/archiv/struktura-internet/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 20:15:29 +0000</pubDate>
		<dc:creator>archey</dc:creator>
				<category><![CDATA[Сетевые протоколы]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сеть]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=551</guid>
		<description><![CDATA[Структура Internet
Internet – совокупность сетей, связанных друг с другом шлюзами (маршрутизаторами) и ис-пользующая для передачи данных стек протоколов TCP / IP. 
Основными сетеобразующими узлами Internet являются маршрутизаторы.
 Internet является сетью на основе коммутации пакетов. Данные разбиваются на пакеты, ко-торые перемещаются по сети возможно различными маршрутами. Пакет при пересылке от ис-точника к получателю проходит цепочку маршрутизаторов. [...]]]></description>
			<content:encoded><![CDATA[<p>Структура Internet</p>
<p>Internet – совокупность сетей, связанных друг с другом шлюзами (маршрутизаторами) и ис-пользующая для передачи данных стек протоколов TCP / IP. </p>
<p>Основными сетеобразующими узлами Internet являются маршрутизаторы.<br />
 Internet является сетью на основе коммутации пакетов. Данные разбиваются на пакеты, ко-торые перемещаются по сети возможно различными маршрутами. Пакет при пересылке от ис-точника к получателю проходит цепочку маршрутизаторов. Маршрутизатор на основе адреса получателя, указанного в каждом пакете и др. информации выбирает наиболее рациональный маршрут и посылает пакет следующему маршрутизатору или конечному узлу. Маршрутизатор пересылает пакеты на основе таблицы маршрутизации. По адресу назначения (сети назначения) выбирается следующий адрес в маршруте. Таблица маршрутизации изменяются вручную либо динамически с помощью протоколов маршрутизации. Если адреса назначения нет в таблице маршрутизации, то пакет может быть уничтожен (предотвращается широковещательный шторм).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/struktura-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Компоненты-сокеты в Delphi</title>
		<link>http://www.studcode.ru/archiv/komponenty-sokety-v-delphi/</link>
		<comments>http://www.studcode.ru/archiv/komponenty-sokety-v-delphi/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 20:13:05 +0000</pubDate>
		<dc:creator>archey</dc:creator>
				<category><![CDATA[Сетевые протоколы]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сеть]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=549</guid>
		<description><![CDATA[Компоненты-сокеты в Delphi
Можно использовать следующие средства:
1)	Windows Socket API (WinSock 2.0).Файл winsock.pas;
2)	Компоненты ServerSocket и ClientSocket страницы Internet от компании Borland/Inprise;
3)	Компонент PowerSock – реализация клиентского сокета от NetMasters. Компонент NMGeneralServer – программная модель серверного сокета (страница FastNet).

Рассмотрим использование компонентов ServerSocket и ClientSocket.
Клиент – инициатор соединения. К серверу могут подключиться несколько клиентов.
Компонент ServerSocket
Обеспечивает связь с несколькими клиентами. При [...]]]></description>
			<content:encoded><![CDATA[<p>Компоненты-сокеты в Delphi</p>
<p>Можно использовать следующие средства:<br />
1)	Windows Socket API (WinSock 2.0).Файл winsock.pas;<br />
2)	Компоненты ServerSocket и ClientSocket страницы Internet от компании Borland/Inprise;<br />
3)	Компонент PowerSock – реализация клиентского сокета от NetMasters. Компонент NMGeneralServer – программная модель серверного сокета (страница FastNet).<br />
<span id="more-549"></span><br />
Рассмотрим использование компонентов ServerSocket и ClientSocket.</p>
<p>Клиент – инициатор соединения. К серверу могут подключиться несколько клиентов.</p>
<p>Компонент ServerSocket</p>
<p>Обеспечивает связь с несколькими клиентами. При каждом подключении создается новый сокет.<br />
Свойства:<br />
Port: integer; номер порта.<br />
Active: boolean; true- активизируется режим ожидания соединения(режим прослушивания); false-закрывает соединения.<br />
ServerType; режим ввода/вывода: StNonBlocking- неблокирующий(асинхронный), StThreadBlocking- блокирующий(синхронный).<br />
Service : string ; &#8211; символьное имя сервиса (ftp , http , telnet  и др.).</p>
<p>Теоретическое отступление<br />
Операции ввода/вывода могут быть синхронными и асинхронными. В первом случае при вызове  функции ввода/вывода приложение блокируется до его окончания.<br />
Во втором случае – инициируется ввод/вывод и выполнение приложения сразу же продол-жается. Окончание ввода/вывода фиксируется по возникновению некоторого события. Часто первый случай называют блокирующим, а второй неблокирующим.<br />
В случае блокирующего сервера запускается отдельный программный поток, отвечающий за связь с отдельным клиентом. По умолчанию это стандартный поток – TServerClientThread &#8211; формирует стандартные события.<br />
Мы рассмотрим неблокирующий режим. При приеме данных и других ситуациях возника-ют события.</p>
<p>Socket: TServerWinSocket; собственно сокет серверной стороны.</p>
<p>Методы:<br />
Пр. open; переход в режим ожидания соединений.<br />
Пр. close; закрытие соединений.</p>
<p>События:<br />
OnClientConnect &#8211;  после подключения очередного клиента.<br />
OnClientDisconnect &#8211;  отключения клиента.<br />
OnClientread &#8211; после прихода данных от клиента.<br />
OnClientwrite – после отправления данных.<br />
OnClientError: TSocketErrorEvent ; возникла ошибка.<br />
Onlisten – после того, как заданы адрес и порт и перед тем, как компонент включается в ре-жим прослушивания.<br />
Onaccept – после установки соединения.</p>
<p>Объект TServerWinSocket</p>
<p>Свойства:<br />
Connection [index: integer]: tCustomWinSocket;  список сокетов, соответствующих соедине-ниями с клиентскими сокетами.<br />
ActiveConnection: integer; общее число соединений.<br />
Data : pointer ; указатель на связанные с сокетом данные.</p>
<p>Методы чтения данных:<br />
Ф.  ReceiveLength: integer; возвращает число байт, которые могут быть приняты в ответ на оповещение клиента о передаче.<br />
Ф.  ReceiveBuf (var Buf ; count : integer) : integer; &#8211; чтение данных из сокета в буфер Buf, count – количество байтов которые нужно считать. Возвращает количество реально считанных байтов. Чтение “разрушающее” – данные удаляются из сокета.<br />
Ф.  Receivetext: string;  читает принятые данные как строку.</p>
<p>Методы передачи данных:<br />
Ф.  SendBuf (var Buf ; count ; integer) : integer; посылает клиенту count байтов, находящихся в Buf.<br />
Пр.  SendText (const s : string); &#8211; передача строки.<br />
Ф.  SendStream (AStream : TStream) :boolean; &#8211; передача потока данных  astream.<br />
Поток уничтожается автоматически объектом TServerWinSocket.</p>
<p>Компонент СlientSocket</p>
<p>Свойства:<br />
Host: string; доменное имя сервера (k1.net или k1), к которому подключается клиент<br />
Address: string;  IP-адрес сервера (192.168.0.1 – 4 числа от 0 до 255 разделенные точкой).<br />
Port: integer //номер порта сервера – число соответствующее типу прикладного протокола, т.е. типу приложения. Есть зарезервированные http – 80 , FTP – 21 , SMTP – 25 и т.д.<br />
СlientType : TClientType ;режим ввода/вывода &#8211; блокирующий / неблокирующий.<br />
Socket: TClientWinSocket; собственно сокет клиентской стороны.<br />
Active: boolean; true- подключиться к серверу, false- отключиться </p>
<p>Методы:<br />
Пр. open; подключиться.<br />
Пр. close; отключиться.</p>
<p>События:<br />
OnConnect- после подключения.<br />
OnDisconnect- после отключения.<br />
OnRead – после прихода данных от сервера.<br />
OnWrite –после отправки данных серверу.</p>
<p>Объект TСlientWinSocket</p>
<p>Методы приема и передачи данных те же, что и у TServerWinSocket.</p>
<p>3. Примеры использования</p>
<p>Настройка<br />
Сервер: Port &#8211; 5000 , ServerType &#8211; StNonBlocking, active – true.<br />
Клиент: Port &#8211; 5000 , СlientType &#8211; , StNonBlocking, Host – ‘k1’.</p>
<p>Подключение<br />
clientsocket1.open;</p>
<p>Прием и передача данных</p>
<p>После приема данных возникает событие OnClientRead(на сервере) или OnRead(на клиен-те). В обработчиках этих событий следует извлечь принятые данные.<br />
Procedure TClientForm.ClientSocketRead(Sender : TObject : Socket: TCustowWinSocket) ;<br />
         Begin<br />
                 ListBox .Add (Socket . Receivetext) ;<br />
end;</p>
<p>Часто взаимодействие клиент-сервер строится по схеме запрос-ответ. Сервер считывает за-прос, выполняет его и результат отсылает клиенту.<br />
Для передачи данных следует в нужном месте вызвать метод передачи.<br />
var s1:string;<br />
…</p>
<p>s1:=’aaaa’;<br />
clientsocket1.socket.sendtext(s1);</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/komponenty-sokety-v-delphi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Интерфейс сокетов</title>
		<link>http://www.studcode.ru/archiv/interfejs-soketov/</link>
		<comments>http://www.studcode.ru/archiv/interfejs-soketov/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 19:55:59 +0000</pubDate>
		<dc:creator>archey</dc:creator>
				<category><![CDATA[Сетевые протоколы]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сеть]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=546</guid>
		<description><![CDATA[Интерфейс сокетов
Общие положения
В TCP/IP определены три типа интерфейсов сокетов. Они предназначены для осуществле-ния передачи данных в следующих режимах:
1)	потоковый обмен, при котором создается соединение между машинами. Используемый протокол TCP;
2)	обмен дейтаграммами без установления соединения. Используемый протокол UDP;
3)	обмен простыми дейтаграммами. Используемый протокол IP.
В третьем случае дейтаграммы переходят прямо на уровень IP, минуя уровни TCP/UDP. Интерфейс сокетов может использовать [...]]]></description>
			<content:encoded><![CDATA[<p>Интерфейс сокетов</p>
<p>Общие положения</p>
<p>В TCP/IP определены три типа интерфейсов сокетов. Они предназначены для осуществле-ния передачи данных в следующих режимах:<br />
1)	потоковый обмен, при котором создается соединение между машинами. Используемый протокол TCP;<br />
2)	обмен дейтаграммами без установления соединения. Используемый протокол UDP;<br />
3)	обмен простыми дейтаграммами. Используемый протокол IP.<br />
В третьем случае дейтаграммы переходят прямо на уровень IP, минуя уровни TCP/UDP. Интерфейс сокетов может использовать другие протоколы.<br />
Для организации связи оба узла, которые хотят обменятся данными, создают со своей сто-роны по сокету. Два сокета полностью обеспечивают канал связи. Сокет – модель одной сто-роны соединения. Сокет может выполнять две роли: клиента и сервера. Перед обменом данны-ми происходит процедура установки соединения. Инициатором соединения является клиент. Сторона соединения уникально адресуется двумя параметрами: IP-адресом и номером порта.</p>
<p>Socket – создает сокет.<br />
Bind – привязывает сокет к локальному адресу и порту.<br />
Listen – информирует систему, что сервер готов принимать запросы.<br />
Accept – ожидает реальное соединение, извлекает первый запрос из очереди и создает но-вый сокет, завершая виртуальный канал со стороны сервера.<br />
Connect – устанавливает связь с сервером и автоматически связывает сокет клиента с ло-кальным коммуникационным узлом.<br />
Send – передает сообщение (сообщение &#8211; блок данных переменной длины).<br />
Recv – принимает сообщение.<br />
Close – закрывает соединение.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/interfejs-soketov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Отложенный (overlapped) режим ввода/вывода</title>
		<link>http://www.studcode.ru/archiv/otlozhennyj-overlapped/</link>
		<comments>http://www.studcode.ru/archiv/otlozhennyj-overlapped/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 19:54:13 +0000</pubDate>
		<dc:creator>archey</dc:creator>
				<category><![CDATA[Сетевые протоколы]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сеть]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=544</guid>
		<description><![CDATA[Отложенный (overlapped) режим ввода/вывода
При отложенном режиме функции connectNamedPipe, Readfile, writefile, transactNamedPipe сразу же возвращают управление до окончания операции.
Для определения момента окончания операции, результата операции (реально считано или записано байтов), наличия ошибок служит запись overlapped .
Момент окончания операции определяется с помощью объекта-события. События создаётся при заполнении записи   overlapped. Фоновая операция ввода/вывода после завершения активи-рует [...]]]></description>
			<content:encoded><![CDATA[<p>Отложенный (overlapped) режим ввода/вывода</p>
<p>При отложенном режиме функции connectNamedPipe, Readfile, writefile, transactNamedPipe сразу же возвращают управление до окончания операции.<br />
Для определения момента окончания операции, результата операции (реально считано или записано байтов), наличия ошибок служит запись overlapped .<br />
Момент окончания операции определяется с помощью объекта-события. События создаётся при заполнении записи   overlapped. Фоновая операция ввода/вывода после завершения активи-рует события сигнализируя об окончании операции. С помощью ф.Waitforsingleobject можно зафиксировать этот момент в программе.<br />
<span id="more-544"></span><br />
Отложенный режим включается флагом<br />
File_flag_overlapped  в функциях createnamedpipe и createfile.<br />
Пример:<br />
Var	hpipe:thendle;<br />
…<br />
hpipe:=createnamedpipe(pchar(‘\\ . \pipe\p1’),pipe_access_duplex or file_flag_overlapped,…);<br />
…<br />
var overlap: toverlapped;last:cardinal;res:bool;<br />
…<br />
fillchar(overlap,0,sizeof(toverlapped));<br />
overlap.event:=createevent(nil,true,false,nil);<br />
//создать событие –1 раз<br />
…<br />
rez:=connectnamedpipe(hpipe, @overlap);<br />
if not rez then begin<br />
last:=getlasterror; //получение ошибки<br />
if last=error_io_pening //операция выполняется<br />
then begin last:= waitforsingleobject(overlap.hevent,3000);//подождать 3 секунды<br />
if last=wait_object_0 //операция завершилась<br />
then messagebox(‘все нормально’)<br />
else messagebox(‘таймаут’);<br />
end<br />
else messagebox(‘ошибка подключения’)<br />
end;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/otlozhennyj-overlapped/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Функции API</title>
		<link>http://www.studcode.ru/archiv/funkcii-api/</link>
		<comments>http://www.studcode.ru/archiv/funkcii-api/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 19:44:31 +0000</pubDate>
		<dc:creator>archey</dc:creator>
				<category><![CDATA[Сетевые протоколы]]></category>
		<category><![CDATA[лекции]]></category>
		<category><![CDATA[сеть]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=540</guid>
		<description><![CDATA[Функции API
Ф. CreateNamedPipe (IpName:Pchar;dwOpenMode, dwPipeMode, nMaxInstances, NOutBufferSize, NinBufferSize, NdefaultTimeOut, lpsa: PSecurityAttributes):Thandle;
Dwopenmode- режим открытия. Флаги:
Pipe_access_duplex – двунаправленный обмен данными,
Pipe_access_inbound -только от клиента к серверу,
Pipe_acces_outbound &#8211; только от сервера к клиенту,
File_flag_write_through &#8211; запись данных, миную кэш,
File_flag_overlaped &#8211; режим отложенной операции ввода / вывода
Dwpipemode –режим работы канала. Флаги:
Pipe_type_byte &#8211; запись в режиме потока байт,
Pipe_type_message &#8211; запись в режиме [...]]]></description>
			<content:encoded><![CDATA[<p>Функции API</p>
<p>Ф. CreateNamedPipe (IpName:Pchar;dwOpenMode, dwPipeMode, nMaxInstances, NOutBufferSize, NinBufferSize, NdefaultTimeOut, lpsa: PSecurityAttributes):Thandle;<br />
Dwopenmode- режим открытия. Флаги:<br />
Pipe_access_duplex – двунаправленный обмен данными,<br />
Pipe_access_inbound -только от клиента к серверу,<br />
Pipe_acces_outbound &#8211; только от сервера к клиенту,<br />
File_flag_write_through &#8211; запись данных, миную кэш,<br />
File_flag_overlaped &#8211; режим отложенной операции ввода / вывода<br />
Dwpipemode –режим работы канала. Флаги:<br />
Pipe_type_byte &#8211; запись в режиме потока байт,<br />
Pipe_type_message &#8211; запись в режиме потока сообщений,<br />
Pipe_readmode_byte &#8211; чтение в режиме потока байт,<br />
Pipe_readmode_message &#8211; чтение в режиме потока сообщений,<br />
Pipe_wait -режим ожидания,<br />
Pipe_nowait &#8211; режим без ожидания.<br />
NMaxInstause  &#8211; максимальное количество открываемых экземпляров канала (от  1 до pipe_unlimited_instances).<br />
NOutBufferSize &#8211; размер буфера для записи.<br />
NInBufferSize &#8211; размер буфера для чтения.<br />
NdefaultTimeOut &#8211; время ожидания конца операции ввода / вывода в канале (в мс),<br />
lpsa &#8211; указатель на структуру с атрибутами безопасности.<br />
Функция возвращает дескриптор канала.<br />
Флаги комбинируются с помощью операции or.<br />
<span id="more-540"></span><br />
Пример:<br />
Var hpipe: thandle;<br />
Hpipe:=createnamedpipe(pchar(‘\\ . \pipe\p1’), Pipe_access_duplex, Pipe_type_message or Pipe_readmode_message or Pipe_wait, pipe_unlimited_instances,10000,10000,10000,nil);<br />
Ф СоnnectNamedPipe (hpipe:Thandle; Lpo: povelapped):bool;<br />
Hpipe- это дескриптор существующего канала Lpo- указатель на запись Overlapped- для отложенного режима.<br />
Ф discоnnectNamedPipe (hpipe:Thandle):bool;<br />
Ф PeekNamedPipe (hpipe:Thandle; Lpbuffer:pointer; nbuffersize : cardinal; lpbyteread, lptotalbytesavail, lpbytesleftthismessage: pointer): bool.<br />
Читаеn данные из канала оставив их там для последующего чтения. Позволяет определить количество принятых байтов и длину в байтах первого сообщения.<br />
lpbuffer &#8211; указатель на буфер куда будут прочитаны данные;<br />
nbuffersize &#8211; размер буфера;<br />
lpbytesread &#8211; указатель на количество байтов которые нужно считать;<br />
lptotalbytesavail &#8211; указатель на общее количество принятых данных;<br />
lpbytesleftthismessage &#8211; указатель на длину первого сообщения.<br />
Пример:<br />
Var      nr, ntotal, nmessage: cardinal;<br />
	    	Res:bool; …<br />
Nr:=0;<br />
Res:=peeknamedpipe(hpipe,nil,0,@nr,@ntotal,@nmessage);</p>
<p>Создание клиентской стороны канала</p>
<p>Функция createfile должна быть вызвана после вызова функции connectnamedpipe на серве-ре.<br />
Пример:<br />
Var	hpipe:thandle;<br />
.   .   .   .  .<br />
hpipe:=createfile(pchar(‘\\k7\pipe\p1’), generic_read or generic_write, 0, nil, open_existing, 0, 0);<br />
Ф.TransactNamedPipe(hpipe:thandle; lpinbuffer:pointer; ninbuffersize:cardinal; lpoutbuffer:pointer; noutbuffersize:cardinal; var lpbytesread:cardinal; lpoverlapped: poverlapped): bool;<br />
Inbuffer- буфер с передаваемыми данными;<br />
Outbuffer – буфер для принятых данных;<br />
Ф.CallnamedPipe(lpname:pchar;lpinbuffer:pointer;ninbuffersize:cardinal;lpoutbuffer:pointer;noutbuffersize:cardinal;var lpbyteread:cardinal; ntimeout:cardinal):bool;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/funkcii-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

