04 September 2019
16-19 in U23
We will start treating the application layer of the network stack and principles of network applications.
The protocols we will study are HTTP (and HTTP/2), FTP, SMTP, and DNS.
We will also see how sockets can be used for network communication, and discuss Content Distribution Networks.
September 13th. 10-12 in U154 or 12-14 in U154
Preparation:
If you did not finish installing wireshark on your computer, you should do this. Then you should try to solve these exercises:
In Java, using the Socket
class create a port scanner, that on localhost scans the ports from 1-1024 and prints the open ports.
In Java, using the ServerSocket
class, write a port scanner, that on localhost scans the ports from 1-1024 and prints the open ports.
Describe the difference between the two implementations you have just made, from a network point of view.
Using the TimeServer demoed in class (Code here: https://github.com/JacobAae/dm557-2017-socket-examples), write a client using DatagramSocket
that can connect and print the time returned.
These resources can be useful:
Try also to make a list of 10-15 keywords for a 10 minute presentation with the topic: "Functionality and interfaces for the application layer of the TCP/IP model and the functionality of DNS".
In class:
Spend the first half on solving and discussing these exercises from chapter 2 of the book and your solution to the socket programming exercises:
P2
P6 (RFC 2616)
P10
P21
P25
P30
Discus the keyword list you prepared at home. There is not a single right answer, as you could plan many great presentations with different "red-threads".
The second part of the session, you will work on analyzing HTTP requests and responses using Wireshark. Instructions can be found in the Instructions menu → Wireshark HTTP
Chapters 2