Transmission Control Protocol / Internet Protocol
Transmission Control Protocol / Internet Protocol
Submitted By:-
Kratagya Chandra
0609013036
IT-1/3rd year
TCP/IP & OSI
◆ In OSI reference model terminology
-the TCP/IP protocol suite covers the
network and transport layers.
◆ TCP/IP can be used on many data-link
layers (can support many network
hardware implementations).
Ethernet - A Real Data-Link Layer
◆ It will be useful to discuss a real data-link layer.
◆ Ethernet (really IEEE 802.3) is widely used.
◆ Supported by a variety of physical layer implementations.
◆ Multi-access (shared medium).
◆ Every Ethernet interface has a unique 48 bit address (a.k.a.
hardware address).
◆ Example: C0:B3:44:17:21:17
◆ The broadcast address is all 1’s.
◆ Addresses are assigned to vendors by a central authority.
CSMA/CD
Carrier Sense Multiple Access
with
Collision Detection
◆ Carrier Sense: can tell when another host is
transmitting
◆ Multiple Access: many hosts on 1 wire
◆ Collision Detection: can tell when another
host transmits at the same time.
An Ethernet Frame
Destination Source
Preamble Len DATA CRC
Address Address
8 bytes 6 6 2 0-1500 4
1
Subnetting
router
1
Mapping IP Addresses to
Hardware Addresses
◆ IP Addresses are not recognized by hardware.
◆ If we know the IP address of a host, how do we find out the hardware
address ?
◆ The process of finding the hardware address of a host given the IP
address is called
Address Resolution
◆ The process of finding out the IP address of a host given a hardware
address is called
Reverse Address Resolution
1
ARP
◆ The Address Resolution Protocol is used by a sending host
when it knows the IP address of the destination but needs the
Ethernet address.
◆ ARP is a broadcast protocol - every host on the network
receives the request.
◆ Each host checks the request against it’s IP address - the right
one responds.
◆ ARP does not need to be done every time an IP datagram is
sent - hosts remember the hardware addresses of each other.
◆ Part of the ARP protocol specifies that the receiving host should
also remember the IP and hardware addresses of the sending
host.
1
Services provided by IP
◆ Connectionless Delivery (each
datagram is treated individually).
◆ Unreliable (delivery is not guaranteed).
◆ Fragmentation / Reassembly (based on
hardware MTU).
◆ Routing.
◆ Error detection.
1
IP Datagram
1 byte 1 byte 1 byte 1 byte
VERS HL Service Fragment Length
Datagram ID FLAG Fragment Offset
TTL Protocol Header Checksum
Source Address
Destination Address
Options (if any)
Data
1
IP Datagram Fragmentation
◆ Each fragment (packet) has the same structure as the IP
datagram.
◆ IP specifies that datagram reassembly is done only at the
destination (not on a hop-by-hop basis).
◆ If any of the fragments are lost - the entire datagram is
discarded (and an ICMP message is sent to the sender).
◆ If packets arrive too fast - the receiver discards excessive
packets and sends an ICMP message to the sender (SOURCE
QUENCH).
◆ If an error is found (header checksum problem) the packet is
discarded and an ICMP message is sent to the sender.
1
ICMP
Internet Control Message Protocol
◆ ICMP is a protocol used for exchanging
control messages.
◆ ICMP uses IP to deliver messages.
◆ ICMP messages are usually generated
and processed by the IP software, not
the user process.
1
ICMP Message Types
◆ Echo Request
◆ Echo Response
◆ Destination Unreachable
◆ Redirect
◆ Time Exceeded
◆ Redirect (route change)
◆ there are more ...
1
IP/BYE-BYE
◆ IP/BYE-BYE is a lecture protocol used to
signal the class that we have just finished
our discussion of IP - the network layer of
TCP/IP.
◆ The appropriate response to an IP/BYE-
BYE request is immediate applause,
although simply opening your eyes is
enough (known as a WAKEUP response).
1
Ports
◆ TCP/IP uses an abstract destination
point called a protocol port.
◆ Ports are identified by a positive integer.
◆ Operating systems provide some
mechanism that processes use to
specify a port.
2
TCP
Transmission Control Protocol
◆ TCP is an alternative transport layer
protocol supported by IP.
◆ TCP provides:
◆ Connection-oriented
◆ Reliable
◆ Full-duplex
◆ Byte-Stream
2
Connection-Oriented
◆ Connection oriented means that a
virtual connection is established before
any user data is transferred.
◆ If the connection cannot be established
- the user program is notified.
◆ If the connection is ever interrupted -
the user program(s) is notified.
2
Reliable
◆ Reliable means that every transmission
of data is acknowledged by the
receiver.
◆ If the sender does not receive
acknowledgement within a specified
amount of time, the sender retransmits
the data.
2
Buffering
◆ TCP is responsible for buffering data
and determining when it is time to send
a datagram.
◆ It is possible for an application to tell
TCP to send the data it has buffered
without waiting for a buffer to fill up.
2
Full Duplex
◆ TCP provides transfer in both
directions.
◆ To the application program these
appear as 2 unrelated data streams,
although TCP can piggyback control
and data communication by providing
control information (such as an ACK)
along with user data.
2
TCP Ports
◆ Interprocess communication via TCP is
achieved with the use of ports (just like
UDP).
◆ UDP ports have no relation to TCP
ports (different name spaces).
2
TCP Segments
◆ The chunk of data that TCP asks IP to
deliver is called a TCP segment.
◆ Each segment contains:
◆ data bytes from the byte stream
◆ control information that identifies the data
bytes
2
TCP Segment Format
1 byte 1 byte 1 byte 1 byte
Source Port Destination Port
Sequence Number
Request Number
offset Reser. Control Window
Checksum Urgent Pointer
Options (if any)
Data
2
Addressing in TCP/IP
◆ Each TCP/IP address includes:
◆ InternetAddress
◆ Protocol (UDP or TCP)
◆ Port Number