The questions are re-arranged by priority. The ones coming first are related to validating my understanding and the ones coming later are questions coming from pure curiosity.
- Forwarding is said to be done on the 'data plane' and routing is said to be done on the 'control plane'. I've heard the terms 'data' and 'control' in other subjects such as computer architecture, but I am not grasping the usages of them here. Could you explain it in a bit more detail?
- In the textbook, there are three mechanisms for the switching fabric. One of them is "switching via memory" and I couldn't understand what this meant:
Some modern routers switch via memory. A major difference from early routers, however, is that the lookup of the destination address and the storing of the packet into the appropriate memory location are performed by processing on the input line cards.
- I couldn't understand this statement, because I felt that this was the same for the old method as well. Could you explain it?
-
For DHCP, broadcasting is used. Here's how I understood how it's done: (1) A packet with destination ip address of 255.255.255.255 is sent to the network layer (2) the network layer notices the 255.255.255.255 and sends a packet with MAC address FF:FF:FF:FF:FF:FF to the link layer.
-
My question here is: Who is doing the 'actual' broadcasting here? Is it the router? To elaborate, is the sending host actually sending the individual packets to everyone in the network, or does the router have a 'broadcasting feature'. I think by 99% it would be the latter, but I wanted to make sure.
-
Another question is, what is the 'range' of broadcasting? Is it done to all hosts within the subnet?
- There is the term work-conserving queuing. I think FIFO and priority queue is work-conserving as well. Am I understanding it correctly? For FIFO I confimed it is work conserving by searching the internet but I couldn't get a definite answer for priority queue.
- For CIDR the textbook uses the term prefix and the slides use the term subnet. Are they referring to the same thing?
- Could you specify the terms host and interface? I remember this was mentioned in class, but I have a specific question about it. If my computer has a LAN port and a WiFi card, they will have two different IP addresses allocated. So does that mean they have 2 interfaces and 2 hosts? Or is the term host used to refer a single, physical device regardless of networking?
- I have a question about NAT. For NAT, it must lookup the port number of a packet. So, unlike other routers, a router supporting NAT must have logic for parsing transport layer packets. Is my understanding valid?
Also, I feel that NAT is easily replacable by a proxy server. What are advantages of NAT over using multiple proxy servers?
- It says in the textbook that one of the new features for Ipv6 is: IPv6 does not allow for fragmentation and reassembly at intermediate routers; these operations can be performed only by the source and destination.
Who is responsible for packet fragmentation and reassembly in ipv6 in the source and destination? Is it done by the router or is it done by network layer software implementation? (for instance, kernel code that handles IP frames) I think it should be done by the router for consistency with ipv4, but I was curious because I think it can be done by the software in the sender host.
- I searched online and found out that it is possible for ipv6 hosts and ipv4 hosts to communicate directly via tunneling. For this to be possible, I think tunneling should be supported by software in each host, not only for each router. Is this understanding correct? By software I mean the same thing as in (9), the network driver in the OS.
- Openflow uses general forwarding. So, I speculated that the routers used for creating a system using openflow should have special features for handling general forwarding table, and normal routers like the one I use at home cannot be used. Is is correct?
- Is packet discarding policy completely independent from packet scheduling policy?
- It says in the texbook that, packet scheduling is for outgoing links. I understood that packet scheduling is implemented for all places where queues can occur. (input port, switching fabric, output port) Is my understanding correct? It is confusing to me because 'outgoing link' and 'output port' seems similar.