You are on page 1of 19

TCP/IP

Objective: Understand the Basic Concepts of Protocols and Get to know


the basics of TCP/IP (the building blocks of the Web)
Communications Architecture: Introduction
• Communications functions can be divided into subset
activities
concept of layered communications

• Each activity can be looked as a layer


– A layer provides a specific service (function) to other layers
– A layer has a specific protocol (control messages) to connect to other systems

• Two standards:
– IBM’s proprietary SNA
– ISO’s Reference Model for Open Systems Interconnection (OSI model)
The OSI Model
7 Application
6 Presentation
Upper Layer
5 Session directly assist the
user
4 Transport
3 Network
Lower Layer Layer Function
connects one node 2 Data Link
to another Application Provides services directly to an
1 Physical application program
Presentation Presentation of information to
user in a format that the user will
understand
Layer Function Session Controls the user to user dialogue
– its direction and
Network Choosing the next node and the link to
synchronization
it
Transport Raises the quality of service
Data Link Controls the flow of messages on the
provided by the network to the
chosen link
level required by user
Physical Connecting to the physical medium
that provides the link
The Internet Protocol Suite
Application HTTP Telnet DNS

Transport TCP UDP

Network IP

Link Ethernet Wi-Fi

Physical Co-ax Fiber Radio


TCP/IP
Transmission Control Protocol/Internet
Protocol

TCP/IP allows networks of different types to interconnect


Inter-net Protocol & Internet Addresses
• Network layer protocol whose job is to send packets or
datagrams to send packets from one point to another

• Each destination is specified by an IP address


– IPv4: Each address has 4 8 bit numbers
– Represented in dotted decimal places
– A 8 bit number can represent 0-255 in decimal place
– A typical number therefore looks like 209.176.20.9
– IPv6 allows a larger number of addresses (among other advantages)

• IP Addresses: Static or Dynamic


– Static useful on infrastructure situations
– Dynamic addresses changes everytime a machine logs on
– Dynamic addresses are most often assigned by Dynamic Host Configuration
Protocol (DHCP)
IP Characteristics
• IP is a connectionless protocol
– No concept of a job or a session (each packet is treated as an entity in itself)

• IP is an unreliable protocol
– It is unconcerned with whether a packet reaches its eventual destination, or
whether they arrive in the original order
– IP cannot tell if packets were lost or whether they were received out of order

• IP packets are not identified as a part of a sequence or


belonging to a particular job.
IP Packet Header
Version Header length Service type Total length
Identification Flags Fragment Offset
Time to live Protocol Header checksum
Source address
Destination address
IP Options Padding

• The protocol field in the header information identifies which higher level TCP/IP
protocol sent the data. When data arrives at its destination this field tells IP
which protocol module to pass it on to.
•The time-to-live (TTL) field, specifies how long the packet is allowed to reamin in
the internet delivery system and is decremented by by every router that the
packet passes through. When it reaches zero the packet is discarded and the
sender. This prevents packets from traveling the Internet forever.
•The checksum is an error detection checksum covering only the fields of the
header.
ARP & ICMP: Accompanying Protocols
• Address Resolution Protocol (ARP) finds out the physical
address corresponding to an IP address
– When an IP Packet is received, an ARP request is brodcasted on the network.
When a host recognizes an ARP request containing its own IP address, it sends
an ARP reply containing its hardware address. This address is cached.
– There is also a Reverse ARP (RARP) protocol. This is used by a host to find out its
own IP address if it has no way of doing this except via the network.

• Internet Control Message Protocol:


– Defines the format of control messages that are sent to the sender indicating
that a problem has occurred
TCP Characteristics
• TCP is a connection-oriented protocol
– The client & the server must establish a connection before any data can be
transferred between them.

• TCP provides reliability


– TCP knows that data it sends is received at the other end, and that it is received
correctly.
– TCP uses checksums on both headers and data.

• TCP ensure Data which arrives out of sequence is put back


into order

• TCP also implements flow control, so a sender cannot


