Download TCP/IP Transmission Control Protocol / Internet Protocol

Document related concepts

Point-to-Point Protocol over Ethernet wikipedia , lookup

Airborne Networking wikipedia , lookup

Multiprotocol Label Switching wikipedia , lookup

CAN bus wikipedia , lookup

Asynchronous Transfer Mode wikipedia , lookup

Lag wikipedia , lookup

Remote Desktop Services wikipedia , lookup

AppleTalk wikipedia , lookup

Computer network wikipedia , lookup

SIP extensions for the IP Multimedia Subsystem wikipedia , lookup

Wake-on-LAN wikipedia , lookup

I²C wikipedia , lookup

Deep packet inspection wikipedia , lookup

Zero-configuration networking wikipedia , lookup

IEEE 1355 wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

Real-Time Messaging Protocol wikipedia , lookup

TCP congestion control wikipedia , lookup

UniPro protocol stack wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

Internet protocol suite wikipedia , lookup

Transcript
TCP/IP
TCP/IP Internal
TCP/IP
Learning outcome

Application layer
–

Transport layer
–
–
–
–
–

HTTP, FTP, TELNET, POP3, SMTP, IMAP, DNS protocols
TCP and UDP
TCP and UDP segment
Opening and closing connections
Flow control
Reliable data transmission
Internet layer
–
–
–
IP , ICMP, ARP and RARP
IP datagram
Routing
TCP/IP
Learning outcome cont’d

As explained in the first chapter 2
–
–

Each layer adds header information to the block of data
passed to it from the previous layer
And these headers are interpreted and removed by
corresponding layer at the receiving end
In this Chapter (ch. 3 )
–
–
We will look in details at the header information constructed
at the transport and internet layers
We will also show how this information is used
TCP/IP
Reading List for this chapter
Joe Casad, Teach Teach Yourself TCP/IP, chs. 4-6
or
William
Buchanan, Mastering the Internet, Ch. 4
or
Julian Moss, “understanding TCP/IP” (parts 2-4, October 1997-March 1998)
and
Liam Proven, “understanding TCP/IP” [details of IP addressing]
( January 2001)
http://www.pcnetworkadvisor.com
TCP/IP
TCP/IP Reference Model
Layer
Application
Protocols
HTTP
TELNET
FTP
SMTP
Transport
TCP
UDP
Internet
IP
ICMP
Network Access
(Host-to-network)
ETHERNET
SNMP
PACKET RADIO
TCP/IP

TCP/IP Protocol Suite is a four-layered protocol suite. The location of the
important protocols within the TCP/IP layers is showed below
OSI layers
SMTP
FTP
HTTP
IMAP
TELNET
SNMP
POP
DNS
RTP
Application layer
TCP
IP
Transport layer
Internet layer
UDP
ICMP
Network interface
Network-specific protocols (e.g. Ethernet, Token-ring, FDDI, ATM)
6
The suite of Protocols for TCP/IP
ICMP
TCP/IP suite
The application layer


Handles high-level protocols, issues of
representation, encoding, and dialog control.
The TCP/IP combines all application-related
issues into one layer, and assures this data is
properly packaged for the next layer.
–
–
–
FTP, HTTP, SMNP, DNS ...
Format of data, data structure, encode …
Dialog control, session management …
TCP/IP suite
Application Protocols
Protocols
HTTP
FTP
Role
Ports
Hyper Text Transfer Protocol

