Download presentation
Presentation is loading. Please wait.
1
Protocol Architecture
Protocols Connection-Oriented and Connectionless Protocols OSI Standard Architecture TCP/IP Protocol Architecture Vertical Communication Between Layer Processes
2
1. Protocols We will look first at standards that govern messages.
Such standards are called protocols. In fact, many standards have “protocol” in their names. We will use the terms “standards” and “protocols” interchangeably in this book.
3
Key Elements of a Protocol
Syntax Data formats Signal levels Semantics Control information Error handling Timing Speed matching Sequencing
4
Standards Standards are rules of operation
that allow two hardware or software processes to work together Even if they are from different vendors <Read the definition.> Because standards allow products from different vendors to work together, standards create competition. You can buy products from any standards-compliant vendor. This produces all of the usual benefits of competition: more competitors, lower costs, and more rapid feature development.
5
Figure 2-1: Standards Govern the Exchange of Messages
Messages must be governed by strict rules Because computers are not intelligent What do standards govern in networking? They govern the exchange of messages. As long as two communicating parties send messages in a way dictated by the standard they are using, they don’t care what vendor produced the other product. In the play “My Fair Lady,” Professor Henry Higgens says that. “The French don’t care what you do, as long as you pronounce it correctly!” Roughly speaking, this is how standards work. In this textbook, the “standard” language is English. However, it can be read by someone who has a different native language if they can follow the standard by reading English. Message
6
Figure 2-1: Standards Govern the Exchange of Messages (Continued)
Standards Govern Syntax Syntax: the organization of the message Human example: “Susan thanked Tom” This sentence has a subject-verb-object syntax Standards Govern Semantics Semantics: The meaning of the message Humans understand this message easily <Read through the slide.>
7
Figure 2-1: Standards Govern the Exchange of Messages, Continued
General Message Syntax (Organization) General Message Organization (Figure 2-4) Primary parts of messages Data Field (content to be delivered) Header (everything before the data field) Trailer (everything after the data field) The header and trailer act like a delivery envelope for the data field. Moving from the specific syntax of HTTP messages to the syntax of messages in general, we see that in general a message can have three parts. The most important part is the data field, which contains the content to be delivered. This is like the letter in an envelope. The data field is usually by far the longest part of the message. The header is everything that comes before the data field, and the trailer is everything that comes after the data field. The header and trailer act like a delivery envelope for the data field. Trailer Data Field Header
8
Figure 2-1: Standards Govern the Exchange of Messages, Continued
General Message Syntax (Organization) Header and trailer are further divided into fields Trailer Data Field Header Other Header Field Destination Address Field is Used by Switches and Routers Like the Address on an Envelope Message with all three parts Now that we have seen the three basic parts, we will look more closely at the header and trailer. This figure shows that the header is divided into smaller sections called fields. The most important header field is the destination address field. This is like the address on a postal letter. Switches and routers use this field to decide how to forward an incoming message back out. Trailers can also be divided into fields.
9
Figure 2-4: General Message Organization, Continued
Data Field Header Other Header Field Destination Address Field Message without a trailer Usually only data link layer messages have trailers Not all messages have all three parts. For example, trailers are only found at something called the data link layer, which we will see later in this chapter. Most messages DO NOT have trailers!
10
Figure 2-4: General Message Organization, Continued
Header Message with only a header e.g. TCP supervisory messages are pure headers (there is no data field content to deliver) Other Header Field Destination Address Field Some messages only have a header. This is true of supervisory messages in TCP—a standard we will see alter in this chapter. There is no data field in TCP because there is no content to be delivered other than the supervisory information in the header. Some other protocols, including the Internet Protocol, carry supervisory messages in their data fields. We will see this in Chapter 8.
11
2. Connection-Oriented and Connectionless Protocols
In addition to being either reliable or unreliable, protocols are either connection-oriented or connectionless.
12
Figure 2-6: Connection-Oriented and Connectionless Protocols
Connection-Oriented Protocol Connectionless Protocol Open Connection A B A B Message (No Sequence Number) Message 1 (Seq. Num = A1) Connection-oriented protocols Formal openings and closings Also have sequence numbers so that the receiver can put messages in order And so the receiver can send Acknowledgments for specific messages Message 3 (Seq. Num B1) Message 2 (Seq. Num = A2) Connection-oriented protocols require the communicating partners to have formal openings and closings. Both sides must agree to open the communication, and. generally speaking, both sides must agree to close the communication. Telephone conversations are like this. At the beginning of the cal, therel is at least a tacit negotiation that this is a good time to talk. At the end, simply hanging up is rude. With formal connections, the two parties can keep track of all communication in the communication. Message have sequence numbers, so if messages arrive out of order, they can be put into order. Also, acknowledgements can refer to specific messages, so there is no need to stop an wait for an acknowledgement before sending the next message. Close Connection
13
HTTP is connectionless
Figure 2-6: Connection-Oriented and Connectionless Protocols, Continued Client PC Browser Webserver Application HTTP Request HTTP is connectionless No Openings No Closings No Sequence Numbers No Acknowledgments HTTP is a connectionless protocol There is no formal connection opening or closing in HTTP. There are no sequence numbers or acknowledgements. In connectionless protocols, the sender simply sends the message. works this way. <Ask whether a postal letter is connectionless or connection-oriented. Answer: It is connectionless.> [Advanced note: Because HTTP is connectionless, if there is a series of HTTP exchanges, as in e-commerce transactions, the protocol cannot keep the messages in order or remember what happened in an earlier message. To get around this problem, the webserver can place small text files on your computer to remind it what happened in the last step or steps. These small files are called cookies.]
14
Figure 2-6: Connection-Oriented and Connectionless Protocols, Continued
In TCP Client PC TCP Process Webserver TCP Process Connection-Opening Messages Messages During the Connection Time In addition to being reliable, TCP, is connection-oriented. There are formal openings and closings to TCP sessions. We will see these in detail in Chapter 8. Connection-Closing Messages
15
Figure 2-7: Advantages and Disadvantages or Connection-Oriented Protocols
Thanks to sequence numbers, the parties can tell if a message is lost. Error messages, such as ACKs can refer to specific messages. Long messages can be fragmented into many smaller messages that can fit inside packets. Fragmentation followed by reassembly on the destination host is an important concept in networking. <Read the slide.>
16
Figure 2-7: Advantages and Disadvantages or Connection-Oriented Protocols, Cont.
The presence of many supervisory messages consumes existing bandwidth The processing of connection information places a heavy processing load on computers connected to the network <Read the slide.>
17
3. OSI Standard Architecture
We are switching topics again, this time to look at something called a standards architecture.
18
Standards Architecture
A Standards Architecture is a Broad Plan for Creating Standards Break the problem of effective communication into smaller pieces for ease of development Develop standards for the individual pieces Just as a building architect creating a general plan for a house before designing the individual rooms in detail <Read the slide.>
19
OSI Open Systems Interconnection
Developed by the International Organization for Standardization (ISO) Seven layers A theoretical system delivered too late! TCP/IP is the de facto standard
20
OSI - The Model A layer model
Each layer performs a subset of the required communication functions Each layer relies on the next lower layer to perform more primitive functions Each layer provides services to the next higher layer Changes in one layer should not require changes in other layers
21
Why Layer? Breaking up large tasks into smaller tasks and assigning tasks to different individuals is common in all fields Specialization in standards design (EEs for physical layer, application specialists for application layer, etc.) Simplification in standards design for individual standards If you change a standard at one layer, you do not have to change standards at other layers <This is not essential material. If you want to cover it, read the slide.>
22
OSI Layers
23
The OSI Environment
24
Protocol Data Units (PDU)
At each layer, protocols are used to communicate Control information is added to user data at each layer (PDU = Control + Data) Transport layer may fragment user data Each fragment has a transport header added Destination SAP Sequence number Error detection code This gives a transport protocol data unit
25
Protocol Data Units
26
OSI as Framework for Standardization
27
Figure 2.9 Layer Specific Standards
28
4. TCP/IP Protocol Architecture
29
TCP/IP Protocol Architecture
Developed by the US Defense Advanced Research Project Agency (DARPA) for its packet switched network (ARPANET) Used by the global Internet No official model but a working one. Application layer Transport layer Internet layer Data Link layer (Network Access) Physical layer (host-to-host)
30
Hybrid TCP/IP-OSI Architecture
General Purpose Layer Specific Layer Purpose Application-application communication Application (5) Application-application interworking Transmission across an internet Transport (4) Host-host communication Internet (3) Packet delivery across an internet Transmission across a single network (LAN or WAN) Data Link (2) Frame delivery across a network Physical (1) Device-device connection <Note to teacher, not to be read: Almost no companies use the pure OSI or pure TCP/IP architectures in practice. What they use is a hybrid of OSI at Layers 1 and 2 and TCP/IP or another standards architecture at Layers 3 and 4.> Now let’s look at the most widely used standards architecture, the hybrid TCP/IP-OSI standards architecture. We will see later why it has this rather long name. the architecture has three general purposes. <Read the first column.> These general purposes are further subdivided into specific standards layers. <Go through the second and third columns.>
31
Figure 2-8: Hybrid TCP/IP-OSI Architecture, Continued
Physical and Data Link Layer Standards Govern Communication Through a Single Network LAN or WAN We will begin by discussing the architecture at its two bottom layers: the physical and data link layers. As noted in the previous slide, these two layers together govern communication in a single network—a single LAN or a single WAN.
32
Physical Layer Physical interface between data transmission device (e.g. computer) and transmission medium or network Characteristics of transmission medium Signal levels Data rates etc.
33
Figure 2-9: Physical and Data Link Layer Standards in a Single Network
Physical Layer Physical layer standards govern transmission between adjacent devices connected by a transmission medium Physical Link A-X1 Switch X1 <Read the bullet point.> <Then point out the two physical links—A-X1 and X1-X2.> Host A Switch X2 Physical Link X1-X2
34
Figure 2-9: Physical and Data Link Layer Standards in a Single Network, Continued
Data link layer standards govern the transmission of frames across a single network—typically by sending them through several switches along the data link Data Link A-B Host B <Read the slide.> <As a check on their understanding, ask, “How many data links are there in the figure?” Answer: 1 (HostA—Host B).> <Then ask, “How many physical links there are in the figure?” Answer: 3 Host A to Switch X1, Switch X1 to Switch X2, and Switch X2 to Host B.> Switch X1 Host A Switch X2
35
Figure 2-9: Physical and Data Link Layer Standards in a Single Network, Continued
Data link layer standards also govern Frame organization Switch operation <Read the Slide.> <Tell students that a message at the data link layer is called a frame.>
36
Figure 2-9: Physical and Data Link Layer Standards in a Single Network, Continued
3 Physical Links 1 Data Link 2 Switches Host A Switch Data Link A-R1 Switch Physical Link A-X1 Server Station Switch X1 <This is a wrap-up slide for the physical and data link layers.> <Note the box in the upper-right quadrant. Show the three physical links, the one data link, and the two switches.> <Point out that the number of switches is always one LESS than the number of physical links.> <Note that the destination host is a router, which will communicate outside the network. The router is the destination host within this single network> Physical Link X1-X2 Physical Link X2-R1 Switch X2 Mobile Client Station Router R1
37
Figure 2-10: Internet and Data Link Layers in an Internet
Internet and Transport Layers An internet is a group of networks connected by routers so that any application on any host on any network can communicate with any application on any other host on any other network Internet and transport layer standards govern communication across an internet composed of two or more single networks <Note that we have been looking at single networks, which are governed by the physical and data link layers.> <Now, we will look at the next two layers, the internet and transport layers, which govern transmission through an internet.> <Read the slide.>
38
Figure 2-10: Internet and Data Link Layers in an Internet, Continued
Internet Layer Internet layer standards govern the transmission of packets across an internet—typically by sending them through several routers along the route Messages at the internet layer are called packets Internet layer standards also govern packet organization and router operation We will look first at the internet layer. <Read the slide.> Note that messages at the data link layer are called frames, while messages at the internet layer are called packets. Router 1 Router 2
39
Figure 2-10: Internet and Data Link Layers in an Internet, Continued
Host A Data Link A-R1 R1 Network X 3 Data Links: One per Network 1 Route per Internet Network Y Data Link R1-R2 Network Z Route A-B This figure compares data links at the data link layer and routes at the internet layer. A route is the packet’s path through the internet. There is only one route in an internet. <Show it.> A data link is the frame’s path through a single network. There are as many data links as there are single networks (3 in this case). <Show it.> R2 Host B Data Link R3-B
40
Figure 2-10: Internet and Data Link Layers in an Internet, Continued
Frame X Packet Data Link A-R1 Switch In Network X: Two Destination Addresses: Packet: Host B (Destination Host) Frame: Router R1 Host A Switch Server Station Switch X1 <Hand out a copy of Figure 2-10 so that students can see the entire figure.> <Point out that this slide shows the top network, Network X> <Go through the box in the upper-right> <Note that the packet’s destination address is that of Host B, the destination host at the end of the route.> <Note that the frame only goes as far as Router R1. Therefore, the frame’s destination address is that of Router R1.> Mobile Client Station Switch X2 Route A-B Router R1 Network X
41
Figure 2-10: Internet and Data Link Layers in an Internet, Continued
To Network X Route A-B Router R1 Frame Y Data Link R1-R2 In Network Y: Two Destination Addresses: Packet: Host B (Destination Host) Frame: Router R2 Packet <Point out that this slide shows the middle network, Network Y.> <Go through the box in the left middle of the screen.> <Note that the packet’s destination address is still that of Host B, the destination host at the end of the route. This never changes.> <Note that the frame carrying the packet only goes as far as Router R2. Therefore, the frame’s destination address is that of Router R2.> To Network Z Router R2 Network Y
42
Figure 2-10: Internet and Data Link Layers in an Internet, Continued
Frame Z Packet Data Link R2-B Switch Z1 Host B Router R2 In Network Z: Two Destination Addresses: Packet: Host B (Destination Host) Frame: Host B Switch Z2 <Point out that this slide shows the bottom network, Network Z.> <Go through the box in the left middle.> <Note that the packet’s destination address is still that of Host B, the destination host at the end of the route. Again, the packet’s address never changes.> <Note that the frame goes all the way to the destination host. Therefore, the frame’s destination address is that of the destination host, Host B.> <Point out that Host B has two addresses—an internet layer address and a data link layer address.> Mobile Client Stations Switch X2 Router Network Z
43
In an internet with hosts separated by N networks, there will be:
Frames and Packets In an internet with hosts separated by N networks, there will be: 2 hosts One packet (going all the way between hosts) One route (between the two hosts) N frames (one in each network) N-1 routers (change frames between each pair of networks) There usually are many switches within single networks There usually are many physical links within networks <Go through the slide.>
44
Figure 2-11: Internet and Transport Layer Standards
Transport layer standards govern aspects of end-to- end communication between two end hosts that are not handled by the internet layer These standards allow hosts to work together even if the two computers are from different vendors and have different internal designs Now we are moving to Layer 4—the transport layer. <Go through the slide.>
45
Figure 2-11: Internet and Transport Layer Standards, Continued
end-to-end (host-to-host) TCP is connection-oriented, reliable UDP is connectionless and unreliable Server Client PC Internet Layer (usually IP) hop-by-hop (host-router or router-router) connectionless, unreliable This slide shows how the internet and transport layers are related. At the internet layer, the standard usually is the Internet Protocol (IP). IP operates on a hop-by-hop basis from the source host to the first router, between each router, and from the last router to the destination host. IP is unreliable and connectionless, so uncorrected errors will occur, and packets may arrive out of order. The transport layer is an end-to-end layer. It only operates on the two hosts. There are two transport layer standards. TCP, which we saw earlier, is connection-oriented and reliable. It fixes errors and makes sure that packets arrive in order. There also is a second transport layer standard, UDP. UDP is connectionless and unreliable. As we will see later, not all applications need a reliable transport layer to fix problems, and UDP places a lighter burden on the network and the two computers. Note that making IP reliable would require error checking on each hop between routers. This would make routers very expensive and would be overkill because errors are fairly rare. However, making TCP reliable only requires error correction to be done on two devices—the two hosts In addition, if the transport layer is reliable, it will fix errors that occurred at lower layers as well Router 1 Router 2 Router 3
46
Figure 2-12: Application Layer Standards
The application layer governs how two applications work with each other, even if they are from different vendors Now we are moving to the top layer in the hybrid TCP/IP-OSI architecture” the application layer. <Read the bullet point, then note that the two application programs in this example are the browser on the client PC and the webserver application program on the webserver.> Browser Webserver Application Client PC Webserver
47
Figure 2-12: Application Layer Standards
There are more application layer standards than any other type of standard because there are many applications HTTP Database Instant Messaging FTP Etc. <Read the slide.> <Ask how many students do music downloading. Ask if they think the communication between their device and the music source is governed by a standard. (It must be.). Ask at what layer the standard works. (It’s an application, so it MUST be an application layer standard.)>
48
Some Protocols in TCP/IP Suite
49
5. Vertical Communication Between Layer Processes
We have talked about standards at various layers. On hosts, switches, and routers, there is a hardware or software process that implements each layer. We will look at how the processes at different layers interact on a single computer, switch, or router.
50
Figure 2-18: Layered Communication on the Source Host
The process begins when a browser creates an HTTP request message Application Process HTTP Message Passes Message Down to Transport Process Transport Process HTTP Message TCP Hdr Let’s see what happens when a browser creates an HTTP request message. The application process is the browser on the client PC. It creates the HTTP request message. The application process then passes the application layer message—the HTTP request message—down to the next-lower-layer process, the transport layer process. HTTP requires TCP at the transport layer. The transport process encapsulates the application layer message in the data field of a TCP message. The transport process does this by adding a TCP header to the HTTP request message. Encapsulation of HTTP Message in Data Field of TCP Segment
51
Figure 2-18: Layered Communication on the Source Host, Continued
When a layer process (N) creates a message, it passes it down to the next- lower-layer process (N-1) immediately The receiving process (N-1) will encapsulate the Layer N message, that is, place it in the data field of its own (N-1) message Let’s look at the vertical communication process more abstractly. <Read the slide.> <Ask: In the previous slide, what was layer N? Answer: The application layer.> <Ask: In the previous slide, what was layer N-1? Answer: The transport layer.>
52
Figure 2-18: Layered Communication on the Source Host, Continued
Transport Process HTTP Message TCP Hdr Internet Process HTTP Message TCP Hdr IP Hdr Now let’s look at what the transport layer process does with the TCP message. The transport layer is now Layer N. It passes the message down to Layer N-1 – the internet layer process. The internet layer process encapsulates the TCP message in the data field of an IP packet by adding an IP header. We now have an IP packet consisting of the HTTP message, a TCP header, and an IP header. Encapsulation of TCP Segment in Data Field of IP Packet
53
Figure 2-18: Layered Communication on the Source Host, Continued
Internet Process HTTP Message TCP Hdr IP Hdr Data Link Process Eth Trlr HTTP Message TCP Hdr IP Hdr Eth Hdr Now we will look at what the internet layer process does. Now, the internet layer is now Layer N. The internet process passes the IP packet down to the N-1 layer, the data link layer. The data link layer encapsulates the IP packet in a frame. In this case, the frame is an Ethernet frame, so the layer process adds both an Ethernet header and an Ethernet trailer. Encapsulation of IP Packet in Data Field of Ethernet Frame
54
Figure 2-18: Layered Communication on the Source Host, Continued
Data Link Process Eth Trlr HTTP Message TCP Hdr IP Hdr Eth Hdr Physical Process Things are a little different at the data link layer. The data link layer, Layer N, still passes the message down to the next-lower layer, the physical layer. However, the physical layer does not do encapsulation. It merely converts the bits of the frame into electrical or radio signals and sends the signal on to the next device. Physical Layer converts the bits of the frame into signals.
55
Figure 2-18: Layered Communication on the Source Host, Continued
The following is the final frame for a an HTTP message on an Ethernet LAN Eth Trlr HTTP Message TCP Hdr IP Hdr Eth Hdr L2 L5 L4 L3 L2 Although the vertical layering process on the source host is simple, many students have trouble with it. Here’s a trick. It helps to draw the messages, headers, and trailers with layer indications under them. Notice that the message starts with a Layer 2 header, then has a Layer 3 (IP) header, an L4 header, and an L5 message. Don’t forget the L2 trailer. Notice the Pattern: From Right to Left: L2, L3, L4, L5, maybe L2 This makes it easier to remember the order of headers and messages Don’t forget the possible trailing L2 trailer
56
Figure 2-19: Decapsulation on the Destination Host
Eth Trlr HTTP Message TCP Hdr IP Hdr Eth Hdr Data Link Process Physical Process So far, we have been looking at vertical communication on the source host. Now we will see what happens on the destination host. The signal comes into the computer at the physical layer. The physical layer process converts the signal into the bits of the data link layer frame. It then passes this frame up to the data link layer process.
57
Figure 2-19: Decapsulation on the Destination Host, Continued
HTTP Message TCP Hdr IP Hdr Internet Process Eth Trlr HTTP Message TCP Hdr IP Hdr Eth Hdr Data Link Process The data link layer process DECAPSULATES the IP packet from the frame’s data field. It then passes the packet up to the next higher layer (N+1) – the internet layer process. Decapsulation of IP Packet from Data Field of Ethernet Frame
58
Figure 2-19: Decapsulation on the Destination Host, Continued
HTTP Message TCP Hdr Transport Process HTTP Message TCP Hdr IP Hdr Internet Process Now it’s the internet layer process’s turn. The internet layer process decapsulates the transport layer message from the IP packet and passes this message up to the transport layer process. Decapsulation of TCP Segment from Data Field of IP Packet
59
Figure 2-19: Decapsulation on the Destination Host, Continued
HTTP Message Application Process HTTP Message TCP Hdr Transport Process Finally, the transport layer process decapsulates the application layer message from the TCP message. It passes the HTTP request message up to the application layer process—the webserver application program on the webserver. Decapsulation of HTTP Message from Data Field of TCP Segment
60
PDUs in TCP/IP
61
Figure 2-20: Layered End-to-End Communication
Routers Have Three Layers --- Each Router Port Has Two Layers (1&2) Switches Have Two Layers --- Each Switch Port Has One Layer (1) Source and Destination Hosts Have 5 Layers Int App DL Trans Phy What happens on the switches and routers between the source and destination hosts? Switches only have two layers. Each switch port has a physical layer process. There is one data link process to decide which port to use to send the frame back out. Switches are Layer 2 devices. Routers are Layer 3 devices. Each router port has both a physical layer process and a data link layer process. There is a single internet process to decide which port to use to send the packet back out. Note that switches and routers receiver first, then send. So they first decapsulate, then encapsulate. Source Host Switch 1 Switch 2 Router 1 Switch 3 Router 2 Destination Host
62
Figure 2-21: Combining Horizontal and Vertical Communication
Hypertext Transfer Protocol Int App DL Trans Phy Transmission Control Protocol Internet Protocol Standards (protocols) are designed to govern communication between processes at the same layer but on different computers. This is horizontal communication. There also is vertical communication on each device. This figure brings the two pictures together. Source Host Switch 1 Switch 2 Router 1 Switch 3 Router 2 Destination Host
63
Telnet Data TCP Header + Telnet Data
64
IP Header + TCP Header + Telnet Data
Ethernet Frame Header + IP Header + TCP Header + Telnet Data
65
Example Header Information
Destination port Sequence number Checksum
66
Figure 2-23: OSI and TCP/IP
Standards Agency or Agencies ISO (International Organization for Standardization) ITU-T (International Telecommunications Union— Standards Sector) IETF (Internet Engineering Task Force) Standards architectures are governed by standards agencies. OSI is governed by two standards agencies that work together. <Read the names.> ISO specializes in computer and LAN standards. ITU-T specializes in WAN standards. TCP/IP is governed by the Internet Engineering Task Force (IETF). The IETF creates all standards for the Internet.
67
Figure 2-23: OSI and TCP/IP, Continued
Dominance Nearly 100% dominant at physical and data link layers 70%-80% dominant at the internet and transport layers. Documents are Called Various Mostly RFCs (requests for comments) Note that OSI is nearly completely dominant for standards at the physical and internet layers. All other standards agencies say, “Use OSI standards at the physical and data link layers.” At the internet and transport layers, TCP/IP is almost as dominant but not quite. However, its dominance is growing. Most IETF documents are called Requests for Comment (RFCs).
68
Figure 2-26: Characteristics of Protocols Discussed in the Chapter
Layer Protocol Connection- Oriented /Connectionless Reliable/ Unreliable 5 (App) HTTP Connectionless Unreliable 4 (Transport) TCP Connection- oriented Reliable 4 (Transport) UDP Connectionless Unreliable This slide recaps the main standards that we saw in this chapter. 3 (Internet) IP Connectionless Unreliable 2 (Data Link) Ethernet Connectionless Unreliable Note: Only TCP is connection-oriented and reliable
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.