I went over the chat from yesterday's Zoom session, and I was blown away by how much discussion was going on there. Many thanks to Jacopo Ferro, Alexandre Hayderi, Hannibal, Farouk Boukil, Nathan Duchesne, Henrique Da Silva Gameiro, Leo, Robin Goumaz, Laurynas, Victor Nazianzeno, and everyone else who chimed in and answered each other's questions. That was amazing.
I cannot myself answer chat questions in real time while handling the live discussion. However, we will do something about this -- we are working on a solution, and we'll have something in place for the next lecture discussion.
I extracted all the questions that, I believe, were not fully answered:
- Who decides DNS expiration dates? The administrator who is in charge of an authoritative DNS server determines and sets the expiration date for each authoritative RR stored in that server. E.g., for the mapping from www.epfl.ch to the corresponding IP addresses, the expiration date is set by the administrator of the EPFL authoritative DNS servers.
- What is the average DNS expiration time? I don't have precise numbers, and I am not aware of a comprehensive study that answers. But web sites like this https://www.varonis.com/blog/dns-ttl/ give a sense of the expiration times that are typically used. Btw, they are typically called "TTLs", from "time to live".
- What does "amortize the cost" mean? Suppose that you are home, you need milk, and you realize that you have run out. You are thinking of going to the grocery store to get milk, but you need to dress, drive, etc -- it feels like too much effort just to get milk. So, you think "since I am going, why don't I also make a list of all the other things that I may need in the next couple of days, so that I don't need to go shopping again?" This is a way of "amortizing the cost" of going to shop for milk. One way to think about it is that the milk has some value to you, and going shopping has some cost to you, and the value is relatively small to the cost. But if you add some value by shopping other things that you may soon need, you are improving the value-to-cost ratio. Similarly, establishing a TCP connection has some value (reliable data delivery) and some cost (delay to setup the connection). The value-to-cost ratio may be too small, but if you use the same TCP connection to exchange multiple pieces of data, you are improving the value-to-cost ratio.
In a P2P system, "each node knows the id ranges of its neighbours then, if the id requested is not in his range nor in that of its neighbour you said that it would ask the neighbour with closest id but this seems quite arbitrary, does the definition of being a neighbour rely on the fact that it has close IDs ?" Excellent way to put it. Yes, it does. That's exactly how "neighbours" are defined in P2P. A "neighbour" is a node whose range is next to your range.
Can the material be put in GitHub? Yes, this is possible. Let me look into it.
Finally, at 4:05PM, somebody wrote: *We are all confused*. I couldn't figure out from the chat what the confusion was about. If you wrote this, and you remember what it was about, please shoot a question/email.