overwhelm a receiver with data.
TCP Packet Header
Source Port Destination Port
Sequence Number
Acknowledgement Number
Header Length Code Bits Window
Checksum Urgent pointer
Options Padding

• TCP sends data using IP, in blocks which are called segments.
•The Port number identifies a particular user within a machine (which is
identified by the IP address
• The sequence number identifies the position in the data stream
•The acknowledgement number is used to convey back to the sender that data
has been received correctly.
•The window size gives the number of bytes the receiver can accept.
•The checksum covers both header and data
•The urgent pointer identifies the start of data in the stream that must be
processed urgently.
What is a Port?
• Refers in this context a software port
• Multiple applications or upper layer protocols may use TCP
simultaneously
– Ports are used to map TP data to a specific process
– The combination of an IP address and a port number is called a socket
– Sockets can be full duplex (data transmitted in both directions) or half duplex
• Typical Port numbers:
– 20/21 FTP
– 23 Telnet
– 25 Simple Mail Transfer Protocol
– 37 Time
– 53 Domain Name System
– 80 HTTP
– 110 POP3
– 443 HTTPS
TCP Communication: Making a Connection
• A connection must be established before any data is sent
• Segments are only sent between client and server if there is data to
flow.
• No status polling takes place.

• To Start:
– The server listens out for connection requests.
– The client requests a connection by sending specifying its own port number and the
port that it wants to connect to .
– The SYN (synchronize sequence numbers) flag is set and the client’s initial data
sequence number is specified.
• Next:
– The server responds with a segment in which the header contains its own initial data
sequence number.
• To complete the connection :
– the client acknowledges the server’s data sequence number by sending back a
segment with the ACK flag set and the acknowledgement field containing the
server’s data sequence number plus one.
TCP Communication: Data Transmission
• TCP is a sliding window protocol, and does not wait for
acknowledgement

• To prevent overflow of receiver buffer:


– An acknowledgement is sent containing the with the window size set to zero.
– Later a windows update is sent, specifying the new window size.

• For efficiency:
– TCP can specify an acknowledgement delay in the hope that within that time
some data will need to be sent the other way, and the two can ride together
– The Nagle algorithm allows a TCP segment containing less data than the
receiver’s advertised window size can only be sent if the previous segment has
been acknowledged. This allows aggregation of small amounts of data
TCP Communication: Error Correction
• In error situations TCP can:
– detect whether data has been successfully received at the other end
– take steps to rectify the situation.
– inform the sending application of the problem and failure, if all else fails,

• Data lost or corrupted.


– TCP keeps track of the acknowledgements for the data it sends.
– If an acknowledgement is not received within an specified time data is resent
– Time interval TCP will wait before depends on the connection speed (The protocol
monitors the time it normally takes to receive an acknowledgement)
– Data is resent repeatedly, at ever-increasing intervals, until either a response is
received or an application timeout value is exceeded
• Deadlock of flow
– a receiver stops the data flow by setting its window size to zero and the window
update segment that is meant to start data flowing again is lost.
– To prevent deadlock from occurring, TCP sends out window probe messages at
regular intervals to query the receiver about its window size.
TCP Communication: Communication Closure
• Each direction of data flow must be closed down separately.
• Steps:
– One end of the connection sends a segment in which the FIN (finished sending
data) flag is set.
– The receipt of this segment is acknowledged,
– The receiving end notifies its application that the other end has closed that half
of the connection.
User Datagram Protocol
• UDP is a simple protocol

• UDP is unreliable and connectionless


– A connection with a host is not necessary before exchanging data
– No mechanism for ensuring that data sent is received

• Main function is to specify the upper layer protocols

• Useful for broadcasting since it does not require a connection


UDP Packet Header
Source Port Destination Port
Message length Checksum

•Two different application one using UDP and another using TCP may use the
same port number. The two data streams are distinguished by the protocol field
in the IP address header
•The checksum is optional.
Unicast, Broadcast, Multicast

Unicast Multicast Broadcast


One sender – one Sends data to Sends data to all
receiver interested receivers possible receivers

Applications of IP Multicast:
Pay TV
File Transfer
Financial Information

But is complex to implement

You might also like