46
TCP/IP —— the Dominant Standards

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

Embed Size (px)

Citation preview

Page 1: 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

TCP/IP

—— the Dominant Standards

Page 2: 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

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.

Page 3: 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

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.

Page 4: 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

Encapsulation & Demultiplexing• When an application sends data using TCP, t

he 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.

Page 5: 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

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.

Page 6: 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

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 datagramout: 3 smaller datagrams

reassembly

Page 7: 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

IP Fragmentation & Reassembly

ID=x

offset=0

fragflag=0

length=4000

ID=x

offset=0

fragflag=1

length=1500

ID=x

offset=185

fragflag=1

length=1500

ID=x

offset=370

fragflag=0

length=1040

One large datagram becomesseveral smaller datagrams

Example• 4000 byte

datagram• MTU = 1500 bytes

1480 bytes in data field

offset =1480/8

Page 8: 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

Examples of IP Networks• IP address: 32-bit

identifier for host, router interface

• interface: connection between host/router and physical link– router’s typically

have multiple interfaces

– host may have multiple interfaces

– IP addresses associated with each interface

223.1.1.1

223.1.1.2

223.1.1.3

223.1.1.4 223.1.2.9

223.1.2.2

223.1.2.1

223.1.3.2223.1.3.1

223.1.3.27

223.1.1.1 = 11011111 00000001 00000001 00000001

223 1 11

Page 9: 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

IP Routing

• Conceptually, IP routing is simple, especially for a host. If the destination is directly connected to the host (e.g., a point-to-point 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.

Page 10: 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

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 o

r 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

Page 11: 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

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.

Page 12: 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

IP Routing (Cont’d)

• Example 1 —— Routing in LAN– host bsdi has an IP datagram to sen

d to another host sun.– When IP receives the datagram fro

m 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.

Page 13: 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

IP Routing (Cont’d)• Example 2 —— Routing between LA

Ns– bsdi has an IP datagram to send to t

he 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.

Page 14: 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

Subnets

• IP address: – subnet part (high

order bits)– host part (low order

bits)

• What’s a subnet ?– device interfaces

with same subnet part of IP address

– can physically reach each other without intervening router

223.1.1.1

223.1.1.2

223.1.1.3

223.1.1.4 223.1.2.9

223.1.2.2

223.1.2.1

223.1.3.2223.1.3.1

223.1.3.27

network consisting of 3 subnets

LAN

Page 15: 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

Subnets (Cont’d) 223.1.1.0/24223.1.2.0/24

223.1.3.0/24

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.

Subnet mask: /24

Page 16: 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

Subnets (Cont’d)

How many? 223.1.1.1

223.1.1.3

223.1.1.4

223.1.2.2223.1.2.1

223.1.2.6

223.1.3.2223.1.3.1

223.1.3.27

223.1.1.2

223.1.7.0

223.1.7.1223.1.8.0223.1.8.1

223.1.9.1

223.1.9.2

Page 17: 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

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

11001000 00010111 00010000 00000000

subnetpart

hostpart

200.23.16.0/23

Page 18: 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

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)

Page 19: 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

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 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. ….

Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23

Page 20: 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

Hierarchical addressing: route aggregation

“Send me anythingwith addresses beginning 200.23.16.0/20”

200.23.16.0/23

200.23.18.0/23

200.23.30.0/23

Fly-By-Night-ISP

Organization 0

Organization 7Internet

Organization 1

ISPs-R-Us“Send me anythingwith addresses beginning 199.31.0.0/16”

200.23.20.0/23Organization 2

...

...

Hierarchical addressing allows efficient advertisement of routing information:

Page 21: 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

Hierarchical addressing: more specific routes

ISPs-R-Us has a more specific route to Organization 1

“Send me anythingwith addresses beginning 200.23.16.0/20”

200.23.16.0/23

200.23.18.0/23

200.23.30.0/23

Fly-By-Night-ISP

