I think I found the source of confusion.
The OSI model describes networking in general, defining a model in which almost all networks can be categorized and compared. This is important as hundreds (if not thousands) of standards and methods exist for handling each separate layer - some publicized, but many hidden/propriety/unpublicized.
Meanwhile, the TCP/IP model describes only a very narrow subset of networks, though it just so happens to be the most used kind of network - The Internet - is part of this.
This means that if you are working with the internet, then TCP/IP will likely cover all your needs, but as soon as you move onto more specialized or simply uncommon network types TCP/IP will be close to useless.
We could take an example:
I'm setting up a LoRa network between some neighbors, measuring stations, etc. The network will not be connected directly to the internet, so there will be no possibility of data transfer between the LoRa network and the internet until you reach the OSI Presentation layer.
The LoRa network will need to be much more efficient than the general-purpose internet-networking, and since only a few machines will be connected we'll use only a single octet as device identifier (alternative to MAC/IP, lets call it SoMAC), also having to write our own discovery service.
Likewise, we will make a new custom transport layer based on TCP, but with only space for that single octet identifier, no flags, no IP, and no checksums (I like to live dangerous). Let's call that SoSTRIP.
At last, we'll need to write some kind of socket to make sending the information easy, for simplicity we'll use a Unnamed Pipe.
Now, how would we go about representing this in both models (OSI vs. TCP/IP)?
In OSI we'd have:
- Physical Layer: LoRa (duh)
- Data Link Layer: LoRa driver with SoMAC discovery
- Network Layer: SoMAC addressing
- Transport Layer: SoSTRIP
- Session Layer: Unnamed Pipe
- Presentation Layer: ASCII can be whatever
- Application Layer: Cat
In TCP/IP we'd have:
- Link Layer: LoRa + SoMAC
- Internet Layer: No IP/Not Applicable/SoMAC(?)
- Transport Layer: SoSTRIP, except it isn't compatible with either TCP nor IP.
- Application Layer: Unnamed Pipe + ASCII + Cat
Please note that this is purely for demonstration purposes, as it's absolutely unfair to compare TCP/IP and OSI in this way, since they both are designed for different purposes, with TCP/IP being more popular but narrow, and OSI being more general but overly complicated for most use cases.
Also, please feel free to correct me, since it's been a hot moment since I had about OSI and TCP/IP in uni.
==EDIT== Formatting