A network intrusion detection system (NIDS) analyzes all incoming and outgoing traffic for signs of intrusion. More specifically, a NIDS extracts the payload part of each network packet, and compares it with rules that are called vulnerability signatures. The payload is the actual data part of a network packet. Attackers have adapted their exploit techniques to try to evade the various checks that are performed by a NIDS. Attackers split the attack data into multiple network packets. That way, a single packet payload does not match any vulnerability signatures. On the other hand, defenders have improved the code of NIDS by reassembling fragmented network packets before analyzing them, so that their payloads are merged and analyzed as a single piece of data. NIDS uses a linked list to store network packets in ascending order based on TCP sequence numbers. When a new network packet arrives, the NIDS needs to insert it in the linked list at a position that does not break the ascending order of the nodes. Furthermore, if the linked list already contains a node, i.e. a packet, that has the same TCP sequence number as the new packet, then the NIDS does the following: 1) Removes the existing node from the linked list. 2) Extracts its payload and appends it to the payload of the new packet. 3) Inserts the revised new packet in the linked list at the appropriate position. In this project, we do not implement step 2 given that it is not pertinent to linked lists. This project consists of NIDS code written in Java that organizes network packets into a linked list in ascending order and without duplicates. This project description is accompanied by a zip archive named Code.zip, which contains two Java files, namely intrusionDetectorClass.java and IntNode.java. Students are required to implement the methods of the IntNode class. The intrusionDetectorClass simply uses the methods of the IntNode class to create and maintain the linked list of network packets. Students can verify the correctness of their IntNode class by comparing their output with the following output: Prj1 is running. The (sequence number, data) pairs in the 1inked 1ist are: (13,230185386) Running renovebuplicate() on target 13 The linked list is enpty. Running addNodeInOrder( () on target 13 and data 308329763 The (sequence number, data) pairs in the linked list are: (13,308329763) Running renoveDuplicate() on target 14 The (sequence number, data) pairs in the linked 1ist are: (13,3e8329763) Running addwodeInonder() on target 14 and data 248041794 The (sequence number, data) pairs in the linked list are: (13,3e8329763)(14,248941794) Running renoveDuplicate() on target 14 The (sequence number, data) pairs in the 1inked 11st are: (13,308329763) Running addNodeInorder() on target 14 and data 295106305 The (sequence number, data) pairs in the linked 1ist are: (13,308329763) (14, 295106305) Running renovebuplicate() on target 15 The (sequence number, data) pairs in the 1inked 11st are: (13,398.