* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download network
Net neutrality law wikipedia , lookup
IEEE 802.1aq wikipedia , lookup
Distributed firewall wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Asynchronous Transfer Mode wikipedia , lookup
Piggybacking (Internet access) wikipedia , lookup
TCP congestion control wikipedia , lookup
Deep packet inspection wikipedia , lookup
Computer network wikipedia , lookup
Network tap wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Internet protocol suite wikipedia , lookup
List of wireless community networks by region wikipedia , lookup
Airborne Networking wikipedia , lookup
Packet switching wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Part 1: Networking Review Goals: review key topics from intro networks course equalize backgrounds identify remedial work ease into course Overview: overview error control flow control congestion control routing LANs addressing synthesis: “a day in the life” control timescales 1-1 What’s a network: “nuts and bolts” view network edge: millions of end- system devices: pc’s workstations, servers PDA’s, phones, toasters running network apps network core: routers, switches forwarding data router server workstation mobile local net regional net packets: packet switching calls: circuit switching communication links fiber, copper, radio, … company net 1-2 What’s a network protocol? Means (algorithm) for exchanging information “understanding” between two (or more) entitites about “means” of exchanging information shared (agreed upon, standardized) set of rules for communication “how” you send/receive stuff (actions) Format of data exchanged 1-3 What’s a protocol? a human protocol and a computer network protocol: Hi TCP connection req. Hi TCP connection reply. Got the time? Get http://gaia.cs.umass.edu/index.htm 2:00 <file> time 1-4 What’s a protocol? human protocols: “what’s the time?” “I have a question” introductions … specific msgs sent … specific actions taken when msgs received, or other events network protocols: machines rather than humans all communication activity in Internet governed by protocols protocols define format, order of msgs sent and received among network entities, and actions taken on msg transmission, receipt 1-5 A closer look at network structure: network edge: applications and hosts network core: routers network of networks access networks, physical media: communication links 1-6 The network edge: end systems (hosts): run application programs e.g., WWW, email at “edge of network” client/server model client host requests, receives service from server e.g., WWW client (browser)/ server; email client/server peer-peer model: host interaction symmetric e.g.: Gnutella, KaZaA 1-7 Network edge: connection-oriented service Goal: data transfer between end sys. handshaking: setup (prepare for) data transfer ahead of time Hello, hello back human protocol set up “state” in two communicating hosts TCP - Transmission Control Protocol Internet’s connectionoriented service TCP service [RFC 793] reliable, in-order byte- stream data transfer loss: acknowledgements and retransmissions flow control: sender won’t overwhelm receiver congestion control: senders “slow down sending rate” when network congested 1-8 Network edge: connectionless service Goal: data transfer between end systems same as before! UDP - User Datagram Protocol [RFC 768]: Internet’s connectionless service unreliable data transfer no flow control no congestion control App’s using TCP: HTTP (WWW), FTP (file transfer), Telnet (remote login), SMTP (email) App’s using UDP: streaming media, teleconferencing, Internet telephony 1-9 The Network Core mesh of interconnected routers the fundamental question: how is data transferred through net? circuit switching: dedicated circuit per call: telephone net packet-switching: data sent thru net in discrete “chunks” 1-10 Network Core: Circuit Switching End-end resources reserved for “call” link bandwidth, switch capacity dedicated resources: no sharing circuit-like (guaranteed) performance call setup required 1-11 Network Core: Packet Switching each end-end data stream divided into packets user A, B packets share network resources each packet uses full link bandwidth resources used as needed, Bandwidth division into “pieces” Dedicated allocation Resource reservation resource contention: aggregate resource demand can exceed amount available congestion: packets queue, wait for link use store and forward: packets move one hop at a time transmit over link wait turn at next link 1-12 Network core: routing Goal: move data among routers from source to dest. datagram packet network: circuit-switched network: destination address determines call allocated time slots next hop of bandwidth at each routes may change during session link analogy: driving, asking directions fixed path (for call) No notion of call state virtual circuit network: packet carries tag, tag determines next hop fixed path (for call) determined at call setup time routers maintain little per-call state; resources not allocated determined at call setup switches maintain lots of per call state (what?): resource allocation 1-13 Packet switching vs circuit switching: why? “reliability” – no congestion, in order data in circuit-switching packet switching: better bandwidth use state, resources: packet switching has less state good: less control-plane processing resources along the way More dataplane (address lookup) processing failure modes (routers/links down): packet switching routing reconfigures sub-second timescale; circuit-switching: more complex recovery – need to involve all (downstream) switches on path 1-14 Access networks and physical media Q: How to connection end systems to edge router? residential access nets institutional access networks (school, company) mobile access networks Keep in mind: bandwidth (bits per second) of access network? shared or dedicated? 1-15 Example access net: home network Typical home network components: ADSL or cable modem router/firewall Ethernet wireless access point to/from cable headend cable modem router/ firewall Ethernet (switched) wireless laptops wireless access point 1-16 So we have seen “pieces” of network edge, core, links protocols How do we talk about “structure” of network and its architecture? layered architecture structure allows identification, relationship of complex system’s pieces: layered reference model for discussion layer N builds on services provided by layer N-1 Layer N provides service to layer N+1 physical topology, interconnection 1-17 Internet protocol stack application: supporting network applications ftp, smtp, http application transport: host-host data transfer tcp, udp transport network: routing of datagrams from network source to destination ip, routing protocols link: data transfer between neighboring network elements link physical ppp, ethernet physical: bits “on the wire” 1-18 Layering: logical communication E.g.: transport take data from app add addressing, reliability check info to form “datagram” send datagram to peer wait for peer to ack receipt analogy: post office data application transport transport network link physical application transport network link physical ack data network link physical application transport network link physical data application transport transport network link physical 1-19 Layering: physical communication data application transport network link physical application transport network link physical network link physical application transport network link physical data application transport network link physical 1-20 Internet structure: network of networks roughly hierarchical at center: “tier-1” ISPs (e.g., UUNet, BBN/Genuity, Sprint, AT&T), national/international coverage treat each other as equals Tier-1 providers interconnect (peer) privately Tier 1 ISP Tier 1 ISP NAP Tier-1 providers also interconnect at public network access points (NAPs) Tier 1 ISP 1-21 Internet structure: network of networks “Tier-2” ISPs: smaller (often regional) ISPs Connect to one or more tier-1 ISPs, possibly other tier-2 ISPs Tier-2 ISP pays tier-1 ISP for connectivity to rest of Internet tier-2 ISP is customer of tier-1 provider Tier-2 ISP Tier-2 ISP Tier 1 ISP Tier 1 ISP Tier-2 ISP NAP Tier 1 ISP Tier-2 ISPs also peer privately with each other, interconnect at NAP Tier-2 ISP Tier-2 ISP 1-22 Internet structure: network of networks “Tier-3” ISPs and local ISPs last hop (“access”) network (closest to end systems) local ISP Local and tier3 ISPs are customers of higher tier ISPs connecting them to rest of Internet Tier 3 local local ISP Tier-2 ISP ISP ISP ISP Tier-2 ISP Tier 1 ISP Tier 1 ISP Tier-2 ISP local local ISP ISP local NAP Tier 1 ISP Tier-2 ISP local ISP Tier-2 ISP local ISP 1-23 Internet structure: network of networks a packet passes through many networks! local ISP Tier 3 local local ISP Tier-2 ISP ISP ISP ISP Tier-2 ISP Tier 1 ISP Try a traceroute! Tier 1 ISP Tier-2 ISP local local ISP ISP local NAP Tier 1 ISP Tier-2 ISP local ISP Tier-2 ISP local ISP 1-24 Part 0: Networking Review Goals: review key topics from intro networks course equalize backgrounds identify remedial work ease into course Overview: overview error control flow control congestion control routing LANs addressing synthesis: “a day in the life” control timescales 1-25 Error control reliable point-point communication A generic problem: application-to-application, over path, over link what’s the error model: bits flipped in packet? packets “lost? packets delayed or reordered? 1-26 Bit level error detection EDC= Error Detection and Correction bits (redundancy) D = Data protected by error checking, may include header fields • Error detection not 100% reliable! • protocol may miss some errors, but rarely • larger EDC field yields better detection and correction 1-27 Parity Checking Single Bit Parity: Detect single bit errors Two Dimensional Bit Parity: Detect and correct single bit errors Much more powerful error detection/correction schemes: Cyclic Redundancy Check (CRC) 0 Simple form of forward error correction (FEC) 0 1-28 Internet checksum Goal: detect “errors” (e.g., flipped bits) in transmitted segment (note: used at transport layer only) Sender: treat segment contents as sequence of 16-bit integers checksum: addition (1’s complement sum) of segment contents sender puts checksum value into UDP checksum field Receiver: compute checksum of received segment check if computed checksum equals checksum field value: NO - error detected YES - no error detected. But maybe errors nonetheless? 1-29 Recovering from lost packets Why are packets lost: at end system, “within” network Limited storage, discarded in congestion outages: eventually reroute around failure (~sec world’s recovery ties hopefully) worst acronym dropped at end system e.g., on NIC ARQ: automatic request repeat sender puts sequence numbers on packets (why) receiver positively or negatively acknowledges correct receipt of packet sender starts (logical) timer for each packet, timeout and retransmits 1-30 Reference: section 3.4 in K&R rdt3.0: channels with errors and loss Assumption: underlying channel can also lose packets (data or ACKs) checksum, seq. #, ACKs, retransmissions will be of help, but not enough Why seq #s detect reordering ACK, NAKing Detect missing packet Duplicate detection due to retransmissions Approach: sender waits “reasonable” amount of time for ACK retransmits if no ACK received in this time if pkt (or ACK) just delayed (not lost): retransmission will be duplicate, but use of 0,1 seq. #’s already handles this receiver must specify seq # of pkt being ACKed requires countdown timer 1-31 rdt3.0 sender rdt_send(data) sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) start_timer rdt_rcv(rcvpkt) L rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,1) rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt,0) ) timeout udt_send(sndpkt) start_timer rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0) stop_timer stop_timer timeout udt_send(sndpkt) start_timer L Wait for ACK0 Wait for call 0from above L rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt,1) ) Wait for ACK1 Wait for call 1 from above rdt_send(data) rdt_rcv(rcvpkt) L sndpkt = make_pkt(1, data, checksum) udt_send(sndpkt) start_timer FSM specification of sender (details not important) 1-32 rdt3.0 in action 1-33 rdt3.0 in action 1-34 Part 0: Networking Review Goals: review key topics from intro networks course equalize backgrounds identify remedial work ease into course Overview: overview error control flow control congestion control routing LANs addressing synthesis: “a day in the life” control timescales 1-35 Flow Control (in TCP) flow control sender won’t overrun receiver’s buffers by transmitting too much, too fast receiver: explicitly informs sender of (dynamically changing) amount of free buffer space RcvWindow field in TCP segment sender: keeps the amount of transmitted, unACKed data less than most recently received RcvWindow RcvBuffer = size or TCP Receive Buffer receiver buffering RcvWindow = amount of spare room in Buffer 1-36 Principles of Congestion Control Congestion: informally: “too many sources sending too much data too fast for network to handle” different from flow control! manifestations: lost packets (buffer overflow at routers) long delays (queueing in router buffers) a top-10 problem! 1-37 Causes/costs of congestion: scenario 1 Host A two senders, two receivers one router, infinite buffers no retransmission Host B lout lin : original data unlimited shared output link buffers large delays when congested maximum achievable throughput 1-38 Causes/costs of congestion: scenario 2 one router, finite buffers sender retransmission of lost packet Host A Host B lin : original data l'in : original data, plus retransmitted data lout finite shared output link buffers 1-39 Causes/costs of congestion: scenario 2 = l (goodput) out in “perfect” retransmission only when loss: always: l l = lout in retransmission of delayed (not lost) packet makes l in l (than perfect case) for same out larger “costs” of congestion: more work (retrans) for given “goodput” unneeded retransmissions: link carries multiple copies of pkt 1-40 Causes/costs of congestion: scenario 3 four senders Q: what happens as l in and l increase ? multihop paths timeout/retransmit in Host A lin : original data lout l'in : original data, plus retransmitted data finite shared output link buffers Host B 1-41 Causes/costs of congestion: scenario 3 H o s t A l o u t H o s t B Another “cost” of congestion: when packet dropped, any “upstream transmission capacity used for that packet was wasted! 1-42 Approaches towards congestion control Two broad approaches towards congestion control: End-end congestion control: no explicit feedback from network congestion inferred from end-system observed loss, delay approach taken by TCP Network-assisted congestion control: routers provide feedback to end systems single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM) explicit rate sender should send at 1-43 Case study: ATM ABR congestion control ABR: available bit rate: “elastic service” RM (resource management) cells: if sender’s path sent by sender, interspersed “underloaded”: sender should use available bandwidth if sender’s path congested: sender throttled to minimum guaranteed rate with data cells bits in RM cell set by switches (“network-assisted”) NI bit: no increase in rate (mild congestion) CI bit: congestion indication RM cells returned to sender by receiver, with bits intact 1-44 Case study: ATM ABR congestion control two-byte ER (explicit rate) field in RM cell congested switch may lower ER value in cell sender’ send rate thus minimum supportable rate on path EFCI bit in data cells: set to 1 in congested switch if data cell preceding RM cell has EFCI set, sender sets CI bit in returned RM cell 1-45 TCP Congestion Control end-end control (no network assistance) transmission rate limited by congestion window size, Congwin, over segments: Congwin 1-46 TCP congestion control: “probing” for usable bandwidth: ideally: transmit as fast as possible (Congwin as large as possible) without loss increase Congwin until loss (congestion) loss: decrease Congwin, then begin probing (increasing) again two “phases” slow start congestion avoidance important variables: Congwin threshold: defines threshold between two slow start phase, congestion control phase 1-47 TCP Slowstart Host A initialize: Congwin = 1 for (each segment ACKed) Congwin++ until (loss event OR CongWin > threshold) RTT Slowstart algorithm Host B exponential increase (per RTT) in window size (not so slow!) loss event: timeout (Tahoe TCP) and/or or three duplicate ACKs (Reno TCP) time 1-48 TCP Congestion Avoidance: Tahoe TCP Tahoe Congestion avoidance /* slowstart is over */ /* Congwin > threshold */ Until (loss event) { every w segments ACKed: Congwin++ } threshold = Congwin/2 Congwin = 1 perform slowstart Numerous improvements: TCP Reno, SACK 1-49 Part 0: Networking Review Goals: review key topics from intro networks course equalize backgrounds identify remedial work ease into course Overview: overview error control flow control congestion control routing (and network layer services) LANs addressing synthesis: “a day in the life” control timescales 1-50 Network layer functions transport packet from application transport network data link physical sending to receiving hosts network layer protocols in every host, router three important functions: path determination: route taken by packets from source we won’t to dest. Routing algorithms consider this switching: move packets from router’s input to appropriate router output call setup: some network architectures require router call setup along path before data flows network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical our focus in 653 later 1-51 Network service model Q: What service model for “channel” transporting packets from sender to receiver? guaranteed bandwidth? preservation of inter-packet timing (no jitter)? loss-free delivery? in-order delivery? congestion feedback to sender? CRUCIAL question! The most important abstraction provided by network layer: ? ? ? virtual circuit or datagram? 1-52 Virtual circuits “source-to-dest path behaves much like telephone circuit” performance-wise network actions along source-to-dest path call setup, teardown for each call before data can flow each packet carries VC identifier (not destination host ID) every router on source-dest path maintains “state” for each passing connection transport-layer connection only involved two end systems link, router resources (bandwidth, buffers) may be allocated to VC to get circuit-like perf. 1-53 Virtual circuits: signaling protocols used to setup, maintain teardown VC used in ATM, frame-relay, X.25 not used in today’s Internet application transport 5. Data flow begins network 4. Call connected data link 1. Initiate call physical 6. Receive data application 3. Accept call 2. incoming call transport network data link physical 1-54 Datagram networks: the Internet model no call setup at network layer routers: no state about end-to-end connections no network-level concept of “connection” packets typically routed using destination host ID packets between same source-dest pair may take different paths application transport network data link 1. Send data physical application transport network 2. Receive data data link physical 1-55 Datagram or VC network: why? Internet data exchange among ATM evolved from telephony computers human conversation: “elastic” service, no strict strict timing, reliability timing req. requirements “smart” end systems need for guaranteed (computers) service can adapt, perform “dumb” end systems control, error recovery telephones simple inside network, complexity inside complexity at “edge” network many link types different characteristics uniform service difficult 1-56 Routing Routing protocol Goal: determine “good” path (sequence of routers) thru network from source to dest. Graph abstraction for routing algorithms: graph nodes are routers graph edges are physical links link cost: delay, $ cost, or congestion level 5 2 A B 2 1 D 3 C 3 1 5 F 1 E 2 “good” path: typically means minimum cost path other def’s possible 1-57 Routing: only two approaches used in practice Global: all routers have complete topology, link cost info “link state” algorithms: use Dijkstra’s algorithm to find shortest path from given router to all destinations Decentralized: router knows physically-connected neighbors, link costs to neighbors iterative process of computation, exchange of info with neighbors “distance vector” algorithms a ‘self-stabilizing algorithm’ (we’ll see these later) 1-58 Distance Vector Routing Algorithm iterative: continues until no nodes exchange info. self-terminating: no “signal” to stop asynchronous: nodes need not exchange info/iterate in lock step! distributed: each node communicates only with directly-attached neighbors Each node: wait for (change in local link cost of msg from neighbor) recompute distance table if least cost path to any dest has changed, notify neighbors 1-59 Hierarchical Routing Our routing review thus far - idealization all routers identical network “flat” … not true in practice scale: with 200 million destinations: can’t store all dest’s in routing tables! routing table exchange would swamp links! administrative autonomy internet = network of networks each network admin may want to control routing in its own network 1-60 Hierarchical Routing aggregate routers into regions, “autonomous systems” (AS) routers in same AS run same routing protocol “intra-AS” routing protocol routers in different AS can run different intraAS routing protocol gateway routers special routers in AS run intra-AS routing protocol with all other routers in AS also responsible for routing to destinations outside AS run inter-AS routing protocol with other gateway routers 1-61 Intra-AS and Inter-AS routing C.b a C Gateways: B.a A.a b A.c d A a b c a c B b •perform inter-AS routing amongst themselves •perform intra-AS routers with other routers in their AS network layer inter-AS, intra-AS routing in gateway A.c link layer physical layer 1-62 Intra-AS and Inter-AS routing C.b a Host h1 C b A.a a Inter-AS Internet: BGP routing between B.a A and B Host h2 c A.c a b B d c b A Intra-AS routing within AS A Intra-AS routing within AS B Internet: OSPF, IS-IS, RIP 1-63 Addressing What’s an address? identifier that differentiates between me and someone else, and also helps route data to/from me Real world examples of addressing? mailing address office #, floor, etc different “levels of addressing” Phone# 1-64 Addressing: network layer 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 interface, not host, router 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.9 223.1.3.27 223.1.2.2 223.1.3.2 223.1.3.1 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1 1-65 IP Addressing IP address: network part (high order bits) host part (low order bits) What’s a network ? (from IP address perspective) device interfaces with same network part of IP address can physically reach each other without intervening router 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.9 223.1.3.27 223.1.2.2 LAN 223.1.3.1 223.1.3.2 network consisting of 3 IP networks (for IP addresses starting with 223, first 24 bits are network address) 1-66 IP addresses: how to get one? Q: How does host get IP address? hard-coded by system admin in a file Wintel: control-panel->network->configuration->tcp/ip->properties UNIX: /etc/rc.config DHCP: Dynamic Host Configuration Protocol: dynamically get address: “plug-and-play” host broadcasts “DHCP discover” msg DHCP server responds with “DHCP offer” msg host requests IP address: “DHCP request” msg DHCP server sends address: “DHCP ack” msg 1-67 Part 0: Networking Review Goals: review key topics from intro networks course equalize backgrounds identify remedial work ease into course Overview: overview error control flow control congestion control routing LANs addressing (cont.) synthesis: “a day in the life” control timescales 1-68 Link Layer: setting the context 1-69 Link Layer: setting the context two physically connected devices: host-router, router-router, host-host unit of data: frame M Ht M Hn Ht M Hl Hn Ht M application transport network link physical data link protocol phys. link network link physical Hl Hn Ht M frame adapter card 1-70 Link Layer Services Framing, link access: encapsulate datagram into frame, adding header, trailer implement channel access if shared medium (e.g., Ethernet) ‘physical addresses’ used in frame headers to identify source, dest • different from IP address! reliable delivery between two physically connected devices flow control error detection/congestion 1-71 LAN Addresses and ARP 32-bit IP address: network-layer address used to get datagram to destination network (recall IP network definition) LAN (or MAC or physical) address: used to get frame from one interface to another physically-connected interface (same network) 48 bit MAC address (for most LANs) burned in the adapter ROM WHY MAC and Internet addresses separate? IP addresses depend on network that you’re on MAC address in hardware makes it faster 1-72 LAN Addresses Each adapter on LAN has unique LAN address LAN (or MAC or physical) address: used to get datagram from one interface to another physicallyconnected interface (same network) 48 bit MAC address (for most LANs) burned in the adapter ROM 1-73 LAN Address (more) MAC address allocation administered by IEEE manufacturer buys portion of MAC address space (to assure uniqueness) Analogy: (a) MAC address: like Social Security Number (b) IP address: like postal address MAC flat address => portability can move LAN card from one LAN to another IP hierarchical address NOT portable depends on network to which one attaches 1-74 From IP to MAC addresses Starting at A, given IP datagram addressed to B: A 223.1.1.1 223.1.2.1 look up net. address of B, find B on same net. as A link layer send datagram to B inside link-layer frame frame source, dest address B’s MAC A’s MAC addr addr 223.1.1.2 223.1.1.4 223.1.2.9 B 223.1.1.3 datagram source, dest address A’s IP addr B’s IP addr 223.1.3.27 223.1.3.1 223.1.2.2 E 223.1.3.2 IP payload datagram frame 1-75 ARP protocol A knows B's IP address, wants to learn physical address of B A broadcasts ARP query pkt, containing B's IP address all machines on LAN receive ARP query B receives ARP packet, replies to A with its (B's) physical layer address A caches (saves) IP-to-physical address pairs until information becomes old (times out) soft state: information that times out (goes away) unless refreshed 1-76 Part 0: Networking Review Goals: review key topics from intro networks course equalize backgrounds identify remedial work ease into course Overview: overview error control flow control congestion control routing LANs addressing (cont.) synthesis: “a day in the life” control timescales 1-77 Synthesis: which protocols involved? www browser downloads page 1-78 Protocols involved in http GET User types ina URL, what happens? DNS: translate hostname to IP address Via DHCP, source has IP address of DNS server (suppose DNS server is on same network segment) Create DNS query, pass to UDP, create UDP segment containing DNS query, pass to IP on host Look in routing table (DHCP gave me default router), recognize that DNS server is on same network. Use ARP to determine MAC address of DNS server Ethernet used to send frame to DNS server on physically connected “wire” (network segment, ethernet “cable”) On DNS machine ethernet->IP->UDP. UDP looks at dest port #, sees it is DNS, passes DNS query to DNS application. (assume dns knows IP addresses of hostname in original URL - address found!) DNS server sends UDP reply back to orginating machine 1-79 Protocols involved in http GET So: browser now has IP address of GET destination server Need to establish TCP connection to server, TCP connection establishment sends SYN packet (will get an SYNACK back, eventuallly….) SYN packet down to network layer, with IP address of server. Since server destined “off my network”, SYN packet will need to go through router. Look in routing table, see that destined off network, need to send to “default gateway” (to get off my net) Use ARP to get MAC address of default gateway, create Ethernet frame with gateway MAC address, containing IP packet containing TCP segment, containing SYN It is IMPORTANT to realize that while the Ethernet frame containing the IP datagram that contains the TCP SYN has as its destination address the MAC address of the router, the IP datagram (still) has as its destination address the IP address of the remote www server 1-80 Protocols involved in http GET Router receives Ethernet frame (frame is addressed to router), looks at IP datagram and sees that IP datagram is not addressed to itself (IP datagram is addressed to server). So router knows that it must forward the IP datagram to the next hop router along the path to the eventual destination. Router checks routing tables (table values populated using intra, possibly inter-, domain routing protocols like OSPF, RIP, IS-IS, BGP (inter). Get IP address of next hop router. Router puts IP packets in Ethernet frame, Ethernet frame addressed to next hop router. MAC address of next hope router determined by ARP. Frame sent to next hop router. Network management shoehorn: arriving packets at interface cause SNMP MIB variable for # arriving IP datagrams to be incremented …. This forwarding continues until IP datagram contain TCP SYN eventually arrives at destination, gaia.cs.umass.edu (128.119.30.30) Up to IP, demultiplex from Ethernet to IP using Ethernet TYPE field to identify IP as upper layer protocol From IP to TCP using protocol field of IP datagram, SYN packet arrives at gaia TCP (FINALLY) 1-81 Protocols involved in http GET So …. SYN has arrived at gaia. Gaia sends back SYNACK to intial sender Gaia gets synack, ready to send data. HTTP GET message now sent to gaia.cs.umass.edu in a TCP segment, in IP datagram, Ethernet frame, along hops to gaia.cs.umass.edu GET arrives! REPLY formulated by http server … and sent 1-82