Материалы к уроку информатики — Протокол управления передачей
Transmission Control Protocol — это протокол, тесно связанный с IP, который используется в аналогичных целях, но на более высоком уровне — транспортном уровне. Часто эти протоколы, по причине их тесной связи, именуются вместе — ТСР/IР. Термин «TCP/IP» обычно означает все, что связано с протоколами TCP и IP. Он охватывает целое семейство протоколов, прикладные программы и даже саму сеть. В состав семейства входят протоколы TCP, UDP, ICMP, telnet, FTP и многие другие.
TCP/IP — это технология межсетевого взаимодействия, технология internet. Сеть, которая использует технологию
Как можно переслать книгу по почте, если та принимает только письма и ничего более? Очень просто: разделить ее на страницы и отправить страницы отдельными конвертами. Получатель, руководствуясь номерами страниц, легко сможет книгу восстановить.
Этим же простым и естественным методом и пользуется TCP. TCP делит информацию, которую надо переслать, на несколько частей. Нумерует каждую часть, чтобы позже восстановить порядок.
Чтобы пересылать эту нумерацию вместе
Это и есть TCP-конверт. Получившийся ТСР-пакет помешается в отдельный IP-конверт и получается IP-пакет, с которым сеть уже умеет обращаться. Получатель распаковывает IP-конверты и видит ТСР-конверты, распаковывает и их и помещает данные в последовательность частей в соответствующее место.
Если чего-то не достает, он требует переслать этот кусочек снова. В конце концов, информация собирается в нужном порядке и полностью восстанавливается. Вот теперь этот массив пересылается выше к пользователю.
Это слегка упрощенный взгляд на TCP. В реальности пакеты не только теряются, но и могут искажаться при передаче из-за наличия помех на линиях связи. TCP решает и эту проблему.
Для этого он пользуется системой кодов, исправляющих ошибки, Существует целая наука о таких кодировках. Простейшим примером такового служит код с добавлением к каждому пакету контрольной суммы. При помещении в ТСР-конверт вычисляется контрольная сумма, которая записывается с TCP-заголовок. Если при приеме заново вычисленная сумма не совпадает с той, что указана на конверте, значит, что-то тут не то, где-то в пути имели место искажения, так что надо переслать этот пакет заново, что и делается. Большие возможности TCP требуют большой производительности процессора и большой пропускной способности сети. Когда прикладной процесс начинает использовать TCP, то начинают общаться модуль TCP па машине пользователя и модуль на машине сервера.
Эти два оконечных модуля TCP поддерживают информацию о состоянии соединения — виртуального канала.
Этот виртуальный канал потребляет ресурсы обоих оконечных модулей TCP. Один прикладной процесс пишет данные в TCP-порт, откуда они модулями соответствующих уровней по цепочке передаются по сети и выдаются в TCP-порт на другом конце канала, и другой прикладной процесс читает их отсюда — из своего TCP-порта. Все это создает видимость выделенной линии связи двух пользователей.
Гарантирует неизменность передаваемой информации. Что входит на одном конце, выйдет с другого. Хотя в действительности никакая прямая линия отправителю и получателю в безраздельное владение не выделяется, но извне это именно так и выглядит.
Существует и упрощенная версия протокола TCP, предназначенная для пересылки небольших порций данных — протокол UDP. UDP проще TCP, поскольку он не заботится о возможной пропаже данных, пакетов, о сохранении правильного порядка данных и т. д. UDP используется для клиентов, которые посылают только короткие сообщения и могут просто заново послать сообщение, если отклик подтверждения не придет достаточно быстро. Предположим, что вы пишите программу, которая просматривает базу данных с телефонными номерами где-нибудь в другом месте сети. Совершенно незачем устанавливать TCP-связь, чтобы передать десяток байт в каждом направлении.
Вы можете просто уложить имя в UDP-пакет, запаковать это в IP-пакет и послать. На другом конце прикладная программа получит пакет, прочитает имя, посмотрит телефонный номер, положит его в другой UDP-пакет и отправит обратно. Что произойдет, если пакет по пути потеряется? Баша программа тогда должна действовать так: если она ждет ответа слишком долго и становится ясно, что пакет затерялся, она просто повторяет запрос, т. е.
Посылает еще раз то же послание. Так обеспечивается надежность передачи при использовании протокола UDP.
Материалы к уроку информатики — Протокол управления передачей