browser and web server communication
1.
client browser connects to HTTP server
2.
client browser send a request to the HTTP
server
3.
HTTP server reacts by sending a response
4.
HTTP server disconnects
80
File transfer protocol
1.
allow people anywhere on the Internet to log in
and download whatever files they have placed
on the FTP server, or upload other files.
2.
Port 20 for data channel and 21 for control
channel
20,
21
TCP/IP suite
Application Protocols
Protocols
DNS
Role
Domain Name System
1.provides
translation between host name and IP
address
2.DNS messages are carried using UDP on port 53
TELNET
Ports
Remote login
53
23
TCP/IP suite
Application Protocols (cont’d)
Protocols
POP3
IMAP
SMTP
Role
Post Office Protocol 3
1.
The point of POP3 is to fetch email from the
remote mailbox and store it on the user’s
local machine to read later.
2.
Downloaded emails are then deleted from
the server.
Internet Message Access Control
1.
Retrieve emails
2.
retaining e-mail on the server and for
organizing it in folders on the serve
Ports
110
143
Sending email
1.
2.
3.
Sending emails
Establish TCP connection to port 25 of the
destination machine / server
Start sending email message
25
TCP/IP suite
The transport layer

Transport layer

Transport protocols
–
UDP
– TCP

TCP AND UDP segments
TCP/IP suite
Transport Protocols
User
Process
User
Process
User
Process
TCP
User
Process
Application
Layer
UDP
Transport
Layer
ICMP
IP
IGMP
Network
Layer
ARP
Hardware
Interface
RARP
Link Layer
Media
TCP/IP suite
Orientation


Transport layer protocols are end-to-end protocols
They are only implemented at the hosts
HOST
HOST
Application
Application
Transport
Transport
Network
Data Link
Network
Data Link
Network
Data Link
Data Link
TCP/IP suite
Transport Protocols in the Internet
• The Internet supports 2 transport protocols
UDP - User Datagram
Protocol







datagram oriented

unreliable, connectionless

No acknowledgment

simple

unicast and multicast

useful only for few applications,
e.g., multimedia applications
used a lot for services
– network management
(SNMP), routing (RIP), naming
(DNS), etc.
TCP - Transmission
Control Protocol
stream oriented
reliable, connection-oriented
complex
only unicast
used for most Internet applications:
– web (HTTP), email (SMTP), file
transfer (FTP), terminal
(TELNET), etc.
Position of UDP in the TCP/IP protocol suite
TCP/IP suite
User Datagram Protocol




Uses IP to transport message from source to
destination
Unreliable, connectionless datagram delivery
No acknowledgements
Messages can be lost, duplicated, or arrive
out of order
TCP/IP suite
User Datagram Protocol


Adds ability to distinguish from multiple
destinations on target
Applications responsibility to handle
unreliability
TCP/IP
User Datagram Protocol
UDP
Header
Datagram
Header
Frame
Header
UDP Data
UDP
DatagramUDP
Data Data
Area
Header
Datagram
UDP
Frame
Datagram
Data Area
UDP
Data Data
Area
Header
Header
TCP/IP
User Datagram Protocol



Source port (optional - zero if not used)
Length - Count of octets including header
and data (minimum is 8)
Checksum (optional - zero if not used)
UDP Source Port
UDP Destination Port
UDP Message Length
UDP Checksum
Data . . .
TCP/IP
User Datagram Protocol



IP checksum does not include data
UDP checksum is only way to guarantee that
data is correct
UDP checksum includes pseudo-header
Pseudo UDP
Header Header
UDP Data
TCP/IP
UDP Pseudo-Header
Source IP Address
Destination Address
Protocol
UDP Length
Zero
UDP Source Port
UDP Destination Port
UDP Message Length
Data . . .
UDP Checksum
TCP/IP
UDP Pseudo-Header




Prefixed to the front of datagram
Verifies that datagram reached correct
destination
UDP header only includes port numbers
Pseudo-header includes IP addresses
TCP/IP
TCP/IP Layers

Conceptual Layers are independent
Application
User Datagram (UDP)
Internet (IP)
Network Interface
TCP/IP
TCP/IP Layers



Each layer interacts with layer above or
below
No details passed between the two layers
Messages encapsulated as they are passed
down
TCP/IP
TCP/IP Layers
UDP
Header
IP Datagram
Header
Frame
Header
UDP Data
IP Datagram Data Area
Frame Data Area
TCP/IP
TCP/IP Layers



