TCP/IP: различия между версиями

10 596 байт добавлено ,  11 лет назад
откат
(откат)
<div style="float:right; margin-left:20px; margin-bottom:20px">__TOC__</div>
'''Искусственное дыхание''' — комплекс мер, направленных на поддержание оборота воздуха через легкие у человека (или животного), переставшего дышать. Может производиться с помощью аппарата искусственного дыхания, либо человеком (дыхание изо рта в рот). Обычно совмещается с [[искусственный массаж сердца|искусственным массажем сердца]]. Типичные ситуации, в которых требуется искусственное дыхание: несчастные случаи в результате автомобильных аварий, происшествия на воде, поражение электрическим током, утопление. Аппарат искусственного дыхания используется также в хирургических операциях.
'''[[w:TCP/IP|Стеком протоколов TCP/IP]]''' называют набор [[w:Сетевой протокол|сетевых протоколов]], используемых в [[w:интернет|интернет]].
 
В этом стеке различают несколько уровней, и протоколы высокого уровня всегда базируются на протоколах более низких уровней.
=== Искусственное дыхание «рот-в-рот» ===
[[Изображение:ArificialBreath.JPG|thumb|260 px|right|Искусственное дыхание «рот-в-рот»]]
Наиболее эффективный способ искусственного дыхания.
# Спасите пострадавшего, уберите от него ток, если он им поражён, вытащите из воды при утоплении, обеспечьте его безопасность.
# Положите пострадавшего на спину. Откройте ему рот, следите, чтобы язык не закрывал гортань.
# Одной рукой удерживайте голову и шею пострадавшего, другой зажмите его нос. Глубоко вдохните и, плотно прижавшись ртом ко рту, сделайте выдох.
# Первые 5—10 выдохов делайте быстро (за 20—30 с), следующие— со скоростью 12—15 выдохов в минуту.
# Следите за движением грудной клетки пострадавшего: если после вашего выдоха в рот его грудная клетка поднялась, значит, дыхательные пути проходимы и искусственное дыхание вы делаете правильно.
# Если нет пульса, параллельно с искусственным дыханием необходимо делать массаж сердца.
 
=== Искусственное дыхание «рот-в-нос» ===
Проводится, если рот спасаемого повреждён или по каким-либо причинам нельзя использовать метод «рот-в-рот». Не так эффективно, как искусственное дыхание «рот-в-рот», «рот-в-нос» также способно спасти человека.
 
В самом низу находятся ''физический уровень'' и ''канальный уровень''. Пример протокола — [[w:Ethernet|Ethernet]], описывающий передачу данных по [[w:Коаксиальный кабель|коаксиальному кабелю]] или [[w:Витая пара|витой паре]]. Протоколы этих уровней обычно реализуются на уровне железа, например в сетевой карте компьютера.
== См. также ==
* [[Реанимация]]
* [[Искусственный массаж сердца]]
 
 
[[Категория:Дыхание]]
Выше идёт ''сетевой уровень'', где находится протокол [[IP]], описывающий структуру сети и доставку пакетов.
[[Категория:Медицина]]
 
[[Категория:Первая помощь]]
Ещё выше — ''транспортный уровень'', где находится протокол [[TCP]], использующийся для передачи данных. Эти протоколы обычно реализуются на уровне [[w:ОС|Операционной Системы]].
[[Категория:Искусственное дыхание]]
 
 
На самом верху находится множество протоколов ''прикладного уровня'', выполняющих конкретные прикладные задачи. Обычно они программируются в отдельных приложениях.
 
== IP ==
'''[[w:IP|IP]]''' — протокол, лежащий в основе интернета, его название так и расшифровывается: Internet Protocol.
 
Согласно протоколу, каждый узел в сети имеет свой [[w:IP адрес|IP адрес]], состоящий из 4х байт и обычно записываемый как <code>n.n.n.n</code>
 
Каждый узел напрямую «видит» только узлы в своей подсети, с «похожими» адресами (подробнее см. [[w:Маска подсети|Маска подсети]]). А другим узлам он передает пакеты через промежуточные узлы — [[w:Маршрутизатор|Маршрутизаторы]].
 
Посмотреть, как выглядит маршрут пакета от вашего компьютера к другим узлам, можно с помощью команды [[w:traceroute|traceroute]].
 
== TCP ==
'''[[w:TCP|TCP]]''' протокол базируется на IP для доставки пакетов, но добавляет две важные вещи:
* ''установление соединения'' — это позволяет ему, в отличие от IP, гарантировать доставку пакетов
* ''порты'' — для обмена пакетами между приложениями, а не просто узлами
Протокол TCP предназначен для обмена данными — это «надежный» протокол, потому что:
# Обеспечивает надежную доставку данных, так как предусматривает установления логического соединения;
# Нумерует пакеты и подтверждает их прием квитанцией, а в случае потери организовывает повторную передачу;
# Делит передаваемый поток байтов на части — сегменты - и передает их нижнему уровню, на приемной стороне снова собирает их в непрерывный поток байтов.
 
== TCP-соединение ==
'''Соединение''' начинается с handshake (рукопожатия):
# Узел A посылает узлу B специальный пакет SYN — приглашение к соединению
# B отвечает пакетом SYN-ACK — согласием об установлении соединения
# A посылает пакет ACK — подтверждение, что согласие получено
 
После этого TCP соединение считается установленным, и приложения, работающие в этих узлах, могут посылать друг другу пакеты с данными.
 
«Соединение» означает, что узлы помнят друг о друге, нумеруют все пакеты, идущие в обе стороны, посылают подтверждения о получении каждого пакета и перепосылают потерявшиеся по дороге пакеты.
 
 
Для узла A это соединение называется '''исходящим''', а для узла B — '''входящим'''.
 
