Specifications

47
2.7.4 Internet Layer
The Internet layer helps define how interconnected networks function. This layer
is the lowest layer concerned with devices that are located on a remote network,
where as the Host-to-Network layer was only concerned about locally connected
devices. In order to communicate with remote networks, the Internet layer
provides logical addressing via Internet Protocol (IP). These are logical
identifiers (not physical identifiers like MAC at the Host-to-Network layer) and
they must be unique over the entire internetwork. To move data across a series
of interconnected networks, the Internet Layer provides routing. Devices and
software that function at this layer provide functionality to handle incoming
packets from various sources, determine their final destination, and then figure
out where they need to be sent to get them where they are supposed to go. The
data at this layer gets encapsulated into messages called datagrams with a
network layer header. In order to send this information down to the Host-to-
Network layer, the Internet Layer must also handle fragmentation and
reassembly of datagrams to fit within the size limitations of the lower layer.
2.7.5 Transport Layer
The overall job of this layer is to provide the appropriate functions to enable
communication between software application processes on different computers.
This layer is also called the host-to-host transport layer as it is responsible for
that exact function. To transmit, the layer keeps track of what data arrives from
each application, then combines the data into a single flow to send to the lower
layers. On the receiving end, the operation is revered, splitting the data and
funneling it to the appropriate software process.
Another function of this layer is to provide connection services for the protocols
and applications that run at the application layer. In order to determine which
process will receive a specific price of data requires a process-level address.
This is defined using port numbers within TCP/UDP packets. Each application
uses a specific port for receiving and transmitting information that gets
encapsulated into outgoing packets. When a receiving device receives a packet,
it can see what destination port it was being sent to and will provide the data to
the processes assigned to that port.
In addition to providing host-to-host services, the Transport Layer must also be
able to acknowledge received data and be able to retransmit information when it
is lost. Each time data is sent, a timer is started; if it is received, the recipient
sends back an acknowledgment to the transmitter to indicate a successfully
received packet. If the timer runs out, the data is retransmitted. In order to make
sure that the sender and receiver send and receive packets efficiently, this layer
is also taxed with flow control. This allows a device to specify to another that it
must throttle back the rate at which it is sending the information.