To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to...

35

Transcript of To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to...

Page 1: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.
Page 2: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

To make a difference between logical address (IP address), which is used at the network layer, and physical address (MAC address),which is used at the data link layer.

To describe how the mapping of a logical address to a physical address can be static or dynamic.

To show how the address resolution protocol (ARP) is used to dynamically map a logical address to a physical address

Page 3: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

Mapping of a logical address to a physical address can be static or dynamic.

Static mapping contains a list of logical and physical addresses; maintenance of the list requires high overhead.

Page 4: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

creating a table that associates a logical address with a physical address. This table is stored in each machine on the network. Each machine that knows, for example, the IP address of another machine but not its physical address can look it up in the table. This has some limitations because physical addresses may change in the following ways: 1. A machine could change its NIC, resulting in a new physical address. 2. A mobile computer can move from one physical network to another,

resulting in a change in its physical address.

To implement these changes, a static mapping table must be updated periodically. This overhead could affect network performance.

Page 5: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

In dynamic mapping, each time a machine knows the logical address of another machine, it can use a protocol to find the physical address. Two protocols have been designed to perform dynamic mapping:

Address Resolution Protocol (ARP)

▪ maps a logical address to a physical address;

Reverse Address Resolution Protocol (RARP)

▪ maps a physical address to a logical address.

Page 6: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver. But the IP datagram must be encapsulated in a frame to be able to pass through the physical network.

This means that the sender needs the physical address of the receiver.

In summary, Delivery of a packet to a host or router requires two levels of addresses: logical and physical. A logical address identifies a host or router at the network level. TCP/IP calls this logical address an IP address. A physical address identifies a host or router at the physical level.

Page 7: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

• ARP associates an IP address with its physical address • On a typical physical network, such as a LAN, each device on a link

is identified by a physical address that is usually printed on the NIC.

Page 8: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

Anytime a host, or a router, needs to find the physical address of another host or router on its network, it sends an ARP query packet. The query is broadcast over the network.

The packet includes (0x0806) 1. the physical of the sender

2. IP addresses of the sender

3. The IP address of the receiver

Every host or router on the network receives and processes the ARP query

packet, but only the intended recipient recognizes its IP address and sends back an ARP response packet. The response packet contains the recipient’s Its IP and physical addresses.

The packet is unicast directly to the inquirer using the physical address received in the query packet.

Page 9: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.
Page 10: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

In pervious Figure a, the system on the left (A) has a packet that needs to be delivered to another system (B) with IP address 141.23.56.23. System A needs to pass the packet to its data link layer for the actual delivery, but it does not know the physical address of the receiver. It uses the services of ARP by asking the ARP protocol to send a broadcast ARP request packet to ask for the physical address of a system with an IP address of 141.23.56.23.

This packet is received by every system on the physical network, but only system B will answer it, as shown in Figure b. System B sends an ARP reply packet that includes its physical address. Now system A can send all the packets it has for this destination using the physical address it received.

Page 11: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.
Page 12: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

Hardware type. This is a 16-bit field defining the type of the network on which ARP is running. Each LAN has been assigned an integer based on its type. For example, Ethernet is given the type 1. ARP can be used on any physical network.

Protocol type. This is a 16-bit field defining the protocol. For example, the value of this field for the IPv4 protocol is 080016.

Hardware length. This is an 8-bit field defining the length of the physical address in bytes. For example, for Ethernet the value is 6.

Protocol length. This is an 8-bit field defining the length of the logical address in bytes. For example, for the IPv4 protocol the value is 4.

Page 13: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

Operation. This is a 16-bit field defining the type of packet. Two packet types are defined: ARP request (1), ARP reply (2).

Sender hardware address. This is a variable-length field defining the physical address of the sender. For example, for Ethernet this field is 6 bytes long.

Sender protocol address. This is a variable-length field defining the logical (for example, IP) address of the sender. For the IP protocol, this field is 4 bytes long.

Target hardware address. This is a variable-length field defining the physical address of the target. For example, for Ethernet this field is 6 bytes long. For an ARP request message, this field is all 0s because the sender does not know the physical address of the target.

Target protocol address. This is a variable-length field defining the logical (for example, IP) address of the target. For the IPv4 protocol, this field is 4 bytes long.

Page 14: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

These are seven steps involved in an ARP process: 1. The sender knows the IP address of the target. We will see how the

sender obtains this shortly.

2. IP asks ARP to create an ARP request message, filling in the sender physical address, the sender IP address, and the target IP address. The target physical address field is filled with 0s.

3. The message is passed to the data link layer where it is encapsulated in a frame using the physical address of the sender as the source address and the physical broadcast address as the destination address.

4. Every host or router receives the frame. Because the frame contains a broadcast destination address, all stations remove the message and pass it to ARP. All machines except the one targeted drop the packet. The target machine recognizes the IP address.

Page 15: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

5. The target machine replies with an ARP reply message that contains its physical address. The message is unicast.

6. The sender receives the reply message. It now knows the physical address of the target machine.

7. The IP datagram, which carries data for the target machine, is now encapsulated in a frame and is unicast to the destination.

Page 16: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

A host with IP address 130.23.43.20 and physical address B2:34:55:10:22:10 has a packet to send to another host with IP address 130.23.43.25 and physical address A4:6E:F4:59:83:AB (which is unknown to the first host). The two hosts are on the same Ethernet network. Show the ARP request and reply packets encapsulated

in Ethernet frames.

Page 17: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