Отметим, что эти термины не имеют никакого отношения к входящему или исходящему трафику. Они показывают только инициатора соединения, то есть направление самого первого пакета (SYN).
Любое установленное TCP соединение симметрично, и пакеты с данными по нему всегда идут в обе стороны.
 
<!--Когда один из узлов решает, что пора заканчивать соединение, он посылает специальный пакет FIN, после этого узлы прощаются и разрывают соединение.-->
 
== Порт ==
'''[[w:Порт (TCP/UDP)|Сетевой порт]]''' — условное число от 1 до 65535, указывающее, какому приложению предназначается пакет.
<!--Если прибегнуть к аналогии, то IP адрес - почтовый адрес дома, а порт - номер квартиры конкретного жильца. -->
 
 
Согласно IP, в каждом пакете присутствуют IP адрес узла-источника и IP адрес узла-назначения. В TCP пакетах дополнительно указываются ''порт источника'' и ''порт назначения''.
 
 
[[Файл:Tcp.port.server.png|right]]
Узел назначения, получив пакет, смотрит на порт назначения и передает пакет соответствующему у себя приложению.
 
Использование портов позволяет независимо использовать TCP протокол сразу многим приложениям на одном и том же компьютере.
 
 
{{wikipedia|Сетевые сервисы}}
[[w:Клиент|Клиентом]] называют приложение, которое пользуется каким-то сервисом, предоставляемым другим приложением — [[w:Сервер|Сервером]], обычно на удаленном компьютере. Практически всегда клиент начинает исходящие соединения, а сервер ожидает входящих соединений (от клиентов), хотя бывают и исключения.
 
 
Сервер при запуске сообщает [[w:ОС|Операционной Системе]], что хотел бы «занять» определенный порт (или несколько портов). После этого все пакеты, приходящие на компьютер к этому порту, ОС будет передавать этому серверу. Говорят, что сервер «слушает» этот порт.
 
 
[[Файл:Tcp.port.client.png|left]]
Клиент, начиная соединение, запрашивает у своей ОС какой-нибудь незанятый порт во временное пользование, и указывает его в посланных пакетах как порт источника. Затем на этот порт он получит ответные пакеты от сервера.
<br style="clear:both;" />
 
 
Таким образом, сервер:
* слушает на определённом порту, заранее известном клиенту
* занимает этот порт всё время, пока не завершит работу
* об IP адресе и номере порта клиента узнаёт из приглашения, посланного клиентом
Клиент:
* заранее знает IP адрес и порт сервера
* выбирает у себя произвольный порт, который освобождает после окончания соединения
* посылает приглашение к соединению
 
== UDP ==
'''[[w:UDP|UDP]]''' — это ещё один протокол транспортного уровня. Он тоже базируется на IP и тоже использует порты, но в отличие от TCP он не устанавливает соединений и не требует подтверждения получения каждого пакета.
 
Поэтому пакеты могут теряться или приходить в неправильном порядке. Зато этот протокол быстрее и использует меньше ресурсов.
 
На UDP обычно базируют прикладные протоколы, которым скорость доставки данных важнее надежности, например для передачи потокового видео, [[w:VoIP|общения голосом]] или [[w:Игра реального времени|онлайновых игр]].
 
== Прикладные протоколы ==
Большинство прикладных протоколов базируется на TCP.
 
У многих протоколов прикладного уровня для серверов определены '''стандартные порты''', используемые по умолчанию. Самые известные прикладные протоколы и их стандартные порты:
 
* [[w:HTTP|HTTP]] — основой протокол [[w:Всемирная паутина|всемирной паутины]] (TCP порт 80)
* [[w:SMTP|SMTP]] — протокол пересылки почты (TCP порт 25)
* [[w:FTP|FTP]] — протокол передачи файлов (TCP порт 21)
* [[w:DNS|DNS]] — протокол сопоставления доменных имен IP адресам (UDP порт 53)
 
Благодаря использованию стандартных портов мы можем набирать в браузере адреса веб серверов и не указывать порт — наши браузеры сами добавляют стандартный номер порта. Например, адрес <code><nowiki>http://www.example.com/</nowiki></code> на самом деле полностью выглядит так: <code><nowiki>http://www.example.com:80/</nowiki></code>
 
Разумеется, стандартный — не значит обязательный. Практически во всех прикладных протоколах можно указать серверу слушать произвольный номер порта. Правда, тогда этот номер уже указывать обязательно, например <code><nowiki>http://www.example.com:8080/</nowiki></code>
 
<!-- imho не совсем по теме и уже уровнем сложнее
 
Порты в диапазоне от 1 до 1023 называются ''хорошо известными''. Службы, которыми используются эти порты, должы быть описаны как [[w:RFC|RFC]] и одобренны [[w:IESG|IESG]]. Далее идут ''зарегистрированные порты'' (1024 - 49151). Их вы можете зарегестрировать в [[w:IANA|IANA]] (эта организация как раз занимется всем этим) один или несколько из этих портов под свою программу. Оставшиеся порты с 49152 по 65536 можно использовать без какой-либо регистрации.
 
*{{Inet-note-ref|type=ann|id=port-numbers|text=Номера портов (IANA)}}
<br style="clear:both;" />
 
 
== URI ==
Чтобы указать на документ, расположенный в сети, используется [[w:URI|URI]]. Он имеет вид: [http://ru.wikibooks.org/wiki/TCP/IP http://ru.wikibooks.org/wiki/TCP/IP]. Первая чать адреса (от начала до двоеточия) называется ''схемой'' (http в нашем случае). Дальше идёт часть, зависящая от схемы.
-->
{{Википедия}}
[[Категория:Компьютерные сети]]
536

правок