A method of routing data packets within a ring network (100; 200; 300; 400; 500; 600), the method comprising: receiving, at a first queueing structure within a first node (101, 103, 105, 107, 109, 111; 201, 203, 205, 207, 209, 211; 301, 303, 305, 307, 309, 311; 401, 403, 405, 407, 409, 411; 501, 503, 505, 507, 509, 511; 601, 603, 605, 607, 609, 611;) of the ring network (100; 200; 300; 400; 500; 600), a data packet to be transmitted to a destination node; determining, by the first node(101; 201; 301; 401; 501; 601), a number of hops the data packet will traverse as it is transmitted from the first node (101; 201; 301; 401; 501; 601) to the destination node of the ring network (100; 200; 300; 400; 500; 600); the method being characterized in comprising: comparing, by the first node (101; 201; 301; 401; 501; 601), the number of hops to a threshold hop value to determine whether the number of hops is equal to or less than the threshold hop value; and transmitting, by the first node (101; 201; 301; 401; 501; 601), the data packet to: (i) a dimension queuing structure for a first virtual channel within a second node of the ring network (100; 200; 300; 400; 500; 600) if the number of hops is greater than the threshold hop value; or (ii) a dimension queuing structure for a second virtual channel or a turn queuing structure within the second node if the number of hops is equal to or less than the threshold hop value. receiving, at a first queueing structure within a first node (101, 103, 105, 107, 109, 111; 201, 203, 205, 207, 209, 211; 301, 303, 305, 307, 309, 311; 401, 403, 405, 407, 409, 411; 501, 503, 505, 507, 509, 511; 601, 603, 605, 607, 609, 611;) of the ring network (100; 200; 300; 400; 500; 600), a data packet to be transmitted to a destination node; determining, by the first node(101; 201; 301; 401; 501; 601), a number of hops the data packet will traverse as it is transmitted from the first node (101; 201; 301; 401; 501; 601) to the destination node of the ring network (100; 200; 300; 400; 500; 600); the method being characterized in comprising: comparing, by the first node (101; 201; 301; 401; 501; 601), the number of hops to a threshold hop value to determine whether the number of hops is equal to or less than the threshold hop value; and transmitting, by the first node (101; 201; 301; 401; 501; 601), the data packet to: (i) a dimension queuing structure for a first virtual channel within a second node of the ring network (100; 200; 300; 400; 500; 600) if the number of hops is greater than the threshold hop value; or (ii) a dimension queuing structure for a second virtual channel or a turn queuing structure within the second node if the number of hops is equal to or less than the threshold hop value. comparing, by the first node (101; 201; 301; 401; 501; 601), the number of hops to a threshold hop value to determine whether the number of hops is equal to or less than the threshold hop value; and transmitting, by the first node (101; 201; 301; 401; 501; 601), the data packet to: (i) a dimension queuing structure for a first virtual channel within a second node of the ring network (100; 200; 300; 400; 500; 600) if the number of hops is greater than the threshold hop value; or (ii) a dimension queuing structure for a second virtual channel or a turn queuing structure within the second node if the number of hops is equal to or less than the threshold hop value. (i) a dimension queuing structure for a first virtual channel within a second node of the ring network (100; 200; 300; 400; 500; 600) if the number of hops is greater than the threshold hop value; or (ii) a dimension queuing structure for a second virtual channel or a turn queuing structure within the second node if the number of hops is equal to or less than the threshold hop value.