UDP checksum includes pseudo-header
which includes source and destination IP
address
Source IP address depends on route chosen
(multiple interfaces)
UDP layer builds IP datagram
TCP/IP
User Datagram Protocol

Summary
–
–
–
–
–
Uses ports on source and target
Does not add significantly to IP
Unreliable connectionless packet delivery
Interacts strongly with IP layer
Low overhead
TCP/IP
Transport Control Protocol
TCP/IP
TCP Lingo



When a client requests a connection, it sends
a “SYN” segment (a special TCP segment) to
the server port.
SYN stands for synchronize. The SYN
message includes the client’s ISN.
ISN is Initial Sequence Number.
TCP/IP
More...


Every TCP segment includes a Sequence
Number that refers to the first byte of data
included in the segment.
Every TCP segment includes a Request
Number (Acknowledgement Number) that
indicates the byte number of the next data
that is expected to be received.
–
All bytes up through this number have already
been received.
TCP/IP
And more...

There are a bunch of control flags:
–
–
–
–
–
URG: urgent data included.
ACK: this segment is (among other things) an
acknowledgement.
RST: error - abort the session.
SYN: synchronize Sequence Numbers (setup)
FIN: polite connection termination.
TCP/IP
And more...


MSS: Maximum segment size (A TCP option)
Window: Every ACK includes a Window field
that tells the sender how many bytes it can
send before the receiver will have to throw it
away (due to fixed buffer size).
TCP/IP
TCP Connection Creation


Programming details later - for now we are
concerned with the actual communication.
A server accepts a connection.
–

Must be looking for new connections!
A client requests a connection.
–
Must know where the server is!
TCP/IP
Client Starts

A client starts by sending a SYN segment
with the following information:
–
–
–
Client’s ISN (generated pseudo-randomly)
Maximum Receive Window for client.
Optionally (but usually) MSS (largest datagram
accepted).
Server’s Response

When a waiting server sees a new
connection request, the server sends back a
SYN segment with:
–
–
–
–
Server’s ISN (generated pseudo-randomly)
Request Number is Client ISN+1
Maximum Receive Window for server.
Optionally (but usually) MSS
Finally

When the Server’s SYN is received, the
client sends back an ACK with:
–
Request Number is Server’s ISN+1
Server
Client
SYN
ISN=X
1
ACK=Y+1
3
TCP 3-way handshake
time
2
SYN
ISN=Y ACK=X+1
TCP 3-way handshake
1
Client: “I want to talk, and I’m starting with byte number
X+1”.
2
Server: “OK, I’m here and I’ll talk. My first byte will be
called number Y+1, and I know your first byte will be
number X+1”.
3
Client: “Got it - you start at byte number Y+1”.
Why 3-Way?

Why is the third message necessary?

HINTS:
–
–
–
TCP is a reliable service.
IP delivers each TCP segment.
IP is not reliable.
TCP Data and ACK



Once the connection is established, data can
be sent.
Each data segment includes a sequence
number identifying the first byte in the
segment.
Each segment (data or empty) includes a
request number indicating what data has
been received.
TCP Fast Retransmit



Another enhancement to TCP congestion control
Idea: When sender sees 3 duplicate ACKs, it
assumes something went wrong
The packet is immediately retransmitted instead of
waiting for it to timeout
TCP Fast Retransmit
Sender
Receiver
Packet 1
Packet 2
Packet 3
ACK 1
Packet 4
ACK 2
Packet 5
ACK 2
Fast Retransmit
Packet 6
ACK 2
ACK 2
Retransmit
packet 3
ACK 6
Figure 6.12 Fast Retransmit
Based on three
duplicate ACKs
TCP Fast Retransmit
Example
MSS = 1K
Sender
Receiver
ACK of new data
Duplicate ACK #1
Duplicate ACK #2
Fast Retransmit
occurs (2nd packet is now
retransmitted w/o waiting
for it to timeout)
Duplicate ACK #3
Buffering



