>On a small note, this is "finalized" pdf but in reality it will change when implementation occurs.
It's one thing to say, here's the specification, however like construction you get to the site and then you realize oh shit, this isn't going to work. So they amend changes to make it work.
In a perfect world they should have gone back to the engineers/architects and reported their findings so they can make the changes to the white paper accordingly. But this almost never happens, same thing in the tech industry.
That's why when they go back on site to fix a pipe leak they drill into the electrical conduit because they moved the whole line to the right 3 feet and never told anyone.
And I mean real network hardware through which the packets your received these words are, too, not just abstract theoretical "somebody's got something somewhere that does something weird". The model hasn't been accurate since before it was created.
What the transport layer adds on top of that is
- multiplexing of network layer addresses (TCP and UDP use port numbers for this) so multiple processes can share a single network layer connection and
- error detection/correction (TCP only) to transform the unreliable (best effort) service the network layer offers into a reliable service.
- Streaming (TCP only): the sender's data stream that a TCP client creates is split into packets and later reassembled.
I think it's a beautiful separation of concerns.