Previous | Next --- Slide 35 of 45
Back to Lecture Thumbnails
kayvonf

Since this slide doesn't give justice to the animation shown in class, someone might want to summarize store-and-forward routing here. Even better, give a step-by-step account of how the packet moves through the network, assuming it takes four clocks for the packet to be transmitted over a link. How many total steps are required?

  • Step 1: Packet part 1 transmitted from 1st to 2nd node (parts 2,3,4 in buffered in node 1, part 1 buffered in node 2)
  • Step 2: Packet part 2 transmitted from 1st to 2nd node
  • Step 3: Packet part 3 transmitted from 1st to 2nd node
  • Step 4: Packet part 4 transmitted from 1st to 2nd node
rojo

To continue from kayvon's post: Step 5: Node 2 has received all the packets and starts transmitting 1st part to node 3. Step 6: Node 2 sends part 2 of packet to node 3. Step 7: Node 2 sends part 3 of packet to node 3. Step 8: Node 2 sends part 4 of packet to node 3.

This process goes on until all the parts are received at the destination. Each step takes 4 clock cycle. For 4 nodes a packet containing 4 parts takes 4 (parts) * 4 (clock cycles) * 3 (nodes) = 48 cycles in total.

zhanpenf

I have a question about the buffer size of each switch. According to the solution of quiz 6, setting the buffer size to be the size of a single packet is enough for the congestion case. However, what if multiple neighbors send packets to the same node at the same time while the node already contains a buffered packet? And will there be a deadlock problem, like node A has a buffered packet to node B while node B also has a buffered packet to node A?

jcarchi

Pretty sure it'll block another neighbor from sending if one neighbor is already sending

BryceToTheCore

Is there a reason we would every want to use store-and-forward based routing? Is it because it requires minimal overhead, because it guarantees that packets can be in at most 2 locations at the same time?

Sherry

@rojo since the transfer unit is packet, why not use pipeline here? For example, during Step 2, not only Packet part 2 transmitted from 1st to 2nd node but also Packet part 1 transmitted from 2nd to 3rd node.

Edit: I just realized the buffer on each node can contain only one packet. I agree with you @rojo.