Keep in mind that TCP is (usually) part of the
Operating System. It takes care of all these
details asynchronously.
The TCP layer doesn’t know when the
application will ask for any received data.
TCP buffers incoming data so it’s ready when
we ask for it.
TCP Buffers

Both the client and server allocate buffers to
hold incoming and outgoing data
–

The TCP layer takes care of this.
Both the client and server announce with
every ACK how much buffer space remains
(the Window field in a TCP segment).
Send Buffers


The application gives the TCP layer some data to
send.
The data is put in a send buffer, where it stays until
the data is ACK’d.
–

it has to stay, as it might need to be sent again!
The TCP layer won’t accept data from the application
unless (or until) there is buffer space.
ACKs



A receiver doesn’t have to ACK every
segment (it can ACK many segments with a
single ACK segment).
Each ACK can also contain outgoing data
(piggybacking).
If a sender doesn’t get an ACK after some
time limit it resends the data.
TCP Segment Order



Most TCP implementations will accept out-of-order
segments (if there is room in the buffer).
Once the missing segments arrive, a single ACK can
be sent for the whole thing.
Remember: IP delivers TCP segments, and IP is not
reliable - IP datagrams can be lost or arrive out of
order.
Termination


The TCP layer can send a RST segment that
terminates a connection if something is
wrong.
Usually the application tells TCP to terminate
the connection politely with a FIN segment.
FIN





Either end of the connection can initiate
termination.
A FIN is sent, which means the application is
done sending data.
The FIN is ACK’d.
The other end must now send a FIN.
That FIN must be ACK’d.
App2
App1
FIN
SN=X
2
...
ACK=X+1
1
FIN
SN=Y
3
ACK=Y+1
4
TCP Termination
1
App1: “I have no more data for you”.
2
App2: “OK, I understand you are done sending.”
dramatic pause…
3
App2: “OK - Now I’m also done sending data”.
4
App1: “Goodbye, It’s been real pleasure talking to you ”
TCP TIME_WAIT

Once a TCP connection has been terminated
(the last ACK sent) there is some unfinished
business:
–
–

What if the ACK is lost? The last FIN will be resent
and it must be ACK’d.
What if there are lost or duplicated segments that
finally reach the destination after a long delay?
TCP hangs out for a while to handle these
situations.
Test Questions



Why is a 3-way handshake necessary?
Who sends the first FIN - the server or the
client?
Once the connection is established, what is the
difference between the operation of the server’s
TCP layer and the client’s TCP layer?
TCP Features

Flow control: keep sender from
overrunning receiver
Congestion control: keep sender from
overrunning network


Application process
Application process
Write
bytes
…

Connection-oriented
Byte-stream
– app writes bytes
– TCP sends segments
– app reads bytes
Reliable data transfer
…

TCP
Send buffer
Segment
Read
bytes
TCP
Receive buffer
Segment
…
Segment
Transmit segments
Segment Format
0
10
4
16
31
SrcPort
DstPort
SequenceNum
Acknow ledgment
HdrLen
0
Flags
AdvertisedWindow
Checksum
UrgPtr
Options (variable)
Data
TCP Segment Fields

Source & Destination Ports
–

Sequence number
–
–

16 bit port identifiers for each packet (65536
ports)
The packet’s unique sequence ID
Initial number selected at connection time
Acknowledgement number
–
The sequence number of the next packet
expected by the receiver
TCP Segment Fields

(cont’d)
Window size (flow control)
–
Specifies how many bytes may be sent after the first
acknowledged byte
Data(SequenceNum)
Sender

Checksum
–

Receiver
Acknowledgment +
AdvertisedWindow
Checksums the TCP header and IP address fields
Urgent Pointer
–
Points to urgent data in the TCP data field
TCP Segment Fields

