Title: TCP/IP Refresher
1TCP/IP Refresher
- Prabhaker Mateti
- (ack Many many sources )
2TCP/IP ?
- TCP Transmission Control Protocol
- IP Internet Protocol
- Almost always includes other protocols
- UDP, User (Unreliable) Datagram
- ICMP, Internet Control Message
- ARP, Address Resolution
3Whats a Protocol?
- An agreed upon convention for communication.
- Protocols must be formally defined and unambiguous
4Layers
TCP
UDP
ICMP other
IP layer IP layer IP layer IP layer
Physical Physical Physical Physical Physical Physical
The relative heights indicate the level of
functionality.
5Unix is a Layered System
Applications
Libraries
System Calls
Kernel
6Layers
- The routines/methods of Layer N will not call
Layer N1. - The routines/methods of Layer N typically do call
the same layer methods. - The routines/methods of Layer N typically do call
Layer N-1 methods.
7DoD model Four Layers
- Network Access Layer Delivery over physical
media in use. - Internet Layer Delivery across different
physical networks that connect source and
destination machines. - Host-to-Host Layer Connection rendezvous, flow
control, retransmission of lost data, etc. TCP
and UDP protocols are in this layer. - Process Layer User-level functions, such as
SMTP, FTP and rlogin.
8OSI Reference Model
- Seven Layers
- 7. Application
- 6. Presentation
- 5. Session
- 4. Transport
- 3. Network
- 2. Data Link
- 1. Physical
9TCP/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).
10Process
Process
Process Layer
TCP
UDP
Transport Layer
ICMP, ARP RARP
IP
Network Layer
802.3
Data-Link Layer
11Physical Layer
- Responsibility
- transmission of raw bits over a communication
channel. - Issues
- mechanical and electrical interfaces
- time per bit
- distances
12Data Link Layer - Data Link Control
- Responsibility
- provide an error-free communication link
- Issues
- framing (dividing data into chunks)
- header trailer bits
- addressing
10110110101
01100010011
10110000001
13The Data Link Layer - The MAC sub layer
- Medium Access Control (MAC) - needed by
multi-access networks. - MAC provides DLC with virtual wires on
multi-access networks.
14Ethernet A Data-Link Layer
- IEEE 802.3
- Variety of physical layers.
- Multi-access (shared medium).
- Interface has a unique 6-byte hardware address.
(E.g. 00-D0-09-E8-08-61) - The broadcast address is all 1s.
- Addresses are assigned to vendors by a central
authority.
15An Ethernet Frame
8 bytes
6
6
2
0-1500
4
- Preamble is a sequence of alternating 1s and 0s
used for synchronization. - CRC is Cyclic Redundancy Check
16Ethernet Addressing
- Each NIC looks at every frame and inspects the
destination address. If the address does not
match the hardware address of the interface or
the broadcast address, the frame is discarded. - Some NICs can be programmed to recognize
multicast addresses.
17The Network Layer
- Responsibilities
- path selection between systems (routing).
- subnet flow control.
- fragmentation reassembly
- translation between different network types.
- Issues
- packet headers
- virtual circuits
18The Transport Layer
- Responsibilities
- provides virtual end-to-end links between peer
processes. - end-to-end flow control
- Issues
- headers
- error detection
- reliable communication
19The Session Layer
- Responsibilities
- establishes, manages, and terminates sessions
between applications. - service location lookup
- Many protocol suites do not include a session
layer.
20The Presentation Layer
- Responsibilities
- data encryption
- data compression
- data conversion
- Many protocol suites do not include a
Presentation Layer.
21The Application Layer
- Responsibilities
- anything not provided by any of the other layers
- Issues
- application level protocols
- appropriate selection of type of service
22Layering Headers
- Each layer needs to add control information.
- Typically prefixed to the data before passing on
to the lower layer.
23Headers
DATA
Process
Process
Transport
Transport
DATA
H
Network
DATA
H
H
Network
Data Link
Data Link
DATA
H
H
H
24Example Headers
- Physical no header
- Data Link
- address of the receiving endpoints
- address of the sending endpoint
- length of the data
- checksum
25Network layer header - examples
- protocol
- header checksum
- source network address
- destination network address
- protocol suite version
- type of service
- length of the data
- packet identifier
- fragment number
- time to live
26Connecting Networks
- Repeater physical layer
- Bridge data link layer
- Router network layer
- Gateway network layer and above.
27Repeater
- Copies bits from one network to another
- Does not look at any bits
- Allows the extension of a network beyond physical
length limitations
REPEATER
28Bridge
- Copies frames from one network to another
- Can operate selectively - does not copy all
frames (looks at data-link headers). - Extends the network beyond physical length
limitations.
BRIDGE
29Router
- Copies packets from one network to another.
- Makes decisions about what route a packet should
take (looks at network headers).
30Gateway
- Operates as a router
- Data conversions above the network layer.
- Conversions
- encapsulation - use an intermediate network
- translation - connect different application
protocols - encryption - could be done by a gateway
31Encapsulation Example
Gateway
Gateway
- Provides service connectivity even though
intermediate network does not support protocols.
32Translation
Gateway
- Translate from green protocol to brown protocol
33Encryption gateway
34Hardware v. Software
- Repeaters are typically hardware devices.
- Bridges can be implemented in hardware or
software. - Routers and gateways are typically implemented in
software so that they can be extended to handle
new protocols. - Many workstations can operate as routers or
gateways.
35Modes of Service
- connection-oriented vs. connectionless
- sequencing
- error-control
- flow-control
- byte stream vs. message based
- full-duplex vs. half-duplex.
36Connection-Oriented Service
- establishment of a logical connection between two
processes. - transfer data
- terminate connection.
37Connectionless Service
- Sends independent messages.
38Sequencing
- Sequencing provides support for an order to
communications. - A service that includes sequencing requires that
messages (or bytes) are received in the same
order they are sent.
39Error Control
- Some services require error detection.
- Checksums provide a simple error detection
mechanism. - Error control sometimes involves notification and
retransmission.
40Flow Control
- Flow control prevents the sending process from
overwhelming the receiving process. - Flow control can be handled in a variety of ways.
41Byte Stream vs. Message
- Byte stream implies an ordered sequence of bytes
with no message boundaries. - Message oriented services provide communication
service to chunks of data called datagrams.
42Full- v. Half-Duplex
- Full-Duplex services support the transfer of data
in both directions. - Half-Duplex services support the transfer of data
in one direction.
43End-to-End v. Hop-to-Hop
- Service modes, flow control and error control can
be - Either between endpoints of the communication.
- Or between consecutive nodes on the path between
the endpoints.
44End-to-End
45Hop-by-Hop
46Buffering
- Buffering can provide more efficient
communications. - Buffering is most useful for byte stream services.
Process A
Process B
Send Buffer
Recv. Buffer
47Addresses
- Physical Layer no address necessary
- Data Link Layer address must be able to select
any host on the network. - Network Layer address must be able to provide
information to enable routing. - Transport Layer address must identify the
destination process.
48Broadcasts
- Broadcast sending a message from one host to
all other hosts on the network. - A special address called the broadcast address
is created. - Some popular network services are based on
broadcasting (YP/NIS, rup, rusers)
49The IP in TCP/IP
- IP is the network layer
- packet delivery service (host-to-host).
- translation between different data-link protocols.
50IP Datagrams
- IP provides connectionless, unreliable delivery
of IP datagrams. - Connectionless each datagram is independent of
all others. - Unreliable there is no guarantee that datagrams
are delivered correctly or at all.
51IP Addresses
- The address must include information about what
network the receiving host is on. This makes
routing feasible. - IP addresses are not the same as the underlying
data-link (MAC) addresses.
52IP Addresses
- Includes a network ID and a host ID.
- A Network ID is assigned to an organization by a
global authority (http//www.iana.org/ ) - Host IDs are assigned locally by a system
administrator.
53IP Addresses
- A single NIC is assigned one IP address.
- A host may have multiple NICs, and therefore
multiple host addresses. - Hosts that share a network all have the same IP
network address (the network ID).
54Subnet Addresses
- An organization can subdivide its host address
space into groups called subnets. - The subnet ID is generally used to group hosts
based on the physical network topology. - It is possible to have a single wire network with
multiple subnets.
NetID
SubnetID
HostID
55IP4 Addresses
Class
56IP Addresses
- An IP broadcast address has a host- ID of all
1s. - An IP address that has a host ID of all 0s is
called a network address and refers to an entire
network.
57IP Addresses v. MAC Addresses
- IP Addresses are not recognized by NIC.
- The process of finding the MAC 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.
58IPv6 addresses
- Address is 128 bits long (16 bytes)
- Addresses are written in hexadecimal
- Addresses can be abbreviated
- 3FFE0B00000000000000000000000001
- 3FFE0B000001
- 3FFEB001
- There is no broadcast addresses, only multicast.
- Loopback address is 1
- Addresses are scoped
- Link-local, site-local, global
59IP6 Address
60IP4-Compatible IP6 Address
80 bits of 0s followed by 16 bits of 0s, followed
by a 32 bit IP4 Address
0000 . . . 0000
IP4 Address
0000
80 bits
32 bits
16 bits
61ARP
- ARP is a broadcast protocol. Each host checks the
request against its own host addresses - the
matched one responds. - Hosts remember the hardware addresses of others.
- ARP protocol specifies that the receiving host
should also remember the IP and hardware
addresses of the sending host.
62Services provided by IP
- Connectionless Delivery (each datagram is treated
individually). - Unreliable (delivery is not guaranteed).
- Fragmentation / Reassembly (based on hardware
MTU). - Routing.
- Error detection.
63IP Datagram
64IP Datagram Fragmentation
- Fragmentation can happen when datagrams are
forwarded through a network for which they are
too big. - 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).
65ICMP (Internet Control Message Protocol)
- ping www.yahoo.com
- ICMP uses IP to deliver messages.
- ICMP messages are usually generated and processed
by the IP layer, not the user process.
66ICMP
- 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,
say) the packet is discarded and an ICMP message
is sent to the sender.
67ICMP Message Types
- Echo Request
- Echo Response
- Destination Unreachable
- Redirect
- Time Exceeded
- Redirect (route change)
- more ...
68UDP (User Datagram Protocol)
- UDP is a transport protocol
- Uses IP to deliver datagrams
- Connectionless, Unreliable, Minimal
- UDP uses ports to provide communication services
to individual processes.
69Ports
- Port an abstract destination point.
- Ports are identified by a positive 16-bit
integer. - Operating systems provide some mechanism that
processes use to specify a port.
70Ports
Host A
Host B
Process
Process
Process
Process
Process
Process
71UDP Datagram Format
72Sockets
73Sockets
- An active socket is connected to a remote active
socket. Closing the connection destroys the
active sockets at each endpoint. - A passive socket is not connected, but rather
awaits an incoming connection, which will spawn a
new active socket.
74Sockets v. Ports
- A socket is not a port. A socket is associated
with a port. This is a many-to-one relationship. - Each port can have a single passive socket,
awaiting incoming connections, and multiple
active sockets, each corresponding to an open
connection on the port.
75TCP
- Transmission Control Protocol
- Connection-oriented
- Reliable
- Full-duplex
- Byte-Stream
76Connection
- Four Numbers Source IP Address, Source Port,
Destination IP Address, Destination Port - connection is established Operating Systems of
both source and destination hosts are maintaining
state information re the connection.
77Connection-Oriented
- Connection oriented means that a virtual
connection is established before any payload data
is transferred. - If the connection cannot be established the user
program is notified. - If the connection is ever interrupted the user
program is notified.
78Connection establishment
- Connection establishment phase is required
- Ensures that the receiving process is
available and to synchronize sequence
numbers, etc.
79TCP State Diagram
80Reliable
- Every transmission of data is acknowledged by the
receiver. - If the sender does not receive ACK within a
specified amount of time, the sender retransmits
the data. - ACK can be piggybacked on data.
81Byte Stream
- Stream means that the connection is treated as a
stream of bytes. - The user application does not need to package
data in individual datagrams (as with UDP).
82Buffering
- 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.
83Full Duplex
- TCP provides transport in both directions.
- To the application program these appear as two
unrelated data streams, although TCP can
piggyback control and data communication by
providing control information (such as an ACK)
along with user data.
84TCP 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).
85TCP/UDP Ports
- Reserved Ports less than 1024 Only root can bind
to these ports. - Local Port of a process that requested the
connection. Usually a random number, 0-65535. - Remote Port What application accepted the
connection. Usually a known number.
/etc/services. E.g., - 80 for HTTP
- 143 for IMAP
- 443 for HTTP/SSL
86TCP 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
87TCP Segment Format
88Sequence Number
- The positional number of the first data byte in
this segment, except when SYN control flag is 1.
- If SYN is 1 the sequence number is the initial
sequence number (ISN). - 32 bit unsigned integer
89Sequence Number
- Initial Sequence Number (ISN) is randomly
generated. - What if ISN is not random?
- You can hijack and kill arbitrary connections!
90Acknowledgment Number
- If the ACK control bit is set, this field
contains the value of the next sequence number
the sender of the segment is expecting to
receive. Once a connection is established this is
always included.
91Control Bits
- URG Urgent Pointer field significant
- PSH Push Function
- ACK Acknowledgment field significant
- RST Reset the connection
- SYN Synchronize sequence numbers
- FIN No more data from sender
92TCP v. UDP
- Q Which protocol is better ? A It depends on
the application. - TCP provides a connection-oriented, reliable byte
stream service (lots of overhead). - UDP offers minimal datagram delivery service (as
little overhead as possible).
93TCP three-way handshake
- Establishes a connection.
- A I would like to talk to you B.A sends a SYN
packet to B - B Ok, let's talk.B sends a SYN-ACK packet to
A - A Thanks for agreeing.A sends ACK to B
94TCP three-way handshake
- Flags src dst seq ack
- SYN 1037 80 102723769 0
- SYN-ACK 80 1037 1527857206 102723770
- ACK 1037 80 102723770 1527857207
95Four-Way Handshake
- The Four-Way Handshake terminates a previously
established connection - A to B FIN
- B to A ACK
- B to A FIN
- A to B ACK
96Connection Resetting
- Host X sends an RST packet resetting the
connection if - Y requested a connection to a non-existent port P
on host X, or - For whatever reason (idle for a long time, or an
abnormal condition, ...), the host X (client or
the sever) wishes to close the connection. - Resetting is unilateral.