Возник такой вопрос как изначально отправитель знает id-адресс и порт получателя и как получатель знает id-адрес отправителя
Ну, во-первых, такая тема работает только на протоколах с аутентификацией и авторизацией (гуглите AH и ESP). Можете ещё погуглить "открытый и закрытый ключ", это вот как раз оно.
Во-вторых, если без шифрования, то в TCP-пакете как раз есть адрес и порт отправителя, на который получатель и отсылает ответ.