(cont’d)
Header bits
–
–
–
–
–
–
URG = Urgent pointer field in use
ACK = Indicates whether frame contains
acknowledgement
PSH = Data has been “pushed”. It should be
delivered to higher layers right away.
RST = Indicates that the connection should be reset
SYN = Used to establish connections
FIN = Used to release a connection
TCP Congestion Window



TCP introduces a second window, called the
“congestion window”
To determine how many bytes it may send, the
sender takes the minimum of the receiver window
and the congestion window
Example:
–
–
If the receiver window says the sender can transmit 8K, but
the congestion window is only 4K, then the sender may only
transmit 4K
If the congestion window is 8K but the receiver window says
the sender can transmit 4K, then the sender may only
transmit 4K
Sliding Window Revisited
Sending application
Receiving application
TCP
LastByteWritten
LastByteAcked
LastByteSent
TCP
LastByteRead
NextByteExpected
LastByteRcvd
Internet Layer

Best path determination and packet switching
5/25/2017
Internet Layer
Process
Process
TCP
UDP
ICMP, ARP
&
RARP
IP
802.3
Application Layer
Transport Layer
Internet Layer
Data-Link Layer
IP Datagram

The Internet layer defines
– A packet format
– Addressing scheme
– And IP (Internet protocol)




Ensures that any computer on the Internet has a unique IP
The Internet layer adds an IP Header to a packet.
A packet with an IP header is called:
– IP datagram
Header
– Source IP address
– Destination IP address
– Payload size (actual data sent without header)
– And some other stuff…
Forwarding a Datagram


Because datagrams are a connectionless
communication, they are forwarded from
node to node.
At each step, the router (node) inspects the
destination address of the datagram and
forwards it to the appropriate interface.
Simple Datagram Forwarding
Datagram Forwarding with a
Routing Table
Network Address



From our subnetting discussion, we’ve
already seen how the network address can
be determined from the IP address and the
netmask.
192.4.10.3 & 255.255.255.0 == 192.4.10.0
With the network address, the router can
determine the correct next hop.
Best-Effort Delivery

Although IP makes the best-effort of
datagram delivery, it does not guarantee
proper handling of:
–
–
–
–

Datagram duplication
Delayed or out-of-order delivery
Corruption of data
Datagram loss
Other protocol layers are responsible for
error handling.
IP Datagram Header
IP Datagram Header (cont.)

Vers:
–
version of IP (4 bits)

Only 2 permitted
–
0100 for IPv4 and
– 0110 for IPv6

H. LEN:
–
Header Length (4 bits)


length of the header in 32 bit words.
Service Type:
–
Information about how data transmission is prioritised
IP Datagram Header(cont.)

Total Length (16 bits):


Identification (16 bits):


A value assigned to aid in assembly of fragments.
Identification, Flags and fragment offset:


Total length of the datagram, measured in octets, including
header and data.
These values allow datagrams to be fragmented and
reassembled ant the destination.
Time to Live (8 bits):


Maximum time the datagram is allowed to exist in the system.
Each router that handles the datagram decrements the TTL by
1.
If the value is reaches 0 the datagram is discarded and an
ICMP message is sent to the source host.
IP Datagram Header (cont.)

Type:
–
–

Header Checksum (16 bits):
–
–


Protocol (8 bits): Indicates which Transport Layer protocol
the datagram is passed to.
UDP or TCP
Checksum is used to verify
It is recomputed at each router hop.
Source address (32 bits)
Destination address (32 bits)
More about IP Routing



Routing - the process of choosing a path
over which to send packets
Router - a computer that performs routing
Routing is one of the Internet Protocol’s
primary functions
IP Routing (cont’d)

Criteria that could (ideally) be used to make routing
decisions:
–
–
–
–
–