Next Figure shows the ARP request and reply packets. Note that the ARP data field in this case is 28 bytes, and note that the IP addresses are shown in hexadecimal

Page 18: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.
Page 19: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.
Page 20: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.
Page 21: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

To discuss the rationale for the existence of ICMP. To show how ICMP messages are divided into two

categories: error reporting and query messages. To discuss the purpose and format of error-reporting

messages. To discuss the purpose and format of query messages. To show how the checksum is calculated for an ICMP

message. To show how debugging tools using the ICMP

protocol. To show how a simple software package that

implements ICMP is organized.

Page 22: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

The IP protocol has no error-reporting or error-correcting mechanism. What happens if something goes wrong? What happens if a router must discard a datagram because it cannot find a router to the final destination, or because the time-to-live field has a zero value? What happens if the final destination host must discard all fragments of a datagram because it has not received all fragments within a predetermined time limit?

These are examples of situations where an error has occurred and the IP protocol has no built-in mechanism to notify the original host.

Solution is by using ICMP

Page 23: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

The Internet Control Message Protocol (ICMP) has been designed to compensate for the above two deficiencies. It is a companion to the IP protocol.

Page 24: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

shows the position of ICMP in relation to IP and other protocols in the network layer.

Page 25: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

ICMP itself is a network layer protocol. However, its messages are not passed directly to the data link layer as would be expected. Instead, the messages are first encapsulated inside IP datagrams before going to the lower layer

Page 26: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

Types: I. Error-reporting messages: reports problems that a

router or a host (destination) may encounter when it processes an IP packet.

II. Query messages: which occur in pairs, help a host or a network manager get specific information from a router or another host. For example, nodes can discover their neighbors. Also, hosts can discover and learn about routers on their network and routers can help a node redirect its messages.

Page 27: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.
Page 28: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

8-byte header AND a variable-size data section The first 4 bytes are common The first field defines the type of the message. The code field specifies the reason for the particular message type The last common field is the checksum field The rest of the header is specific for each message type The data section in error messages carries information for finding the original

packet that had the error. In query messages, the data section carries extra information based on the type of the query.

ICMP always reports error messages to the original source

Page 29: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.
Page 30: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

When a router cannot route a datagram or a host cannot deliver a datagram, the datagram is discarded and the router or the host sends a destination-unreachable message back to the source host that initiated the datagram

Page 31: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

The code field specifies the reason for discarding the datagram: 1. Code 0. The network is unreachable, possibly due to hardware failure. 2. Code 1. The host is unreachable. This can also be due to hardware failure. 3. Code 2. The protocol is unreachable. An IP datagram can carry data

belonging to higher-level protocols such as UDP, TCP, and OSPF. If the destination host receives a datagram that must be delivered, for example, to the TCP protocol, but the TCP protocol is not running at the moment, a code 2 message is sent.

4. Code 3. The port is unreachable. The application program (process) that the datagram is destined for is not running at the moment.

5. Code 4. Fragmentation is required, but the DF (do not fragment) field of the datagram has been set. In other words, the sender of the datagram has specified that the datagram not be fragmented, but routing is impossible without fragmentation.

6. Code 5. Source routing cannot be accomplished. In other words, one or more routers defined in the source routing option cannot be visited.

7. Code 6. The destination network is unknown. This is different from code 0. In code 0, the router knows that the destination network exists, but it is unreachable at the moment. For code 6, the router has no information about the destination network.

Page 32: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

8. Code 7. The destination host is unknown. This is different from code 1. In code 1, the router knows that the destination host exists, but it is unreachable at the moment. For code 7, the router is unaware of the existence of the destination host.

9. Code 8. The source host is isolated. 10. Code 9. Communication with the destination network is administratively prohibited. 11. Code 10. Communication with the destination host is administratively prohibited. 12. Code 11. The network is unreachable for the specified type of service. This is different from

code 0. Here the router can route the datagram if the source had requested an available type of service.

13. Code 12. The host is unreachable for the specified type of service. This is different from code 1. Here the router can route the datagram if the source had requested an available type of service.

14. Code 13. The host is unreachable because the administrator has put a filter on it. 15. Code 14. The host is unreachable because the host precedence is violated. The message is

sent by a router to indicate that the requested precedence is not permitted for the destination.

16. Code 15. The host is unreachable because its precedence was cut off. This message is generated when the network operators have imposed a minimum level of precedence for the operation of the network, but the datagram was sent with a precedence below this level.

Page 33: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

There is no flow-control or congestion-control mechanism in the IP protocol. Because the IP protocol is a connectionless protocol

A source-quench message informs the source that a datagram has been discarded due to congestion in a router or the destination host. The source must slow down the sending of datagrams until the congestion is relieved.

Page 34: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

The time-exceeded message is generated in two cases: 1. Whenever a router decrements a datagram with a time-to-live

value to zero, it discards the datagram and sends a time-exceeded message to the original source.

2. When the final destination does not receive all of the fragments in a set time, it discards the received fragments and sends a time-exceeded message to the original source.

Page 35: To make a difference between logical address (IP …Anytime a host or a router has an IP datagram to send to another host or router, it has the logical (IP) address of the receiver.

A parameter-problem message can be created by a router or the destination host. Whenever find missing value in any filed.

Code 0. There is an error or ambiguity in one of the header fields. In this case, the value in the pointer field points to the byte with the problem. For example, if the value is zero, then the first byte is not a valid field. Code 1. The required part of an option is missing. In this case, the pointer is not used.