Data Encapsulation: is the process of adding additional information
when transmitting data using the OSI or
TCP/IP model.
When communicating over a network, data must be processed down through the layers at
the sender and up again through the layers at the receiver. For example, if we have a web
server, Host A, which is transmitting a web page to the receiver, Host B, it may look like
this:
The web page contains a few paragraphs of text, but the web server doesn't only send the text by itself. For the text to be rendered correctly, it must be encoded in an HTML structure:
In some cases, the text is already preformatted into HTML and saved that way but, in this example, we are considering a web application that dynamically generates the HTML, which is the most common paradigm for dynamic web pages. As the text cannot be transmitted directly, neither can the HTML. It instead must be transmitted as part of an HTTP (Hyper Text Transfer) response. The web server does this by applying the appropriate HTTP response header to the HTML:
The HTTP uses the TCP session for transmitting webpages. This isn't done explicitly by the web server, but is taken care of by the operating system's TCP/IP stack:
The TCP packet itself is also routed by an IP packet:
This is transmitted over the wire in an Ethernet packet (or another protocol):