A glue that holds the whole Internet together is the network layer protocol, ( ). Unlike most older network layer protocols, it was designed from the beginning with internet working in mind. Its job is to provide a -( ) way to transport datagrams from source to destination, without regard to whether these machines are on the same network or whether there are other networks in between them.
Communication in the Internet works as follows. The ( ) layer takes data streams and breaks them up into datagrams. Each datagram is transmitted through the Internet, possibly being fragmented into smaller units as it goes. When all the pieces finally get to the destination machine, they are reassembled by the ( ) layer into the original datagram. This datagram is then handed to the transport layer, which inserts it into the receiving process’ input stream.
An IP datagram consists of a header part and a text part. The header has ( ) part and a variable length optional part.