Читаем Linux API. Исчерпывающее руководство полностью

Все интернет-протоколы, которые мы обсуждаем в нашей книге, оформлены в виде RFC-документов, содержащих их формальную спецификацию. Они публикуются на веб-сайте http://www.rfc-editor.org/, финансируемом организацией Internet Society (http://www.internetsociety.org/). Документы, описывающие интернет-стандарты, разрабатываются под эгидой организации Internet Engineering Task Force (IETF, www.ietf.org). Она представляет собой сообщество сетевых архитекторов, операторов, поставщиков услуг и исследователей, заинтересованных в развитии и стабильной работе Интернета. Членом IETF может стать любой человек, которому близка эта тематика.

Непосредственное отношение к материалу, рассматриваемому в данной книге, имеют следующие RFC-документы (их перевод можно найти на сайте rfc2.ru):

• RFC 791, Протокол IP. Дж. Постел (ред.), 1981;

• RFC 950, Стандартные процедуры организации подсетей IP. Дж. Могул, Дж. Постел, 1985;

• RFC 793, Протокол управления передачей (TCP). Дж. Постел (ред.), 1981;

• RFC 768, Протокол датаграмм клиента (UDP). Дж. Постел (ред.), 1980;

• RFC 1122, Требования к хостам Internet. Коммуникационные уровни. Р. Брэйден (ред.), 1989.

RFC 1122 дополняет (и исправляет) ряд более старых документов, описывающие протоколы семейства TCP/IP. Это один из двух RFC-документов, которые часто встречаются под названием «RFC-требования к узлам». Второй имеет номер 1123 и посвящен прикладным протоколам, таким как telnet, FTP и SMTP.

54.8. Резюме

TCP/IP представляет собой многоуровневый пакет сетевых протоколов. На самом нижнем его уровне находится протокол IP, передающий данные в виде датаграмм. IP не поддерживает соединения; это значит, что для передачи каждой отдельной датаграммы может выбираться особый сетевой маршрут. Протокол IP является ненадежным: он не дает никаких гарантий относительно порядка, в котором будут получены датаграммы, отсутствия дубликатов и даже просто успешной передачи данных. Если вам требуется надежность, то она должны быть предоставлена протоколом более высокого уровня (например, TCP) или самим приложением.

Оригинальной версией протокола IP является IPv4. В начале 1990-х была разработана новая версия, IPv6. Наиболее заметная ее особенность заключается в использовании 128 бит для представления сетевых адресов (вместо 32, как IPv4). Это позволяет подключать к глобальной сети Интернет значительно большее количество компьютеров. На сегодняшний день IPv4 остается наиболее распространенной версией протокола IP, хотя ожидается, что в ближайшие годы будет вытеснена IPv6.

Поверх IP функционируют различные протоколы транспортного уровня, наиболее востребованными из которых являются UDP и TCP. Первый передает датаграммы и является ненадежным. Второй гарантирует надежность, поддерживает соединения и основывается на байтовых потоках. Протокол TCP берет на себя все нюансы, связанные с установкой и разрывом соединения. Прежде чем передавать данные по IP, он упаковывает их в сегменты, каждый из которых получает уникальный порядковый номер; это позволяет подтверждать их доставку и собирать в правильном порядке на стороне получателя. Кроме того, TCP управляет потоком данных и обеспечивает контроль над перегрузкой, не давая быстрому отправителю полностью загрузить медленного получателя или переполнить сеть.

Дополнительная информация

Ознакомьтесь с источниками, приведенными в разделе 55.14.

<p>55. Сокеты: домены сети Интернет</p>

Познакомившись с основными принципами работы сокетов и протоколов семейства TCP/IP, можно готовы приступить к написанию сетевых программ на основе доменов IPv4 (AF_INET) и IPv6 (AF_INET6).

Как отмечалось в главе 54, идентификатор сокета в интернет-домене состоит из IP-адреса и номера порта. Компьютеры работают с данной информацией в двоичном виде, однако люди предпочитают иметь дело с именами, а не с числами. Поэтому в настоящей главе будут описаны методики, позволяющие идентифицировать сетевые узлы и их порты с помощью имен. Мы также рассмотрим библиотечные функции для получения IP-адреса(-ов) заданного узла и номер порта, связанный с определенной службой. В рамках этой темы познакомимся с системой доменных имен (англ. Domain Name System, DNS), которая представляет собой распределенную базу данных, связывающую сетевые имена компьютеров с их IP-адресами и наоборот.

55.1. Сокеты интернет-домена

Потоковые сокеты интернет-домена реализованы поверх протокола TCP. Они предоставляют надежный двунаправленный канал данных на основе байтового потока.

Датаграммные сокеты интернет-домена реализованы поверх протокола UDP. Они похожи на сокеты домена UNIX, но имеют следующие особенности:

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
C++ Primer Plus
C++ Primer Plus

C++ Primer Plus is a carefully crafted, complete tutorial on one of the most significant and widely used programming languages today. An accessible and easy-to-use self-study guide, this book is appropriate for both serious students of programming as well as developers already proficient in other languages.The sixth edition of C++ Primer Plus has been updated and expanded to cover the latest developments in C++, including a detailed look at the new C++11 standard.Author and educator Stephen Prata has created an introduction to C++ that is instructive, clear, and insightful. Fundamental programming concepts are explained along with details of the C++ language. Many short, practical examples illustrate just one or two concepts at a time, encouraging readers to master new topics by immediately putting them to use.Review questions and programming exercises at the end of each chapter help readers zero in on the most critical information and digest the most difficult concepts.In C++ Primer Plus, you'll find depth, breadth, and a variety of teaching techniques and tools to enhance your learning:• A new detailed chapter on the changes and additional capabilities introduced in the C++11 standard• Complete, integrated discussion of both basic C language and additional C++ features• Clear guidance about when and why to use a feature• Hands-on learning with concise and simple examples that develop your understanding a concept or two at a time• Hundreds of practical sample programs• Review questions and programming exercises at the end of each chapter to test your understanding• Coverage of generic C++ gives you the greatest possible flexibility• Teaches the ISO standard, including discussions of templates, the Standard Template Library, the string class, exceptions, RTTI, and namespaces

Стивен Прата

Программирование, программы, базы данных