VHDL-based data fragmentation model for IPv4

number: 
1629
إنجليزية
Degree: 
Author: 
Mohammed Muaffak Younis Abdu Al-Kadir
Supervisor: 
Dr. Abdul-Kareem A. Najem Al-Aloosy
year: 
2007

Abstract : It is necessary to design network protocols that can incorporate diverse technologies because technology constantly evolves. An important aspect of diversity is the maximum packet size supported by each network technology. The Internet Protocol (IP) successes to support the diversity. IP's solution to the use of different maximum packet sizes is to split datagrams that do not fit into the packet size of the link to be traversed, and to coalesce the pieces (fragments) at the receiving node. In this work, two networking modules are developed using Very High Speed Integrated Circuits Hardware Description Language (VHDL) and tested using ModelSim SE/EE plus 5.4. The first one is a fragmentation module that accepts IP version 4 (IPv4) packets from the transport layer. If the datagram is too large to fit into one frame of Ethernet (1480 bytes), fragments are transmitted until the full datagram is transmitted. The transmitted fragments, except for the last fragment, are 1480-byte long. The last fragment may be any thing from 1 byte to 1480 bytes depending on how much of the datagram is left. The new fragment is transmitted as soon as the previous fragment is transmitted, and all fragments will be transmitted before the fragmenter becomes idle again. The second one is a reassembly module that accepts byte-stream of the data from the data link layer and decodes the IP information to send data to the upper protocols. The data supposed to be come from the data link layer is entered through test bench. The module is implemented to have the capability of reassembling two incoming packets at the same time. Each packet used for testing is stored manually because there is no transport layer for supplying the data. So in each test the data should save manually through test bench. The simulation results indicate that the lack of enough buffer space creates a problem when multiple datagrams are received and reassembled at the same time. Increasing the number of buffers results more available spaces for reassembly and that_s help to reassembly more than two incoming packets at the same time.