Hallam-Baker, Phillip wrote:
It is equally a layer violation for FTP to communicate IP addresses and port
numbers in the protocol. An application should not know if the transport is
IPv4, IPv6 or SNA.
dream on. in every case where I have worked with an application that
tried to be independent of lower layers, that has failed. there's
always been some need for the application to be aware of the
characteristics of an underlying layer. TCP and SCTP aren't
semantically equivalent because of the lack of urgent data and clean
close, SMTP and lpr over DECnet had to be aware of record-size
limitations that don't exist in TCP, etc.
applications need to be able to log IP addresses, they need to be able
to create referrals to other hosts to the the same protocol engine that
is a TCP peer. a TCP peer address happens to be an IP address and port
number. adding an extra naming layer and indirection for the sake of
layering purity simply isn't worth it, and the people who tout the
benefits of the extra naming layer (and there are some) tend to
disregard the cost and complexity of providing and maintaining that
layer and dealing with the cases where it fails.
Get rid of FTP type layer violations and the need for NAT workarrounds is
ten years ago, such naivete would have been amusing. now it's only
Ietf mailing list