A method for transmitting data over a communication network implemented by a network device, the method comprising: identifying an optimum network path in the communication network between a source node and a destination node, wherein the optimum network path comprises a plurality of intermediate nodes between the source node and the destination node, and wherein the plurality of intermediate nodes comprises a plurality of intelligent intermediate nodes capable of detecting both a need to fragment data packets which are currently being transmitted and actual fragmentation of data packets occurred at an earlier node in the optimum network path; determining an optimum packet size of the optimum network path for transmitting a plurality of data packets without fragmentation; transmitting each of the plurality of data packets from the source node to the destination node via the optimum network path at the optimum packet size; detecting, via one of the plurality of intelligent intermediate nodes, at least one of a need to fragment a data packet being transmitted at the one of the intelligent intermediate nodes and an actual fragmentation of a data packet occurred at an earlier node in the optimum network path; dynamically updating the optimum packet size of the optimum network path for transmitting remaining data packets of the plurality of data packets without fragmentation based on the detection; transmitting each of the remaining data packets from the source node to the destination node via the optimum network path at the updated optimum packet size, wherein determining the optimum packet size of the optimum network path comprises determining a minimum packet size from a plurality of maximum packet sizes corresponding to the plurality of intermediate nodes in the optimum network path, and wherein the plurality of maximum packet sizes is determined by: transmitting a discovery data packet from the source node to the destination node via the optimum network path at a pre-determined packet size; determining a successful reception of the discovery data packet at the destination node; and upon the successful reception, determining a maximum packet size corresponding to each of the plurality of intermediate nodes. identifying an optimum network path in the communication network between a source node and a destination node, wherein the optimum network path comprises a plurality of intermediate nodes between the source node and the destination node, and wherein the plurality of intermediate nodes comprises a plurality of intelligent intermediate nodes capable of detecting both a need to fragment data packets which are currently being transmitted and actual fragmentation of data packets occurred at an earlier node in the optimum network path; determining an optimum packet size of the optimum network path for transmitting a plurality of data packets without fragmentation; transmitting each of the plurality of data packets from the source node to the destination node via the optimum network path at the optimum packet size; detecting, via one of the plurality of intelligent intermediate nodes, at least one of a need to fragment a data packet being transmitted at the one of the intelligent intermediate nodes and an actual fragmentation of a data packet occurred at an earlier node in the optimum network path; dynamically updating the optimum packet size of the optimum network path for transmitting remaining data packets of the plurality of data packets without fragmentation based on the detection; transmitting each of the remaining data packets from the source node to the destination node via the optimum network path at the updated optimum packet size, wherein determining the optimum packet size of the optimum network path comprises determining a minimum packet size from a plurality of maximum packet sizes corresponding to the plurality of intermediate nodes in the optimum network path, and wherein the plurality of maximum packet sizes is determined by: transmitting a discovery data packet from the source node to the destination node via the optimum network path at a pre-determined packet size; determining a successful reception of the discovery data packet at the destination node; and upon the successful reception, determining a maximum packet size corresponding to each of the plurality of intermediate nodes. transmitting a discovery data packet from the source node to the destination node via the optimum network path at a pre-determined packet size; determining a successful reception of the discovery data packet at the destination node; and upon the successful reception, determining a maximum packet size corresponding to each of the plurality of intermediate nodes.