Протокол Контроля Передачи (TCP)

Но конечно, посылка дэйтаграм от одного хоста к другому это не все если Вы вошли на quark, Вы хотите иметь надежную связь между вашим процессом rlogin на erdos и процессе оболочки на quark. Таким образом, информация посылаемая туда и обратно должна быть разбита на пакеты отправителем, и повторно собираться в поток приемником. Хотя это кажется тривиальным, здесь появляется несколько достаточно сложных задач.

Очень важно знать об IP, что он не надежен. Предположим что десять людей на вашем Ethernet начали загружать самый последний выпуск XFree86 с GMU FTP сервера. Такая активность может оказаться слишком большой для того чтобы gateway переварил ее, потому что он слишком медленен, и ограничен количеством памяти. Теперь если Вы пошлете пакет от quark, у sophus может не хватить места в буфере и поэтому он не сможет отправить этот пакет. IP решает эту проблему просто забывая про данный пакет. Пакет безвозвратно потерян. Таким образом ответственность за целостность данных перекладывается на поддерживающие связь хосты.

Это происходит в соответствии c другим протоколом, TCP, или Протоколом Контроля Передачи, который надстраивается над IP для создания связи с проверкой целостности данных. Существенный плюс TCP то, что он использует IP, что создает иллюзию простой связи между двумя процессами на вашем хосте и отдаленной машине, так, что Вы не заботитесь о том как и по которому маршрут ваши данные фактически путешествуют. A TCP создает дуплексную связь, позволяющую одновременно как посылать так и получать информацию. Представте телефонную беседу.

В TCP точки связи определяются IP адресами хостов , и номерами так называемых портов на каждом из хостов. Порты служат для определения процесса с которым устанавливается связь. Если опять обратится к примеру с телефоном, то IP адрес соответствует кодам городов, а номер порта местному номеру телефона. В примере с rlogin, приложение-клиент (rlogin) открывает порт на erdos, и соединяется с портом 513 на quark, который прослушивает rlogind сервер. Таким образом и устанавливает TCP связь. Используя эту связь, rlogind выполняет процедуру определения прав доступа, и запускает оболочку. Стандартный ввод/вывод этой оболочки перенаправляются на TCP связь, таким образом все, набранное вами в rlogin на вашей машине будет передано через TCP поток на стандартный ввод оболочки.