 So this topic is called Protocol Architectures and Internet Applications. The first part, Protocol Architectures, I'm going to try and introduce a common protocol architecture that we're going to follow for the rest of the course. So the rest of the course will based upon what we introduce here. Of course, for that to make sense, you need to understand what is a protocol architecture. And for that to make sense, you need to understand what is a protocol. So we'll go through that. Once we've covered some of that, we'll just go through a couple of topics that are useful for the rest of the course, addressing and different types of Internet applications and the performance. How do we measure the performance of networks, of communication links and applications? First, and I forgot yesterday. So in this class, we've got what all mostly computer science students. There's a few students from different, maybe different programs or different years who I think you're from outside the university. Okay. What are you studying? Okay. Entrepreneurship. So you're a businessman. Okay. We have a graduate student, Dana, who's joining us. Where are you from? From the US. Okay. From the US. He just arrived last week to Thailand. So in the US, how do you greet someone? Hello. Hello. Okay. In Thai, how do we greet someone? How do you greet someone? Okay. And what about a formal greeting? Maybe. Shake someone's hand. Okay. Give him some help. And what happens when he meets someone in a formal setting here in Thailand? What does he do? A formal. You meet someone, the director of the university. Why? What is that? You put your hands together. Okay. I think you've seen this and everyone's seen it. The concept of a Y is a greeting, okay, where in a simple scenario, two people come together to communicate and there's some steps that they follow to really to introduce or to get started in that communication. Before they start talking to each other, they introduce themselves or they greet each other using in Thai the Y, okay. And I don't fully understand all the details. Let's help both myself and Dana understand by you telling me what are the rules that you follow in the Y. Someone said it depends upon the age. What does that mean? And while you tell me, I'm going to make notes so I can remember and other students can remember. So let's say at the start, we start, that is two people arrive in a room. What happens? From my perspective, what happens? From a user's perspective. So I'm here and if someone comes up and there's a Y, who does it? The younger one, okay. So there's a rule that says if two people arrive together, the younger person should start, should initiate. They should Y to the older person, correct. So I'll just make note of that. So the younger one or the junior person. So if a junior person arrives, so I'm here, if a junior person comes up to me, what happens is from my perspective, what do I do? If a junior person comes to me, what do I do? Your junior, most of you are junior to me. You come up to me. I stand up. I stand there and wait, okay. I wait for you to Y to me. I recognize your junior. So I wait for some response from the other person. So I'm going to write the rules from the perspective of one person, let's say me in this case. If a junior person arrives, I wait for some response. What if a senior person arrives, someone older than me, what do I do? I Y to them, correct? You're telling me, I don't understand all the rules. That correct? If a senior person arrives to me, then I should initiate the greeting. So I just want to record some of these rules. And then after I, I'm not so good, Y to them, what do I do? After I send them this message, what do I do to the senior person? What's going to happen next? Say hello, alright, maybe that's a bit, a bit too fast. What should they do if I Y to them? But I've just Y'd a senior person, what's most likely going to happen next? So the senior person responds to me with a Y, okay? So from my perspective, after I've greeted them, I wait for a response from them. So I'll just make note, I wait for one from the other person. So if a junior person arrives, I wait for their initiation. If a senior person arrives, I initiate and then wait for their response. That's a typical behavior. So let's consider what happens when I'm waiting. So I'm waiting for some response. If, we'll consider the different cases if I can spell. If the junior person Y's to me, what happens then? If we can follow this through at the start, two people arrive. If the person that arrives is junior, is younger than me, then I'm waiting for a response. I'm waiting, so you think I'm in this state, waiting. And then the junior person gives a Y to me, then what should I do? I should return. I should do the same. So we'll see in a moment the pattern of what I'm writing here. It's a set of things that happen. A junior person arrives, a senior person arrives, a junior person gives a Y to someone, events that happen, and actions that we take. The action may be I wait, or I Y, and in this case, if the junior person initiates a communication to me, then I respond. And then we're done, because is that right? Once the both have done both ways, then we've sort of greeted each other and we can start talking. Okay? That's a typical situation. We've got a couple more cases here. What happens in this case? What action is taken? Actually, I'll make it a little bit clear. And the greeting. This is just the steps for a greeting. Once we've performed the greeting, then we can start communicating the data between the people we start talking. So here, junior person delivers a Y to me, I respond, and then we're done with the greeting. We end. Senior person arrives, I deliver a Y to them, I wait, then when I'm waiting, they deliver one to me, and it's the end. So that's successful as well. Okay, so that's the typical steps that we follow for this greeting. And I'm trying to write them in some systematic way that we can record those steps so that someone could read this and follow it, and be able to implement this greeting. Any other things that may happen? What happens? Senior person arrives, I Y to them, I'm waiting for a response. What if I don't receive any response after a minute? I just stand there waiting, do I? How long do I wait? Forever. Okay, I'm not that patient. What happens? What if I wait too long? What could I do? Here, when I say end, I mean we could start talking, just make that a bit clearer. Try again. I could try again, okay? And maybe they didn't see me the first case, so I could have different options here. Try again and go back to the start. So if we want to be precise, we need to describe, okay, what happens if we wait too long for response? Well, again, there are different conditions depending upon what happened, how long we wait. Do we wait for 10 seconds? Do we wait for one minute? Do we wait forever? Well, we cannot wait forever. Last year I did this and some students said to me this one, that I should start talking, but I should be a little bit nervous. If the senior person doesn't respond to me, then maybe they don't like me or don't care about me. So there are different things depending upon the situation, start talking. So what I'm doing here is describing the steps for a greeting between two entities, two people in this case. When we're talking about computers communicating, I want to communicate, or my laptop wants to communicate with this PC. They want to exchange some data, so transfer some information between them. Usually there are some steps to initiate the communications. Before they send the data, they may greet each other, saying, I am this computer. I want to send data to you. This one says, yes, you may send data to me. And then they send data. Those steps are a protocol. That's what a protocol is. A protocol defines a set of rules for communications. So this is a protocol, and it's a protocol for greeting in Thai. And you can see we can define it as a set of things that happen, events and some actions that we may take. And the events and actions differ depending upon what state we're in. Are we in the start state, or are we in the waiting state? Even with this simple greeting, you see I think we haven't covered all cases. How long should we wait? It's all right for you and I humans, we can vary that value. What about my computer? It must know exactly how long it should wait before it does something else. We must program it. We must set a time that it must wait. Wait too long for the phone. So even though we roughly described our protocol here, in computers they're much more complex than this. So we describe the rules that the entities follow. Here we're describing for one person. But this set of rules would also apply for the other person, the way that we've written. So a protocol describes a set of rules that an entity that wants to communicate must follow. It also describes, should describe the set of messages that we communicate between entities. What are the messages that we've sent between the two people in this case? Well you can think we wait or we wire someone. So I think that's the message that we're sending or we receive. So in fact here we have just one message in this simple protocol. So that's our message type. Are there different types of a wire? Is there just one type? How do you do it? Three types. What are they? Okay, between equals. So I didn't cover that case. So the protocol is more complex than I've actually written down here. Okay, you're making it even more complex. There's more scenarios than what we cover here. So if we want to be precise and describe the exact rules for this greeting, our protocol gets more complex. And same with computers. If we want to describe exactly how two computers talk to each other, we must clearly describe those rules. Because someone has to program those rules. What about the why, the actual why, the message you send to the other person? What is it? You hold your hands together, correct? Where do I put them? Here? Is this what I do? Okay, so in fact, if I hold the hands here, is that the same as if I hold them here? What about here? So in fact there are different types of messages even. And they have different meanings. Which ones maybe better or nicer, here or here? The why sometimes is maybe better. And do you just hold your hands, is that all? Sometimes people also bow a little bit. Some people I've seen bow much more and some people just give a nod of their head. So there are different types of messages which have different meanings. Same when we communicate between computers, a protocol describes not just the steps that we take but also the message types and their meaning. We could say, I don't know, a high one is, and maybe there's, I don't know, there's one which is considered rude or inappropriate to some people. So depending upon the actual message or the message type, they have different meanings. Some students walk around that I see them and they're nice to me and they're carrying all their books and they do this one, the one hand one. So there's also a one-handed why. So again, in different scenarios you have different message types. So that's what a protocol is. A set of rules for two or more entities that they obey in order to communicate. So the entities, usually now we're talking about computing devices but it can also apply for other things, humans. We're looking at computer communications. So a protocol is something that two or more computing devices implement such that if they follow those rules they should be able to communicate with each other. And they both need to follow the same set of rules. They both need to understand the rules that each other are using. Because if I understand the handshake of, well not me, someone understands the greeting, the tie greeting, the rules that we just described. And someone else uses the US greeting of the handshake and they come together, it's not going to work. So if the two entities follow a different set of rules they will not be able to communicate. So a protocol contains the set of rules for each entity, the peer, when we talk about two entities there are peers of each other that they must follow. Including that would be, for example, the timing information. We said, how long do we wait for the other person before we respond? Same with a computer protocol. How long does my computer wait to get a response from the other computer? One millisecond, one second, it cannot wait forever because if it waits forever it will never communicate in some cases. So we need to describe that in a protocol. And also we need to describe the types of messages, the syntax of the data that we're sending. And we need to be quite precise, we cannot be as general as we did in that example. So very simple. A protocol, a set of rules that the entities follow in order to communicate. That's easy. What's a protocol architecture? Well, now back to our computers. For my laptop, if I connect a cable to this PC and I want to transfer a file from laptop to PC, just a one megabyte file, then the tasks involved for doing that, there are many of them. For my computer to be able to transfer a file to here it must be able to understand the structure of that file or the file format. It must be able to do, my computer must be able to generate some signal. The file is in binary, zeroes and ones. To send something across a cable I send some electricity. So I must be able to convert that zeroes and ones into some signal to send to the other computer. In some cases there may be errors and I cannot tolerate the fact that if I send a file and the received file is different. So my computer needs some way to check if the receiver has received the correct file. If not, maybe try again, resend. My computer needs to know the address of the destination, especially if I'm a large network or a network I need to know which other computer I'm sending to. The point is that for computers to communicate there are many different tasks that the computer must implement to provide effective communications. So there's not just one protocol that every computer uses. Because data communications is very complex what we generally do is we apply the divide and conquer principle, which is we take this complex task and we divide it into sub tasks and we have a protocol to implement the individual sub tasks. So we have a set of protocols, let's get a pointer. So instead of having a one protocol to communicate between any computing device, we divide the tasks of communications into sub tasks and implement those sub tasks in what we'll say as layers. We separate the sub tasks into layers. That is, we'll see the picture shortly, but the lower layer deals with some tasks. The next layer deals with other tasks and another layer deals with other tasks and so on. So layers which are specified to deal with certain types of tasks. Ignore this for the moment. When we combine the layers together we get what we call a protocol architecture. Try and continue to describe that, but let's look at an example of a simple protocol architecture to try to demonstrate this concept. So recall that our computers want to communicate. We use protocols to communicate. But because the task of communication is so complex, we can't just use one large protocol. We actually use many different protocols, smaller ones. Each protocol has a certain responsibility to implement a task. Then we divide those tasks initially conceptually and eventually in the implementation into layers where this is one layer. The protocols we think in this layer have some responsibility in this example of providing some access to a network. Protocol in this layer has some other responsibility and the protocols in this layer have further responsibilities. So we divide the system into smaller chunks and organize them as layers and together these layers form a protocol architecture. So in this example diagram we have three computers A, B and C and these blocks show the protocol architecture inside that computer. So it says, a simple way to view it is that in computer B there's some protocol that provides network access. There's another protocol that provides transport. We'll have to explain what transport means shortly. And there's another set of protocols for applications. Applications like a web browser, instant messaging client, Skype, email, your other network applications. And each of these computers use the same protocol architecture. Three layers, applications, transport, network access. We skipped over, I think, a description of this simple and this is not a real protocol architecture. It's just a demonstration one for this class. In this protocol architecture we say to communicate we have applications, applications that are for transferring files. Some of you may have used, I don't know, FileZilla or some FTP applications, transfer files. Email applications for sending an email, they are different from web browsing, your web browser. You may use remote login, instant messaging, voiceover, IP, video chat, the other types of applications we use in a network. And on, and those applications run on computers and those computers are connected via a network or networks. In this simple demonstration we're saying the tasks for communications we're going to divide into three groups. The group that is dealing with supporting applications. So protocols that support file transfer applications, protocols that support web browsing, protocols that support email, will group into the application layer. What's a protocol that supports web browsing? Use it every day. And you see it in your address bar sometimes, you see it in many places, HTTP. You see it in your web browser, HTTP. That's the name of a protocol or an acronym for a protocol, the Hypertext Transfer Protocol. That's considered, web browsing is an application that we use in a network, HTTP is a protocol that supports that application of web browsing. So we consider HTTP as part of the application layer. It's a set of protocols that support applications. Any other protocols you know about that are specific to applications, give us one. Okay, secure web access, HTTPS, that's an old one, TCP you've heard of, we'll come to that in a moment. But no, it's not an application protocol. Think of other applications and see if you may not be able to recognize them. Has anyone heard of BitTorrent? BitTorrent? Okay, there's an application, in fact there's also a protocol. What do you use BitTorrent for? Downloading Linux distributions, correct? Okay, so that's, in fact, a protocol that supports the application. Some of you may have heard of it, is it 2Ts? I don't know, I think so, BitTorrent. That's both an application, in fact, also a protocol that supports file transfer amongst a large set of computers. But it's an application protocol. Has anyone used email before? Yeah? What protocol does email use? There's several, and you may not see them as a user, sometimes you don't come across them. But there's things like POP, IMAP, and SMTP, SMTP. You don't need to copy these down, we'll see them later. There are examples of, or these are protocols used to support email. This is a protocol to support file transfer. Another one for file transfer, different, FTP. You may have seen it. Yeah, TFTP, there are hundreds, truly hundreds of protocols to support different applications. Skype has its own protocol for voice calls between Skype clients. These are application or protocols that support applications, different applications. So we group them into the application layer. When I transfer an email from one computer to another, I want to make sure that the receiving computer receives the exact same copy of what I sent. We spoke about this on Monday, this accuracy. We need to obtain 100% accuracy in this case. The exact same file that was created at the computer must be received. The same when I'm web browsing. In web browsing, I download web pages from a server. The file on the server and the file that my web browser receives should be the same. There shouldn't be any differences. The same when I'm downloading a file with BitTorrent or FTP. The file on the other computer that I'm downloading and the file that I receive for this application to work correctly, they must be identical, 100% the same. Unfortunately in networks and in communications, there may be errors in the network or errors in the link. So the file at the server is sent across the network and there may be errors in the network such that what I receive is not the same as what it's at the server. That's a problem. And in this simple architecture, we're going to say, well, how can we deal with that? All of these applications need some level of, some mechanism to deal with errors. To make sure that the data transfer is reliable. How do I deal with that? If I download a file and the file is not correct, what should happen? Imagine in a simple case, you download a file and you realize that the file is corrupted. What may you do? Download it again. Retry. Instead of getting you the human to do it, it's better for the protocols to do it on your behalf so you don't have to deal with it. So the computers do that. What happens is there's one computer, where is our computers? Say one computer is sending a file from C to B. B receives part of that file and recognizes there's some errors. It's corrupt. It's not correct. Then B can ask C, please send it again. And hopefully the next time it will be correct. This is a reliability mechanism, a retransmission scheme where you say, if it's not correct, send again. Instead of us humans having to do that, it's best if the computers do that for us. All of these applications, web browsing, file transfer, email, all need 100% reliability. So the idea in this architecture is to say that since they all need some reliability mechanism, let's have a separate protocol in what we'll call the transport layer that does it for us. A transport protocol that provides reliability for these three different types of applications. The alternative is that this protocol includes reliability mechanism. As do these protocols. As do these protocols. But why? Why not just have one protocol that provides reliability and these can ignore the reliability and just use this one. And that's how we'll see that how layers work and provide benefits in that the functionality needed for web browsing is contained in this application layer protocol, HTTP. The reliability mechanism is not implemented in HTTP, but HTTP makes use of another protocol that provides that reliability, a transport layer protocol. And one that you may have heard of that does this in real life is TCP. So it's about dividing the tasks needed to communicate amongst different protocols and grouping them into layers. The task for web browsing in the application layer. The task for providing reliability in the transport layer. And we keep doing that into other layers depending upon our protocol architecture. In this demo or this example, we say that there's a third layer, the network access layer. So we had application with some example real protocols, transport and I'll just say the network, the network access layer. Which deals with all other tasks for communicating across the network. For example, addresses. Computers need some address. For A, B, A, B and C, think of those letters as their address. If A wants this computer wants to send to here, it creates some message to send and it must say okay, this message should go to computer B instead of computer C. So we need some addressing mechanism and that, for example, can be implemented in the network access layer. And other features as well depending upon how complex our network is. So the main point here is that we divide communication tasks into layers where each layer has certain responsibilities and protocols are implemented in each layer to complete those tasks. There's more details in this example, but for now, do we need them? No, we may come back to them. Since everyone I know here is understanding 100% of this, we don't need the simplified protocol architecture, we'll go to the real protocol architecture. This three layer one that I used here is not real. Our computers don't implement this. It's a real one, or close to a real one, or one that's used on a daily basis and used in many computers around the world is what provides us access to the internet. So it has different names, but I'll call it the TCP-IP protocol architecture or sometimes just the internet protocol architecture. So let's look at that. Before we describe the history, here it is. And this is the protocol architecture we're going to use in this course. And it's common across many systems. It has five layers. So here from top to bottom. So you can think of my laptop, which has access to the internet, implements protocols in each of these five layers. So from bottom up, physical, data link layer, network layer, transport layer, application layer. And on the right I show some example protocols or acronyms for protocols that are associated with these layers. And at the top we see some of the ones that I mentioned in our previous example. HTTP, FTP, email, SMTP, secure shell, and then many others. I've just got four of hundreds here. So just some examples. So you can think of your laptop, your mobile phone with internet access, a web server, implements a set of protocols for communications across the internet. And in most cases, we can group those protocols into these five different layers. There are protocols that support specific applications. Web browsing, email, file transfer, voice, video, instant messaging, specific games, and many other applications. Database applications, proprietary business applications. So the application that the user uses, there are protocols that support them. Work our way down. Transport layer, one of the main roles of the transport layer, especially the one the protocol called TCP, is like what we said here. Is to provide this reliability mechanism. I want to transfer data from a web server in the US to my laptop here. It has to be delivered 100% accurately. The data there at the server and the data arrives at my computer must be the same. If there's some errors in the internet or on some links, then one role of TCP is to make sure it overcomes those errors. And it does that by asking the server to retransmit. Send it again if it arrives in error. So that's a main role of TCP in the transport layer. There are other protocols as well. Not as many as application protocols. Two common ones, so TCP and UDP. Some less common ones, SCTP and DCCP. I'm not going to try and introduce all these acronyms now. Usually, P means protocol, the rest we'll see as we come across these protocols. Transport layer is there to support applications, but is common provides tasks that or implements tasks which are common across many applications. Go to the bottom, let's skip network and data link and go to the bottom. The physical layer has the task of doing the very basic things for communications. In the simple terms, it takes bits, zeroes and ones, and generates signals. Some physical signal that can be sent across out of the computer. So, I've got an example. Here's a LAN card, it's maybe 15 years old. You've got them built into your laptop now, much smaller on a single chip, and also in your PC on the motherboard. But an old LAN card where you plug the LAN cable into the socket, okay? So, this is the LAN card. So, you can think what this LAN card receives is on some bus here. It receives some digital data, zeros and ones, okay? Which is the data that we want to communicate across the link or the network. The chips on here implement the physical layer and what the physical layer protocol. And what that does in very simple terms is takes those bits and generates an electrical signal that is sent across the wires that are plugged into the socket. So, think of an electrical signal as some sinus or some sine wave. So, it takes bits and generates some signal to represent those bits. A simple example, when we have a bit one to send, send a high signal. When we have a bit zero to send, send a low signal. If we have ten bit ones, send ten high signal for some portion of time. So, that's the role of the physical layer to say how to transmit digital data, bits, as some signal out across a link. And it defines the types of signals, the types of cables that can be plugged in here. So, the material used inside them or if we're using wireless, the frequencies we use for wireless and many other physical characteristics of the media. So, that's the raw or the very basics of communication sending signals. And it's the role of the physical layer. Some examples, twisted pair of the cables that plug into these LAN cards. I showed, well, a LAN cable, but cut, okay. You've seen LAN cables with the end point, it's cut here. And you see in fact, inside is a set of wires, copper wires. And there's a pair, each pair is twisted around its partner. So, it's often called twisted pair. It's just copper wires and it carries an electrical signal. So, the structure of this is defined by physical layer protocols. Others, optical fiber, I don't have an example, satellite, wireless LAN. Other technologies are part of the physical layer. Where have we got to? Think of the physical layer as taking the task of getting bits as some signal across a link. The data link layer has the extra role of making sure those bits get across the link in a reliable and efficient way. Again, it does something similar to the transport layer. It deals with errors. If we send some bits and there are some errors at the receiver, the data link layer may also ask for a retransmission. Send it again, because some of those bits that we sent were in error. It does other things like sharing the medium amongst many users, giving addresses to the computers. So, it gives this LAN card an address. And in the other computer, the LAN card has another address. That's some of the responsibilities of the data link layer. Making sure that the bits get across the link, across the link, the data gets across the link in an efficient and reliable way. Physical layer, you think, just tries to send the bits as a signal. It doesn't care whether they get there, it just transmits them. Data link layer tries to improve that by, if there are errors, fixes them, provides some addressing skills. In fact, sometimes there's a very close relationship between these two. On this card, it implements both the physical layer and the data link layer. So you can sometimes associate these two with the hardware. A LAN card, a wireless LAN chip, a router, or a router interface. And some examples that really cover both layers, Ethernet, wireless LAN, frame relay, are examples that implement protocols in both of these layers. Here's another view of layers. We haven't described them all yet. This is one of the hardest things for students to start this course, to understand why do we need these layers, what do they all do? By the end of the course, you'll be experts in all of the layers, because we spend the course going through each of the layers. Here's a different example with three devices. Two computers, I'll call it a source host. Imagine it's my laptop. And a destination host, so it's the PC there. I'll call hosts, in this case. A source wants to send data to the destination host. They don't have a cable connecting them. Instead, I have some other device in between them. You've seen these around. This is in fact a wireless access point, but it's also a router. It has some sockets on the back where I can plug the LAN cables into. So I don't have enough cables, but imagine I have a LAN cable now coming from my laptop into this device. That's this black link here. And also from that device, from the other socket, a LAN cable, a separate one going into this PC, which is the second transmission link to. So that's the scenario, three computing devices. We'll call them the source host, the router, and the destination host. And let's look at inside them. So if we looked at the hardware inside my computer, the operating system, and the source code of the applications, we'll find protocols that we could assign to each of these five layers. From my laptop to the intermediate device, the router, there's a physical layer. They both implement the same physical layer protocol. That is, take some bits, transmit them as an electrical signal to the other device, and it receives those bits. Data link layer tries to make sure that across that link, the data is delivered correctly, only across the link. I also have a second link from the intermediate device to the PC. So there's a separate physical layer and data link layer for those two devices. So for the second link, they are separate. So think of the physical and data link layers dealing with an individual link, just one link, getting data across one link. But we have two links between source and destination. It's the role of the network layer to get data across a set of links, across a network. Remember, our simple definition of a network is a set of links. Physical and data link deals with getting data across a link. Once it gets to the other endpoint, it's done. Network layer has the role of getting data across a set of links, in this case two links, across the network. And therefore, the network layer protocol in this case is implemented in the source host, in this intermediate device, and in the destination host. They all work with each other to make sure that the data gets from source to destination. And back to the top. Application layer protocols deal with getting data between specific applications. A web browsing is an application. So from web browser to web server. From email client to email server. From your instant messaging application to your friend's instant messaging application. Between applications. And the transport layer is about supporting those applications to make sure that that data is delivered across the network in a reliable manner. That's the highest level view I can give of this five layer protocol architecture. And I will not try to explain much more detail because I see half the people sleeping and because it's only really starts to make sense once we see real protocols in each of these layers. And that's what we're going to do in this course. We're going to spend some lectures on the physical layer. Explain how that works. Then the data link layer. Then the network layer. Transport and application at the end. At the end of the course we'll finish on how does HTTP work. How does an application layer protocol work. And then you should understand how all these layers come together. Network layer as an example protocol. The main protocol in the network layer is the internet protocol IP. And in fact that's where our architecture gets its name from. The main protocol is IP. Another main protocol is TCP. So we get the name the TCP slash IP protocol architecture. The others are used in the others. There's many more variations we can choose from but in terms of the network layer IP is common. And in the transport layer TCP is very common as well. So it's called TCP IP protocol architecture. Let's go back to what I skipped. That's what we just said. ARPANET is the precursor to the internet. 40 years ago in the US a research network was built. And that's become the internet today. In fact the internet is much more complex than ARPANET originally. It connects many different networks. And the set of protocols called the TCP IP protocol suite. And it's what's used in the internet today. What you use on your PC, on your laptop, your mobile phone for internet access. There are many different protocols. And different organizations create those protocols. And the main one for the internet protocols is called the internet architecture board, IAB and the internet engineering task force. There is no official protocol architecture. There's no official document that says it must be these five layers with these five names. And these are the tasks. It's just developed over time. And these five layers capture quite well how it works in real life. In fact if you look in different textbooks you'll see some people use six layers instead of five. And the names of the layers differ. So this is common in the Stirling's textbook. And it's what I think is a good representation of what we need to cover in this course. But in reality there are some different names that we'll see here. But it's good for you to remember these five layers. There was a different protocol architecture. So we think there's this TCP IP five layer protocol architecture. Before that there was a different one called the Open Systems Interconnection Protocol Architecture, OSI. OSI was developed by ISO. That's the organization. That's the name of the protocol architecture. Confusing, but that's how it worked. The OSI protocol architecture or reference model had seven layers. So there were seven, not five. We don't have time to go through that although it is interesting. TCP IP one essentially. OSI lost if we think of a competition between these protocol architectures. About 30 years ago people were going down both paths in the TCP IP and OSI. But eventually OSI was not successful. People didn't use it as much as TCP IP. So the internet today is focused around the TCP IP protocol architecture. Although it's not used in practice today, many of the principles and terminology still apply. And we still hear references to the seven layer OSI protocol architecture. It's similar to TCP IP with two extra layers. So what's your task? If you don't fully understand this, minimum. Remember these five layers. Remember their names and the ordering of them. There's always a question in a quiz or an exam that is about the five layers of the TCP IP protocol architecture. So it's important to remember these five layers. Try to remember some of the real protocols and where they fit in those layers. Try to remember the HTTP. Okay that's for web browsing. That's an application. That's part of the application layer. IP is the internet protocol. And that's the main part of the network layer. And a description or some textual description of those layers. Very brief is given in these two slides. So physical layer, how to send bits over the transmission medium as some signal. So some concepts that we will see when we look at the physical layer is okay. At what data rate do we send? How many megabits per second? Does our physical layer allow us to send bits? Our LAN cable may be 100 megabits per second. Wireless LAN may be 54 megabits per second. That's part of the physical layer. What type of signals do we send? Codecs, modems, all those things are part of the physical layer. We'll explain what they mean in later topics. Data link layer. Across that link, how do we get the data across it efficiently? Provide reliability. Give addresses to devices. Set up links. Sometimes it has other names. Network, Actors, MAC, LINK, Hardware. But we'll use data link layer. Network layer allows hosts, computers, to communicate across a network. Across multiple links. And it does different things. A main thing that it does is finds a path through the network. To get my data from my laptop to the web server in the US. What path should it take? What set of links should it take? So find a path through the network or find a route through a network. So we get routing. Application layer provides functionality needed for the different applications. Transport layer transfers data between, you can almost think, the operating system endpoint or the operating systems that the two hosts. And the main thing is fix errors. Provide error control. But we'll also see transport layer protocols do other things. And they become very complex at the time. 10 o'clock. A couple more things but not much to go through. Because I want to look at the quizzes and some other things on the website. Is it all clear? Everything okay? Any problems? Okay. Any questions? Try to understand what are we covered today? There is a protocol. A set of rules for communicating between different devices. Including the formats of the messages. Of course a computer must implement a well-defined protocol because a computer will only do what it's programmed to do. If two computers use different protocols, they will not be able to communicate. We have protocol architectures. Instead of one very big protocol, we provide tasks and separate them into different protocols. And to keep things organized, we separate them into protocols which are organized by layers. That's a protocol architecture. And the protocol architecture we're going to consider in this course and is common through the internet, is this TCPIP protocol architecture. These five layers. The bottom two about getting data across a link. The network layer is getting data across multiple links, across a network. And the top two about getting data between the end computers. The end hosts. And between applications on those end computers. That's a broad grouping. Let's stop the discussion of layers there. Next week we'll return and we'll continue for the remaining slides. We'll look at... There are other protocol architectures. We're focusing on TCPIP in this course. There's OSI seven layer protocol architecture. There's some older ones. IBM has had its own architecture. Apple, Novell had their own architecture. But the TCPIP one became the most popular. And that's why we're focusing on that. There are architectures which are specific to different domains like telephone systems, mobile telephones. There are different architectures. So there's not just one in the world. There are many. We're just focusing on the main one, which is the TCPIP or the internet protocol architecture. Next week we'll finish the rest of the slides. We'll talk about standards, addressing, and give some examples. What I want to do in the last ten minutes is say a little bit about the website. So yesterday I said about the quizzes. Let's see if everyone understood. How many quizzes are there this semester? 10, 15, do you want another guess? Undefined. Okay, it may vary. So there's a trick question. It won't be fixed. About one per week. So there may be around 15. There may be a couple less or a couple more. What are the quizzes worth in the total score? How many percent? What do the quizzes count for? 15 percent. Quizzes are worth 15 percent. Okay, so only a small part really. Exams are much more important. The quizzes are there for you to practice every week. Any questions about how do you get 15 percent? It's a bit confusing. In short, attempt every quiz and get more than 50 percent for every quiz and you'll get the full 15 percent. The first quiz will be available today at midday. Quiz one will be available today at midday because I have the IT section after this class and after that the quiz opens on the website. So you can take it then. The quiz has a time limit of 10 minutes. You must do it before Monday midday because we have a lecture in Monday afternoon. So both sections are on the same time schedule. I think all quizzes open this time close Monday midday. So you have five days. Yes. Now you see the questions. You can preview the quiz. I can because I'm the admin. Here's one. You have a six megabyte file to download. Your computer is connected to a network with a download speed of 10 kilobits per second. What is the minimum time it takes to download the file? So there's one of your questions in the quiz. You'll see that shortly. There are seven questions in this quiz. Usually there's a few less, in fact, not seven. And it times you. You can't pause the time. And again you can have multiple attempts, three attempts at this quiz. If you get less than 50, try again. And then again. How do I know the time? I'm using software called Moodle, which does all this for me. I haven't implemented it. Moodle keeps track of the time at which you start from the service perspective and you have 10 minutes from there. When is it? Oh, the question. That's what you need to think about. You'll see that some quiz questions are not directly, I haven't given the answer or discussed it directly in lecture. Some are just testing your knowledge, your general knowledge. How do you solve this? Well, that's very close to high school mathematics and physics that you think about it. But on that topic, not quizzes, where are we? Also, and this is what I wanted to discuss, there are practice questions or practice lessons. The practice ones do not count towards the grade. You can do it or you're not doing it. I'd prefer you to do it, but I'm not going to be checking everyone and if you do it or not, it won't impact on your grade directly. Currently there are two practice lessons. They're not quizzes, slides or pages of describing some concept. These are concepts that I expect you to know already. This is just testing your background knowledge. Units and prefixes. Units, things like bits, seconds, hertz, meters. How do we measure some entity? Prefixes, mega, kilo, micro, prefixes that we use to write numbers in more convenient forms. You need to understand them, especially the ones that are going to come up in this course. I expect you to know them, but to make sure that you do know them, do the lesson. There's no time limit here, I think that you can do it in your own time. There's no restriction of what you need to do and you just step through. You can read this in your own time. This is a lesson about units and prefixes. You can read this in five minutes. The main units we use are measuring time, length, angle, frequency, power and information. Seconds, meters, radians, sometimes degrees, hertz, watts and bits. That's what I mean by units. Make sure you understand them. DB will cover later on. There are others, of course. If you understand units, you go there. If you want to know some more, in this case I have a video that explains and gives some examples. You can watch the video for five minutes. If you think you understand them, then you answer some questions. If you answer the questions correctly, you can proceed on to the next task, the next part of the lesson. Again, it's not a quiz. You don't get any grade for it. Some people will find it very easy. Some may take some time to go through it. But you can give it a try just to check your background knowledge. What is the symbol of the unit used to measure information? Not straightforward. If you read the part before, anyone want to have a guess? B. The symbol of the unit to measure information. What is the unit to measure information? The base unit we use is bits, or a bit. Information. How many bits? What's the symbol for bits? We use the lower case B. So, upper case B we use for bytes. And it says, bits are the basic. The lower case B is used as a symbol. So, that's correct. And it allows us to continue. If it was not correct, it would take us back to some other page. And therefore, it gives you another question. And you can step through this in your own time. You may want to do this before the quiz, even. It may help. So, this is about the concept of some information over some time gives us some rate. Same as you drive 100 km in one hour the rate or the speed is 100 km per hour. You get the same concept. Go back to our lessons. So, you can do the lessons before the quiz. It may help in this case. There's another lesson and you should do them in order. You don't have to. Later, maybe in a few lectures we'll use some very simple mathematics. High school mathematics. Exponentials and logarithms. So, again, just a reminder of some of the properties of exponentials and logarithms. Just so that when we go through in the lecture, you'll be able to follow quickly. Just a refresher. Nothing new there for most of you. So, a different lesson that you can use as practice. I expect everyone to explore the website and I'm not going to assist with that. That's something you can do quite easily. Did I give you this handout? I think I gave you this handout. Again, in this course you're going to see what do we say? At least a lot of these. A lot of TLA's. A lot of three-letter acronyms come up in this course. Four letters as well. And some two-letter acronyms. And very hard to remember them all. And sometimes I won't require you to remember them all. So, in this course we're going to see AMI, ASK, ATM, BR, CMI, CRC, FDM, all these acronyms. So, over the course use this as reference. Use websites to look them up if you don't understand them. In fact, this is just a description of what you do in the lesson. In lesson one. And logarithms is what you do in lesson two on the website. So, this is just a printout of what you cover. Decibels will cover a little bit later. We'll have a lesson about that later. Any questions to finish? I'm done. This section. Any questions about the quiz?