Network characteristics
Network topology
Network load
Datagram length
Type of service requested in the datagram’s header
IP routing software:
–
–
Normally does not consider most of these factors
Makes decisions based on fixed assumptions about
shortest paths
Hosts vs. Routers




Hosts make routing decisions
Hosts don’t typically transfer packets from
one network to another
Routers make routing decisions
Routers typically transfer packets from one
network to another
Direct vs. Indirect Delivery



Direct delivery - transmit datagram across a
single physical network to the destination
Indirect delivery - transmit datagram across
multiple physical networks (with the aid of
routers) to the destination
How does a machine know which method of
delivery to use?
Direct Delivery



Map the destination IP address to a physical
address
Encapsulate the datagram in a physical
frame
Send the frame over the physical network to
the destination
Indirect Delivery




Encapsulate the datagram in a frame
Choose a router on the physical network
Send the frame to that router
Router forwards the datagram on towards its
final destination
–
–
How does the host choose a router?
How does the router forward the datagram?
The IP Routing Table


Routing table - each machine stores
information about destination networks and
how to reach them
Using only netid portion of the IP address
keeps routing tables:
–
–
Small
Relatively stable
Next-Hop Routing
Next-Hop Routing (cont)

Routing table at machine M contains pairs
(N,R)
–
–

N is the IP address of a destination network
R is the IP address of the “next” router (R and M
must share a physical network)
Routing table size:
–
–
Depends on the number of networks in the internet
Only grows when new networks are added
Properties of Next-Hop Routes



All traffic destined for a given network takes
the same path
Only the final router can determine whether a
host exists or is operational
Routes are not necessarily symmetric
The Internet Control
Message Protocol

Abnormal normal communication among
routers and hosts is sometimes necessary to:
–
–
–

Report errors
Handle abnormal conditions
Update routing information
ICMP
ICMP is for Error Reporting


Errors are reported to a datagram’s original
sender
It is the sender’s responsibility to take
appropriate action
ICMP Message Format

All ICMP messages begin with the same
three fields:
–
–
–

TYPE (1 octet) - identifies the message
CODE (1 octet) - information about the subtype
CHECKSUM (2 octets) - covers the ICMP message
ICMP error messages always include the
header and first 64 data bits of the datagram
causing the problem
Mapping IP Addresses to
Hardware Addresses (MAC)



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
ARP



The Address Resolution Protocol is used
by a sending host when it knows the IP
address of the destination but needs the
Ethernet (or whatever) 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 (cont.)


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.
ARP conversation
HEY - Everyone please listen!
Will 128.213.1.5 please send me his/her Ethernet
address?
not me
Hi Red! I’m 128.213.1.5, and my Ethernet
address is 87:A2:15:35:02:C3
Address Resolution Protocol
(ARP)





Each device on a network maintains its
own ARP table.
A device that requires an IP and MAC
address pair broadcasts an ARP request.
If one of the local devices matches the IP
address of the request, it sends back an
ARP reply that contains its IP-MAC pair.
If the request is for a different IP network,
a router performs a proxy ARP.
The router sends an ARP response with
the MAC address of the interface on
which the request was received, to the
requesting host.
Reverse Address Resolution Protocol
RARP

The process of finding out the IP address
of a host given a hardware address is
called
Reverse Address Resolution

Reverse address resolution is needed by
diskless workstations when booting (which
used to be quite common).
RARP conversation
HEY - Everyone please listen!
My Ethernet address is 22:BC:66:17:01:75.
Does anyone know my IP address ?
not me
Hi Red! Your IP address is 128.213.1.17.
SUMMARY

Transport layer
–
UDP



–
TCP




Connectionless
Unreliable transmission
Less overheat
CONNECTION ORIENTED
Reliable Transmission
More overheat to deal with ack’s
Internet layer
–
IP



–
–
–
Connectonless
IP routing (next-hop using routing table)
Unreliable
ICMP (information control message protocol)
ARP (IP to MAC)
RARP (MAC TO IP)