Every network textbook includes a picture of the famous “seven-layer” model. Actually, this model is vague, and it does not always correspond to specific portions of specific networks. Nevertheless, it serves as a useful overview of the field.
- This is concerned with the nature of the physical media (metal or optical cable, free-space microwave, etc.) used to send signals, the nature of the signals themselves, and so on.
- There is also the question of signal form; the signals themselves may be in the form of pure 0-1 bits, or may be in the form of certain frequencies. In addition there are questions concerning how a receiver distinguishes two bits which are adjacent in time.
- A major issue is the form of the medium, both in terms of the materials it uses and its topology. A basic wired Ethernet, for example, consists of cable conducting electrical signals; the connections could also be wireless. More complicated networks, including Ethernets, may consist of more than one cable, with all of them connected via a hub. The latter has become common even at the household level.
Data Link Layer
- For example, in an Ethernet, this layer is concerned with ensuring that two network stations connected to the same cable do not try to access the line at the same time. For this reason the Ethernet operation is an example of what is called a Medium Access Control (MAC) Protocol.
- Here is an overview of how the Ethernet MAC protocol works, using a “listen before talk” approach. When a network node has a message ready to send, it first senses the cable to see if any node is currently sending. If so, it generates a random backoff time, waiting this amount of time before trying again. If the node does not “hear” any other node sending, it will go ahead and send.
- There is a small chance that another node actually had been sending but due to signal propagation delay the transmission had not yet reached the first node. In that case a collision will occur, destroying both messages. Both nodes will sense the collision, and again wait random amounts of time before trying again.
- This layer also does the setting up of frames of bits (i.e. sets of consecutive bits sent along the wire), which not only include the message itself but also information such as (say, in the Ethernet case) the Ethernet ID number of the destination machine.
Messages may be broken up into pieces before being sent. This may be handled at the transport level (see below), but may also be done at the data link level.
- This is the routing layer. Questions addressed in this layer include: If in our example Rahul wants to send a message to Ruhi, how is that accomplished? Obviously its first step is to send the message to her mail; how does Rahul know this? How can alternate routes be found if traffic congestion occurs?
- Suppose Rahul’s message to Ruhi consists of a large file transfer, say 100 megabytes. This transfer will take a long time (by network standards), and we certainly don’t want it to monopolize the network during that time.
- We also must deal with the fact that the buffer space at Ruhi won’t be large enough to deal with a 100 megabyte message. Also, one 100-megabyte message would have a sizable probability of having at least one bit in error, and if so, we would have to retransmit the entire message!
- So, the file transfer must be done in pieces. But we don’t want to burden the Rahul with the task of breaking up the 100 megabytes into pieces, nor do we want to burden the Ruhi with the reassembly of the messages. Instead, the network software (again, typically in the OS) should provide these services, which it does at the transport layer, as for example is the case with TCP.
- This layer is concerned with management of a session, i.e. the duration of a connection between two network nodes. The word connection here does not mean something physical, but rather refers to an agreement between two nodes that some chunks of data with some relation to each other will be exchanged for some time.
- Actually, TCP does this in some senses, as does the socket interface to TCP, which is very much like the interfaces for reading or writing a file.
- This layer deals with such matters as translating between character codes, if the source uses one and the destination the other.
- In the old days, this could mean ASCII at one end and EBCDIC on the other end. Today, though, it could mean for example two different coding systems for Chinese characters, Big 5 and GB.
- You can write programs at the application layer yourself, and of course you use many programs written by
others, such as ftp, Web browsers, e-mail utilities, and so on.