* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download More on TCP/IP
Survey
Document related concepts
Airborne Networking wikipedia , lookup
Point-to-Point Protocol over Ethernet wikipedia , lookup
Computer network wikipedia , lookup
Asynchronous Transfer Mode wikipedia , lookup
SIP extensions for the IP Multimedia Subsystem wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Deep packet inspection wikipedia , lookup
Real-Time Messaging Protocol wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
TCP congestion control wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Transcript
More on TCP/IP Module A Panko’s Business Data Networks and Telecommunications, 6th edition Copyright 2007 Prentice-Hall May only be used by adopters of the book Multiplexing Multiplexing IP packets can carry different things in their data fields TCP segments UDP datagrams ICMP supervisory messages (later) RIP messages (later) IP Data Field IP Header 3 Multiplexing We say that IP can multiplex (mix) different types of traffic in a stream of IP packets Single IP Packet Carrying UDP Datagram UDP IP-H TCP IP-H UDP IP-H ICMP IP-H Stream of Arriving or Outgoing IP Packets 4 Multiplexing IP process must pass contents of arriving IP packets to the correct process for subsequent handling TCP UDP IP-H Arriving Packets UDP IP ICMP IP Process 5 Multiplexing IP process must also accept messages from multiple processes and multiplex them on an outgoing stream TCP IP-H UDP Outgoing Packets UDP IP ICMP IP Process 6 Multiplexing Need a Way for Receiving IP Process to Know What is in the Data Field So it can pass the contents to the appropriate process IP Data Field IP Header 7 Multiplexing IP Header has an 8-bit Protocol field Identifies the contents of the data field 1=ICMP (later), 8=TCP, 17=UDP, etc. Version (4) Hdr Len (4) TOS (8) Indication (16 bits) Time to Live (8) Total Length in bytes (16) Flags (3) Protocol (8) Fragment Offset (13) Header Checksum (16) Source IP Address Destination IP Address … 8 Multiplexing Other Messages have Analogous Fields Identify contents of data field TCP and UDP Have Port number fields Identify the application process (80=HTTP) Source Port # (16) Destination Port # (16) Sequence Number (32 bits) Acknowledgement Number (32 bits) Hdr Len Reserved (6) (4) Flags (6) Window Size (16) 9 Multiplexing Other Messages have Analogous Fields Identify contents of data field PPP Protocol field identifies contents of information field as IP, IPX, a supervisory message, etc. Flag Addr Ctrl Prot Info CRC Flag 10 More on TCP Acknowledgements Sequence Number Field Initial Sequence Number Acknowledgement Number Field TCP TCP is Reliable IP packets carrying TCP segments may arrive out of order TCP must put the TCP segments in order 5 3 4 2 1 12 TCP TCP is Reliable Each correct TCP segment is acknowledged by the receiver TCP Segment Source Transport Process Destination Transport Process ACK 13 TCP Segment Each TCP segment sent by a side must have a sequence number Simplest: 1,2,3,4,5,6,7 To detect lost or out-of-sequence messages TCP uses a more complex approach 3? 1 4 2 5 14 TCP Sequence Numbers TCP header has a 32-bit sequence number field Source Port # (16) Destination Port # (16) Sequence Number (32 bits) Acknowledgement Number (32 bits) Hdr Len Reserved (6) (4) Flags (6) TCP Checksum (16) Window Size (16) Urgent Pointer (16) Options (if any) PAD Data Field 15 TCP Sequence Numbers Initial Sequence Number is randomly selected by the sender; Say, 79 Sent in the sequence number field of the first TCP segment TCP Header 79 TCP Data Field Sequence Number Field with Initial Sequence Number (79) 16 TCP Sequence Numbers Data octets in data fields of all segments in a connection are viewed as a long string TCP Segment 1 79 ISN TCP Segment 2 80 81 3 Octets in Data Field 82 TCP Segment 3 83 2 Octets in Data Field 84 17 TCP Sequence Numbers Supervisory segments, which contain a header but no data, are treated as carrying a single octet of data TCP seg 1 898 899 Carries data TCP seg 2 900 Supervisory segment TCP seg 3 901 902 … Carries data 18 TCP Sequence Numbers Sequence number field gets the value of the first octet in the data field TCP 1 79 79 is SeqNum Field Value TCP 2 80 81 82 80 is SeqNum Field Value 83 84 83 is SeqNum Field Value TCP 3 19 TCP Acknowledgements Acknowledgement must indicate which TCP segment is being acknowledged TCP Segment Source TCP Process Destination TCP Process ACK 20 TCP Acknowledgements TCP header contains a 32-bit Acknowledgement Number field to designate the TCP segment being acknowledged Source Port # (16) Destination Port # (16) Sequence Number (32 bits) Acknowledgement Number (32 bits) Hdr Len Reserved (6) (4) Flags (6) TCP Checksum (16) Window Size (16) Urgent Pointer (16) Options (if any) Data Field PAD 21 TCP Acknowledgment Numbers Acknowledgement Number field contains the next byte expected--the last byte of the segment being acknowledged, plus one TCP 1 79 80 is AckNum Field Value TCP 2 80 81 82 83 is AckNum Field Value 83 84 85 is AckNum Field Value TCP 3 22 TCP Acknowledgement Number Quiz: A TCP segment contains the following data octets 567, 568, 569, 570, 571, 572, 573, 574 What will be in the sequence number field of the TCP segment delivering the data? What will be in the acknowledgement number field of the TCP segment acknowledging the TCP segment that delivers these octets? 23 TCP Flow Control Flow Control One TCP process transmits too fast Other TCP process is overwhelmed Receiver must control transmission rate This is flow control Too Much Data TCP Process TCP Process Flow Control Message 24 TCP Flow Control A TCP segment has a Window Size field Used in acknowledgements Source Port # (16) Destination Port # (16) Sequence Number (32 bits) Acknowledgement Number (32 bits) Hdr Len Reserved (6) (4) Flags (6) TCP Checksum (16) Window Size (16) Urgent Pointer (16) Options (if any) PAD Data Field 25 TCP Flow Control A TCP segment has a Window Size field Tell how many more octets the sender can send beyond the segment being acknowledged Data TCP Process TCP Process Acknowledgement with Window Size Field 26 TCP Flow Control Example TCP segment contained octets 45-89 Acknowledgement number for TCP segment acknowledging the segment is 90 If Window Size field value is 50, then Sender may send through octet 140 Must then stop unless the window has been extended in another acknowledgement 27 TCP Flow Control Each Acknowledgement extends the window of octets that may be sent Called a sliding window protocol 1-44 45-79 80-419 May send through 480 400 1-44 45-79 80-419 May send through 920 420-630 420-630 500 28 TCP Fragmentation TCP Segments have maximum data field sizes (Size limit details are discussed later) What if an application layer message is too large? Application Layer Message TCP Data Field Max TCP Header 29 TCP Fragmentation Application layer message must be fragmented Broken into several pieces Delivered in separate TCP segments App Frag 1 App Frag 2 App Frag 3 TCP Data Field Max TCP Header 30 TCP Fragmentation Note that, in TCP fragmentation, the TCP segment is NOT fragmented The application layer message is fragmented App Frag 1 App Frag 2 App Frag 3 TCP Data Field Max TCP Header 31 TCP Fragmentation Transport layer process on the source host does the fragmentation Application layer on the source host is not involved Transparent to the application layer Application Transport Internet Application Message TCP Segment TCP Segment 32 TCP Fragmentation Transport layer process on the destination host does the reassembly Application layer on the destination host is not involved; Gets original application layer message Application Message TCP Segment TCP Segment Application Transport Internet 33 TCP Fragmentation What is the maximum TCP data field size? Complex Maximum Segment Size (MSS) Maximum size of a TCP segment’s data field NOT maximum size of the segment as its name would suggest!!! 34 TCP Fragmentation MSS Default is 536 octets Maximum IP packet size any network must support is 576 octets Larger IP packets MAY be fragmented IP and TCP headers are 20 octets each if there are no options This gives the default MSS of 536 Smaller if there are options in the IP or TCP header 35 TCP Fragmentation MSS Default is 536 octets Suppose the application layer process is 1,000 octets long Two TCP segments will be needed to send the data The first can send the first 536 octets The second can carry the remaining 464 octets of the application layer message 36 TCP Fragmentation Each side MAY announce a larger MSS An option usually used in the initial SYN message it sends to the other If announces MSS of 2,048, this many octets of data may be sent in each TCP segments 536 is only the default—the value to use if no other value is specified by the other side 37 More on Internet Layer Processes Mask Operations Masks were introduced in Chapter 3 IP addresses alone do not tell you the size of their network or subnet parts Network Mask Has 1s in the network part Has 0s in the remaining bits Subnet Mask Has 1s in the network plus subnet parts Has 0s in the remaining bits 39 Mask Operations Based on Logical AND Both must be true for the result to be true Example 1010101010 Data 1111100000 Mask 1010100000 Result 40 Mask Operations Based on Logical AND If mask bit is 1, get back original data If mask bit is 0, bet back zero Example 1010101010 Data 1111100000 Mask 1010100000 Result 41 Mask Operations IP packet arrives at a router Router sees destination IP address 11111111 01000000 10101010 00000000 Compares to each router forwarding table row Address Part in First Entry 11111111 01000000 00000000 00000000 Mask in First Entry 11111111 11100000 00000000 00000000 42 Mask Operations Mask the IP destination Address 11111111 01000000 10101010 00000000 (IP address) 11111111 11100000 00000000 00000000 (mask) 11111111 01000000 00000000 00000000 (result) Compare Result with First Entry Address part 11111111 01000000 00000000 00000000 (address part) 11111111 01000000 00000000 00000000 (result) The Entry is a Match! 43 Mask Operations Recap Read destination IP address of incoming IP packet For each entry in the router forwarding table Read the mask (prefix) Mask the incoming IP address Compare the result with the entry’s IP address part Do they match or not? 44 Mask Operations Simple for Computers Computers have circuitry to AND to numbers Computers have circuitry to COMPARE two numbers to see if they are equal or not Very computer-friendly, so used on routers Difficult for people, unfortunately 45 IPv6 Current version of the Internet Protocol is Version 4 (v4) The next version will be Version 6 (v6) Earlier versions were not implemented No v5 was implemented Informally called IPng (Next Generation) IPv6 is Already Defined Continuing improvements in v4 may delay its adoption 46 IPv6 IPv6 will raise the size of the internet address from 32 bits to 128 bits Now running out of IP addresses Will solve the problem But current work-arounds are delaying the need for IPv6 addresses 47 IPv6 Improved Security But, through IPsec, v4 is being upgraded in security as well Improved Quality of Service (QoS) But under IETF Differentiated Services (diffserv) initiative, IPv4 is being upgraded in this area as well 48 IPv6 Extension Headers IPv4 Headers are complex IPv6 basic header is simple Extension headers for options Basic Header Extension Header 1 Extension Header 2 49 IPv6 Extension Headers Basic header has 8-bit Next Header field Identifies first extension header or says that payload follows NH Basic Header Extension Header 1 Extension Header 2 50 IPv6 Extension Headers Each extension header also has 8-bit Next Header field Identifies next extension header or says that payload follows Basic Header NH Extension Header 1 Extension Header 2 51 IPv6 Extension Headers Next header field is an elegant way to allow options Easy to add new extension headers for new needs Basic Header NH Extension Header 1 Extension Header 2 52 IP Fragmentation MTU Maximum Transmission Unit (MTU) Largest IP packet a network will accept Arriving IP packet may be larger MTU IP Packet 54 IP Fragmentation If IP packet is longer than the MTU, the router breaks packet into smaller packets Called IP fragments Fragments are still IP packets Earlier in Mod A, fragmentation in TCP MTU IP Packet 3 Fragmentation 2 1 IP Packets 55 IP Fragmentation What is Fragmented? Only the original data field New headers are created MTU IP Packet 3 Fragmentation 2 1 IP Packets 56 IP Fragmentation What Does the Fragmentation? The router Not the subnet MTU IP Packet 3 Fragmentation 2 1 IP Packets 57 Multiple Fragmentations Original packet may be fragmented multiple times along its route Source Host Internet Process Destination Host Internet Process Fragmentation 58 Defragmentation Internet layer process on destination host defragments, restoring the original packet IP Defragmentation only occurs once Source Host Internet Process Destination Host Internet Process Defragmentation 59 Fragmentation and IP Fields More Fragments field (1 bit) 1 if more fragments 0 if not Source host internet process sets to 0 If router fragments, sets More Fragments field in last fragment to 0 In all other fragments, sets to 1 0 Original IP Packet 0 1 1 Fragments 60 Identification Field IP packet has a 16-bit Identification field Version (4) Hdr Len (4) TOS (8) Indication (16 bits) Time to Live (8) Total Length in bytes (16) Flags (3) Protocol (8) Fragment Offset (13) Header Checksum (16) Source IP Address Destination IP Address Options (if any) PAD Data Field 61 Identification Field IP packet has a 16-bit Identification field Source host internet process places a number in the Identification field Different for each IP packet Version (4) Hdr Len (4) TOS (8) Indication (16 bits) Time to Live (8) Protocol (8) Total Length in bytes (16) Flags (3) Fragment Offset (13) Header Checksum (16) 62 Identification Field IP packet has a 16-bit Identification field If router fragments, places the original Identification field value in the Identification field of each fragment 47 Original IP Packet 47 47 47 Fragments 63 Identification Field Purpose Allows receiving host’s internet layer process know what fragments belong to each original packet Works even if an IP packet is fragmented several times 47 Original IP Packet 47 47 47 Fragments 64 Fragment Offset Field Fragment offset field (13 bits) is used to reorder fragments with the same Identification field Contains the data field’s starting point (in octets) from the start of the data field in the original IP packet Version (4) Hdr Len (4) TOS (8) Indication (16 bits) Total Length in bytes (16) Flags (3) Fragment Offset (13) 65 Fragment Offset Field Receiving host’s internet layer process assembles fragments in order of increasing fragment offset field value This works even if fragments arrive out of order! Works even if fragmentation occurs multiple times Fragment Offset Field 730 212 0 66 Fragmentation: Recap IP Fragmentation Data field of a large IP packet is fragmented The fragments are sent into a series of smaller IP packets fitting a network’s MTU Fragmentation is done by routers Fragmentation may be done multiple times along the route 67 Defragmentation: Recap IP Defragmentation Defragmentation (reassembly) is done once, by destination host’s internet layer process 68 Defragmentation: Recap All IP packets resulting from the fragmentation of the same original IP packet have the same Identification field value Destination host internet process orders all IP packets from the same original on the basis of their Fragment Offset field values More Fragments field tells whether there are no more fragments coming 69 Dynamic Routing Protocols Why Dynamic Routing Protocols? Each router acts independently, based on information in its router forwarding table Dynamic routing protocols allow routers to share information in their router forwarding tables Router Forwarding Table Data 70 Routing Information Protocol (RIP) Routing Information protocol (RIP) is the simplest dynamic routing protocol Each router broadcasts its entire routing table frequently Broadcasting makes RIP unsuitable for large networks Routing Table 71 Routing Information Protocol (RIP) RIP is the simplest dynamic routing protocol Broadcasts go to hosts as well as to routers RIP interrupts hosts frequently, slowing them down; Unsuitable for large networks Routing Table 72 Routing Information Protocol (RIP) RIP is Limited RIP routing table has a field to indicate the number of router hops to a distant host The RIP maximum is 15 hops Farther networks are ignored Unsuitable for very large networks Hop Hop 73 Routing Information Protocol Is a Distance Vector Protocol “New York” starts, announces itself with a RIP broadcast “Chicago” learns that New York is one hop away Passes this on in its broadcasts New York Chicago NY is 1 Dallas 1 hop 74 Routing Information Protocol Learning Routing Information “Dallas” receives broadcast from Chicago Already knows “Chicago” is one hop from Dallas So New York must be two hops from Dallas Places this information in its routing table New York Chicago 1 hop NY is 1 1 hop Dallas NY is 2 75 Routing Information Protocol Slow Convergence Convergence is getting correct routing tables after a failure in a router or link RIP converges very slowly May take minutes During that time, many packets may be lost 76 Routing Information Protocol Encapsulation Carried in data field of UDP datagram Port number is 520 UDP is unreliable, so RIP messages do not always get through A single lost RIP message does little or no harm UDP Data Field RIP Message UDP Header 77 OSPF Routing Protocol Link State Protocol Link is connection between two routers OSPF routing table stores more information about each link than just its hop count: cost, reliability, etc. Allows OSPF routers to optimize routing based on these variables Link 78 OSPF Routers Network is Divided into Areas Each area has a designated router Area Designated Router 79 OSPF Routers When a router senses a link state change Sends this information to the designated router Area Designated Router Notice of Link State Change 80 OSPF Routers Designed Router Notifies all Routers Within its area Area Designated Router Notice of Link State Change 81 OSPF Routers Efficient Only routers are informed (not hosts) Usually only updates are transmitted, not whole tables Area Designated Router Notice of Link State Change 82 OSPF Fast Convergence When a failure occurs, a router transmits the notice to the designated router Designated router send the information back out to other routers immediately 83 OSPF Encapsulation Carried in data field of IP packet Protocol value is 89 IP is unreliable, so OSPF messages do not always get through A single lost OSPF message does little or no harm IP Data Field OSPF Message IP Header 84 Selecting RIP or OSPF Within a network you control, it is your choice Your network is an autonomous system Select RIP or OSPF based on your needs Interior routing protocol 85 Selecting RIP or OSPF RIP is fine for small networks Easy to implementing 15 hops is not a problem Broadcasting, interrupting hosts are not too important 86 Selecting RIP or OSPF OSPF is Scalable Works with networks of any size Management complexities are worth the cost in large networks 87 Border Gateway Protocol (BGP) To connect different autonomous systems Must standardized cross-system routing information exchanges BGP is most popular today Gateway is the old name for router Exterior routing protocol Autonomous System BGP Autonomous System 88 Border Gateway Protocol (BGP) Distance vector approach Number of hops to a distant system is stored in the router forwarding table Normally only sends updates Autonomous System BGP Autonomous System 89 Border Gateway Protocol (BGP) Encapsulation BGP uses TCP for delivery Reliable TCP is only for one-to-one connections If have several external routers, must establish a TCP and BGP connection to each Autonomous System BGP Autonomous System 90 Address Resolution Protocol (ARP) Internet and Data Link Layer Addresses Each host and router on a subnet needs a data link layer address to specify its address on the subnet This address appears in the data link layer frame sent on a subnet For instance, 48-bit 802.3 MAC layer frame addresses for LANs Subnet DA DL Frame for Subnet 92 Addresses Each host and router also needs an IP address at the internet layer to designate its position in the overall Internet Subnet 128.171.17.13 Subnet Subnet 93 Internet and Data Link Addresses Serve Different Purposes IP address To guide delivery to destination host across the Internet (across multiple networks) Subnet Address To guide delivery between two hosts, two routers, and a host and router within a single subnet Same LAN, Frame Relay network, etc. 94 Analogy In company, each person has a company-wide ID number (like IP address) In company, person also has a local office number in a building Paychecks are made out to ID numbers For delivery, also need to know office number 95 Address Resolution Problem Router knows that destination host is on its subnet based on the IP address of an arriving packet Does not know the destination host’s subnet address, so cannot deliver the packet across the subnet Destination Host 128.171.17.13 Subnet subnet address? 96 Address Resolution Protocol (ARP) Router creates an ARP Request message to be sent to all hosts on the subnet. Address resolution protocol message asks “Who has IP address 128.171.17.13?” Passes ARP request to data link layer process for delivery Subnet ARP Request 97 Address Resolution Protocol (ARP) Data link process of router broadcasts the ARP Request message to all hosts on the subnet. On a LAN, MAC address of 48 ones tells all stations to pay attention to the frame Subnet ARP Request 98 Address Resolution Protocol (ARP) Host with IP address 128.171.17.13 responds Internet process creates an ARP response message Contains the destination host’s subnet address (48bit MAC address on a LAN) ARP Response Subnet 99 Address Resolution Protocol (ARP) Router delivers the IP packet to the destination host Places the IP packet in the subnet frame Puts the destination host’s subnet address in the destination address field of the frame Deliver IP Packet within a subnet frame Subnet 100 Address Resolution Protocol ARP Requests and Responses are sent between the internet layer processes on the router and the destination host Router Internet Process ARP Request ARP Response Destination Host Internet Process 101 Address Resolution Protocol However, the data link processes deliver these ARP packets Router broadcasts the ARP Request Destination host sends ARP response to the subnet source address found in the broadcast frame Router Destination Host Internet Process Data Link Process Internet Process Data Link Process Broadcast ARP Request Direct ARP Response 102 IP Address Classes How large is the network part in an IP address? Today we use network masks to tell Originally, IP had address classes with fixed numbers of bits in the network part Class A: 8 bits (24 bits in local part) Class B: 16 bits (16 bits in local part) Class C: 24 bits (8 bits in local part) 103 Class A IP Address IP address begins with 0 7 remaining bits in network part 24 bits in local part Only 128 possible Class A networks Over 16 million hosts per Class A network! All Class A network parts are assigned or reserved 104 Class B IP Address IP address begins with 10 (1st zero in 2nd position) 14 remaining bits in network part Over 16,000 possible Class B networks 16 bits in local part Over 65,000 possible hosts A good trade-off between number of networks and hosts per network Most have been assigned 105 Class C IP Address IP address begins with 110 (1st zero in 3d position) 21 more bits in network part 8 bits in local part Over 2 million possible Class C networks! Only 256 possible hosts per Class C network! Unpopular, because large firms must have several 106 Class D IP Address IP address begins with 1110 Used for multicasting, not defining networks Sending message to group of hosts Not just to one (unicasting) Not ALL hosts (broadcasting) Say to send a videoconference stream to a group of receivers 107 Class D IP Address All hosts in a multicast group listen for this multicast address as well as for their specific own host IP address In Group Accept Packets to Multicast Address Not in Group Reject In Group Accept 108 Multicasting Traditionally, unicasting and broadcasting Unicasting: send to one host Broadcasting: send to ALL hosts Multicasting Send to SOME hosts 500 stations viewing a video course 50 computers getting software upgrades Standards exist and are improving Not widely implemented yet 109 Why Multicasting Do not need to send an IP packet to each host Routers split when needed Reduces traffic Multiple Packets Single Packet 110 Mobile IP IP addresses are associated with fixed physical locations Mobile IP is needed for notebooks, other portable equipment Computer still gets a permanent IP address When travels, also gets a temporary IP address at its location This is linked dynamically to its permanent IP address 111 MultiProtocol Label Switching (MPLS) When a packet arrives, routers must consider all possible routes, then select the best one This is extremely expensive MPLS adds a tag to each packet An MPLS router examines the tag and passes the packet back out This is fast and inexpensive 112 MultiProtocol Label Switching (MPLS) This is similar to virtual circuits in ATM In addition, packets with similar priority or other characteristics can be given the same label and so be handled in the same way. 113 MultiProtocol Label Switching (MPLS) MPLS Table for Q Label Port NHR 1 R 110 … … … Tagged Packet 110 Q Routing Decision R S 114