Difference between revisions of "Gsoc2009"

From Nsnam
Jump to: navigation, search
(gsoc wiki page edits)
(Initial GSOC ideas from Tom)
Line 5: Line 5:
 
Disclaimer:  There is no guarantee that ns-3 will be accepted again in GSoC 2009. We have to re-apply.
 
Disclaimer:  There is no guarantee that ns-3 will be accepted again in GSoC 2009. We have to re-apply.
  
== List projects/mentor ideas below ==
+
{{TOC}}
 +
 
 +
Please list project ideas and identify possible mentors below for Google Summer of Code 2009. 
 +
 
 +
'''Note:'''  These ideas are not limited to Google Summer of Code; anyone is welcome to work on them (please email the [http://mailman.isi.edu/mailman/listinfo/ns-developers ns-developers list] if one interests you).
 +
 
 +
== Virtual NetDevices for ns-3 ==
 +
 
 +
* Mentor or proposer:  Tom Henderson
 +
* Description:  A virtual device is a device that is treated like a physical device by the operating system but does not correspond to any hardware.  Virtual devices are very important in modern networking research to implement tunneling overlays (e.g. virtual private networks, tunnels to get Ipv6 connectivity from a purely Ipv4 network) and things like 802.1q VLAN tagging.  For instance, the [http://trac.tools.ietf.org/group/irtf/trac/wiki/RoutingResearchGroup IRTF Routing Research Group] seems likely to suggest a so-called map-and-encaps architecture for helping the global core routing scalability problem.  A proposed project in this area is to help define an architecture for inserting such virtual devices, and to develop a few concrete instances of these devices, such as Ipv6-over-IPv4, VLANs, providing multiple addresses per physical interface for routers to leverage, etc.
 +
 
 +
== Fragmentation and MTU discovery for ns-3 ==
 +
 
 +
* Mentor or proposer:  Tom Henderson
 +
* Description:  IPv4 packets may need to be fragmented if they encounter device MTUs that are smaller than the datagram.  Presently, we have no support for fragmentation for ns-3.  An initial project in this space will be to port the fragmentation code from the [http://cutebugs.net/files/wns2-yans.pdf yans simulator] to ns-3.  However, there is much more to do here in the area of supporting typical and research-oriented [http://en.wikipedia.org/wiki/Path_MTU_discovery Path MTU discovery] techniques as well.  In IPv6, there is no in-network fragmentation, so Internet systems need to deal with this at the endpoints.  However, the ICMP messaging on which Path MTU discovery relies upon may not be available (since many firewalls block these packets).  MTU issues also become more prominent when using IP-in-IP tunnels over virtual devices (see above).  Therefore, supporting proper fragmentation handling code and implementing path MTU discovery will open up new research areas for ns-3.
 +
 
 +
== Network Address Translation (NAT) for ns-3 ==
 +
 
 +
* Mentor or proposer:  Tom Henderson
 +
* Description:  NATs are an essential part of the networking landscape, and are also central to current research since they are being proposed [http://blog.internetworkexpert.com/2008/04/18/understanding-ipv6-nat-pt/ even for IPv6].  We have no NAT model for ns-3.  Another interesting area of research is the [http://www.isoc.org/tools/blogs/ietfjournal/?p=117 art of traversing NATs], including inbound connections.  A proposed project is to develop a typical IPv4 NAT for ns-3, perhaps by leveraging Linux NAT code, and to provide some typical example configurations and test code (home or small office connectivity through a NAT).  Then, take the project in some interesting research direction, such as the above suggested areas (IPv6 NATs, NAT traversal) or another one of the student's choosing.
 +
 
 +
== Network Simulation Cradle for IPv4 ==
 +
 
 +
* Mentor or proposer:  Tom Henderson
 +
* Description:  As part of last year's Google Summer of Code, Florian Westphal ported Sam Jansen's [http://research.wand.net.nz/software/nsc.php Network Simulation Cradle] to ns-3.  This provides the ability to run Linux TCP code over ns-3's IPv4 stack.  However, the port could be made more complete by extending it to totally cover the Linux TCP/IPv4 stack.  A good summer project would be to add IPv4 support to NSC, and we have the benefit of a few mentors in this area for any such work.

Revision as of 14:19, 6 February 2009

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers

This is the webpage for planning Google Summer of Code 2009 projects and mentors. ns-3 plans to apply for a spot in the Google Summer of Code again this year.

Disclaimer: There is no guarantee that ns-3 will be accepted again in GSoC 2009. We have to re-apply.

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers

Please list project ideas and identify possible mentors below for Google Summer of Code 2009.

Note: These ideas are not limited to Google Summer of Code; anyone is welcome to work on them (please email the ns-developers list if one interests you).

Virtual NetDevices for ns-3

  • Mentor or proposer: Tom Henderson
  • Description: A virtual device is a device that is treated like a physical device by the operating system but does not correspond to any hardware. Virtual devices are very important in modern networking research to implement tunneling overlays (e.g. virtual private networks, tunnels to get Ipv6 connectivity from a purely Ipv4 network) and things like 802.1q VLAN tagging. For instance, the IRTF Routing Research Group seems likely to suggest a so-called map-and-encaps architecture for helping the global core routing scalability problem. A proposed project in this area is to help define an architecture for inserting such virtual devices, and to develop a few concrete instances of these devices, such as Ipv6-over-IPv4, VLANs, providing multiple addresses per physical interface for routers to leverage, etc.

Fragmentation and MTU discovery for ns-3

  • Mentor or proposer: Tom Henderson
  • Description: IPv4 packets may need to be fragmented if they encounter device MTUs that are smaller than the datagram. Presently, we have no support for fragmentation for ns-3. An initial project in this space will be to port the fragmentation code from the yans simulator to ns-3. However, there is much more to do here in the area of supporting typical and research-oriented Path MTU discovery techniques as well. In IPv6, there is no in-network fragmentation, so Internet systems need to deal with this at the endpoints. However, the ICMP messaging on which Path MTU discovery relies upon may not be available (since many firewalls block these packets). MTU issues also become more prominent when using IP-in-IP tunnels over virtual devices (see above). Therefore, supporting proper fragmentation handling code and implementing path MTU discovery will open up new research areas for ns-3.

Network Address Translation (NAT) for ns-3

  • Mentor or proposer: Tom Henderson
  • Description: NATs are an essential part of the networking landscape, and are also central to current research since they are being proposed even for IPv6. We have no NAT model for ns-3. Another interesting area of research is the art of traversing NATs, including inbound connections. A proposed project is to develop a typical IPv4 NAT for ns-3, perhaps by leveraging Linux NAT code, and to provide some typical example configurations and test code (home or small office connectivity through a NAT). Then, take the project in some interesting research direction, such as the above suggested areas (IPv6 NATs, NAT traversal) or another one of the student's choosing.

Network Simulation Cradle for IPv4

  • Mentor or proposer: Tom Henderson
  • Description: As part of last year's Google Summer of Code, Florian Westphal ported Sam Jansen's Network Simulation Cradle to ns-3. This provides the ability to run Linux TCP code over ns-3's IPv4 stack. However, the port could be made more complete by extending it to totally cover the Linux TCP/IPv4 stack. A good summer project would be to add IPv4 support to NSC, and we have the benefit of a few mentors in this area for any such work.