CSCS 311 Data Communications and Networking Lecture 25 Lecture Focus: Data Link Layer MAC Frame Format Data Link Layer Framing Main functions of the data link layer: Framing Flow control Error control Software implemented protocols that provide smooth and reliable transmission of frames between nodes Media Access Methods Framing deals with how to organize the bits that are carried by the physical layer. The data link layer packs bits into frames, so that each frame is distinguishable from another. Data Link Layer Framing Types of Framing Fixed-Size Framing Variable-Size Framing Character-oriented approach Bit-oriented approach Data Link Layer Framing Types of Framing Variable-Size Framing : Character-oriented approach Data to be carried are 8-bit characters from a coding system such as ASCII. The header normally carries the source and destination addresses and other control information, and The trailer carries error detection or error correction redundant bits Both header and trailer are also multiples of 8 bits. To separate one frame from the next, an 8-bit (1 byte) flag is added at the beginning and the end of a frame. The flag, composed of special characters, signals the start or end of a frame. Data Link Layer Framing Types of Framing Variable-Size Framing : Character-oriented approach Figure below shows the format of a frame in a characteroriented protocol. Data from upper layer Variable number of characters Flag Header Trailer Flag Data Link Layer Framing Types of Framing Variable-Size Framing : Character-oriented approach Character-oriented framing was popular when only text was exchanged by the data link layers. The flag could be selected to be any character not used for text communication. Now, we send other types of information such as graphs, audio, and video. Any pattern used for the flag could also be part of the information. If this happens, the receiver, when it encounters this pattern in the middle of the data, thinks it has reached the end of the frame. Data Link Layer Framing Types of Framing Variable-Size Framing : Character-oriented approach Byte-stuffing: To fix this problem, a byte-stuffing strategy was added to character-oriented framing. In byte stuffing (or character stuffing), a special byte is added to the data section of the frame when there is a character with the same pattern as the flag. The data section is stuffed with an extra byte. This byte is usually called the escape character (ESC), which has a predefined bit pattern. Whenever the receiver encounters the ESC character, it removes it from the data section and treats the next character as data, not a delimiting flag. In byte stuffing, we add 1 extra byte whenever there is a flag or escape character in the text. Data Link Layer Framing Types of Framing Variable-Size Framing : Character-oriented approach Byte-stuffing: Byte stuffing by the escape character allows the presence of the flag in the data section of the frame, but it creates another problem. What happens if the text contains one or more escape characters followed by a flag? The receiver removes the escape character, but keeps the flag, which is incorrectly interpreted as the end of the frame. To solve this problem, the escape characters that are part of the text must also be marked by another escape character. In other words, if the escape character is part of the text, an extra one is added to show that the second one is part of the text. Data Link Layer Framing Types of Framing Byte-stuffing: Variable-Size Framing : Character-oriented approach Byte stuffing and un-stuffing Data Link Layer Framing Types of Framing Variable-Size Framing : Character-oriented approach Character-oriented protocols present another problem in data communications. The universal coding systems in use today, such as Unicode, have 16-bit and 32-bit characters that conflict with 8-bit characters. The tendency is moving toward the bit-oriented protocols. Data Link Layer Framing Types of Framing Variable-Size Framing : Bit-oriented approach The data section of a frame is a sequence of bits to be interpreted by the upper layer as text, graphic, audio, video, and so on. However, in addition to headers (and possible trailers), we still need a delimiter to separate one frame from the other. Most protocols use a special 8-bit pattern flag 01111110 as the delimiter to define the beginning and the end of the frame. Data Link Layer Framing Types of Framing Variable-Size Framing : Bit-oriented approach Data from upper layer Variable number of bits 01111110 Flag Header 0101010111010101001…….10101111111001010 Trailer 01111110 Flag Data Link Layer Framing Types of Framing Variable-Size Framing : Bit-oriented approach Bit-Stuffing This flag can create the same type of problem we saw in the byteoriented protocols. That is, if the flag pattern appears in the data, we need to somehow inform the receiver that this is not the end of the frame. We do this by stuffing 1 single bit (instead of 1 byte) to prevent the pattern from looking like a flag. In bit stuffing, if a 0 and five consecutive 1 bits are encountered, an extra 0 is added. This extra stuffed bit is eventually removed from the data by the receiver. Note that the extra bit is added after one 0 followed by five 1s regardless of the value of the next bit. This guarantees that the flag field sequence does not inadvertently appear in the frame. Data Link Layer Framing Types of Framing Variable-Size Framing : Bit-oriented approach Bit-Stuffing Bit stuffing is the process of adding one extra 0 whenever five consecutive 1s follow a 0 in the data, so that the receiver does not mistake the pattern 0111110 for a flag. Data Link Layer Framing Types of Framing Variable-Size Framing : Bit-oriented approach Bit-Stuffing Bit stuffing and un-stuffing Data Link Layer Framing Types of Framing Variable-Size Framing : Bit-oriented approach Bit-Stuffing If the flag like pattern 01111110 appears in the data, it will change to 011111010 (stuffed) and is not mistaken as a flag by the receiver. The real flag 01111110 is not stuffed by the sender and is recognized by the receiver. Data Link Layer MAC Sublayer: Framing The MAC sublayer governs the operation of the access method. It also frames data received from the upper layer and passes them to the physical layer. Frame Format The frame contains seven fields: Preamble SFD DA SA Length of protocol data unit (PDU) Upper-layer data CRC. Data Link Layer MAC Sublayer: Framing MAC Frame Format Preamble: The first field of the frame contains 7 bytes (56 bits) of alternating 0s and 1s that alerts the receiving system to the coming frame. The pattern provides only an alert. The 56-bit pattern allows the stations to miss some bits at the beginning of the frame. The preamble is actually added at the physical layer and is not (formally) part of the frame. Data Link Layer MAC Sublayer: Framing MAC Frame Format Start frame delimiter (SFD): Second field (1 byte: 10101011) signals the beginning of the frame. The last 2 bits are 11 and alerts the receiver that the next field is the destination address. Data Link Layer MAC Sublayer: Framing MAC Frame Format Destination Address (DA): The DA field is 6 bytes and contains the physical address of the destination station or stations to receive the packet. Source address (SA): The SA field is also 6 bytes and contains the physical address of the sender of the packet. Data Link Layer MAC Sublayer: Framing MAC Frame Format Length: This field is defined as a length field to define the number of bytes in the data field. Data: This field carries data encapsulated from the upper-layer protocols. It is a minimum of 46 and a maximum of 1500 bytes. CRC: This field contains error detection information, in this case a CRC-32. Data Link Layer MAC Sublayer: Framing MAC Frame Format Frame Length Standards has imposed restrictions on both the minimum and maximum lengths of a frame. Data Link Layer MAC Sublayer: Framing MAC Frame Format If the upper-layer packet is less than 46 bytes, padding is added to make up the difference. The maximum length restriction has two historical reasons: 1. 2. Memory was very expensive at that time The maximum length restriction prevents one station from monopolizing the shared medium, blocking other stations that have data to send. Data Link Layer MAC Sublayer: Framing MAC Frame Format Addressing: Each station on an Ethernet network (such as a PC, workstation, or printer) has its own network interface card (NIC). The NIC fits inside the station and provides the station with a 6-byte physical address. The Ethernet address is 6 bytes (48 bits), normally written in hexadecimal notation, with a colon between the bytes. Data Link Layer MAC Sublayer: Framing MAC Frame Format Ethernet addresses in hexadecimal notation 6 bytes =12 hex digits = 48 bits Data Link Layer MAC Sublayer: Framing MAC Frame Format Ethernet addresses in hexadecimal notation Unicast, Multicast, and Broadcast Addresses: A source address is always a unicast address-the frame comes from only one station. The destination address can be unicast, multicast, or broadcast. Figure below shows how to distinguish a unicast address from a multicast address. If the least significant bit of the first byte in a destination address is 0, the address is unicast; otherwise, it is multicast. Data Link Layer MAC Sublayer: Framing MAC Frame Format Ethernet addresses in hexadecimal notation Unicast, Multicast, and Broadcast Addresses: A unicast destination address defines only one recipient; the relationship between the sender and the receiver is one-to-one. A multicast destination address defines a group of addresses; the relationship between the sender and the receivers is one-to-many. The broadcast address is a special case of the multicast address; the recipients are all the stations on the LAN. A broadcast destination address is forty-eight (48) 1s. Data Link Layer MAC Sublayer: Framing MAC Frame Format Unicast, Multicast, and Broadcast Addresses: Example: Define the type of the following destination addresses: A. 4A : 30 : 10 : 21 : 10 : 1A B. 47 : 20 : 1B : 2E : 08 : EE C. FF : FF: FF: FF : FF : FF Solution To find the type of the address, look at the second hexadecimal digit from the left. If it is even, the address is unicast. If it is odd, the address is multicast. If all digits are F's, the address is broadcast. A. This is a unicast address because A in binary is 1010 (even). B. This is a multicast address because 7 in binary is 0111 (odd). C. This is a broadcast address because all digits are F's. Data Link Layer MAC Sublayer: Framing MAC Frame Format Unicast, Multicast, and Broadcast Addresses: The way the addresses are sent out on line is different from the way they are written in hexadecimal notation. The transmission is left-to-right, byte by byte. However, for each byte, the least significant bit is sent first and the most significant bit is sent last. This means that the bit that defines an address as unicast or multicast arrives first at the receiver. Data Link Layer MAC Sublayer: Framing MAC Frame Format Unicast, Multicast, and Broadcast Addresses: Example: Show how the address 47 : 20 : 1B : 2E : 08 : EE is sent out on line. Solution: The address is sent left-to-right, byte by byte; for each byte, it is sent right-to-left, bit by bit, as shown below: 4 7 : 2 0 : 1 B : 2 E : 0 8 : E E 0100 0111: 0010 0000 : 0001 1011: 0010 1110: 0000 1000: 1110 1110 Sent in the following order: 1110 0010 0000 0100 11011000 0111 0100 0001 0000 0111 0111 First bit sent Second bit sent First bit sent Second bit sent Data Link Layer MAC Sublayer: Framing Exercises: What is the hexadecimal equivalent of the following Ethernet address? 01011010 00010001 01010101 00011000 10101010 00001111 How does the Ethernet address 1A:2B:3C:AD:5E:6F appear on the line in binary? If an Ethernet destination address is 07:01:02:03:04:05, what is the type of the address (unicast, multicast, or broadcast)? The address 43:7B:6C:DE:10:00 has been shown as the source address in an Ethernet frame. The receiver has discarded the frame. Why? An Ethernet MAC sublayer receives 42 bytes of data from the upper layer. How many bytes of padding must be added to the data? An Ethernet MAC sublayer receives 1510 bytes of data from the upper layer. Can the data be encapsulated in one frame? If not, how many frames need to be sent? What is the size of the data in each frame?