Organization 0

Organization 7Internet

Organization 1

ISPs-R-Us“Send me anythingwith addresses beginning 199.31.0.0/16or 200.23.18.0/23”

200.23.20.0/23Organization 2

...

...

Page 22: 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

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

Page 23: 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

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 neith

er all zero bits nor all one bits.• A blank subnet ID column means the address is not subnetted.

Page 24: 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

Important commands about IP

• ifconfig Command– ipconfig in Wintel– ifconfig in Unix

• netstat Command– provides information about the interfaces o

n a system.

Page 25: 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

Port Numbers• TCP and UDP identify applications using 16-bit port numbers.• Servers are normally known by their well-known port number. F

or 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)

Page 26: 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

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.

Page 27: 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

LAN Addresses and ARPEach adapter on LAN has unique LAN address

Broadcast address =FF-FF-FF-FF-FF-FF

= adapter

1A-2F-BB-76-09-AD

58-23-D7-FA-20-B0

0C-C4-11-6F-E3-98

71-65-F7-2B-08-53

LAN(wired orwireless)

Page 28: 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

ARP: Address Resolution Protocol

• 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>– TTL (Time To Live):

time after which address mapping will be forgotten (typically 20 min)

Question: how to determineMAC address of Bknowing B’s IP address?

1A-2F-BB-76-09-AD

58-23-D7-FA-20-B0

0C-C4-11-6F-E3-98

71-65-F7-2B-08-53

LAN

237.196.7.23

237.196.7.78

237.196.7.14

237.196.7.88

Page 29: 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

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.

Page 30: 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

An Example of ARP• “ftp bsdi”– The application, the FTP client, calls the functi

on 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.

Page 31: 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

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)

Page 32: 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

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

Page 33: 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

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.

Page 34: 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

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.

Page 35: 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

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

Page 36: 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

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 ……

Page 37: 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

Example of ICMP —— ping (Cont’d)• Broadcast ping

– For example, %ping –b 211.69.193.255WARNING: 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!)

Page 38: 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

NAT: Network Address Translation

10.0.0.1

10.0.0.2

10.0.0.3

10.0.0.4

138.76.29.7

local network(e.g., home network)

10.0.0/24

rest ofInternet

Datagrams with source or destination in this networkhave 10.0.0/24 address for

source, destination (as usual)

All datagrams leaving localnetwork have same single source

NAT IP address: 138.76.29.7,different source port numbers

Page 39: 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

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).

Page 40: 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

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

Page 41: 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

NAT: Network Address Translation (Cont’d)

10.0.0.1

10.0.0.2

10.0.0.3

S: 10.0.0.1, 3345D: 128.119.40.186, 80

1

10.0.0.4

138.76.29.7

1: host 10.0.0.1 sends datagram to 128.119.40, 80

NAT translation tableWAN side addr LAN side addr

138.76.29.7, 5001 10.0.0.1, 3345…… ……

S: 128.119.40.186, 80 D: 10.0.0.1, 3345

4

S: 138.76.29.7, 5001D: 128.119.40.186, 80

2

2: NAT routerchanges datagramsource addr from10.0.0.1, 3345 to138.76.29.7, 5001,updates table

S: 128.119.40.186, 80 D: 138.76.29.7, 5001

3

3: Reply arrives dest. address: 138.76.29.7, 5001

4: NAT routerchanges datagramdest addr from138.76.29.7, 5001 to 10.0.0.1, 3345

Page 42: 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

NAT: Network Address Translation (Cont’d)

• 16-bit port-number field: – 60,000 simultaneous connections with a singl

e 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

Page 43: 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

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.

Page 44: 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

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.

Page 45: 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

An introduction of TCP (Cont’d)

• TCP Header

Encapsulation of TCP data in an IP datagram

TCP header.

Page 46: 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

An introduction of TCP (Cont’d)

• Connection Establishment and Termination

Time line of connection establishment and connection termination