1 / 46

TCP/IP

TCP/IP. —— the Dominant Standards. TCP/IP Layering.

howard
Télécharger la présentation

TCP/IP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TCP/IP —— the Dominant Standards

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

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

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

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

  6. 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 IP Fragmentation & Reassembly fragmentation: in: one large datagram out: 3 smaller datagrams reassembly

  7. length =1500 length =1500 length =4000 length =1040 ID =x ID =x ID =x ID =x fragflag =0 fragflag =1 fragflag =1 fragflag =0 offset =0 offset =0 offset =370 offset =185 One large datagram becomes several smaller datagrams IP Fragmentation & Reassembly Example • 4000 byte datagram • MTU = 1500 bytes 1480 bytes in data field offset = 1480/8

  8. 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.2 223.1.2.1 223.1.3.27 223.1.3.1 223.1.3.2 223.1.2.2 Examples of IP Networks 223.1.1.1 223.1.2.9 223.1.1.4 223.1.1.3 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1

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

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

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

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

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

  14. 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 Subnets 223.1.1.1 223.1.2.1 223.1.1.2 223.1.2.9 223.1.1.4 223.1.2.2 223.1.1.3 223.1.3.27 LAN 223.1.3.2 223.1.3.1 network consisting of 3 subnets

  15. 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 Subnets (Cont’d) Subnet mask: /24

  16. How many? Subnets (Cont’d) 223.1.1.2 223.1.1.1 223.1.1.4 223.1.1.3 223.1.7.0 223.1.9.2 223.1.9.1 223.1.7.1 223.1.8.1 223.1.8.0 223.1.2.6 223.1.3.27 223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2

  17. host part subnet part 11001000 0001011100010000 00000000 200.23.16.0/23 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

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

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

  20. 200.23.16.0/23 200.23.18.0/23 200.23.30.0/23 200.23.20.0/23 . . . . . . Hierarchical addressing: route aggregation Hierarchical addressing allows efficient advertisement of routing information: Organization 0 Organization 1 “Send me anything with addresses beginning 200.23.16.0/20” Organization 2 Fly-By-Night-ISP Internet Organization 7 “Send me anything with addresses beginning 199.31.0.0/16” ISPs-R-Us

  21. 200.23.16.0/23 200.23.18.0/23 200.23.30.0/23 200.23.20.0/23 . . . . . . Hierarchical addressing: more specific routes ISPs-R-Us has a more specific route to Organization 1 Organization 0 “Send me anything with addresses beginning 200.23.16.0/20” Organization 2 Fly-By-Night-ISP Internet Organization 7 “Send me anything with addresses beginning 199.31.0.0/16 or 200.23.18.0/23” ISPs-R-Us Organization 1

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

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

  24. Important commands about IP • ifconfig Command • ipconfig in Wintel • ifconfig in Unix • netstat Command • provides information about the interfaces on a system.

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

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

  27. 1A-2F-BB-76-09-AD LAN (wired or wireless) 71-65-F7-2B-08-53 58-23-D7-FA-20-B0 0C-C4-11-6F-E3-98 LAN Addresses and ARP Each adapter on LAN has unique LAN address Broadcast address = FF-FF-FF-FF-FF-FF = adapter

  28. Question: how to determine MAC address of B knowing B’s IP address? 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) 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 58-23-D7-FA-20-B0 0C-C4-11-6F-E3-98 237.196.7.88

  29. 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. ARP protocol (if in the Same LAN)

  30. An Example of ARP • “ftp bsdi” • 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.

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

  32. 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: Internet Control Message Protocol ICMP messages encapsulated within an IP datagram ICMP message

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

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

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

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

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

  38. NAT: Network Address Translation rest of Internet local network (e.g., home network) 10.0.0/24 10.0.0.1 10.0.0.4 10.0.0.2 138.76.29.7 10.0.0.3 Datagrams with source or destination in this network have 10.0.0/24 address for source, destination (as usual) All datagrams leaving local network have same single source NAT IP address: 138.76.29.7, different source port numbers

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

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

  41. 3 1 2 4 S: 10.0.0.1, 3345 D: 128.119.40.186, 80 S: 138.76.29.7, 5001 D: 128.119.40.186, 80 1: host 10.0.0.1 sends datagram to 128.119.40, 80 2: NAT router changes datagram source addr from 10.0.0.1, 3345 to 138.76.29.7, 5001, updates table S: 128.119.40.186, 80 D: 10.0.0.1, 3345 S: 128.119.40.186, 80 D: 138.76.29.7, 5001 NAT: Network Address Translation (Cont’d) NAT translation table WAN side addr LAN side addr 138.76.29.7, 5001 10.0.0.1, 3345 …… …… 10.0.0.1 10.0.0.4 10.0.0.2 138.76.29.7 10.0.0.3 4: NAT router changes datagram dest addr from 138.76.29.7, 5001 to 10.0.0.1, 3345 3: Reply arrives dest. address: 138.76.29.7, 5001

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

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

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

  45. An introduction of TCP (Cont’d) • TCP Header Encapsulation of TCP data in an IP datagram TCP header.

  46. An introduction of TCP (Cont’d) • Connection Establishment and Termination Time line of connection establishment and connection termination

More Related