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. 










