(BQ) Part 2 book Computer networking A top down approach has contents The link layer links, access networks, and LANs; wireless and mobile networks, multimedia networking, security in computer networks, network management.
CHAPTER The Link Layer: Links, Access Networks, and LANs In the previous chapter, we learned that the network layer provides a communication service between any two network hosts Between the two hosts, datagrams travel over a series of communication links, some wired and some wireless, starting at the source host, passing through a series of packet switches (switches and routers) and ending at the destination host As we continue down the protocol stack, from the network layer to the link layer, we naturally wonder how packets are sent across the individual links that make up the end-to-end communication path How are the network-layer datagrams encapsulated in the link-layer frames for transmission over a single link? Are different link-layer protocols used in the different links along the communication path? How are transmission conflicts in broadcast links resolved? Is there addressing at the link layer and, if so, how does the link-layer addressing operate with the network-layer addressing we learned about in Chapter 4? And what exactly is the difference between a switch and a router? We’ll answer these and other important questions in this chapter In discussing the link layer, we’ll see that there are two fundamentally different types of link-layer channels The first type are broadcast channels, which connect multiple hosts in wireless LANs, satellite networks, and hybrid fiber-coaxial cable (HFC) 433 434 CHAPTER • THE LINK LAYER: LINKS, ACCESS NETWORKS, AND LANS access networks Since many hosts are connected to the same broadcast communication channel, a so-called medium access protocol is needed to coordinate frame transmission In some cases, a central controller may be used to coordinate transmissions; in other cases, the hosts themselves coordinate transmissions The second type of link-layer channel is the point-to-point communication link, such as that often found between two routers connected by a long-distance link, or between a user’s office computer and the nearby Ethernet switch to which it is connected Coordinating access to a point-to-point link is simpler; the reference material on this book’s web site has a detailed discussion of the Point-to-Point Protocol (PPP), which is used in settings ranging from dial-up service over a telephone line to high-speed point-to-point frame transport over fiber-optic links We’ll explore several important link-layer concepts and technologies in this chapter We’ll dive deeper into error detection and correction, a topic we touched on briefly in Chapter We’ll consider multiple access networks and switched LANs, including Ethernet—by far the most prevalent wired LAN technology We’ll also look at virtual LANs, and data center networks Although WiFi, and more generally wireless LANs, are link-layer topics, we’ll postpone our study of these important topics until Chapter 5.1 Introduction to the Link Layer Let’s begin with some important terminology We’ll find it convenient in this chapter to refer to any device that runs a link-layer (i.e., layer 2) protocol as a node Nodes include hosts, routers, switches, and WiFi access points (discussed in Chapter 6) We will also refer to the communication channels that connect adjacent nodes along the communication path as links In order for a datagram to be transferred from source host to destination host, it must be moved over each of the individual links in the end-to-end path As an example, in the company network shown at the bottom of Figure 5.1, consider sending a datagram from one of the wireless hosts to one of the servers This datagram will actually pass through six links: a WiFi link between sending host and WiFi access point, an Ethernet link between the access point and a link-layer switch; a link between the link-layer switch and the router, a link between the two routers; an Ethernet link between the router and a link-layer switch; and finally an Ethernet link between the switch and the server Over a given link, a transmitting node encapsulates the datagram in a link-layer frame and transmits the frame into the link In order to gain further insight into the link layer and how it relates to the network layer, let’s consider a transportation analogy Consider a travel agent who is planning a trip for a tourist traveling from Princeton, New Jersey, to Lausanne, Switzerland The travel agent decides that it is most convenient for the tourist to take a limousine from Princeton to JFK airport, then a plane from JFK airport to Geneva’s airport, and finally a train from Geneva’s airport to Lausanne’s train station Once the travel agent makes the three reservations, it is the responsibility of the Princeton limousine company to get the tourist from Princeton to JFK; it is the responsibility of the airline company to 5.1 • INTRODUCTION TO THE LINK LAYER National or Global ISP Mobile Network Local or Regional ISP Home Network Enterprise Network Figure 5.1 Six link-layer hops between wireless host and server 435 436 CHAPTER • THE LINK LAYER: LINKS, ACCESS NETWORKS, AND LANS get the tourist from JFK to Geneva; and it is the responsibility of the Swiss train service to get the tourist from Geneva to Lausanne Each of the three segments of the trip is “direct” between two “adjacent” locations Note that the three transportation segments are managed by different companies and use entirely different transportation modes (limousine, plane, and train) Although the transportation modes are different, they each provide the basic service of moving passengers from one location to an adjacent location In this transportation analogy, the tourist is a datagram, each transportation segment is a link, the transportation mode is a link-layer protocol, and the travel agent is a routing protocol 5.1.1 The Services Provided by the Link Layer Although the basic service of any link layer is to move a datagram from one node to an adjacent node over a single communication link, the details of the provided service can vary from one link-layer protocol to the next Possible services that can be offered by a link-layer protocol include: • Framing Almost all link-layer protocols encapsulate each network-layer datagram within a link-layer frame before transmission over the link A frame consists of a data field, in which the network-layer datagram is inserted, and a number of header fields The structure of the frame is specified by the link-layer protocol We’ll see several different frame formats when we examine specific link-layer protocols in the second half of this chapter • Link access A medium access control (MAC) protocol specifies the rules by which a frame is transmitted onto the link For point-to-point links that have a single sender at one end of the link and a single receiver at the other end of the link, the MAC protocol is simple (or nonexistent)—the sender can send a frame whenever the link is idle The more interesting case is when multiple nodes share a single broadcast link—the so-called multiple access problem Here, the MAC protocol serves to coordinate the frame transmissions of the many nodes • Reliable delivery When a link-layer protocol provides reliable delivery service, it guarantees to move each network-layer datagram across the link without error Recall that certain transport-layer protocols (such as TCP) also provide a reliable delivery service Similar to a transport-layer reliable delivery service, a link-layer reliable delivery service can be achieved with acknowledgments and retransmissions (see Section 3.4) A link-layer reliable delivery service is often used for links that are prone to high error rates, such as a wireless link, with the goal of correcting an error locally—on the link where the error occurs—rather than forcing an end-toend retransmission of the data by a transport- or application-layer protocol However, link-layer reliable delivery can be considered an unnecessary overhead for low bit-error links, including fiber, coax, and many twisted-pair copper links For this reason, many wired link-layer protocols not provide a reliable delivery service 5.1 • INTRODUCTION TO THE LINK LAYER • Error detection and correction The link-layer hardware in a receiving node can incorrectly decide that a bit in a frame is zero when it was transmitted as a one, and vice versa Such bit errors are introduced by signal attenuation and electromagnetic noise Because there is no need to forward a datagram that has an error, many link-layer protocols provide a mechanism to detect such bit errors This is done by having the transmitting node include error-detection bits in the frame, and having the receiving node perform an error check Recall from Chapters and that the Internet’s transport layer and network layer also provide a limited form of error detection—the Internet checksum Error detection in the link layer is usually more sophisticated and is implemented in hardware Error correction is similar to error detection, except that a receiver not only detects when bit errors have occurred in the frame but also determines exactly where in the frame the errors have occurred (and then corrects these errors) 5.1.2 Where Is the Link Layer Implemented? Before diving into our detailed study of the link layer, let’s conclude this introduction by considering the question of where the link layer is implemented We’ll focus here on an end system, since we learned in Chapter that the link layer is implemented in a router’s line card Is a host’s link layer implemented in hardware or software? Is it implemented on a separate card or chip, and how does it interface with the rest of a host’s hardware and operating system components? Figure 5.2 shows a typical host architecture For the most part, the link layer is implemented in a network adapter, also sometimes known as a network interface card (NIC) At the heart of the network adapter is the link-layer controller, usually a single, special-purpose chip that implements many of the link-layer services (framing, link access, error detection, and so on) Thus, much of a link-layer controller’s functionality is implemented in hardware For example, Intel’s 8254x controller [Intel 2012] implements the Ethernet protocols we’ll study in Section 5.5; the Atheros AR5006 [Atheros 2012] controller implements the 802.11 WiFi protocols we’ll study in Chapter Until the late 1990s, most network adapters were physically separate cards (such as a PCMCIA card or a plug-in card fitting into a PC’s PCI card slot) but increasingly, network adapters are being integrated onto the host’s motherboard—a so-called LAN-on-motherboard configuration On the sending side, the controller takes a datagram that has been created and stored in host memory by the higher layers of the protocol stack, encapsulates the datagram in a link-layer frame (filling in the frame’s various fields), and then transmits the frame into the communication link, following the link-access protocol On the receiving side, a controller receives the entire frame, and extracts the network-layer datagram If the link layer performs error detection, then it is the sending controller that sets the error-detection bits in the frame header and it is the receiving controller that performs error detection 437 438 CHAPTER • THE LINK LAYER: LINKS, ACCESS NETWORKS, AND LANS Host Application Transport CPU Memory Network Link Host bus (e.g., PCI) Controller Network adapter Link Physical Physical transmission Figure 5.2 Network adapter: its relationship to other host components and to protocol stack functionality Figure 5.2 shows a network adapter attaching to a host’s bus (e.g., a PCI or PCI-X bus), where it looks much like any other I/O device to the other host components Figure 5.2 also shows that while most of the link layer is implemented in hardware, part of the link layer is implemented in software that runs on the host’s CPU The software components of the link layer implement higher-level linklayer functionality such as assembling link-layer addressing information and activating the controller hardware On the receiving side, link-layer software responds to controller interrupts (e.g., due to the receipt of one or more frames), handling error conditions and passing a datagram up to the network layer Thus, the link layer is a combination of hardware and software—the place in the protocol stack where software meets hardware Intel [2012] provides a readable overview (as well as a detailed description) of the 8254x controller from a software-programming point of view 5.2 Error-Detection and -Correction Techniques In the previous section, we noted that bit-level error detection and correction— detecting and correcting the corruption of bits in a link-layer frame sent from one node to another physically connected neighboring node—are two services often 5.2 • ERROR-DETECTION AND -CORRECTION TECHNIQUES provided by the link layer We saw in Chapter that error-detection and -correction services are also often offered at the transport layer as well In this section, we’ll examine a few of the simplest techniques that can be used to detect and, in some cases, correct such bit errors A full treatment of the theory and implementation of this topic is itself the topic of many textbooks (for example, [Schwartz 1980] or [Bertsekas 1991]), and our treatment here is necessarily brief Our goal here is to develop an intuitive feel for the capabilities that error-detection and -correction techniques provide, and to see how a few simple techniques work and are used in practice in the link layer Figure 5.3 illustrates the setting for our study At the sending node, data, D, to be protected against bit errors is augmented with error-detection and -correction bits (EDC) Typically, the data to be protected includes not only the datagram passed down from the network layer for transmission across the link, but also link-level addressing information, sequence numbers, and other fields in the link frame header Both D and EDC are sent to the receiving node in a link-level frame At the receiving node, a sequence of bits, DЈ and EDCЈ is received Note that DЈ and EDCЈ may differ from the original D and EDC as a result of in-transit bit flips The receiver’s challenge is to determine whether or not DЈ is the same as the original D, given that it has only received DЈ and EDCЈ The exact wording of the receiver’s decision in Figure 5.3 (we ask whether an error is detected, not whether an error has occurred!) is important Error-detection and -correction techniques Datagram Datagram Y HI all bits in D' OK ? N Detected error d data bits D EDC D' Bit error-prone link Figure 5.3 Error-detection and -correction scenario EDC' 439 440 CHAPTER • THE LINK LAYER: LINKS, ACCESS NETWORKS, AND LANS allow the receiver to sometimes, but not always, detect that bit errors have occurred Even with the use of error-detection bits there still may be undetected bit errors; that is, the receiver may be unaware that the received information contains bit errors As a consequence, the receiver might deliver a corrupted datagram to the network layer, or be unaware that the contents of a field in the frame’s header has been corrupted We thus want to choose an error-detection scheme that keeps the probability of such occurrences small Generally, more sophisticated error-detection and-correction techniques (that is, those that have a smaller probability of allowing undetected bit errors) incur a larger overhead—more computation is needed to compute and transmit a larger number of error-detection and -correction bits Let’s now examine three techniques for detecting errors in the transmitted data— parity checks (to illustrate the basic ideas behind error detection and correction), checksumming methods (which are more typically used in the transport layer), and cyclic redundancy checks (which are more typically used in the link layer in an adapter) 5.2.1 Parity Checks Perhaps the simplest form of error detection is the use of a single parity bit Suppose that the information to be sent, D in Figure 5.4, has d bits In an even parity scheme, the sender simply includes one additional bit and chooses its value such that the total number of 1s in the d + bits (the original information plus a parity bit) is even For odd parity schemes, the parity bit value is chosen such that there is an odd number of 1s Figure 5.4 illustrates an even parity scheme, with the single parity bit being stored in a separate field Receiver operation is also simple with a single parity bit The receiver need only count the number of 1s in the received d + bits If an odd number of 1valued bits are found with an even parity scheme, the receiver knows that at least one bit error has occurred More precisely, it knows that some odd number of bit errors have occurred But what happens if an even number of bit errors occur? You should convince yourself that this would result in an undetected error If the probability of bit errors is small and errors can be assumed to occur independently from one bit to the next, the probability of multiple bit errors in a packet would be extremely small Figure 5.4 d data bits Parity bit 0111000110101011 One-bit even parity 5.2 ERROR-DETECTION AND -CORRECTION TECHNIQUES • In this case, a single parity bit might suffice However, measurements have shown that, rather than occurring independently, errors are often clustered together in “bursts.” Under burst error conditions, the probability of undetected errors in a frame protected by single-bit parity can approach 50 percent [Spragins 1991] Clearly, a more robust error-detection scheme is needed (and, fortunately, is used in practice!) But before examining error-detection schemes that are used in practice, let’s consider a simple generalization of one-bit parity that will provide us with insight into error-correction techniques Figure 5.5 shows a two-dimensional generalization of the single-bit parity scheme Here, the d bits in D are divided into i rows and j columns A parity value is computed for each row and for each column The resulting i + j + parity bits comprise the link-layer frame’s error-detection bits Suppose now that a single bit error occurs in the original d bits of information With this two-dimensional parity scheme, the parity of both the column and the row containing the flipped bit will be in error The receiver can thus not only detect the fact that a single bit error has occurred, but can use the column and row indices of the column and row with parity errors to actually identify the bit that was corrupted and correct that error! Figure 5.5 shows an example in Column parity Row parity d1,1 d1, j d1, j+1 d2,1 d2, j d2, j+1 di,1 di, j di, j+1 di+1,1 di+1, j di+1, j+1 No errors Correctable single-bit error 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 Parity error Figure 5.5 Two-dimensional even parity Parity error 441 442 CHAPTER • THE LINK LAYER: LINKS, ACCESS NETWORKS, AND LANS which the 1-valued bit in position (2,2) is corrupted and switched to a 0—an error that is both detectable and correctable at the receiver Although our discussion has focused on the original d bits of information, a single error in the parity bits themselves is also detectable and correctable Two-dimensional parity can also detect (but not correct!) any combination of two errors in a packet Other properties of the two-dimensional parity scheme are explored in the problems at the end of the chapter The ability of the receiver to both detect and correct errors is known as forward error correction (FEC) These techniques are commonly used in audio storage and playback devices such as audio CDs In a network setting, FEC techniques can be used by themselves, or in conjunction with link-layer ARQ techniques similar to those we examined in Chapter FEC techniques are valuable because they can decrease the number of sender retransmissions required Perhaps more important, they allow for immediate correction of errors at the receiver This avoids having to wait for the round-trip propagation delay needed for the sender to receive a NAK packet and for the retransmitted packet to propagate back to the receiver—a potentially important advantage for real-time network applications [Rubenstein 1998] or links (such as deep-space links) with long propagation delays Research examining the use of FEC in error-control protocols includes [Biersack 1992; Nonnenmacher 1998; Byers 1998; Shacham 1990] 5.2.2 Checksumming Methods In checksumming techniques, the d bits of data in Figure 5.4 are treated as a sequence of k-bit integers One simple checksumming method is to simply sum these k-bit integers and use the resulting sum as the error-detection bits The Internet checksum is based on this approach—bytes of data are treated as 16-bit integers and summed The 1s complement of this sum then forms the Internet checksum that is carried in the segment header As discussed in Section 3.3, the receiver checks the checksum by taking the 1s complement of the sum of the received data (including the checksum) and checking whether the result is all bits If any of the bits are 0, an error is indicated RFC 1071 discusses the Internet checksum algorithm and its implementation in detail In the TCP and UDP protocols, the Internet checksum is computed over all fields (header and data fields included) In IP the checksum is computed over the IP header (since the UDP or TCP segment has its own checksum) In other protocols, for example, XTP [Strayer 1992], one checksum is computed over the header and another checksum is computed over the entire packet Checksumming methods require relatively little packet overhead For example, the checksums in TCP and UDP use only 16 bits However, they provide relatively weak protection against errors as compared with cyclic redundancy check, which is discussed below and which is often used in the link layer A natural question at this point is, Why is checksumming used at the transport layer and cyclic redundancy 848 INDEX Q QAM16 modulation, 521 Q2931b protocol, 654 QoS (Quality-of-Service), 329, 653–654 QQ, 592, 623 Quality-of-Service See QoS quantization, 590 query ARP message, 467 information about, 141 query messages, 140–142 queues FIFO (first-in-first-out), 641–642 packet-discarding policy, 641 priority queuing, 642–643 provable maximum delay, 647–648 round robin queuing discipline, 643–644 WFQ (weighted fair queuing), 644–645 work-conserving round robin discipline, 644 queuing, 327–331 queuing delays, 25, 36–37, 39–42, 60 R radio channels, 21 Radio Network Controller See RNC RADIUS protocol, 530, 730 random access protocols, 447, 473 Aloha protocol, 452–453 CSMA (carrier sense multiple access) protocol, 453–456 CSMA/CD (carrier sense multiple access with collision detection), 455–459 slotted ALOHA protocol, 450–452 Random Early Detection algorithm See RED algorithm rarest first, 149 rate adaptation, 542–543 RC4 algorithm, 727–728 RCP (Routing Control Platform), 786 rdt (reliable data transfer protocol), 204 building, 206–215 packet reordering, 229–230 pipelined, 215–218 TCP (Transmission Control Protocol), 204 unreliable layer below, 204 real-time applications timing, 92 UDP (User Datagram Protocol), 200 real-time interactive applications protocols, 623–632 RTP (Real-Time Transport Protocol), 623–626 SIP, 626–632 real-time measurements of delay and loss performance, 606 Real-Time Streaming Protocol See RTSP Real-Time Transport Protocol See RTP receive buffer, 233 receiver authentication, 706 receiver-based recovery, 621 receiver feedback, 208 receivers ACK generation policy, 247 defining operation, 206 sequence number of packet acknowledged by ACK message, 212 receiver-side transport layer, 54 receive window, 250–252 receive window field, 234 receiving adapter, 472 receiving processes addresses, 90 records, inserting in DNS database, 142, 144 recursive queries and DNS servers, 137–138, 140 RED (Random Early Detection) algorithm, 329 regional ISPs, 33 registrars, 142 registration with home agent, 568–569 relays, 622–623 reliable channel, 204 reliable data transfer, 91, 190 application layer, 204 channel with bit errors, 207–212 INDEX link layer, 204 lossy channel with bit errors, 212–215 perfectly reliable channel, 206–207 principles, 204–230 reliable channel, 204 TCP (Transmission Control Protocol), 230–231, 240, 242–250 transport layer, 204 transport-layer protocols, 91 reliable data transfer protocol See rdt reliable data transfer service, 235 reliable delivery, 436 reliable transport service, 269 remote host, transferring files, 116–118 rendezvous point, 404 repeater, 474 replicated servers, 132 reply messages and DNS (domain name system), 140–142 repositioning video, 600 request messages and HTTP, 103–105 request-response mode, 772 requests for comments See RFCs Request to Send control frame See RTS control frame residential ISPs, 87 resource-management cells See RM cells resource records See RRs resource reservation protocols, 362 resources admitting or blocking flows, 653 efficient use of, 640 reservations, 653–654 response ARP, 467 response messages and HTTP, 105–108 retransmission, 208, 212 retransmitting data, 241, 262 retransmitting packets, 259, 261–263 reverse path broadcast See RPB reverse path forwarding See RPF Rexford, Jennifer, 786–787 RFCs (requests for comments), RIP advertisements, 384–385 RIP request message, 387 RIP response message, 384 RIP routers, 386–387 RIP (Routing Information Protocol), 384, 498 hops, 384 implementation aspects, 386–388 IP network-layer protocol, 387 lower-tier ISPs, 388 modifying local routing table and propagating information, 387 RIP messages, 384–385 RIP table, 385–386 routing updates, 384 UDP transport-layer protocol, 387 UNIX implementation, 387–388 Rivest, Ron, 684, 690 RM (resource-management cells), 267–269 RNC (Radio Network Controller), 552 roaming number, 572 Roberts, Larry, 61, 511 root DNS servers, 134–136 round robin queuing discipline, 643–644 round-trip delays, 43 round-trip time See RTT route aggregation, 342 route attributes, 395 router control plane functions, 322 router discovery message, 566–567 router forwarding plane, 321 routers, 4, 12, 22, 53, 303, 310 access control lists, 734 adapters, 468 address of, 43 administrative autonomy, 380 area border, 389 ARP modules, 468 AS-PATH attribute, 394 ASs (autonomous systems), 380 authenticated and encrypted channel between, 725 buffering packet bits, 24 buffer sizing, 328–329 connected into network, 338 connection state information, 315 control functions, 321–322 849 850 INDEX routers (continued) control plane implemented in, 331 data center hierarchy, 492–493 default, 364 destination, 364 finite buffers, 261–265 firewalls, 355, 481 first-hop, 364 fixed-length labels, 487 forwarding function, 320–322 forwarding table, 26, 308–309, 317–318, 322–323, 394, 396–397, 469 gateway, 380–381 implementing layers through 3, 53 incident links, 22 input ports, 320 input processing, 322–324 interfaces, 338, 468 intra-AS routing protocols, 397 IP addresses, 394, 465, 468 IP protocol, 53 label-switched, 488 layer-2 packet switch, 480 link-layer and MAC addresses, 462–463, 465 longest prefix matching rule, 318–319 lookup, 323–324 looping advertisements, 394 memory access times, 324 network core, network-layer addresses, 462, 465 output ports, 320–321 output processing, 326 packet-forwarding decisions, 364 packet loss, 327 packets not cycling through, 481 physical links between, 364 plug-and-play, 481 primary role, 306 processing datagrams, 480 processing packets, 351 protocols, queuing, 327–331 routing control plane, 331 routing packets, 380–382 routing processor, 321 routing tables, 385–386 scale, 379–380 self-synchronizing, 371 source, 364 spanning tree, 481 store-and-forward, 22, 24 store-and-forward packet switches, 480 versus switches, 480–482 switching, 320, 324–326 terminating incoming physical link, 320 VC setup, 316 routes, 4, 394–396 route summarization, 342 routing, 305–306, 308–310 advertising information, 382–383 broadcast, 399–405 calls to mobile user, 571–572 distance vector, 384 hierarchical, 379–383 hot-potato, 382 to mobile node, 559–564 multicast, 399, 405–412 storing information, 379–380 routing algorithms, 309, 363–383 ARPAnet, 366 circuit-switched, 379 decentralized, 366 DV (distance-vector) algorithm, 366, 371–379 dynamic, 366 forwarding tables, 364 global, 365–366 hierarchical routing, 379–383 least costly paths, 365 load-sensitive, 366 LS (link-state) algorithms, 366–371 path from source to destination router, 364 scale of routers, 379–380 static, 366 switches, 494–495 viewing packet traffic flows, 379 routing control plane, 331 INDEX Routing Control Platform See RCP routing daemons, 674 Routing Information Protocol See RIP routing loop, 377 routing protocols, 26–27, 51–52 BGP (Border Gateway Protocol), 390–399, 498–499 DV (distance vector) algorithms, 374–375 executing, 321 inter-AS, 382 Internet, 383–399 intra-AS, 380–381 IS-IS, 384 messages, 309 OSPF (Open-Shortest Path First), 384 RIP (Routing Information Protocol), 384 RPB (reverse path broadcast), 402 RPF (reverse path forwarding), 402–403, 411 RRs (resource records), 139–141 RSA algorithm, 684–688, 710 RST flag bit and segment 235, 258 RSVP, RSVP-TE protocol, 489, 654 RTP packets, 624–625 RTP (Real-Time Transport Protocol), 588, 623–626, 668 UDP streaming, 595 RTS/CTS exchange, 537 RTS frame, 536–537 RTSP (Real-Time Streaming Protocol), 117, 595, 668 RTS (Request to Send) control frame, 535–537 RTT (round-trip time), 102–103 EWMA (exponential weighted moving average), 240 TCP (Transmission Control Protocol), 238–241 S SAD (Security Association Database), 721 SA (security association), 720–721 satellite links, 16, 21–22 scalability and P2P architecture, 145–148 scheduling mechanisms, 640–645 Schulzrinne, Henning, 623, 632, 668–670 SDN (Software Defined Networking), 786 secure communication, 672–674 secure e-mail system, 706–708 Secure Hash Algorithm See SHA-1 secure networking protocols and message integrity, 689 Secure Network Programming, 511 Secure Sockets Layer See SSL security, 55–56 application-layer protocol, 705 attacks, 674 cryptography, 675–688 data link layer, 705 digital signatures, 688–699 e-mail, 705–711 end-point authentication, 700–705 IEEE 802.11i, 728–731 IP datagrams, 718 IP (Internet Protocol), 362–363 IPsec, 362 message integrity, 688–693 mobile IP, 566 network layer, 705, 718–725 networks, 671–674 operational, 673, 731–742 OSPF (Open-Shortest Path First), 388–389 P2P architecture, 88 public key encryption, 683–688 RSA, 687 SNMPv3, 775–778 switches, 479 TCP connection, 711–717 transport-layer protocols, 93, 705 transport services, 93 user-based, 777 WEP (Wired Equivalent Privacy), 726–728 wireless LANs, 726–731 security and administration capabilities, 765 security association See SA 851 852 INDEX Security Association Database See SAD Security Management, 759, 764 Security Policy Database See SPD segments, 51, 186, 189 acknowledgment number, 236 destination port number field, 192 fast retransmit, 248 fields, 191–192 out-of-order, 236 piggybacked acknowledgment, 237 sequence numbers, 235–238 source port number field, 192 TCP (Transmission Control Protocol), 233 unique identifiers, 192 selective acknowledgment, 250 selective repeat protocols See SR protocols self-learning, 478–479, 497, 542 self-replicating, 56 self-scalability, 87 send buffer, 232 sender countdown timer, 214 defining operation, 206 detecting and recovering from lost packets, 212–215 leftmost state, 208 receive window, 250 rightmost state, 208 sending multiple packets without acknowledgments, 218 sequence number of packet, 212 utilization, 217 sender authentication, 706–708 sender-to-receiver channel, 213–214 sending rates, 260 send side states rdt2.0 protocols, 208 sequence-number-controlled flooding, 401–403, 405 sequence numbers, 210, 212, 218–220, 234, 614–615, 618, 717 IPsec, 724 RTP packets, 625 SSL (Secure Sockets Layer), 715 SYN segment, 252–253 TCP segments, 235–236 TCP (Transmission Control Protocol), 244, 249 Telnet, 237–238 server authentication, 712 server processes, 88, 164, 232 server program, 156, 163 servers, 2, 10–11, 88–89 always on, 86 dedicated socket, 167 hostname of, 160 IP addresses, 86, 160, 161, 163 network attacks, 57–58 non-persistent connections, 198 persistent HTTP, 198 port number, 161, 167 TCP socket creation, 167 Web caches as, 111 server SMTP, 122 server socket TCP connection, 163 server-to-client throughput, 44–45 Service Level Agreements See SLAs service model, 49 service providers and private networks, 66 services, 49 description of Internet, 5–7 DNS (domain name system), 131–133 flow of packets, 311 transport layer, 186 transport protocols, 189 Service Set Identifier See SSID Serving GPRS Support Nodes See SGSNs session encryption key, 714 Session Initiation Protocol See SIP session keys, 687, 707, 714 session layer, 53 SGMP (Simple Gateway Monitoring Protocol), 764 SGSNs (Serving GPRS Support Nodes), 552 SHA, 710 Shamir, Adi, 684 INDEX Shannon, Claude, 80, 82 shared medium, 20 SHA-1 (Secure Hash Algorithm), 691 shortest paths, 365 SIFS (Shorter Inter-frame Spacing), 532 signaling messages, 316 signaling protocols, 317 signal-to-noise ratio See SNR signature-based IDSs (intrusion detection systems), 741–742 silent periods, 29–30 simple authentication, 389 Simple Gateway Monitoring Protocol See SGMP Simple Mail Transfer Protocol See SMTP Simple Network Management Protocol See SNMP single-hop, wireless networks, 518 SIP (Session Initiation Protocol), 588, 626–632, 668–669 Skype, 65, 83, 87, 588, 621–623 conversational voice and voice, 592 proprietary application-layer protocols, 97 UDP (User Datagram Protocol), 613 SLAs (Service Level Agreements), 758 sliding-window protocol, 220 slotted ALOHA protocol, 450–452 node’s decision to transmit, 453–455 small office, home office subnets See SOHO subnets SMI (Structure of Management Information), 765, 766–769 SMTP clients, 122–123 SMTP servers, 123 SMTP (Simple Mail Transfer Protocol), 51, 97, 117, 120–127 SNMP applications, 776–777 SNMP messages, 777 SNMP (Simple Network Management Protocol), 758–759, 762, 764–778 SNMPv3, 765, 775–778 SNMPv2 (Simple Network Management Protocol version 2), 772, 773–775 Snort IDS system, 740–742 SNR (signal-to-noise ratio), 520–521 social networking, 83, 86 social networks, 64–65, 100 socket interface, 100 socket module, 160 socket programming TCP (Transmission Control Protocol), 158, 163 UDP, 157–158 sockets, 89–91, 91, 191 assigning port number, 162 port number, 158 soft guarantee, 634 soft state protocols, 408–409 software control plane, 331 Software Defined Networking See SDN SOHO (small office, home office) subnets and IP addresses, 349–352 source host and source router, 364 total delay to destination, 42–44 source port numbers, 192, 194, 196, 234 source quench message, 353 source router, 364 source-specific congestion-control actions, 267 source-specific multicast See SSM spam, 56 spanning-tree broadcast, 403–405 spanning trees, 403–405, 481 spatial redundancy, 589 SPD (Security Policy Database), 724 special socket server program, 163 speed-matching service, 250 SPI (Security Parameter Index), 721 split-connection approaches, 577 Sprint, 5, 33, 758 spyware, 56 SRAM, 324 SR (selective repeat) protocols, 223–230 SSH protocol, 237 SSID (Service Set Identifier), 529 SSL record, 715–716 853 854 INDEX SSL (Secure Sockets Layer), 711 anonymity, 738 API (Application Programmer Interface) with sockets, 712 block ciphers, 678 breaking data stream into records, 714 connection closure, 717 cryptographic algorithms, 716 data transfer, 713–715 designed by Netscape, 711 handshake, 713–714, 716–717 HTTP transactions security, 712 key derivation, 713–714 nonces, 717 popularity, 711 privacy, 738 public key certification, 697 sequence numbers, 715 SSL classes/libraries, 712 SSL record, 715–716 transport protocols, 712 SSM (source-specific multicast), 412 state, 117 stateful packet filters, 732, 735–736 stateless protocols, 100 static routing algorithm, 366 stations, 531–533 status line in HTTP response messages, 106 steaming prerecorded videos, 591 stop-and-wait protocols, 209–210, 215, 217 store-and-forward packet switches, 22, 24, 480 stream ciphers, 678 streaming, 591 live audio and video, 587, 593 stored audio and video, 587, 591–592 video, 589 streaming stored video, 593–612 adaptive HTTP streaming, 593 adaptive streaming, 600–601 bandwidth, 594 CDNs (content distribution networks), 602–608 client buffering, 594–595 continuous playout, 591–592 DASH (Dynamic Adaptive Streaming over HTTP), 600–601 end-to-end delays, 594 HTTP streaming, 593, 596–600 interactivity, 591 KanKan, 611–612 Netflix, 608–610 streaming, 591 UDP streaming, 593, 595–596 YouTube, 610–611 streaming video, 592 TCP (Transmission Control Protocol), 596 Structure of Management Information See SMI stub network, 397–398 multi-homed, 397 subnet mask, 340 subnets, 340 advertising existence to Internet, 391 class A, B and C networks, 344 defining, 341 DHCP offer message, 347 DHCP servers, 346 IP addresses, 340, 342, 345 IP definition of, 340–341 prefixes, 393 sending datagrams off, 468–469 shortest-path tree, 388 successful slots, 451 switched Ethernet, 470 switched-LANs ARP (Address Resolution Protocol), 465–468 Ethernet, 469–476 link-layer addressing, 462–469 link-layer switches, 476–482 MAC addresses, 463–465 switch poisoning, 480 VLANs (virtual local area networks), 482–486 switched networks, 481 INDEX switches, 80 aging time, 478 broadcasting frames, 464 broadcast storms, 481 collisions elimination, 479 congestion-related information, 268 data center hierarchy, 492–493 enhanced security, 479 Ethernet, 470, 475 filtering, 476–477 filtering frame, 477 forwarding, 476–477 gathering statistics, 479 heterogeneous links, 479 high filtering and forwarding rates, 480 link-layer, 461, 476–482 link-layer addresses, 462 link-layer frames, 476 MAC addresses, 480 management, 479 plug-and-play devices, 479–480 processing frames, 480 versus routers, 480–482 routing algorithms, 494–495 self-learning, 478–479, 497, 542 small networks, 482 store-and-forward packet switches, 480 switch table, 476 tracking behavior of senders, 267 transparent, 476 trunk port to interconnect, 484 VLANs (virtual local area networks), 483–484 switch fabric, 320, 322, 327, 329–330 switching and routers, 324–326 switch output interfaces buffers, 476 switch poisoning, 480 switch table, 476–477 symmetric algorithm, 716 symmetric key, 706–707, 707 symmetric key algorithm block ciphers, 678–681 Caesar cipher, 676 monoalphabetic cipher, 676–677 polyalphabetic encryption, 678 stream ciphers, 678 symmetric key encryption and CBC (cipher-block chaining), 681–682 SYNACK segment, 257–258 SYN bit, 235, 253 SYN cookies, 257 SYN flood attack, 252, 253, 257 SYN packet, 258 SYN segments, 252–254, 257–258 SYN_SENT state, 254 T taking-turns protocols, 447, 459–460 TCAMs (Ternary Content Address Memories), 324 TCP buffers, 597–598 TCPClient.py client program, 164–166 TCP clients, 195, 253–255 TCP congestion-control algorithm, 272–277, 279 TCP connections, 57, 94 allocating buffers and variables, 253 bandwidth, 281 bottleneck link, 279–281 buffers, 233 between client and server, 166 client process, 232 client-side TCP sending TCP segment to server-side TCP, 252–253 client socket, 163 connection-granted segment, 253 ending, 253–254 establishing, 232, 252–253, 713 full-duplex service, 232 HTTP server, 596 management, 252–256, 258 out-of-order segments, 236 packet loss, 281 parallel and fairness, 282 point-to-point, 232 processes sending data, 232–233 receive buffer, 233, 250 regulating rate of traffic, 190 855 856 INDEX TCP connections (continued) security, 711–717 send buffer, 232 server process, 232 server socket, 163 socket connection to process, 233 split-connection approaches, 577 three-way handshake, 102–103, 166, 232 throughput, 280 transporting request message and response message, 101 variables, 233 TCP header, 234–235 TCP/IP (Transmission Control Protocol/Internet Protocol), 5, 63, 93, 231, 431 TCP ports, 258 TCP Reno, 276, 278 TCP segments, 233–236, 253 with different source IP addresses, 194–195 header overhead, 200 loss, 266 reordering, 715 structure, 233–238 TCP sender, 242–243, 269, 270 awareness of wireless links, 577 congestion control, 250 TCP server, 163, 195 TCPServer.py server program, 166–168 TCP sockets, 165–166, 497, 499 server-side connection socket, 163 welcoming socket, 163 TCP splitting, 273 TCP streaming and prefetching video, 597 TCP SYNACK segment, 499 TCP SYN segment, 499 TCP Tahoe, 276 TCP (Transmission Control Protocol), 5, 51, 93, 189, 313, 338 acknowledgment numbers, 244 block ciphers, 678 buffer and out-of-order segments, 249 buffer overflow, 251 byte stream, 242 checksum, 334 client-server application, 157 congestion avoidance, 272–276 congestion control, 95, 190, 199–200, 240, 247, 269–272, 274–283, 576–577, 596, 613 congestion window, 269–270, 276–277, 576 connection-establishment delays, 200 connection-oriented, 94, 163, 230–238 connection state, 200, 231 continued evolution of, 279 cumulative acknowledgments, 236, 243, 248–249 duplicate ACK, 247–248 early versions, 62 end-to-end congestion control, 266, 269 extending IP’s delivery service, 190 fairness, 279–282 fast retransmit, 247–248 flow control, 240, 250–252 full-duplex, 235 GBN (Go-Back-N) protocol, 248–250 high-bandwidth paths, 279 host-based congestion control, 63 HTTP and, 116, 200 implicit NAK mechanism, 240 integrity checking, 190 Internet checksum, 442 lost acknowledgment, 244 lost segments, 238 MSS (maximum segment size), 232–234 MTU (maximum transmission unit), 232–233 multimedia applications, 200 negative acknowledgments, 248 packet loss, 247–248, 613 pipelining, 240 positive acknowledgments, 240 receive buffer, 270 receiver-so-sender ACK, 576 receive window, 251 INDEX reliable data transfer, 96, 190, 230–231, 240 reliable data transfer service, 95, 100, 123, 163, 199–200, 235, 242–250 resending segment until acknowledged, 199 retransmission timeout interval, 241 retransmission timer, 242 retransmitting data, 473 retransmitting segments, 239–240, 246, 249, 575–576 RST segment, 258 RTT (round-trip time) estimation, 238–241 security services, 95 segments, 189 selective acknowledgment, 250 separation of IP, 62 sequence numbers, 244, 249 server-to-client transmission rate, 596 services, 94–95 socket programming, 158, 163 states, 254 state variable, 243 steady-state behavior, 278–279 streaming media, 200–201 streaming video, 596 SYNACK segment, 258 SYN segments, 257–258 TCP Reno, 276, 278 TCP segments, 233 TCP Tahoe, 276 TCP Vegas, 278 32-bit sequence number, 220 three-way handshake, 163, 200, 253 throughput macroscopic description, 278–279 timeout, 238–241, 243 timeout, 244–247 timeout/retransmit mechanism, 238 transmission rate, 278 Web servers, 197–198 window size, 266 wireless networks, 575–577 TCP Vegas, 278 TDM (time-division multiplexing), 28–30, 31, 448, 549 telco (telephone company), 13–14 Telenet, 62 telephone company See telco telephone networks, 27 circuit switching, 60 complexity, 319 frequency band, 29 packet switching, 31 Telnet, 86 blocked, 737 sending message to mail server, 125 SMTP server, 124 TCP example, 234, 237–238 temporary IP address, 346 10BASE-2, 473–474 10BASE-T, 473–474 10GBASE-T, 474–475 Ternary Content Address Memories See TCAMs 3GPP (3rd Generation Partnership Project), 550, 552, 362 third-party CDNs (Content Distribution Networks), 603 3DES, 680 3G cellular data networks, 550–552 3G cellular mobile systems versus wireless LANs, 548 3G core network, 550–552 3G networks, 669 3G radio access networks, 552 3G systems, 547 3G UMTS and DS-WCDMA (Direct Sequence Wideband CDMA), 552 three-way handshake, 102–103, 232, 253, 499, 735 throughput, 260 average, 44 end-to-end, 44–47 fluctuations in, 92 instantaneous, 44 macroscopic description for TCP, 278–279 server-to-client, 44–45 857 858 INDEX throughput (continued) streaming video, 592 TCP connection, 280 transmission rates of links, 47 transport-layer protocols, 92 zero in heavy traffic, 265 tier-1 ISPs, 33–34 time-division multiplexing See TDM timeout doubling interval, 246–247 event, 222, 244 length of intervals, 238–239 setting and managing interval, 241 TCP (Transmission Control Protocol), 238–241, 243 timer management and overhead, 242 time-sensitive applications, 95 time-sharing networks, 62 time slots, 448 timestamps, 614–615, 617, 625 time-to-live field See TTL (time-to-live) field timing guarantees, 92–93 TLD (top-level domain) DNS servers, 134–136, 143 DNS servers, 134 TLS (Transport Layer Security), 711 TLV (Type, Length, Value) approach, 780 token-passing protocol, 459–460 top-down approach, 50 top-level domain DNS servers See TLD DNS servers top-level domains, 135 Top of Rack switch See TOR switch top-tier switch, 492 TOR anonymizing and privacy service, 738 torrents, 149 TOR (Top of Rack) switch, 490, 492 TOS (type of service) bits, 333 total nodal delay, 36 Traceroute program, 27, 353–355 end-to-end delays, 42–43 tracker, 149 traditional packet filters, 732–734 traffic bursty, 60 conditioning, 648–649 intensity, 40 traffic engineering, 489 traffic isolation, 638–640 traffic policing, 638–639 traffic profile, 650 transferring files, 116–118 transfer time, 45 Transmission Control Protocol See TCP Transmission Control Protocol/Internet Protocol transmission delays, 36–39 transmission rates, 4, 45–46 transmitting frames, 532 packets in datagram networks, 317 transport layer, 51, 53, 185 application-layer message, 54 automatically assigning port number, 193–194 checksumming, 442–443 congestion control, 266 connectionless service, 313 connection-oriented service, 313–314 datagram passed, 337 delivering data to socket, 191 demultiplexing, 191–198 destination host, 191 error checking, 203 multiplexing, 191–198 multiplexing/demultiplexing service, 198–199 network layer relationship, 186–189 overview, 189–191 process-to-process communication, 305, 313 reliable data transfer, 204 responsibility of delivering data to appropriate application, 191 segments, 189 services, 186 transport-layer multiplexing, 192 transport-layer packets, 186 INDEX transport-layer protocols, 50, 91 end systems implementation, 186 IP datagrams, 334 living in end systems, 188 logical communication between processes, 186, 188–189 reliable data transfer, 91 reliable delivery, 436 security, 93, 705 TCP (Transmission Control Protocol), 189 throughput, 92 timing, 92–93 UDP (User Datagram Protocol), 189 Transport Layer Security See TLS transport-layer segments, 54–55, 186 datagrams, 242 delivering data to correct socket, 191–198 fields, 191 unreliability, 242 transport mode, 721 transport protocols Internet applications, 96 services, 189 SSL (Secure Sockets Layer), 712 TCP, 51 UDP, 51 transport services available to applications, 91–93 connection-oriented service, 94 provided by Internet, 93–96 reliable data transfer, 91 security, 93 TCP services, 94–95 throughput, 92 timing, 92–93 UDP, 95 trap messages, 773 tree-join messages, 404–405 triangle routing problem, 563 triple-DES, 710 truncation attack, 717 TTL (time-to-live) field, 139–140, 334 tunneling, 360–361, 561 tunnel mode, 721–722 twisted-pair copper wire, 19–20, 475 Twitter, 65, 83, 86 two-dimensional parity scheme, 441–442 2G cellular networks architecture, 548–550 Type, Length, Value approach See TLV approach type of service bits See TOS bits U UDP checksum, 202–204 UDPClient.py client program, 158–161 UDP header, 202 UDP packet, 258, 346, 595 UDP ports, 258 UDP segments, 202–204, 495–497, 613 UDPServer.py server program, 158, 161, 194 UDP sockets communicating to processes, 158 creation, 161 identifying, 194 port numbers, 193–194 UDP streaming, 593, 595–596 UDP (User Datagram Protocol), 51, 93, 189, 387 checksum, 208, 334 client-server application, 157 congestion control, 201, 282 connection establishment, 200 connectionless transport, 95, 198–204 connection state, 200 datagrams, 189 delays, 200 destination port number, 199 development, 62 directly talking with IP, 199 discarding damaged segment, 204 DNS and, 199–200 end-to-end principle, 203 end-to-end throughput, 95 error checking, 199 error detection, 202–204 extending IP’s delivery service, 190 859 860 INDEX UDP (User Datagram Protocol) (continued) fairness, 282 finer application-level control over data, 199 flow control, 252 gaps in data, 473 handshaking, 199 header overhead, 200 integrity checking, 190 Internet checksum, 442 Internet telephony applications, 96 multimedia applications, 200–201, 282 multiplexing/demultiplexing function, 199 network management data, 200 no-frills segment-delivery service, 199 packet loss, 613 passing damaged segment to application, 204 real-time applications, 200 reliable data transfer, 201 RIP routing table updates, 200 RTP and, 624 segments, 189 small packet header overhead, 200 socket programming, 157–158 transport services, 95 unreliability, 95, 190 wireless networks, 575–577, 301 UMTS (Universal Mobile Telecommunications Service) 3G standards, 550 unchoked, 150 uncontrolled flooding, 401 undetected bit errors, 440 unguided media, 19 unicast addresses, 356 unicast applications and RTP packets, 624 unicast communication and IP addresses, 406 unidirectional data transfer, 205 Universal Plug and Play See UPnP UNIX BSD (Berkeley Software Distribution) version, 384 nslookup program, 141–142 RIP implemented in, 387–388 Snort, 742 unreliable data transfer, 206 unreliable service, 190 unshielded twisted pair See UTP UPnP (Universal Plug and Play), 352 urgent data pointer field, 235 URL field, 104 URLs, 99 US Department of Defense Advanced Research Projects Agency See DARPA user agents, 119–121, 126–127 user-based security, 777 user-server interaction and HTTP (HyperText Transfer Protocol), 108–110 utilization, 217 UTP (unshielded twisted pair), 19–20 V VANET (vehicular ad hoc network), 518 variables and TCP connection, 233 VC networks, 314–317, 319–320 VC (virtual-circuit), 267, 314 roots in telephony world, 319 terminating, 316 vehicular ad hoc network See VANET Verizon, 758 FIOS service and PONs (passive optical networks), 15–16 version number, 333 video, 588–589 P2P delivery, 611 prefetching, 596–597 prerecorded, 591 repositioning, 600 streaming stored, 593–612 timing considerations and tolerance of data loss, 592 traversing firewalls and NATs, 596 INDEX video conferencing, 83 video over IP, 592–593 video stream, 625 virtual-circuit See VC (virtual-circuit) virtual local area networks See VLANs virtual private networks See VPNs viruses, 56, 740 visited MSC, 574 visited networks, 557, 570 visitor location register See VLR VLANs (virtual local area networks), 482–486 VLAN tag, 484–486 VLAN trunking, 484–485 VLR (visitor location register), 570 voice and video applications, 83 VoIP (Voice-over-IP), 83 adaptive playout delay, 615–618 end-to-end delay, 613–614 enhancing over best-effort network, 612 fixed playout delay, 615 jitter and audio, 614–618 media packetization delays, 44 packet loss, 613 recovering from packet loss, 618–621 sequence numbers, 615 timestamps, 615 wireless systems, 668 VPNs (virtual private networks), 362 confidentiality, 720 end points, 725 IPsec, 718–720 IPv4, 719 MPLS (Multiprotocol Label Switching), 489–490 SA (security association), 720 tunnel mode, 721 vulnerability attacks, 57 W Web, 64, 86, 97 client-server application architecture, 100 HTTP (HyperText Transfer Protocol), 98–100 network applications, 98–116 operating on demand, 98 platform for applications emerging after 2003, 98 terminology, 98–99 Web applications, 97 client and server processes, 88 client-server architecture, 86 Web-based e-mail, 86, 129–130 Web browsers, 97 client side of HTTP, 99 GUI interfaces, 64 Web caches, 59, 110–115 Web client-server interaction, 499 web of trust, 710 Web pages, 99 displaying, 101 requests, 495–500 Web proxy caches, 104 Web servers, 89, 97 deleting objects, 105 initial versions, 64 IP addresses, 392 port numbers, 197–198 server processes, 88 server side of HTTP, 99 spawning new process for connections, 198 TCP (Transmission Control Protocol), 197–198 uploading objects to, 105 Web sites, 108 anonymity, 738 privacy, 738 weighted fair queuing See WFQ well-known port number, 192 WEP (Wired Equivalent Privacy), 726–728 WFQ (weighted fair queuing), 329, 644–645 leaky bucket, 647–648 wide-area wireless access, 18 WiFi, 17, 52, 526–546 high-speed, 65 home networks, 17 hotspots, 515, 546 public access, 515 861 862 INDEX WiMAX (World Interoperability for Microwave Access), 554, 668 Windows nslookup program, 141–142 Snort, 742 Wireshark packet sniffer, 78 window size, 220 wired-access ISPs tiered levels of service, 636 wired broadcast links, 521 wired environments and packet sniffer, 58–59 Wired Equivalent Privacy See WEP wired link differences from wireless links, 519 wired networks, 519 wireless, 513–514 wireless communication links, 515–516 wireless devices, 58–59 wireless hosts, 514, 516–517, 530 wireless LANs, 445 access point, 17 LAN base stations, 548 DHCP (Dynamic Host Configuration Protocol), 346 versus 3G cellular mobile systems, 548 IEEE 802.11 technology, 17 security, 726–731 WiFi, 17 wireless LANs and 802.11 standards, 526 wireless links bit errors, 519 decreasing signal strength, 519 differences from wired links, 519 fading signal’s strength, 521–522 hidden terminal problem, 521 interference from other sources, 519 multipath propagation, 519 TCP sender awareness, 577 undetectable collisions, 521–522 wireless mesh networks, 518 wireless networks, 513 application layer, 575 base station, 516–518 CDMA (code division multiple access) protocol, 522–526 characteristics, 519–526 802.11 wireless LANs, 526–546 link layer, 575 link rates, 515 mobility, 575–577 multi-hop, infrastructure-based, 518 multi-hop, infrastructure-less, 518 network infrastructure, 518 network layer, 575 single-hop, infrastructure-based, 518 single-hop, infrastructure-less, 518 TCP (Transmission Control Protocol), 575–577 UDP (User Datagram Protocol), 575–577 wireless communication links, 515–516 wireless hosts, 514 wireless personal area network See WPAN Wireless Philadelphia, 515 wireless station, 529–530 Wireshark labs, 59, 78 work-conserving round robin discipline, 644 workload model, 635 World Wide Web See Web worms, 56–57, 740 WPAN (wireless personal area network), 544 X X.25, 512 XNS (Xerox Network Systems) architecture, 384 Y Yahoo!, 65, 86, 130 YouTube, 65, 588, 610–611 HTTP streaming (over TCP), 596 streaming stored video, 591 video, 602 Z Zigbee, 545–546 ... NETWORKS, AND LANS 1A- 23 -F9-CD-06-9B IP :22 2 .22 2 .22 2 .22 0 C 5C-66-AB-90-75-B1 88-B2-2F-54- 1A- 0F IP :22 2 .22 2 .22 2 .22 1 IP :22 2 .22 2 .22 2 .22 3 B 49-BD-D2-C7-56- 2A IP :22 2 .22 2 .22 2 .22 2 A Figure 5.17 Each interface... 88-B2-2F-54- 1A- 0F 13:45:00 22 2 .22 2 .22 2 .22 3 5C-66-AB-90-75-B1 13: 52: 00 Figure 5.18 A possible ARP table in 22 2 .22 2 .22 2 .22 0 Now suppose that host 22 2 .22 2 .22 2 .22 0 wants to send a datagram that is... CC-49-DE-D0-AB-7D IP:111.111.111.1 12 1A- 23 -F9-CD-06-9B IP :22 2 .22 2 .22 2 .22 0 IP :22 2 .22 2 .22 2 .22 1 49-BD-D2-C7-56- 2A IP :22 2 .22 2 .22 2 .22 2 Figure 5.19 Two subnets interconnected by a router 5.4 • SWITCHED LOCAL AREA