 PDF. And it just summarizes some of the applications and protocols we've used in the past couple of weeks. We can do web browsing. Everyone can browse websites. You can use your graphical user interface, Firefox. You can even use the command line, for example, WGET, to download a file quickly. So the general approach with web browsing, you supply URL, whether it's you type it into the address bar, or you click on a link, or you type it into the command, and that triggers your browser to contact the server and download a web page. And the protocol being used there is HTTP. So that's the application layer protocol for accessing the web server. We'd like to know a little bit about how HTTP works. You probably know already some. We'll see some more details today and in the next few weeks. Most of our application servers listen for our clients, listen for them to connect, and they listen on a port number. What port number does our web server listen on? Everyone yell it out at once. Port number 80. So servers typically listen on fixed port numbers. And that's useful to identify what applications being used. If you can observe what port numbers in use, you can identify the application. So web servers use port 80. If you're using a secure web server, HTTPS to access the web server, it uses port 443. Where do you find that? If you can't remember your port numbers, there's actually a file on your operating system, such ETC services. If you look in that text file, it shows you port numbers used by different services. 443, HTTPS. So this file is useful if you can't remember port numbers. We can remotely connect to another computer and issue commands, a remote login, and we've used secure shell to do that. So it's a remote login and it's done securely in that everything we transfer between your computer and the other computer is encrypted. So the program we use as a client is SSH, secure shell, and there's actually a server running on every computer and it's the secure shell server. It's referred to as SSHD. Another word for a server is a demon. So the secure shell demon is running on all these computers, allowing us to connect to any computer if we have the right username and password. So you know how to use secure shell? What port number does our secure shell server use? Quick, find the answer. What port number does my secure shell server use? 22. So you look up the services file and you'll see SSH 22. We can transfer files. There are different ways to transfer files between computers. We've used SCP, secure copy. So it uses similar to secure shell to transfer a file from one computer to another, but securely. It actually uses the secure shell server to do that. It is also using port 22. So these are just some notes, and you have them on your desktop. You have this file, so if you can't remember, then both on the reference card and also in this presentation of some of the things we've done already. Netcat. We use that mainly for testing. It's not commonly used for normal applications, but we use it in this lab for testing whether we can communicate or send a short message between computers. You know how to start Netcat. You start the Netcat in server mode first. You tell it to listen on a port, and then your friend starts Netcat in the client mode, which connects to your server. So you know how to use Netcat, and then you can send text to each other. Netcat uses TCP as the transport protocol. By default, you can supply the minus U option, net NC minus U minus L, to force it to use UDP mode. And you may try that today. What's the protocol number for TCP? Transport protocols have numbers. What's the number for TCP? 6 UDP, 17 ICMP, 1. Can I get one that someone doesn't know? What's another one? IP. Where are you going to find these? The protocol numbers, and I can't remember any other transport protocols, but if you need to, there's a file called slash in the slash ETC directory, DCCP and SCTP called protocols. Please make your window bigger. Protocols. So if you can't remember those numbers, look in the protocols file. There are many there. So you don't need to remember them. You'll start to remember the common ones, but you don't need to remember the obscure ones. You look up in that file. Protocols file. And when we start our server, we use a port number. Port numbers are 16 bits. We have from zero up to about 65,000, but typically the first 1,000 are reserved for the admin or super user service, for special servers like your web server. So when we start our Netcat server, we normally need to choose a value greater than 1,023, less than about 65,000. As long as no other server is using it, it should be okay. So you can use Netcat. Ping. We've used it a little bit, but you are all experts on ping because you've done the assignment last semester where you use ping a lot. Ping sends short messages to another computer to test if we have connectivity. We try to ping another computer to see if we can communicate with it. And along the way, we measure the delay or the round trip time. Ping has many options. These are three. You can specify how big the message is, how many times you ping a computer, the interval between pings. So today you will try ping a bit more, but I'm not showing any examples. I think it's not so hard. It uses a transport protocol, a very special case that uses ICMP. Not TCP, not UDP, but ICMP. There's no really ping server. It's embedded in the operating system. The operating system by default responds to pings. So it doesn't have port numbers, but that's a special case. It's mainly for diagnostics. What else? Iperf. You're all experts in Iperf as well I think. Again, in the assignment last semester, use Iperf to measure the throughput. We will not do that today, but in later labs, when we want to test how fast is our network, we can use Iperf. So we'll come back to that one. Many of the commands we use have many options, and it's hard even for me to remember the options. So when I forget, I use the man command. That is, I use the man command to look up the options for a particular command. Man LS, man SCP, man Iperf. And it will usually show you how to use that command, the options. In this lab, you're supposed to learn by doing and learn by trying things. So if you don't know how to do something, try it. Look it up in the man pages and try it yourself. As soon as you don't know how to do something, don't raise your hand and say, what's the option to set the size in ping? Try yourself. It takes 10 seconds to look in the man page to find it. So try first. So that's some of the applications and protocols we've been using or will use. We would like to understand today how they work. That is how the protocols work. What messages are sent between computers when we ping someone or when we access the website or when we use Netcat? In other words, I'd like to see the messages being sent to and from my computer. So to do that, I'd like to record the messages sent to and from my computer, and the concept is called packet capture. I want to capture the packets. So the messages we refer to as packets.