Chapter 6. TCP/IP

Download Report

Transcript Chapter 6. TCP/IP

TCP/IP
—— the Dominant Standards
TCP/IP Layering
•
•
•
•
TCP and UDP are the two predominant
transport layer protocols. Both use IP as the
network layer.TCP provides a reliable
transport layer, even though the service it
uses (IP) is unreliable. However,UDP is
unreliable. There is no guarantee that the
datagram ever gets to its final destination
ICMP is an adjunct to IP. It is used by the IP
layer to exchange error messages and other
vital information with the IP layer in another
host or router.
IGMP is the Internet Group Management
Protocol. It is used with multicasting: sending
a UDP datagram to multiple hosts.
ARP (Address Resolution Protocol) and RARP
(Reverse Address Resolution Protocol) are
specialized protocols used only with certain
types of network interfaces (such as
Ethernet and token ring) to convert between
the addresses used by the IP layer and the
addresses used by the network interface.
Internet Addresses
•
•
•
Every interface on an internet must
have a unique Internet address (also
called an IP address). These addresses
are 32-bit numbers.
These 32-bit addresses are normally
written as four decimal numbers, one
for each byte of the address. This is
called dotted-decimal notation.
There is one central authority for
allocating these addresses for networks
connected to the worldwide Internet.
That authority is the Internet Network
Information Center, called the
InterNIC. The InterNIC assigns only
network IDs. The assignment of host
IDs is up to the system administrator.
The five different classes of Internet addresses.
Ranges for different classes of IP addresses.
Encapsulation & Demultiplexing
•
•
•
•
•
When an application sends data using TCP,
the data is sent down the protocol stack,
through each layer, until it is sent as a
stream of bits across the network. Each
layer adds information to the data by
prepending headers (and sometimes adding
trailer information) to the data that it
receives.
The unit of data that TCP sends to IP is
called a TCP segment. The unit of data that
IP sends to the network interface is called
an IP datagram. The stream of bits that
flows across the Ethernet is called a frame.
A physical property of an Ethernet frame is
that the size of its data must be between 46
and 1500 bytes
We could draw a nearly identical picture for
UDP data. The only changes are that the unit
of information that UDP passes to IP is
called a UDP datagram, and the size of the
UDP header is 8 bytes.
When an Ethernet frame is received at the
destination host it starts its way up the
protocol stack and all the headers are
removed by the appropriate protocol box.
The format of an IP datagram
•
•
•
•
•
The current protocol version is 4, so IP
is sometimes called IPv4.
The header length is the number of
32-bit words in the header, including
any options. Since this is a 4-bit field,
it limits the header to 60 bytes.
The type-of-service field (TOS) is
composed of a 3-bit precedence field
(which is ignored today), 4 TOS bits,
and an unused bit that must be 0. The
4 TOS bits are: minimize delay,
maximize throughput, maximize
reliability, and minimize monetary cost.
The total length field is the total
•
length of the IP datagram in bytes.
Since this is a 16-bit field, the
maximum size of an IP datagram is
65535 bytes.
•
The identification, flags and fragment
offset fields are used when the packet
is fragmented.
The time-to-live field, or TTL, sets an
upper limit on the number of routers
through which a datagram can pass. It
limits the lifetime of the datagram.
The header checksum is calculated
over the IP header only. It does not
cover any data that follows the
header.
IP Fragmentation & Reassembly
• network links have MTU
(max.transfer size) largest possible link-level
frame.
– different link types,
different MTUs
• large IP datagram divided
(“fragmented”) within net
– one datagram becomes
several datagrams
– “reassembled” only at
final destination
– IP header bits used to
identify, order related
fragments
fragmentation:
in: one large datagram
out: 3 smaller datagrams
reassembly
IP Fragmentation & Reassembly
Example
• 4000 byte
datagram
• MTU = 1500 bytes
1480 bytes in
data field
offset =
1480/8
length ID fragflag offset
=4000 =x
=0
=0
One large datagram becomes
several smaller datagrams
length ID fragflag offset
=1500 =x
=1
=0
length ID fragflag offset
=1500 =x
=1
=185
length ID fragflag offset
=1040 =x
=0
=370
Examples of IP Networks
223.1.1.1
• IP address: 32-bit
identifier for host, router
223.1.2.1
223.1.1.2
interface
223.1.1.4 223.1.2.9
• interface: connection
between host/router and
223.1.2.2
223.1.3.27
223.1.1.3
physical link
– router’s typically have
multiple interfaces
223.1.3.2
– host may have multiple
223.1.3.1
interfaces
– IP addresses
associated with each
interface
223.1.1.1 = 11011111 00000001 00000001 00000001
223
1
1
1
IP Routing
• Conceptually, IP routing is simple, especially for a host. If the
destination is directly connected to the host (e.g., a point-topoint link) or on a shared network (e.g., Ethernet or token ring),
then the IP datagram is sent directly to the destination.
• Otherwise the host sends the datagram to a default router, and
lets the router deliver the datagram to its destination.
• When a datagram is received from a network interface, IP first
checks if the destination IP address is one of its own IP
addresses or an IP broadcast address. If so, the datagram is
delivered to the protocol module specified by the protocol field
in the IP header.
• If the datagram is not destined for this IP layer, then (1) if the
IP layer was configured to act as a router the packet is
forwarded (that is, handled as an outgoing datagram as
described below), else (2) the datagram is silently discarded.
IP Routing (Cont’d)
• Each entry in the routing table contains the following
information:
– Destination IP address. This can be either a complete host address
or a network address, as specified by the flag field for this entry.
A host address has a nonzero host ID and identifies one particular
host, while a network address has a host ID of 0 and identifies all
the hosts on that network (e.g., Ethernet, token ring).
– IP address of a next-hop router, or the IP address of a directly
connected network. A next-hop router is one that is on a directly
connected network to which we can send datagrams for delivery.
The next-hop router is not the final destination, but it takes the
datagrams we send it and forwards them to the final destination.
– Flags. One flag specifies whether the destination IP address is the
address of a network or the address of a host. Another flag says
whether the next-hop router field is really a next-hop router or a
directly connected interface.
– Specification of which network interface the datagram should be
passed to for transmission
IP Routing (Cont’d)
•
•
IP router does not know the complete route to any destination (except,
of course, those destinations that are directly connected to the
sending host). All that IP routing provides is the IP address of the
next-hop router to which the datagram is sent.
IP routing performs the following actions:
– Search the routing table for an entry that matches the complete destination
IP address (matching network ID and host ID). If found, send the packet to
the indicated next-hop router or to the directly connected interface
(depending on the flags field). Point-to-point links are found here, for
example, since the other end of such a link is the other host's complete IP
address.
– Search the routing table for an entry that matches just the destination
network ID. If found, send the packet to the indicated next-hop router or
to the directly connected interface (depending on the flags field). All the
hosts on the destination network can be handled with this single routing
table entry. All the hosts on a local Ethernet, for example, are handled with
a routing table entry of this type.
– Search the routing table for an entry labeled "default." If found, send the
packet to the indicated next-hop router
– If none of the steps works, the datagram is undeliverable. If the
undeliverable datagram was generated on this host, a "host unreachable" or
"network unreachable" error is normally returned to the application that
generated the datagram.
IP Routing (Cont’d)
• Example 1 —— Routing in LAN
– host bsdi has an IP datagram to
send to another host sun.
– When IP receives the datagram
from one of the upper layers it
searches its routing table and finds
that the destination IP address
(140.252.13.33) is on a directly
connected network
– The datagram is passed to the
Ethernet device driver, and sent to
sun as an Ethernet frame
– The destination address in the IP
datagram is Sun's IP address
(140.252.13.33) and the destination
address in the link-layer header is
the 48-bit Ethernet address of
sun's Ethernet interface. which is
obtained using ARP.
IP Routing (Cont’d)
•
Example 2 —— Routing between
LANs
– bsdi has an IP datagram to send to
the host ftp.uu.net, whose IP
address is 192.48.96.9.
– First bsdi searches its routing table
but doesn't find a matching host
entry or a matching network entry.
It uses its default entry, which tells
it to send datagrams to sun, the
next-hop router.
– When the datagram travels from
bsdi to sun the destination IP
address is the final destination
(192.48.96.9) but the link-layer
address is the 48-bit Ethernet
address of sun's Ethernet interface.
– When sun receives the datagram it
realizes that the datagram's
destination IP address is not one of
its own, and sun is configured to act
as a router, so it forwards the
datagram (netb).
– When netb receives the
datagram it goes through the
same steps that sun just did.
– This procedure will go on until
the datagram is finally reach
its destination.
Subnets
• IP address:
– subnet part (high
order bits)
– host part (low
order bits)
223.1.1.1
223.1.2.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.3.27
223.1.2.2
LAN
• What’s a subnet ?
– device interfaces
with same subnet
part of IP address
– can physically
reach each other
without intervening
router
223.1.2.9
223.1.3.1
223.1.3.2
network consisting of 3 subnets
Subnets (Cont’d)
Recipe
• To determine the
subnets, detach
each interface
from its host or
router, creating
islands of isolated
networks. Each
isolated network is
called a subnet.
223.1.1.0/24
223.1.2.0/24
223.1.3.0/24
Subnet mask: /24
Subnets (Cont’d)
How many?
223.1.1.2
223.1.1.1
223.1.1.4
223.1.1.3
223.1.9.2
223.1.7.0
223.1.9.1
223.1.7.1
223.1.8.1
223.1.8.0
223.1.2.6
223.1.2.1
223.1.3.27
223.1.2.2
223.1.3.1
223.1.3.2
IP addressing: CIDR
CIDR: Classless InterDomain Routing
– subnet portion of address of arbitrary
length
– address format: a.b.c.d/x, where x is #
bits in subnet portion of address
subnet
part
host
part
11001000 00010111 00010000 00000000
200.23.16.0/23
IP addresses: how to get one?
Q: How does host get IP address?
• hard-coded by system admin in a file
– Windows: control-panel->network>configuration->tcp/ip->properties
– UNIX: /etc/rc.config
• DHCP: Dynamic Host Configuration Protocol:
dynamically get address from as server
– “plug-and-play”
(more in next chapter)
IP addresses: how to get one?
Q: How does network get subnet part of
IP addr?
A: gets allocated portion of its provider
ISP’s address space
ISP's block
11001000 00010111 00010000 00000000
200.23.16.0/20
Organization 0
Organization 1
Organization 2
...
11001000 00010111 00010000 00000000
11001000 00010111 00010010 00000000
11001000 00010111 00010100 00000000
…..
….
200.23.16.0/23
200.23.18.0/23
200.23.20.0/23
….
Organization 7
11001000 00010111 00011110 00000000
200.23.30.0/23
Hierarchical addressing: route
aggregation
Hierarchical addressing allows efficient advertisement of routing
information:
Organization 0
200.23.16.0/23
Organization 1
200.23.18.0/23
Organization 2
200.23.20.0/23
Organization 7
.
.
.
.
.
.
Fly-By-Night-ISP
“Send me anything
with addresses
beginning
200.23.16.0/20”
Internet
200.23.30.0/23
ISPs-R-Us
“Send me anything
with addresses
beginning
199.31.0.0/16”
Hierarchical addressing: more
specific routes
ISPs-R-Us has a more specific route to Organization 1
Organization 0
200.23.16.0/23
Organization 2
200.23.20.0/23
Organization 7
.
.
.
.
.
.
Fly-By-Night-ISP
“Send me anything
with addresses
beginning
200.23.16.0/20”
Internet
200.23.30.0/23
ISPs-R-Us
Organization 1
200.23.18.0/23
“Send me anything
with addresses
beginning 199.31.0.0/16
or 200.23.18.0/23”
IP addressing: the last word...
Q: How does an ISP get block of
addresses?
A: ICANN: Internet Corporation for Assigned
Names and Numbers
– allocates addresses
– manages DNS
– assigns domain names, resolves disputes
Special Case IP Addresses
•
•
•
0 means a field of all zero bits, -1 means a field of all one bits.
netid, subnetid, and hostid mean the corresponding field that is
neither all zero bits nor all one bits.
A blank subnet ID column means the address is not subnetted.
Important commands about IP
• ifconfig Command
– ipconfig in Wintel
– ifconfig in Unix
• netstat Command
– provides information about the interfaces
on a system.
Port Numbers
• TCP and UDP identify applications using 16-bit port numbers.
• Servers are normally known by their well-known port number.
For example, FTP service is provided on port 21, Telnet service
is provided on port 23, while WWW service is provided on port
80, etc.
• A client usually doesn't care what port number it uses on its end.
All it needs to be certain of is that whatever port number it
uses be unique on its host. Client port numbers are called
ephemeral ports (i.e., short lived). This is because a client
typically exists only as long as the user running the client needs
its service, while servers typically run as long as the host is up.
• Most TCP/IP implementations allocate ephemeral port numbers
between 1024 and 5000. The port numbers above 5000 are
intended for other servers.
• One can telnet to specific port of a server. Example, telnet
www.hust.edu.cn 80 (Apache), telnet mail.hust.edu.cn 25 (MAIL)
MAC Addresses and ARP
• 32-bit IP address:
– network-layer address
– used to get datagram to destination IP subnet
• MAC (or LAN or physical or Ethernet)
address:
– used to get datagram from one interface to
another physically-connected interface (same
network).
– 48 bit MAC address (for most LANs)
burned in the adapter ROM.
LAN Addresses and ARP
Each adapter on LAN has unique LAN address
1A-2F-BB-76-09-AD
71-65-F7-2B-08-53
LAN
(wired or
wireless)
Broadcast address =
FF-FF-FF-FF-FF-FF
= adapter
58-23-D7-FA-20-B0
0C-C4-11-6F-E3-98
ARP: Address Resolution Protocol
Question: how to determine
MAC address of B
knowing B’s IP address?
237.196.7.78
1A-2F-BB-76-09-AD
237.196.7.23
237.196.7.14
LAN
71-65-F7-2B-08-53
237.196.7.88
• Each IP node (Host,
Router) on LAN has
ARP table
• ARP Table: IP/MAC
address mappings for
some LAN nodes
< IP address; MAC
address; TTL>
58-23-D7-FA-20-B0
0C-C4-11-6F-E3-98
– TTL (Time To Live): time
after which address
mapping will be forgotten
(typically 20 min)
ARP protocol (if in the Same LAN)
• A wants to send datagram
to B, and B’s MAC address
not in A’s ARP table.
• A broadcasts ARP query
packet, containing B's IP
address
– Dest MAC address =
FF-FF-FF-FF-FF-FF
– all machines on LAN
receive ARP query
• B receives ARP packet,
replies to A with its (B's)
MAC address
– frame sent to A’s MAC
address (unicast)
•
•
A caches (saves) IP-to-MAC
address pair in its ARP table
until information becomes old
(times out)
– soft state: information that
times out (goes away) unless
refreshed
ARP is “plug-and-play”:
– nodes create their ARP
tables without intervention
from net administrator
• Format of ARP request or
reply packet when used on an
Ethernet.
• “ftp bsdi”
–
–
–
–
–
–
–
–
–
An Example of ARP
The application, the FTP client, calls the
function gethostbyname to convert the
hostname (bsdi) into its 32-bit IP address.
This function is called a resolver in the DNS
(Domain Name System).
The FTP client asks its TCP to establish a
connection with that IP address
TCP sends a connection request segment to
the remote host by sending an IP datagram to
its IP address.
the IP datagram is sent to a host or router on
a locally attached network.
Assuming an Ethernet, the sending host must
convert the 32-bit IP address into a 48-bit
Ethernet address.
ARP sends an Ethernet frame called an ARP
request to every host on the network. This is
called a broadcast.
The destination host's ARP layer receives this
broadcast, recognizes that the sender is
asking for its hardware address, and replies
with an ARP reply. This reply contains the IP
address and the corresponding hardware
address.
The ARP reply is received and the IP
datagram that forced the ARP request-reply
to be exchanged can now be sent.
The IP datagram is sent to the destination
host.
Other problems about ARP
• The fundamental concept behind ARP is that the
network interface has a hardware address (a 48-bit
value for an Ethernet or token ring interface).
Frames exchanged at the hardware level must be
addressed to the correct interface.
• Knowing a host's IP address doesn't let the kernel
send a frame to that host. The kernel (i.e., the
Ethernet driver) must know the destination's
hardware address to send it data.
• Point-to-point links don't use ARP.
• RARP (reverse address resolution protocol)
– This protocol performs the exactly reverse functionality
than ARP
• Important Command about ARP
– arp (in both Windows and Unix)
ICMP: Internet Control Message
Protocol
• used by hosts & routers to
communicate network-level
information
– error reporting:
unreachable host,
network, port, protocol
– echo request/reply (used
by ping)
• network-layer “above” IP:
– ICMP msgs carried in IP
datagrams
• ICMP message: type, code
plus first 8 bytes of IP
datagram causing error
ICMP messages encapsulated
within an IP datagram
ICMP message
ICMP: Internet Control Message
Protocol (Cont’d)
• ICMP error messages are
sometimes handled specially. For
example, an ICMP error message
is never generated in response to
an ICMP error message.
• When an ICMP error message is
sent, the message always
contains the IP header and the
first 8 bytes of the IP datagram
that caused the ICMP error to
be generated. This lets the
receiving ICMP module associate
the message with one particular
protocol and one particular user
process.
Example of ICMP —— ping
• The name "ping" is taken from the sonar operation to
locate objects. The Ping program was written by Mike
Muuss and it tests whether another host is reachable.
• The program sends an ICMP echo request message to
a host, expecting an ICMP echo reply to be returned.
• Normally if you can't Ping a host, you won't be able to
Telnet or FTP to that host. Conversely, if you can't
Telnet to a host, Ping is often the starting point to
determine what the problem is. Ping also measures
the round-trip time to the host, giving us some
indication of how "far away" that host is.
• With the increased awareness of security on the
Internet, ping may show a host as being unreachable,
yet we might be able to Telnet.
Example of ICMP —— ping (Cont’d)
•
Format of ICMP message for echo request and echo reply.
•
Example of ping output
bsdi % ping svr4
PING svr4 (140.252.13.34): 56 data bytes
64 bytes from 140.252.13.34: icmp_seq=0 ttl=255 time=0 ms
64 bytes from 140.252.13.34: icmp_seq=l ttl=255 time=0 ms
64 bytes from 140.252.13.34: icmp_seq=2 ttl=255 time=0 ms
64 bytes from 140.252.13.34: icmp_seq=3 ttl=255 time=0 ms
64 bytes from 140.252.13.34: icmp_seq=4 ttl=255 time=0 ms
64 bytes from 140.252.13.34: icmp_seq=5 ttl=255 time=0 ms
64 bytes from 140.252.13.34: icmp_seq=6 ttl=255 time=0 ms
64 bytes from 140.252.13.34: icmp_seq=7 ttl=255 time=0 ms
^?
type interrupt key to stop
--- svr4 ping statistics --8 packets transmitted, 8 packets received, 0% packet loss
round-trip min/avg/max = 0/0/0 ms
Example of ICMP —— ping (Cont’d)
• IP Record Route Option
– The ping program gives us an opportunity to look at
the IP record route (RR) option.
– It causes ping to set the IP RR option in the outgoing
IP datagram. This causes every router that handles
the datagram to add its IP address to a list in the
options field. When ping receives the echo reply it
prints the list of IP addresses.
– Most systems today do support these optional
features, but some systems don't reflect the IP list.
– Example ……
Example of ICMP —— ping (Cont’d)
• Broadcast ping
– For example, %ping –b 211.69.193.255
WARNING: pinging broadcast address
PING 211.69.193.255 (211.69.193.255) from 211.69.193.53 : 56(84) bytes of data.
Warning: time of day goes back, taking countermeasures.
64 bytes from 211.69.193.53: icmp_seq=0 ttl=255 time=649 usec
64 bytes from 211.69.193.62: icmp_seq=0 ttl=255 time=1.243 msec (DUP!)
64 bytes from 211.69.193.13: icmp_seq=0 ttl=64 time=1.298 msec (DUP!)
64 bytes from 211.69.193.12: icmp_seq=0 ttl=64 time=1.316 msec (DUP!)
64 bytes from 211.69.193.52: icmp_seq=0 ttl=255 time=1.332 msec (DUP!)
64 bytes from 211.69.193.52: icmp_seq=0 ttl=255 time=1.348 msec (DUP!)
64 bytes from 211.69.193.11: icmp_seq=0 ttl=64 time=1.364 msec (DUP!)
64 bytes from 211.69.193.15: icmp_seq=0 ttl=64 time=1.380 msec (DUP!)
64 bytes from 211.69.193.25: icmp_seq=0 ttl=64 time=1.396 msec (DUP!)
64 bytes from 211.69.193.26: icmp_seq=0 ttl=64 time=1.412 msec (DUP!)
64 bytes from 211.69.193.41: icmp_seq=0 ttl=64 time=1.428 msec (DUP!)
64 bytes from 192.168.1.216: icmp_seq=0 ttl=64 time=1.485 msec (DUP!)
NAT: Network Address Translation
rest of
Internet
local network
(e.g., home network)
10.0.0/24
10.0.0.4
10.0.0.1
10.0.0.2
138.76.29.7
10.0.0.3
All datagrams leaving local
network have same single source
NAT IP address: 138.76.29.7,
different source port numbers
Datagrams with source or
destination in this network
have 10.0.0/24 address for
source, destination (as usual)
NAT: Network Address Translation
(Cont’d)
• Motivation: local network uses just one IP
address as far as outside word is concerned:
– no need to be allocated range of addresses from ISP:
- just one IP address is used for all devices
– can change addresses of devices in local network
without notifying outside world
– can change ISP without changing addresses of
devices in local network
– devices inside local net not explicitly addressable,
visible by outside world (a security plus).
NAT: Network Address Translation
(Cont’d)
Implementation: NAT router must:
– outgoing datagrams: replace (source IP address, port
#) of every outgoing datagram to (NAT IP address,
new port #)
. . . remote clients/servers will respond using (NAT
IP address, new port #) as destination addr.
– remember (in NAT translation table) every (source
IP address, port #) to (NAT IP address, new port #)
translation pair
– incoming datagrams: replace (NAT IP address, new
port #) in dest fields of every incoming datagram
with corresponding (source IP address, port #)
stored in NAT table
NAT: Network Address Translation
(Cont’d)
2: NAT router
changes datagram
source addr from
10.0.0.1, 3345 to
138.76.29.7, 5001,
updates table
2
NAT translation table
WAN side addr
LAN side addr
1: host 10.0.0.1
sends datagram to
128.119.40, 80
138.76.29.7, 5001 10.0.0.1, 3345
……
……
S: 10.0.0.1, 3345
D: 128.119.40.186, 80
S: 138.76.29.7, 5001
D: 128.119.40.186, 80
138.76.29.7
S: 128.119.40.186, 80
D: 138.76.29.7, 5001
3: Reply arrives
dest. address:
138.76.29.7, 5001
3
1
10.0.0.4
S: 128.119.40.186, 80
D: 10.0.0.1, 3345
10.0.0.1
10.0.0.2
4
10.0.0.3
4: NAT router
changes datagram
dest addr from
138.76.29.7, 5001 to 10.0.0.1, 3345
NAT: Network Address Translation
(Cont’d)
• 16-bit port-number field:
– 60,000 simultaneous connections with a
single LAN-side address!
• NAT is controversial:
– routers should only process up to layer 3
– violates end-to-end argument
• NAT possibility must be taken into account by
app designers, eg, P2P applications
– address shortage should instead be solved
by IPv6
An introduction of TCP
• TCP Services
– TCP provides a connection-oriented, reliable, byte
stream service.
– The term connection-oriented means the two
applications using TCP (normally considered a client
and a server) must establish a TCP connection with
each other before they can exchange data.
– Analogy
• dialing a telephone number, waiting for the other party to
answer the phone and say "hello," and then saying who's
calling.
An introduction of TCP (Cont’d)
•
TCP provides reliability by doing the following
– The application data is broken into what TCP considers the best sized
chunks to send. The unit of information passed by TCP to IP is called a
segment.
– When TCP sends a segment it maintains a timer, waiting for the other end to
acknowledge reception of the segment. If an acknowledgment isn't received
in time, the segment is retransmitted.
– When TCP receives data from the other end of the connection, it sends an
acknowledgment.
– TCP maintains a checksum on its header and data. This is an end-to-end
checksum whose purpose is to detect any modification of the data in transit.
– Since TCP segments are transmitted as IP datagrams, and since IP
datagrams can arrive out of order, TCP segments can arrive out of order. A
receiving TCP resequences the data if necessary, passing the received data
in the correct order to the application.
– Since IP datagrams can get duplicated, a receiving TCP must discard
duplicate data.
– TCP also provides flow control. Each end of a TCP connection has a finite
amount of buffer space. A receiving TCP only allows the other end to send as
much data as the receiver has buffers for. This prevents a fast host from
taking all the buffers on a slower host.
An introduction of TCP (Cont’d)
• TCP Header
Encapsulation of TCP data in an IP datagram
TCP header.
An introduction of TCP (Cont’d)
• Connection Establishment and Termination
Time line of connection establishment and connection termination