· Во-первых, в большинстве случаев объем пересылаемой информации превышает 1500 символов. Если бы почта принимала только открытки, Вас бы это, естественно, разочаровало.
· Во-вторых, может произойти ошибка. Почтовое ведомство иногда теряет письма, а сети иногда теряют пакеты или повреждают их при передаче. Вы увидите, что в отличие от почтовых отделений Internet успешно решает такие проблемы.
· В-третьих, последовательность доставки пакетов может быть нарушена. Если Вы послали по одному адресу одно за другим два письма, то нет никакой гарантии, что они пойдут по одному маршруту или придут в порядке их отправления. Такая же проблема существует и в Internet.
Поэтому следующий уровень сети даст нам возможность пересылать более крупные порции информации и позаботиться об устранении тех искажений, которые вносит сама сеть.
Протокол управления передачей (ТСР).
Для решения упомянутых выше проблем используется «протокол управления передачей» (Transmission Control Protocol, TCP), который часто упоминают вместе с протоколом IP. Как следовало бы поступить в случае, если Вы хотите послать кому-нибудь книгу, а почта принимает только письма? Выход один: вырвать из книги все страницы, вложить каждую в отдельный конверт и бросить все конверты в почтовый ящик. Получателю пришлось бы собирать все страницы (при условии, что ни одно письмо не пропало) и склеивать обратно в книгу. Вот эти задачи и выполняет ТСР.
Информацию, которую Вы хотите передать, ТСР разбивает на порции. Каждая порция нумеруется, чтобы можно было проверить, вся ли информация получена, и расположить данные в правильном порядке. Для передачи этого порядкового номера по сети у протокола есть свой собственный «конверт», на котором «написана» необходимая информация . Порция Ваших данных помещается в конверт ТСР. Конверт ТСР, в свою очередь, помещается в конверт IP и передается в сеть.
На принимающей стороне программное обеспечение протокола ТСР собирает конверты, извлекает из них данные и располагает их в правильном порядке. Если каких-нибудь конвертов нет, программа просит отправителя передать их еще раз. После размещения всей информации в правильном порядке эти данные передаются той прикладной программе, которая использует услуги ТСР.
Это, однако, несколько идеализированное представление о ТСР. В реальной жизни пакеты не только теряются, но и претерпевают изменения по дороге ввиду кратковременных отказов в телефонных линиях. ТСР решает и эту проблему. При помещении данных в конверт производится вычисление так называемой контрольной суммы. Контрольная сумма – это число, которое позволят принимающему ТСР выявлять ошибки в пакете.[2] Когда пакет прибывает в пункт назначения, принимающий ТСР вычисляет контрольную сумму и сравнивает ее с той, которую послал отправитель. Если значения не совпадают, то при передаче произошла ошибка. Принимающий ТСР отбрасывает этот пакет и запрашивает повторную передачу.
Другие протоколы передачи.
Протокол ТСР создает видимость выделенной линии связи между двумя прикладными программами, т.к. гарантирует, что информация, входящая на одном конце, выходит на втором. В действительности не существует выделенного канала между отправителем и получателем (другие люди могут использовать эти же маршрутизаторы и сетевые провода для передачи своей информации в промежутке между Вашими пакетами), однако создается впечатление, что он есть, и на практике этого обычно бывает достаточно.
Это не самый лучший подход к использованию сети. Формирование ТСР - соединения требует значительных расходов и затрат времени; если этот механизм не нужен, лучше не использовать его. Если данные, которые необходимо послать, помещаются в одном пакете, и гарантия доставки не особенно важна, ТСР может стать обузой.
Существует еще один стандартный протокол, который позволяет избежать таких накладных расходов. Он называется «протокол пользовательских дейтаграмм» (user datagram protocol, UDP) и используется в некоторых прикладных программах. Вместо вкладывания Ваших данных в конверт TCP и помещения этого конверта в конверт IP прикладная программа вкладывает данные в конверт UDP, который и помещается в конверт IP.