Disclaimer: If I didn’t graduate college because I failed by Computer Networks course, this, right now, is the time I will look back and realise –“This is where it all went downhill” Regardless of that, writing blogs helps me retain a lot of stuff. Even though my idea of studying for this the literal last day was terrible, I would rather know a few topics well than know everything but not answer anything.
Interview with Mr. Network Layer A.K.A NetLo
How do you feel about
everyone me calling you NetLo?
Hahaha, Do I really have a choice? Also I am not real–I am a layer in Internet Protocol and you need some real help. Is that–is that your fourth coffee of the day?
Coff-wha- Coming back, there are some very important questions for you NetLo, we should get back at it.
Why do you think the responsibility of packetising was given to you and not anyone else on your team like transport layer?
I think of one the reasons why it’s something that’s my responsibility is because the packet needs to be encapsulated and then sent to destination without being decapsulated. Also, transport layer majorly communicates between two ports and I deal with two hosts. Thus, because the datagrams would have different sets of source/destination.
Fair enough. Do you think this is the same reason you are responsible for routing and not data-link or transport?
More of less. Think of transport layers job as literally transporting the packet. It’s responsible for wether the packet has reached, security, the packet is tampered with, error, congestion and stuff like that.
The deal with datalink layer is that it deals with reliable transport of the datagram, it deals with physical addresses like mac addresses and I deal more in the domain of logical addressing.
Don’t you hate it when you’re confused with them haha? Another thing that I really get confused with is what’s routing and forwarding–it basically sounds all the same to me?
Don’t sweat about it, the difference is nuanced to be honest. Routing would be when you want to send the data network-wide. You have to make the decision about where to send the received datagram. Forwarding is more of a local task–you will be given a forwarding table and then you have to send the datagram to the machine using the table.
Routing would involve creating the routing table, coming up with the best algorithm and stuff you know? Forwarding requires you to more or less follow the instruction.
Don’t get me wrong, I am not trying to talk down on Forwarding–it’s just a better way to not get confused. They are mostly used interchangeably though so it’s fine to get confused.
So, when you have to make forwarding decision for a datagram, what would it be dependant on and how would it vary with like datagram approach and virtual-circuit approach?
Well, let’s see. When dealing with datagram I generally only look at destination. packets with this kind of approach are very individualistic you see. They are treated like one independent datagrams and that means that I only have to care about where they want to go and not where they came from–you know, your past shouldn’t weigh you down. When it comes to virtual-circuit’s though, it’s really important to understand that they all need to be sent together. You form a link between the source and destination and then send all packets over through this link. This is a longer process too, requires setup then you have the dataflow phase and when everything is done and dusted you have to teardown the links.
What do you think your greatest flaws are?
I think flaws are what make us beautiful, though there are certain flaws that can be hard to ignore. I think my inability to have flow control, error control or dealing with congestion can be few of them. Though there are auxiliary functions like ICMP for error that do make life a little easier.
Well, you’re known for your good throughput!
Hahah, that’s there. Though my throughput is just the minimum of all my transmission rates. You see I am a big improve the weak link believer.
Here was a question that was sent by our subscriber, what would be the size of my prefix if I have block of size 1024?
1024 is 210 which means that your network is defined by 32-10 i.e 24 bits.
Therefore your prefix is 24. Alternatively to identify your network I would require only 24 bits.
What do you do when you have shortage of IPs?
Two things actually, use protocols like NAT or DHCP or move on to IPV6.
NAT has his own ways of dealing with this problem. Whenever he’s dealing with small private networks he can just use a single IP approach. When he’s a little overwhelmed he goes for Pool of IP. Though personally I found that the best approach so far has been when he uses ports and the five column translation table
You seem to have had a rocky relationship with IPv4, can you tell us a little about it?
- IPv4 is an unreliable and connectionless datagram protocol—a best-effort delivery service.
- IPv4 assumes the unreliability of the under-lying layers and does its best to get a transmission through to its destination, but with no guarantees.
- If reliability is important, IPv4 must be paired with a reliable protocol such as TCP.
- IPv4 is also a connectionless protocol for a packet-switching network that uses the datagram approach .
- The term best-effort means that IPv4 provides no error control or flow control(except for error detection on the header).
It just wasn’t healthy anymore !
I was dealing with this problem earlier, I received HLEN of 1000–I couldn’t figure out how many options were sent. Could you help me out with this
Yes, of course I can. 20 bytes are basic header–so anything after that are options. Now 1000 means 8 in decimal and thus the number of bytes are 32 (8 x 4)
From this we can see the last 12 bytes are options
Infact, let’s say you have total length 28hex that will be 40 bytes and this your data was of 8 bytes
What goes on during fragmentation?
Well, sometimes the datagrams are too big for the router. This is when you divide them into smaller datagrams. When a router decides to do that, it needs to change three things, flag, fragmentation offset, total length
What would you say your relationship with ICMP is like?
As I mentioned, I don’t really have error control. This is where ICMP comes to help me out generally. It’s called internet control message protocol. It’s generally for understanding status of internet.