* Internet standards are developed by the Internet Engineering Task Force(IETF) [IETF 2016]. The IETF standards documents are called requests for comments (RFCs). RFCsstarted out as general requests for comments (hence the name) to resolve network and protocol designproblems that faced the precursor to the Internet [Allman 2011]. *
[#^88vkgagkxv7|show annotation]]
* But we can alsodescribe the Internet from an entirely different angle—namely, as an infrastructure that providesservices to applications. In addition to traditional applications such as e-mail and Web surfing, Internetapplications include mobile smartphone and tablet applications, including Internet messaging, mappingwith real-time road-traffic information, music streaming from the cloud, movie and television streaming,online social networks, video conferencing, multi-person games, and location-based recommendationsystems. The applications are said to be distributed applications *
[#^5siqr9a9n0x|show annotation]]
* End systems attached to the Internet provide a socket interface that specifies how a program runningon one end system asks the Internet infrastructure to deliver data to a specific destination programrunning on another end system. This Internet socket interface is a set of rules that the sending programmust follow so that the Internet can deliver the data to the destination program. *
[#^zs4cu909d3p|show annotation]]
* All activity in the Internet that involves twoor more communicating remote entities is governed by a protocol. *
[#^qnvokvgz09|show annotation]]
* A protocol defines the format and the order of messages exchanged between two or morecommunicating entities, as well as the actions taken on the transmission and/or receipt of a messageor other event. *
[#^l8e43lnp1fo|show annotation]]
* Each layer provides its service by (1) performing certain actions within that layer (forexample, at the gate layer, loading and unloading people from an airplane) and by (2) using the servicesof the layer directly below it (for example, in the gate layer, using the runway-to-runway passengertransfer service of the takeoff/landing layer). *
[#^h8pk1940el|show annotation]]
* As long as the layer provides the sameservice to the layer above it, and uses the same services from the layer below it, the remainder of thesystem remains unchanged when a layer’s implementation is changed. *
[#^3usjrblcns7|show annotation]]
* Each protocol belongs to one of the layers *
[#^ibfgw28kcbm|show annotation]]
* Just as inthe case of our airline example, each layer provides its service by (1) performing certain actions withinthat layer and by (2) using the services of the layer directly below it. *
[#^1ergil5prdl|show annotation]]
* A protocol layer can be implemented in software, in hardware, or in a combination of the two. *
[#^z3qxjmxoq2|show annotation]]
* A protocol layer can be implemented in software, in hardware, or in a combination of the two.Application-layer protocols—such as HTTP and SMTP—are almost always implemented in software inthe end systems; so are transport-layer protocols. Because the physical layer and data link layers areresponsible for handling communication over a specific link, they are typically implemented in a networkinterface card (for example, Ethernet or WiFi interface cards) associated with a given link. The networklayer is often a mixed implementation of hardware and software. *
[#^tsoy7llzo1d|show annotation]]
* One potential drawback of layering is that one layer mayduplicate lower-layer functionality. *
[#^dxacsxj848|show annotation]]
* A second potential drawback is that functionality atone layer may need information (for example, a timestamp value) that is present only in another layer;this violates the goal of separation of layers. *
[#^g2x6dm8590s|show annotation]]
* When taken together, the protocols of the various layers are called the protocol stack. The Internetprotocol stack consists of five layers: the physical, link, network, transport, and application layers *
[#^s0eldrhbdr|show annotation]]
* TheInternet’s application layer includes many protocols, such as the HTTP protocol (which provides for Webdocument request and transfer), SMTP (which provides for the transfer of e-mail messages), and FTP(which provides for the transfer of files between two end systems) *
[#^sadxi2vlxah|show annotation]]
* Inthe Internet there are two transport protocols, TCP and UDP *
[#^apagub9v7sr|show annotation]]
* TCP provides a connection-oriented service to its applications. This service includesguaranteed delivery of application-layer messages to the destination and flow control (that is,sender/receiver speed matching). TCP also breaks long messages into shorter segments and providesa congestion-control mechanism *
[#^xzdxy8ks88|show annotation]]
* UDP protocol provides a connectionless service to its applications. This is a no-frillsservice that provides no reliability, no flow control, and no congestion control *
[#^l7t0wsucbv|show annotation]]
* network layer is responsible for moving network-layer packets known as datagrams fromone host to another *
[#^3i8408vrs88|show annotation]]
* The Internet’s network layer includes the celebrated IP protocol *
[#^wxbnarxlsbp|show annotation]]
* In this book, we’ll refer to the link-layer packets asframes *
[#^c0ae7ws88vr|show annotation]]
* While the job of the link layer is to move entire frames from one network element to an adjacent networkelement, the job of the physical layer is to move the individual bits within the frame from one node to thenext. *
[#^pgqm8cqkew9|show annotation]]
* back in the late 1970s, the International Organization for Standardization(ISO) proposed that computer networks be organized around seven layers, called the Open SystemsInterconnection (OSI) model *
[#^kasjpi7gkwm|show annotation]]
* you do notneed to write software that runs on network-core devices, such as routers or link-layer switches. Even ifyou wanted to write application software for these network-core devices, you wouldn’t be able to do so.As we learned in Chapter 1, and as shown earlier in Figure 1.24, network-core devices do not functionat the application layer but instead function at lower layers—specifically at the network layer and below. *
[#^4u3wnykjelc|show annotation]]
* two predominant architectural paradigms used inmodern network applications: the client-server architecture or the peer-to-peer (P2P) architecture *
[#^4fz7ngdd69j|show annotation]]
* In a client-server architecture, there is an always-on host, called the server, which services requestsfrom many other hosts, called clients. *
[#^u4g5r53ymah|show annotation]]
* In a P2P architecture, there is minimal (or no) reliance on dedicated servers in data centers. Insteadthe application exploits direct communication between pairs of intermittently connected hosts, calledpeers. The peers are not owned by the service provider, but are instead desktops and laptops controlledby users *
[#^bk7sbehl9mg|show annotation]]
* someapplications have hybrid architectures *
[#^uhw4w5w96mq|show annotation]]
* One of the most compelling features of P2P architectures is their self-scalability *
[#^anz7tmf6kl|show annotation]]
* However, P2P applications face challenges ofsecurity, performance, and reliability due to their highly decentralized structure *
[#^ks8xjasyiyc|show annotation]]
* it isnot actually programs but processes that communicate. A process can be thought of as a program thatis running within an end system *
[#^4mwj5ubdars|show annotation]]
* When processes are running on the same end system, they cancommunicate with each other *
[#^5hgxypoq14i|show annotation]]
* In the context of a communication session between a pair of processes, the process that initiates thecommunication (that is, initially contacts the other process at the beginning of the session) is labeledas the client. The process that waits to be contacted to begin the session is the server. *
[#^n0vpxdxv8p|show annotation]]
* A process sends messages into, and receives messages from, thenetwork through a software interface called a socket *
[#^vd6n8dr7u6|show annotation]]
* A process is analogous to a house and its socket is analogous to its door. *
[#^b99j7zsgjx8|show annotation]]
* a socket is the interface between the application layer and thetransport layer within a host. It is also referred to as the Application Programming Interface (API) *
[#^kyy3qxw33g|show annotation]]
* between the application and the network, since the socket is the programming interface with whichnetwork applications are built. *
[#^kymhx3f3zdp|show annotation]]
* the sending process must also identify the receiving process (more specifically, the receivingsocket) running in the host. This information is needed because in general a host could be running manynetwork applications. A destination port number serves this purpose. *
[#^twoqsgghkl|show annotation]]
* What are the services that a transport-layer protocol can offer to applications invoking it? We canbroadly classify the possible services along four dimensions: reliable data transfer, throughput, timing,and security. *
[#^qdab6zubedp|show annotation]]
* throughput, which, in the context of acommunication session between two processes along a network path, is the rate at which the sendingprocess can deliver bits to the receiving process. *
[#^7hoe9kxq4qu|show annotation]]
* ThroughputIn Chapter 1 we introduced the concept of available throughput, which, in the context of acommunication session between two processes along a network path, is the rate at which the sendingprocess can deliver bits to the receiving process. Because other sessions will be sharing the bandwidthalong the network path, and because these other sessions will be coming and going, the availablethroughput can fluctuate with time. These observations lead to another natural service that a transport-layer protocol could provide, namely, guaranteed available throughput at some specified rate. With sucha service, the application could request a guaranteed throughput of r bits/sec, and the transport protocolwould then ensure that the available throughput is always at least r bits/sec. Such a guaranteedthroughput service would appeal to many applications. For example, if an Internet telephony applicationencodes voice at 32 kbps, it needs to send data into the network and have data delivered to thereceiving application at this rate. If the transport protocol cannot provide this throughput, the applicationwould need to encode at a lower rate (and receive enough throughput to sustain this lower coding rate)or may have to give up, since receiving, say, half of the needed throughput is of little or no use to thisInternet telephony application. Applications that have throughput requirements are said to bebandwidth-sensitive applications. Many current multimedia applications are bandwidth sensitive,although some multimedia applications may use adaptive coding techniques to encode digitized voice orvideo at a rate that matches the currently available throughput.While bandwidth-sensitive applications have specific throughput requirements, elastic applications canmake use of as much, or as little, throughput as happens to be available. Electronic mail, file transfer,and Web transfers are all elastic applications. Of course, the more throughput, the better. There’sanadage that says that one cannot be too rich, too thin, or have too much throughput! *
[#^1z2rz9zo4de|show annotation]]
- Available throughput: The rate at which data can be sent from one process to another process over a network.
- Guaranteed available throughput: A service provided by a transport-layer protocol that ensures a specified minimum throughput rate for an application.
- Bandwidth-sensitive applications: Applications that have specific throughput requirements and require a consistent and reliable throughput.
- Elastic applications: Applications that can adapt to use as much or as little throughput as available, such as email, file transfer, and web transfers.
- Key challenge: Multiple sessions sharing the network’s bandwidth, causing available throughput to fluctuate with time.
- Benefit of guaranteed throughput: Allows applications like Internet telephony to maintain a specific encoding and delivery rate, ensuring optimal performance.
- Adaptive coding techniques: Some multimedia applications can adjust their coding rate to match the currently available throughput.
- Importance of throughput: The saying that “one cannot be too rich, too thin, or have too much throughput” reflects the general desire for higher throughput in applications.
* A transport-layer protocol can also provide timing guarantees. *
[#^v0i3w621ot8|show annotation]]
* a transport protocol can provide an application with one or more security services. For example,in the sending host, a transport protocol can encrypt all data transmitted by the sending process, and inthe receiving host, the transport-layer protocol can decrypt the data before delivering the data to thereceiving process. *
[#^kakdr077u1l|show annotation]]
* The Internet (and, more generally, TCP/IP networks) makes two transport protocols available toapplications, UDP and TCP *
[#^gyihn97icf6|show annotation]]
* The TCP service model includes a connection-oriented service and a reliable data transfer service. *
[#^xcjovm7gipb|show annotation]]
* TCP Services *
[#^4k3k6xrvwy3|show annotation]]
Connection-oriented service:
- TCP involves a handshaking procedure where the client and server exchange control information before data transfer begins.
- The handshaking allows both parties to prepare for incoming data.
- After handshaking, a TCP connection is established between the sockets of the two processes.
- The connection is full-duplex, allowing simultaneous message exchange.
Reliable data transfer service:
- TCP ensures that all data sent is delivered without errors and in the correct order.
- It guarantees that the stream of bytes sent from one side of the application is received exactly the same on the other side.
Congestion control mechanism:
- TCP includes a congestion-control mechanism for the overall welfare of the Internet.
- This mechanism throttles the sending process (client or server) when network congestion occurs between the sender and receiver.
* UDP Services *
[#^wvs451ltxwr|show annotation]]
UDP (User Datagram Protocol):
- Lightweight and minimal transport protocol.
- Connectionless, no handshaking before communication.
- Provides unreliable data transfer service.
- No guarantee that messages will reach the receiving process.
- Messages that do arrive may arrive out of order.
Lack of congestion control mechanism:
- UDP does not include congestion control.
- Sending side can transmit data at any rate.
- Actual end-to-end throughput may be limited by transmission capacity of links or congestion.
* FOCUS ON SECURITY *
[#^y6rxqnnvon|show annotation]]
Data encryption and security:
- Both TCP and UDP do not provide encryption for the data transmitted.
- Data sent by the sending process travels over the network in its original form (cleartext) and can potentially be intercepted and discovered at any point along the network links.
- To address security concerns, an enhancement for TCP called Secure Sockets Layer (SSL) has been developed.
- SSL provides process-to-process security services, including encryption, data integrity, and end-point authentication.
SSL and TCP:
- SSL is not a separate transport protocol like TCP or UDP, but an enhancement of TCP.
- SSL is implemented at the application layer, not as a standalone protocol.
- Applications wishing to use SSL need to include SSL code in both the client and server sides.
- SSL has its own socket API similar to the traditional TCP socket API.
- When an application uses SSL, cleartext data is passed to the SSL socket in the sending process.
- SSL encrypts the data and passes the encrypted data to the TCP socket for transmission.
- The encrypted data travels over the network to the TCP socket in the receiving process.
- The receiving socket passes the encrypted data to SSL, which decrypts it.
- Finally, SSL passes the decrypted data through its SSL socket to the receiving process.
* today’s Internet can oftenprovide satisfactory service to time-sensitive applications, but it cannot provide any timing or throughputguarantees *
[#^5qet3bsnbke|show annotation]]
* An application-layer protocol defines how an application’s processes,running on different end systems, pass messages to each other. In particular, an application-layerprotocol defines: *
[#^055g0hkaaexi|show annotation]]
* The types of messages exchanged, for example, request messages and response messagesThe syntax of the various message types, such as the fields in the message and how the fields aredelineatedThe semantics of the fields, that is, the meaning of the information in the fieldsRules for determining when and how a process sends messages and responds to messages *
[#^im3hu2x4c1b|show annotation]]
* It is important to distinguish between network applications and application-layer protocols. Anapplication-layer protocol is only one piece of a network application *
[#^1ec0vudh53a|show annotation]]
* The Web is a client-serverapplication that allows users to obtain documents from Web servers on demand. The Web applicationconsists of many components, including a standard for document formats (that is, HTML), Webbrowsers (for example, Firefox and Microsoft Internet Explorer), Web servers (for example, Apache andMicrosoft servers), and an application-layer protocol. The Web’s application-layer protocol, HTTP,defines the format and sequence of messages exchanged between browser and Web server. Thus,HTTP is only one piece (albeit, an important piece) of the Web application *
[#^s9ror7ajnun|show annotation]]
* Perhaps what appeals the most to users is that the Web operates on demand. *
[#^za84rqr6ks8|show annotation]]
* The HyperText Transfer Protocol (HTTP), the Web’s application-layer protocol, is at the heart of theWeb. It is defined in [RFC 1945] and [RFC 2616]. HTTP is implemented in two programs: a clientprogram and a server program. The client program and server program, executing on different endsystems, talk to each other by exchanging HTTP messages. HTTP defines the structure of thesemessages and how the client and server exchange the messages *
[#^mqdzry3srmi|show annotation]]
* A Web page (also called a document) consists of objects. An *
[#^so1dvfbjb4|show annotation]]
* Webservers, which implement the server side of HTTP, house Web objects, each addressable by a URL *
[#^vtht3wmd73|show annotation]]
* HTTP defines how Web clients request Web pages from Web servers and how servers transfer Webpages to clients. *
[#^52oa8blslx7|show annotation]]
* HTTP uses TCP as its underlying transport protocol *
[#^h1303zpj2t5|show annotation]]
* Because an HTTP servermaintains no information about the clients, HTTP is said to be a stateless protocol. *
[#^lhspmwt0dbj|show annotation]]
* A Web serveris always on, with a fixed IP address *
[#^5hpejpba4u9|show annotation]]
* When this client-server interaction is taking place overTCP, the application developer needs to make an important decision—should each request/responsepair be sent over a separate TCP connection, or should all of the requests and their correspondingresponses be sent over the same TCP connection? In the former approach, the application is said touse non-persistent connections; and in the latter approach, persistent connections. *
[#^wm352d0tmu|show annotation]]
* The steps above illustrate the use of non-persistent connections, where each TCP connection is closedafter the server sends the object—the connection does not persist for other objects. Note that each TCPconnection transports exactly one request message and one response message. Thus, in this example,when a user requests the Web page, 11 TCP connections are generated *
[#^95pu933wvlb|show annotation]]
* the use of parallel connections shortens the response time *
[#^6l0s0bi7xrc|show annotation]]
* most browsers open 5 to 10 parallel TCP connections *
[#^mrhqfpv1e3|show annotation]]
* we define the round-trip time (RTT), which is the time it takes for a small packet to travel fromclient to server and then back to the client. The RTT includes packet-propagation delays, packet-queuing delays in intermediate routers and switches, and packet-processing delays *
[#^qgwvxv2xqgk|show annotation]]
* HTTP with Persistent Connections *
[#^9goeoejchmv|show annotation]]
Non-persistent connections:
- Each requested object requires a new connection to be established and maintained.
- This places a burden on the Web server, especially when serving requests from multiple clients simultaneously.
- Each object experiences a delivery delay of two round-trip times (RTTs) due to connection establishment and object request.
Persistent connections in HTTP 1.1:
- The server keeps the TCP connection open after sending a response.
- Subsequent requests and responses between the same client and server can be sent over the same connection.
- Multiple objects, including an entire web page or multiple web pages, can be sent over a single persistent TCP connection.
- Requests for objects can be made back-to-back without waiting for replies (pipelining).
- The server closes the connection after a certain idle time.
- HTTP/2 builds on HTTP 1.1, allowing interleaved requests and replies in the same connection and introducing prioritization.
Performance comparison:
- Performance of non-persistent and persistent connections will be quantitatively compared in the homework problems of Chapters 2 and 3.
- Additional references for further reading: [Heidemann 1997; Nielsen 1997; RFC 7540].
* There are two types of HTTP messages, request messages and response messages *
[#^ajrbj10o7y7|show annotation]]
* The first line of an HTTP request message is called the request line; the subsequent lines are calledthe header lines. The request line has three fields: the method field, the URL field, and the HTTPversion field. The method field can take on several different values, including GET, POST, HEAD,PUT, and DELETE. *
[#^vi449ppq2m9|show annotation]]
* By including the Connection:close header line, the browser is telling the server that it doesn’t want to bother with persistentconnections *
[#^ivmq7wvke|show annotation]]
* GET /somedir/page.html HTTP/1.1Host: : closeUser-agent: Mozilla/5.0Accept-language: fr *
[#^1ohkpb72pf7|show annotation]]
* The entity body is empty with the GET method, but is used with the POST method. An HTTPclient often uses the POST method when the user fills out a form—for example, when a user providessearch words to a search engine. *
[#^vl5swmgcsnq|show annotation]]
* The HEAD method is similar to the GET method. When a server receives a request with the HEADmethod, it responds with an HTTP message but it leaves out the requested object. Applicationdevelopers often use the HEAD method for debugging. *
[#^guewc1ry108|show annotation]]
* The PUT method is often used in conjunctionwith Web publishing tools. It allows a user to upload an object to a specific path (directory) on a specificWeb server. The PUT method is also used by applications that need to upload objects *
[#^wg6y9pmzd7|show annotation]]
* 200 OK: Request succeeded and the information is returned in the response.301 Moved Permanently: Requested object has been permanently moved; the new URL isspecified in Location: header of the response message. The client software will automaticallyretrieve the new URL.400 Bad Request: This is a generic error code indicating that the request could not beunderstood by the server *
[#^y5px70efqzc|show annotation]]
* Figure 2.9 General format of an HTTP response message *
[#^sod57n2sl3q|show annotation]]
* 404 Not Found: The requested document does not exist on this server.505 HTTP Version Not Supported: The requested HTTP protocol version is not supportedby the server. *
[#^c23jma8ix3|show annotation]]
* HTTP server is stateless *
[#^ixs3zxdkhoo|show annotation]]
In the case of the HTTP protocol, being stateless means that each request made by a client to a server is independent and carries all the necessary information for the server to process the request. The server does not retain any knowledge of past requests or client state between different requests.
* Cookies, defined in [RFC 6265], allow sites to keep track of users *
[#^0fdpgq4y1gjf|show annotation]]
* cookie technology has four components: (1) a cookie header line in the HTTPresponse message; (2) a cookie header line in the HTTP request message; (3) a cookie file kept on the *
[#^pdxpxup762l|show annotation]]
* user’s end system and managed by the user’s browser; and (4) a back-end database at the Web site *
[#^e238bxz5op6|show annotation]]
Failure
Error: This model’s maximum context length is 4097 tokens. However, your messa ges resulted in 28755 tokens. Please reduce the length of the messages.
* cookies can be used to identify a user *
[#^rihcu9jpt6|show annotation]]
* A Web cache—also called a proxy server—is a network entity that satisfies HTTP requests on thebehalf of an origin Web server. The Web cache has its own disk storage and keeps copies of recentlyrequested objects in this storage. *
[#^jiyhmxr3yt|show annotation]]
* Note that a cache is both a server and a client at the same time. *
[#^lidko5x91oa|show annotation]]
* First, a Web cache can substantiallyreduce the response time for a client request *
[#^t3hmpuihslc|show annotation]]
* econd,as we will soon illustrate with an example, Web caches can substantially reduce traffic on an institution’saccess link to the Internet *
[#^9m3xj5d7kat|show annotation]]
* Through the use of Content Distribution Networks (CDNs), Web caches are increasingly playing animportant role in the Internet. A CDN company installs many geographically distributed cachesthroughout the Internet, thereby localizing much of the traffic. *
[#^r70yqaqrwxd|show annotation]]
* the copy ofan object residing in the cache may be stale *
[#^qcyvdsihtti|show annotation]]
* HTTP has a mechanism thatallows a cache to verify that its objects are up to date. This mechanism is called the conditional GET *
[#^l1o83kp0ms|show annotation]]
* e-mail is an asynchronous communication medium *
[#^d2c3pubgzy5|show annotation]]
* user agents, mail servers, and the Simple Mail Transfer Protocol (SMTP) *
[#^84m7lpni6z6|show annotation]]
* User agents allow users to read, reply to, forward, save, and composemessages. Microsoft Outlook and Apple Mail are examples of user agents for e-mail *
[#^2cxx9657g29|show annotation]]
* mailboxlocated in one of the mail servers *
[#^kebmivp50i|show annotation]]
* If Alice’s server cannot deliver mail to Bob’s server,Alice’s server holds the message in a message queue and attempts to transfer the message later *
[#^fkgn13plpo7|show annotation]]
* SMTP is the principal application-layer protocol for Internet electronic mail. It uses the reliable datatransfer service of TCP to transfer mail from the sender’s mail server to the recipient’s mail server. *
[#^koqaa0eatji|show annotation]]
* Both the client and serversides of SMTP run on every mail server. *
[#^3jzgghlwosu|show annotation]]
* MTPtransfers messages from senders’ mail servers to the recipients’ mail servers *
[#^lk92a87q61i|show annotation]]
* HTTP transfers files (also called objects) from a Web server to a Web client (typically abrowser); SMTP transfers files (that is, e-mail messages) from one mail server to another mail server *
[#^ocih253fkl|show annotation]]
* On the other hand, SMTP is primarily a push protocol *
[#^tulkqqn2wlo|show annotation]]
* the TCP connection isinitiated by the machine that wants to send the file. *
[#^t09nkx98tq|show annotation]]
* the TCP connection is initiated by themachine that wants to receive the file *
[#^lv5micq6sm|show annotation]]
* HTTP is mainlya pull protocol *
[#^eo1uik93urc|show annotation]]
* HTTP encapsulates each object in its ownHTTP response message. SMTP places all of the message’s objects into one message *
[#^wlirl365p3c|show annotation]]
* If Bob’s mail server were to reside on his localPC, then Bob’s PC would have to remain always on, and connected to the Internet, in order to receivenew mail, which can arrive at any time *
[#^4bbuynwckdf|show annotation]]
* By having Alice first deposit the e-mail in her own mail server, Alice’s mail server canrepeatedly try to send the message to Bob’s mail server, say every 30 minutes, until Bob’s mail serverbecomes operational. *
[#^hinryiszaz7|show annotation]]
* Bob’suser agent can’t use SMTP to obtain the messages because obtaining the messages is a pull operation,whereas SMTP is a push protocol. The puzzle is completed by introducing a special mail accessprotocol that transfers messages from Bob’s mail server to his local PC. There are currently a number ofpopular mail access protocols, including Post Office Protocol—Version 3 (POP3), Internet MailAccess Protocol (IMAP), and HTTP *
[#^6zvmn686cjl|show annotation]]
* POP3 is an extremely simple mail access protocol *
[#^xdr35sf1ay|show annotation]]
* POP3 progresses through three phases: authorization, transaction, and update *
[#^v5e0kfhdkqc|show annotation]]
* uring the second phase, transaction, the user agent retrieves messages; alsoduring this phase, the user agent can mark messages for deletion, remove deletion marks, and obtainmail statistics. The third phase, update, occurs after the client has issued the quit command, endingthe POP3 session *
[#^46qv6o9zvcr|show annotation]]
* the POP3 protocol does not provide any means for a user to create remotefolders and assign messages to folders *
[#^2fcw86j3jnf|show annotation]]
* An IMAP server will associate each message with a folder; when a message first arrives at the server, itis associated with the recipient’s INBOX folder. *
[#^qff5aiw4nj|show annotation]]
* unlike POP3, an IMAP server maintains user state information across IMAP sessions—forexample, the names of the folders and which messages are associated with which folders *
[#^t13hbqx9wym|show annotation]]
* Another important feature of IMAP is that it has commands that permit a user agent to obtaincomponents of messages. *
[#^zjwulaugf3|show annotation]]
* With this service, the user agent isan ordinary Web browser, and the user communicates with its remote mailbox via HTTP *
[#^z4b6my7jmb|show annotation]]
* When a sender, such as Alice, wants to send an e-mail message, the e-mail message is sent from herbrowser to her mail server over HTTP rather than over SMTP. Alice’s mail server, however, still sendsmessages to, and receives messages from, other mail servers using SMTP *
[#^vkuo5cft8wr|show annotation]]
* a typical network applicationconsists of a pair of programs—a client program and a server program—residing in two different endsystems. When these two programs are executed, a client process and a server process are created,and these processes communicate with each other by reading from, and writing to, sockets *
[#^mcwlbw3jmb9|show annotation]]
* There are two types of network applications. One type is an implementation whose operation isspecified in a protocol standard, such as an RFC *
[#^jzpcj06i23|show annotation]]
* The other type of network application is a proprietary network application. In this case the client andserver programs employ an application-layer protocol that has not been openly published in an RFC *
[#^56xrhr7b98a|show annotation]]
* TCP is connection oriented and provides a reliable byte-streamchannel through which data flows between two end systems. UDP is connectionless and sendsindependent packets of data from one end system to the other, without any guarantees about delivery *
[#^5f2wgpy8bb4|show annotation]]
* When a socket is created, an identifier, called a port number, is assignedto it. *
[#^qkx6ibte68s|show annotation]]
* attaching the source address to the packet istypically not done by the UDP application code *
[#^z5zgswdpp7h|show annotation]]
* Unlike UDP, TCP is a connection-oriented protocol. This means that before the client and server canstart to send data to each other, they first need to handshake and establish a TCP connection. *
[#^0timecc58sbj|show annotation]]
* the TCP servermust be running as a process before the client attempts to initiate contact. Second, the server programmust have a special door—more precisely, a special socket—that welcomes some initial contact from aclient process running on an arbitrary host *
[#^bk69gw3nzm|show annotation]]
* From the application’s perspective, the client’s socket and the server’s connection socket are directlyconnected by a pipe *
[#^ijp25m60a1|show annotation]]
* the transport layer is a central piece of the layerednetwork architecture. It has the critical role of providing communication services directly to theapplication processes running on different hosts *
[#^6b0l7f6frs7|show annotation]]
* A transport-layer protocol provides for logical communication between application processes runningon different hosts. By logical communication, we mean that from an application’s perspective, it is as ifthe hosts running the processes were directly connected *
[#^kk21hh9ozyh|show annotation]]
* transport-layer protocols are implemented in the end systems but not innetwork routers. On the sending side, the transport layer converts the application-layer messages itreceives from a sending application process into transport-layer packets, known as transport-layersegments in Internet terminology *
[#^ipswd2yb1y|show annotation]]
* It’s important to note that network routers act only on the network-layer fields of thedatagram; that is, they do not examine the fields of the transport-layer segment encapsulated with thedatagram. *
[#^fhbajahpcrl|show annotation]]
* Whereas atransport-layer protocol provides logical communication between *
[#^frqr7h1zz7b|show annotation]]
* processes running on different hosts, a network-layer protocol provides logical-communication betweenhosts *
[#^0ga30pm9gdx|show annotation]]
* application messages letters in envelopesprocesses cousinshosts (also called end systems) housestransport-layer protocol Ann and Billnetwork-layer protocol postal service (including mail carriers) *
[#^w5j241bkzrn|show annotation]]
* transport-layer protocols live in the end systems. *
[#^s95y20yi5r|show annotation]]
* a transport protocol moves messages from application processes to the network edge *
[#^0qjwg17fcq|show annotation]]
* the services that a transport protocol can provide are often constrained by the servicemodel of the underlying network-layer protocol *
[#^0q5p6yndj2i|show annotation]]
* a transport protocol can offer reliable data transfer service to an application even when theunderlying network protocol is unreliable *
[#^lo1ddoppg4b|show annotation]]
* a transport protocol can use encryption to guarantee that application messages are not readby intruders *
[#^b6v4g1lq7pp|show annotation]]
* One of these protocols is UDP (User Datagram Protocol), which provides an unreliable, connectionlessservice to the invoking application. The second of these protocols is TCP (Transmission ControlProtocol), which provides a reliable, connection-oriented service to the invoking application *
[#^oh6scrvumce|show annotation]]
* we refer to the transport-layer packet as a segment *
[#^w8wqxs54ee|show annotation]]
* The IP service model is a best-effort delivery service. This means thatIP makes its “best effort” to deliver segments between communicating hosts, but it makes noguarantees. *
[#^a6e6dc9ixhl|show annotation]]
* IPis said to be an unreliable service. *
[#^jnb3q13994c|show annotation]]
* Extending host-to-host delivery to process-to-process delivery is called transport-layer multiplexingand demultiplexing *
[#^sv1l7mnixwb|show annotation]]
* a process (as part of a network application) can have one or moresockets *
[#^hsj8tbixkid|show annotation]]
* At the receivingend, the transport layer examines these fields to identify the receiving socket and then directs thesegment to that socket. This job of delivering the data in a transport-layer segment to the correct socketis called demultiplexing. The job of gathering data chunks at the source host from different sockets,encapsulating each data chunk with header information (that will later be used in demultiplexing) tocreate segments, and passing the segments to the network layer is called multiplexing *
[#^iysaq6ydhu|show annotation]]
* When Bill receives a batch of mail from the mail carrier, heperforms a demultiplexing operation by observing to whom the letters are addressed and then handdelivering the mail to his brothers and sisters. Ann performs a multiplexing operation when she collectsletters from her brothers and sisters and gives the collected mail to the mail person *
[#^qqgd3o92rsc|show annotation]]
* we know that transport-layer multiplexingrequires (1) that sockets have unique identifiers, and (2) that each segment have special fields thatindicate the socket to which the segment is to be delivered *
[#^saror3lr9h|show annotation]]
* source port number field and the destination port number field *
[#^znm5el7a6n8|show annotation]]
* source IP address, source port number, destination IP address,destination port number *
[#^w7yubkv5rp|show annotation]]
* One subtle difference between a TCP socket and a UDP socket is that a TCP *
[#^2tat2zz0q86|show annotation]]
* socket is identified by a four-tuple *
[#^x8fxaomu97q|show annotation]]
* in contrast with UDP, two arriving TCP segments with different source IP addresses orsource port numbers will (with the exception of a TCP segment carrying the original connection-establishment request) be directed to two different sockets *
[#^60i2146d1tx|show annotation]]
* UDP takes messages from the application process, attaches source and destination port numberfields for the multiplexing/demultiplexing service, adds two other small fields, and passes the resultingsegment to the network layer *
[#^ifa1l973ad8|show annotation]]
* DNS is an example of an application-layer protocol that typically uses UDP. When the DNS applicationin a host wants to make a query, it constructs a DNS query message and passes the message to UDP.Without performing any handshaking with the UDP entity running on the destination end system, thehost-side UDP adds header fields to the message and passes the resulting segment to the networklayer. *
[#^7f38uxofdm6|show annotation]]
* Finer application-level control over what data is sent, and when *
[#^x2xpaq1tf4|show annotation]]
* No connection establishment *
[#^34h966p5dzg|show annotation]]
* No connection state *
[#^or1bwwu4ph|show annotation]]
* Small packet header overhead *
[#^bccwause84g|show annotation]]
* it is possible for an application to havereliable data transfer when using UDP. This can be done if reliability is built into the application itself *
[#^yb427q32wb|show annotation]]
* The UDP checksum provides for error detection *
[#^1izhb153goo|show annotation]]
* TCP is said to be connection-oriented because before one application process can begin to send datato another, the two processes must first “handshake” with each other *
[#^yquc6q4mh78|show annotation]]
* TCP protocol runs only in the end systems and not in theintermediate network elements (routers and link-layer switches *
[#^k15gxu6tvc7|show annotation]]
* A TCP connection provides a full-duplex service: If there is a TCP connection between Process A onone host and Process B on another host, then application-layer data can flow from Process A toProcess B at the same time as application-layer data flows from Process B to Process A. A TCPconnection is also always point-to-point, that is, between a single sender and a single receiver *
[#^vy878omb3go|show annotation]]
* three-way handshake *
[#^ncfqg6lrda|show annotation]]
* TCP directs this data to the connection’s send buffer, which is one of the buffers that is set aside duringthe initial three-way handshake *
[#^b01t4jzhwbq|show annotation]]
* TCP pairs each chunk of client data with a TCP header, thereby forming TCP segments. The segmentsare passed down to the network layer, where they are separately encapsulated within network-layer IPdatagrams. *
[#^8yz3gxi453j|show annotation]]
* Two of the most important fields in the TCP segment header are the sequence number field and theacknowledgment number field. These fields are a critical part of TCP’s reliable data transfer service. *
[#^wsl4m7ajrxm|show annotation]]
* The sequence number for a segment is therefore the byte-streamnumber of the first byte in the segment. *
[#^qbrag81auj8|show annotation]]
* Recallthat TCP is full-duplex, so that Host A may be receiving data from Host B while it sends data to Host B(as part of the same TCP connection *
[#^e2rzm2utp5f|show annotation]]
* The acknowledgment number that Host A puts in its segment isthe sequence number of the next byte Host A is expecting from Host B *
[#^anqbts7cyz|show annotation]]
* Because TCP only acknowledges bytes up to the first missing byte in the stream, TCP issaid to provide cumulative acknowledgments. *
[#^g67bw9ca4ff|show annotation]]
* The sample RTT, denoted SampleRTT,for a segment is the amount of time between when the segment is sent (that is, passed to IP) and whenan acknowledgment for the segment is received. *
[#^ko2wrz3ey3|show annotation]]
* TCP creates a reliable data transfer service on top of IP’s unreliable best-effort service. *
[#^4edm3rvrybl|show annotation]]
* TCP receive buffer isuncorrupted, without gaps, without duplication, and in sequence; *
[#^wtv7uie848l|show annotation]]
* duplicate ACK is an ACKthat reacknowledges a segment for which the sender has already received an earlier acknowledgment *
[#^y68fvv8pm0e|show annotation]]
* TCP’s error-recovery mechanism is probably bestcategorized as a hybrid of GBN and SR protocols *
[#^fb28aia0fzd|show annotation]]
* selective acknowledgment [RFC 2018], allows a TCPreceiver to acknowledge out-of-order segments selectively rather than just cumulatively acknowledgingthe last correctly received, in-order segment. When combined with selective retransmission—skippingthe retransmission of segments that have already been selectively acknowledged by the receiver—TCPlooks a lot like our generic SR protocol *
[#^w4epnh272l8|show annotation]]
* TCP provides a flow-control service to its applications to eliminate the possibility of the senderoverflowing the receiver’s buffer. *
[#^o2ys3hud5yk|show annotation]]
* Flow control is thus a speed-matching service—matching the rate atwhich the sender is sending against the rate at which the receiving application is reading *
[#^4r1hi3a9oh5|show annotation]]
* TCP provides flow control by having the sender maintain a variable called the receive window.Informally, the receive window is used to give the sender an idea of how much free buffer space isavailable at the receiver *
[#^x2sohwy30xn|show annotation]]
* During the life of a TCP connection, the TCP protocol running in each host makes transitions throughvarious TCP states *
[#^y39xzlelczh|show annotation]]
* TCP must use end-to-endcongestion control rather than network-assisted congestion control, since the IP layer provides noexplicit feedback to the end systems regarding network congestion *
[#^aua7v3sy8yu|show annotation]]
* he approach taken by TCP is to have each sender limit the rate at which it sends traffic into itsconnection as a function of perceived network congestion *
[#^qbbvezz6ud|show annotation]]
* The TCP congestion-control mechanismoperating at the sender keeps track of an additional variable, the congestion window. The congestionwindow, denoted cwnd, imposes a constraint on the rate at which a TCP sender can send traffic intothe network. *
[#^g9xtsehinuf|show annotation]]
* Because TCP uses acknowledgments to trigger (or clock) its increase in congestion window size, TCPis said to be self-clocking. *
[#^6qv7sbcuz0y|show annotation]]
* A lost segment implies congestion, and hence, the TCP sender’s rate should be decreasedwhen a segment is lost. *
[#^f3ckvej3lgl|show annotation]]
* An acknowledged segment indicates that the network is delivering the sender’s segments tothe receiver, and hence, the sender’s rate can be increased when an ACK arrives for apreviously unacknowledged segment *
[#^x71zksyus1q|show annotation]]
* Bandwidth probing *
[#^138yve5zywak|show annotation]]
* Slow Start *
[#^i1h21dmd64d|show annotation]]
* in the slow-start state, the value of cwnd begins at 1MSS and increases by 1 MSS every time a transmitted segment is first acknowledged *
[#^nxd5c2b7lj|show annotation]]
* if there is a loss event (i.e., congestion) indicated by a timeout, the TCP sender sets the value ofcwnd to 1 and begins the slow start process anew. *
[#^3ct00u9alya|show annotation]]
* when the value of cwnd equals ssthresh, slow start ends and TCP transitionsinto congestion avoidance mode *
[#^oqkme12pa4|show annotation]]
* On entry to the congestion-avoidance state, the value of cwnd is approximately half its value whencongestion was last encountered—congestion could be just around the corner! Thus, rather thandoubling the value of cwnd every RTT, TCP adopts a more conservative approach and increases thevalue of cwnd by just a single MSS every RTT *
[#^aj74h2cmaqn|show annotation]]
* In fast recovery, the value of cwnd is increased by 1 MSS for every duplicate ACK received for themissing segment that caused TCP to enter the fast-recovery state *
[#^xxsqybtwbn|show annotation]]
* TCP congestion control is often referred to as an additive-increase,multiplicative-decrease (AIMD) *
[#^ces08uywihm|show annotation]]
* When running over UDP, applications can pump theiraudio and video into the network at a constant rate and occasionally lose packets, rather than reducetheir rates to “fair” levels at times of congestion and not lose any packets *
[#^zmkbmkekby|show annotation]]
* extensions to both IP and TCP [RFC 3168] have beenproposed, implemented, and deployed that allow the network to explicitly signal congestion to a TCP *
[#^cw8z7eambv|show annotation]]
* sender and receiver. This form of network-assisted congestion control is known as Explicit CongestionNotification *
[#^7mat2cvj37a|show annotation]]
* At the network layer, two bits (with four possible values, overall) in the Type of Service field of the IPdatagram header (which we’ll discuss in Section 4.3) are used for ECN *
[#^xp1a8afc1a9|show annotation]]
* The primary role of the network layer is deceptively simple—to move packets from a sending host to areceiving host. To do so, two important network-layer functions can be identified: *
[#^gu7rujff60e|show annotation]]
* Forwarding. When a packet arrives at a router’s input link, the router must move the packet to theappropriate output link. For example, a packet arriving from Host H1 to Router R1 in Figure 4.1 mustbe forwarded to the next router on a path to H2 *
[#^d11d2w52qpb|show annotation]]
* Routing. The network layer must determine the route or path taken by packets as they flow from asender to a receiver. The algorithms that calculate these paths are referred to as routingalgorithms. *
[#^macgjxq87np|show annotation]]
* Forwarding refers to the router-localaction of transferring a packet from an input link interface to the appropriate output link interface *
[#^q1rsv58xfgb|show annotation]]
* Routing refers to the network-wide process that determines the end-to-endpaths that packets take from source to destination *
[#^5ih1iiuun88|show annotation]]
* hardware *
[#^78hyiiadr3r|show annotation]]
* software *
[#^732g2ijonrs|show annotation]]
* A key element in every network router is its forwarding table. A router forwards a packet by examiningthe value of one or more fields in the arriving packet’s header, and then using these header values toindex into its forwarding table *
[#^6jk2cw1vveu|show annotation]]
* the routing algorithm determines the contents of the routers’ forwarding tables *
[#^b9ua37zgk1|show annotation]]
* software-defined networking (SDN), where the network is “software-defined”because the controller that computes forwarding tables and interacts with routers is implemented insoftware *
[#^67f7uisn6v|show annotation]]
* Four router components can beidentified *
[#^1mphiuyy95k|show annotation]]
* Input ports. An input port performs several key functions. It performs the physical layer function ofterminating an incoming physical link at a router *
[#^x4mtagcvrdn|show annotation]]
* Switching fabric. The switching fabric connects the router’s input ports to its output ports *
[#^cnuzoue418a|show annotation]]
* Output ports. An output port stores packets received from the switching fabric and transmits thesepackets on the outgoing link by performing the necessary link-layer and physical-layer functions *
[#^y954dcd4ylo|show annotation]]
* Routing processor. The routing processor performs control-plane functions. In traditional routers, itexecutes the routing protocols (which we’ll study in Sections 5.3 and 5.4), maintains routing tablesand attached link state information, and computes the forwarding table for the router. In SDNrouters, the routing processor is responsible for communicating with the remote controller in order to(among other activities) receive forwarding table entries computed by the remote controller, andinstall these entries in the router’s input ports *
[#^ab8rms6bml|show annotation]]
* Destination-based forwarding *
[#^cp0glqsu217|show annotation]]
* Generalized forwarding *
[#^ev5ojudt1|show annotation]]
* the input port’s line-termination function and link-layer processing implement the physical and link layers for that individualinput link *
[#^z83mwxuv8hb|show annotation]]
* With this style of forwarding table, the router matches a prefix of the packet’s destination address withthe entries in the table *
[#^5sd2ptxqnsn|show annotation]]
* When there are multiple matches, the router uses the longest prefix matching rule; thatis, it finds the longest matching entry in the table *
[#^142z5mfwhrlj|show annotation]]
* IPv4 datagram format *
[#^ll8fcloo8b|show annotation]]
* the Internet’s network-layer packet is referred to as a datagram *
[#^2nyjg42xwzs|show annotation]]
* The key fields in the IPv4 datagram are thefollowing: *
[#^e8jqwbv0luf|show annotation]]
* Version number *
[#^tcrjfmr8i4|show annotation]]
* Header length *
[#^km9z8kq018f|show annotation]]
* Type of service. The type of service (TOS) *
[#^w4rk7gdu2tf|show annotation]]
* Datagram length *
[#^91l05nvazg7|show annotation]]
* Identifier, flags, fragmentation offset *
[#^fuv8mbh4n5u|show annotation]]
* Time-to-live. The time-to-live (TTL) field is included to ensure that datagrams do not circulateforever *
[#^vcao1rg8jx7|show annotation]]
* Protocol. *
[#^t5kx2tq06gm|show annotation]]
* Thevalue of this field indicates the specific transport-layer protocol to which the data portion of this IPdatagram should be passed. For example, a value of 6 indicates that the data portion is passed toTCP *
[#^qdmk11l3nk8|show annotation]]
* Header checksum. The header checksum aids a router in detecting bit errors in a received IPdatagram. *
[#^iw15etcegtr|show annotation]]
* Source and destination IP addresses *
[#^qxqhzqeczjd|show annotation]]
* Options *
[#^y8bvhmwik4n|show annotation]]
* Data (payload) *
[#^mllefsnl8vc|show annotation]]
* an IP datagram has a total of 20 bytes of header *
[#^u1jcmafew3|show annotation]]
* The maximum amount of data that a link-layer frame can carry iscalled the maximum transmission unit (MTU) *
[#^4hs9wdp4icn|show annotation]]
* how are you going tosqueeze this oversized IP datagram into the payload field of the link-layer frame? The solution is tofragment the payload in the IP datagram into two or more smaller IP datagrams, encapsulate each ofthese smaller IP datagrams in a separate link-layer frame; and send these frames over the outgoing link.Each of these smaller datagrams is referred to as a fragment *
[#^atzrzdi8iep|show annotation]]
* Fragments need to be reassembled before they reach the transport layer at the destination *
[#^pd0p5zwyu7q|show annotation]]
* the designers of IP (version 4) put identification, flag, andfragmentation offset fields in the IP datagram header. When a datagram is created, the sending hoststamps the datagram with an identification number as well as source and destination addresses.Typically, the sending host increments the identification number for each datagram it sends. When arouter needs to fragment a datagram, each resulting datagram (that is, fragment) is stamped *
[#^jqjmbcjojd9|show annotation]]
* A datagram of 4,000 bytes (20 bytes of IP header plus 3,980 bytesof IP payload) arrives at a router and must be forwarded to a link with an MTU of 1,500 bytes. Thisimplies that the 3,980 data bytes in the original datagram must be allocated to three separate fragments(each of which is also an IP datagram) *
[#^u6rzrd53bl|show annotation]]
* A host typically has only a single link into the network; when IP in thehost wants to send a datagram, it does so over this link. The boundary between the host and thephysical link is called an interface *
[#^7cdg7ttuinq|show annotation]]
* P requires each host and routerinterface to have its own IP address. Thus, an IP address is technically associated with an interface,rather than with the host or router containing that interface *
[#^pa00ocjs3r|show annotation]]
* there are thus a total of 2 (or approximately4 billion) possible IP addresses *
[#^o2urxw156u|show annotation]]
* For example, consider the IP address 193.32.216.9. The 193 isthe decimal equivalent of the first 8 bits of the address; the 32 is the decimal equivalent of the second 8bits of the address, and so on *
[#^0z38ijz3cht9|show annotation]]
* this network interconnecting three host interfaces and one router interface forms a subnet *
[#^rqwotat6pf7|show annotation]]
* /24 (“slash-24”) notation, sometimes known as a subnet mask, indicates that the leftmost 24bits of the 32-bit quantity define the subnet address *
[#^hsga4557dcb|show annotation]]
* The Internet’s address assignment strategy is known as Classless Interdomain Routing (CIDR—pronounced cider) [RFC 4632]. CIDR generalizes the notion of subnet addressing *
[#^07zu8drx5ar7|show annotation]]
* The x most significant bits of an address of the form a.b.c.d/x constitute the network portion of the IPaddress, and are often referred to as the prefix *
[#^p7nob3yj4m|show annotation]]
* When a host sends a datagram with destination address 255.255.255.255, themessage is delivered to all hosts on the same subnet. *
[#^hy5w9ycks19|show annotation]]
* IP addresses are managed under the authorityof the Internet Corporation for Assigned Names and Numbers (ICANN) *
[#^fahnfsv8zgi|show annotation]]
* The role of the nonprofit ICANN organization [NTIA 1998] is not onlyto allocate IP addresses, but also to manage the DNS root servers *
[#^087kja55entv|show annotation]]
* Host addresses can alsobe configured manually, but typically this is done using the Dynamic Host Configuration Protocol(DHCP) [RFC 2131]. DHCP allows a host to obtain (be allocated) an IP address automatically *
[#^elf7flnmh9q|show annotation]]
* Because of DHCP’s ability to automate the network-related aspects of connecting a host into a network,it is often referred to as a plug-and-play or zeroconf (zero-configuration) protocol. *
[#^mbsj4c8qrr|show annotation]]
* DHCP is a client-server protocol *
[#^mic4rfv1xa|show annotation]]
* The four steps are: *
[#^q5vrohgmuxk|show annotation]]
* DHCP server discovery. The first task of a newly arriving host is to find a DHCP server with whichto interact. This is done using a DHCP discover message *
[#^3lyfkavb089|show annotation]]
* DHCP server offer(s). A DHCP server receiving a DHCP discover message responds to the clientwith a DHCP offer message that is broadcast to all nodes on the subnet, again using the IPbroadcast address of 255.255.255.255 *
[#^hpeup49nbc9|show annotation]]
* DHCP request. The newly arriving client will choose from among one or more server offers andrespond to its selected offer with a DHCP request message *
[#^4oungvqgpm7|show annotation]]
* DHCP ACK. The server responds to the DHCP request message with a DHCP ACK message,confirming the requested parameters. *
[#^93c53lrvwuu|show annotation]]
* From a mobility aspect, DHCP does have one very significant shortcoming. Since a new IP address isobtained from DHCP each time a node connects to a new subnet, a TCP connection to a remoteapplication cannot be maintained as a mobile node moves between subnets. *
[#^5ya9ooyfis9|show annotation]]
* Expanded addressing capabilities. IPv6 increases the size of the IP address from 32 to 128 bits. *
[#^ocyoucwbr1|show annotation]]
* A streamlined 40-byte header *
[#^v4uxvy5ykh|show annotation]]
* Flow labeling. IPv6 has an elusive definition of a flow *
[#^9sco31wsc3m|show annotation]]
* Version *
[#^hf4z2zqdojl|show annotation]]
* Traffic class. The 8-bit traffic class field, like the TOS field in IPv4, can be used to give priority tocertain datagrams within a flow *
[#^g77jjyebrzw|show annotation]]
* Flow label *
[#^rab0f8208cs|show annotation]]
* Payload length *
[#^7fdnxvgzs6m|show annotation]]
* Next header. This field identifies the protocol to which the contents (data field) of this datagram willbe delivered (for example, to TCP or UDP *
[#^r6uyvd1no3k|show annotation]]
* Hop limit. The contents of this field are decremented by one by each router that forwards thedatagram. If the hop limit count reaches zero, the datagram is discarded *
[#^2t5vnipdoej|show annotation]]
* Source and destination addresses *
[#^drt8a63ygcg|show annotation]]
* Data *
[#^0yvuolqj75b9|show annotation]]
* Fragmentation/reassembly. IPv6 does not allow for fragmentation and reassembly at intermediaterouters; these operations can be performed only by the source and destination. If an IPv6 datagramreceived by a router is too large to be forwarded over the outgoing link, the router simply drops thedatagram and sends a “Packet Too Big” ICMP error message (see Section 5.6) back to the sender.The sender can then resend the data, using a smaller IP datagram size. *
[#^c1opyzh5blq|show annotation]]
* Header checksum. Because the transport-layer (for example, TCP and UDP) and link-layer (forexample, Ethernet) protocols in the Internet layers perform checksumming, the designers of IPprobably felt that this functionality was sufficiently redundant in the network layer that it could beremoved. *
[#^iolwxtvtwzp|show annotation]]
* Options. An options field is no longer a part of the standard IP header. However, it has not goneaway. Instead, the options field is one of the possible next headers pointed to from within the IPv6header. *
[#^m02k940y55|show annotation]]
* routing algorithms, whose goal is to determine good paths (equivalently,routes), from senders to receivers, through the network of routers. Typically, a “good” path is one that hasthe least cost *
[#^fbc213dz9hb|show annotation]]
* an edge’s cost mayreflect the physical length of the corresponding link *
[#^t4nwm2zmlmo|show annotation]]
* we’ll only consider undirected graphs (i.e., graphs whoseedges do not have a direction) *
[#^ku3lopdm64|show annotation]]
* Also, a node y is said to be a neighbor of node x if (x, y) belongs toE *
[#^9sr92490igd|show annotation]]
* the least-cost path is also the shortest path *
[#^roe0v8dqlz|show annotation]]
* Broadly, one way in which we can classify routing algorithms is according to whether they are centralizedor decentralized. *
[#^sket46k3q4n|show annotation]]
* A centralized routing algorithm computes the least-cost path between a source and destinationusing complete, global knowledge about the network *
[#^j9h2kr35ovs|show annotation]]
* Algorithms with global stateinformation are often referred to as link-state (LS) algorithms, since the algorithm must be aware ofthe cost of each link in the network. *
[#^51ew93hwmh3|show annotation]]
* In a decentralized routing algorithm, the calculation of the least-cost path is carried out in an *
[#^mp4bm5vd4fh|show annotation]]
* iterative, distributed manner by the routers. No node has complete information about the costs of allnetwork links. *
[#^qfvxul2z1ig|show annotation]]
* A second broad way to classify routing algorithms is according to whether they are static or dynamic. Instatic routing algorithms, routes change very slowly over time, often as a result of human intervention(for example, a human manually editing a link costs). Dynamic routing algorithms change the routingpaths as the network traffic loads or topology change. *
[#^me5voyzpuaj|show annotation]]
* A third way to classify routing algorithms is according to whether they are load-sensitive or load-insensitive. In a load-sensitive algorithm, link costs vary dynamically to reflect the current level ofcongestion in the underlying link. If a high cost is associated with a link that is currently congested, arouting algorithm will tend to choose routes around such a congested link. *
[#^yjqh65qufee|show annotation]]
* Today’s Internet routing algorithms (such as RIP, OSPF, and BGP) are load-insensitive, as alink’s cost does not explicitly reflect its current (or recent past) level of congestion *
[#^4spjiec1bcy|show annotation]]
Nav