Guest User

Untitled

a guest
Apr 15th, 2019
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.92 KB | None | 0 0
  1. import java.util.LinkedList;
  2. import java.util.Queue;
  3.  
  4. public class Fragmentation {
  5.     static Queue<LinkedList> packet;
  6.  
  7.     public int numberOfPackets(int data, int mtu) {
  8.         return (int) Math.ceil((float) data / mtu);
  9.     }
  10.  
  11.     public void packetDivision(int data, LinkedList<Integer> mtu) {
  12.         //System.out.print(mtu.element());
  13.         packet = new LinkedList();
  14.         System.out.println(numberOfPackets(data, mtu.element()));
  15.         int j=0;
  16.         while (j< mtu.size()) {
  17.             for (int i = 0; i < numberOfPackets(data, mtu.get(j)); i++) {
  18.                 if (data <= mtu.get(j)) {
  19.                     ((LinkedList) packet).add(data);
  20.                     data = data - mtu.get(j);
  21.                 }
  22.                 else {
  23.                     ((LinkedList) packet).add(mtu.get(j));
  24.                     data = data - mtu.get(j);
  25.                 }
  26.             }
  27.             j++;
  28.         }
  29.     }
  30.  
  31.     public void printQueue(){
  32. //        for(int p=0; p < packet.size(); p++)
  33. //        {
  34. //            System.out.println("Element at index "+p+": "+packet.element());
  35. //        }
  36.         System.out.println(packet.toString());
  37.     }
  38. }
  39.  
  40. public class MTU1 {
  41.  
  42.     public static void main(String[] args){
  43.  
  44.         Scanner sc = new Scanner(System.in);
  45.  
  46.         System.out.print("Enter the number of routers: ");
  47.         int routers = sc.nextInt();
  48.  
  49.        LinkedList<Integer> linkedmtu = new LinkedList<>();
  50.        int mtu;
  51.  
  52.         System.out.print("Enter the number of Bytes to be sent:  ");
  53.         int data = sc.nextInt();
  54.  
  55.         for (int i = 0; i < routers; i++) {
  56.             System.out.print("Enter the MTU of router " + (i + 1) + ": ");
  57.             mtu = sc.nextInt();
  58.             linkedmtu.add(mtu);
  59.         }
  60.  
  61.         Fragmentation fragmentation = new Fragmentation();
  62.  
  63.         fragmentation.packetDivision(data,linkedmtu);
  64.         fragmentation.printQueue();
  65.     }
  66. }
Add Comment
Please, Sign In to add comment