diff --git a/app/app.js b/app/app.js index ba68b09..6955674 100644 --- a/app/app.js +++ b/app/app.js @@ -3,45 +3,47 @@ var ipfCalc = angular.module('ipfCalc', []); ipfCalc.controller('CalculateController', function($scope) { - //initial values - $scope.fragments = []; - $scope.data = { - dataSize: 4000, - mtuSize: 1500, - headerSize: 20 - }; + // Initial values + $scope.fragments = []; + $scope.data = { + dataSize: 4000, + mtuSize: 1500, + headerSize: 20 + }; - //when you click "Calculate" - $scope.calculate = function(data){ - //Initializing the data... - $scope.fragments = []; - var headerSize = data.headerSize; - var remaining = data.dataSize - headerSize; - var maxSize = data.mtuSize - headerSize; - var maxPayload = maxSize - (maxSize % 8); - var flag = 1; - var offset = 0; + // When you click "Calculate" + $scope.calculate = function(data) { + // Initializing the data... + $scope.fragments = []; + var headerSize = data.headerSize; + var remaining = data.dataSize; // Initial payload size + var maxSize = data.mtuSize - headerSize; // Maximum fragment size excluding header + var maxPayload = maxSize - (maxSize % 8); // Ensuring max payload size is a multiple of 8 + var flag = 1; + var offset = 0; - //While data doesn't fit the MTU... - while(remaining > 0){ - var length = 0; - if(maxSize < remaining){ - length = maxPayload; - } else { - length = remaining; - flag = 0; - } + // While data doesn't fit the MTU... + while (remaining > 0) { + var length = 0; + if (maxSize < remaining) { + length = maxPayload; + } else { + length = remaining; + flag = 0; // Last fragment + } - //Create the segment - $scope.fragments.push({ - length: length, - flag: flag, - offset: offset, - }) + // Create the segment + $scope.fragments.push({ + length: length, + flag: flag, + offset: offset, + }); + + // Subtract the payload length of the fragment from the remaining payload + remaining -= length; + // Increment the offset by the length of the payload divided by 8 + offset += length / 8; + } + }; +}); - //until everything has been sent. - remaining -= length; - offset = ~~(((offset*8)+length)/8); - } - }; -}); \ No newline at end of file diff --git a/index.html b/index.html index b36fc23..28e8405 100644 --- a/index.html +++ b/index.html @@ -1,61 +1,68 @@
-| {{ $index }}0 | +Length | +ID | +Flag | +Offset{{data.headerSize}} | +{{fragment.length + data.headerSize}} | +
|---|---|---|---|---|---|
| + | {{ fragment.length }} | +X | +{{ fragment.flag }} | +{{ fragment.offset }} | +... | +
Created by Pablo Albornoz
+Help improve this project on GitHub
+Learn more about IPv4 fragmentation
+