Заголовок TCP включает информацию о порте — понял. Но поскольку пакет/сегмент отправляется на уровень 3, чтобы инкапсулировать его как IP-пакет, как уровень 3 узнает, какой IP-адрес назначения использовать, который указан на прикладном уровне. В заголовке TCP нет места для информирования L3 об IP-адресе назначения. Есть ли обратный канал для этой информации? Если да, то каков обратный канал?

0
Andrew Howard 13 Дек 2019 в 00:16
Как же уровень TCP узнает номер порта? Это тот же вопрос. NB TCP никоим образом не использует osi.
 – 
user207421
13 Дек 2019 в 00:34
Так что меня учили этому, может быть, 6 раз, и каждый раз его обучали вышележащему слою, передающему информацию, которую он имеет, «непосредственно вниз» на нижний уровень для дальнейшей инкапсуляции. Это означало бы, что все необходимое было каким-то образом включено. Другой пользователь прокомментировал, что приложение обращается к ОС, которая каким-то образом передает информацию через уровни TCP > Networking, что имеет некоторый смысл. Это будет задний канал. Спасибо за ваш ответ по поводу OSI!
 – 
Andrew Howard
16 Дек 2019 в 17:09

1 ответ

как уровень 3 узнает, какой IP-адрес назначения использовать, который указан на прикладном уровне.

Информация каким-либо образом не пересылается с прикладного уровня на сетевой уровень. Если приложение создает сокет TCP, а затем вызывает в нем connect, оно передает ОС как IP-адрес, так и порт. Затем ОС будет использовать эту информацию для инкапсуляции данных для соединения в IP-пакет.

0
Steffen Ullrich 13 Дек 2019 в 09:31
Большое спасибо за эту недостающую часть!
 – 
Andrew Howard
16 Дек 2019 в 17:10