From Nsnam
Jump to: navigation, search

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

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

Back to GSoC 2022 projects

Project Overview

  • Project Name: TCP maximum segment size (MSS) improvements
  • Student: Akash Mondal
  • Mentors: Mohit Tahiliani, Bhaskar Kataria, Vivek Jain
  • Google page:
  • Project Goals: TCP MSS directly influences the size of an IP packet. And an optimal packet size can highly improve the throughput of a network. Thus, the goal of this project is to dynamically change the MSS of a TCP connection, which can be done by the following setups:
    • Add Path MTU discovery support for IPv4
    • Communication layer between l3 and l4 protocols to send PMTU updates
    • Adapt TCP to support dynamic changes of the maximum segment size (MSS)
  • Repository:
  • About Me: I’m a Master of Engineering student at Jadavpur University, Kolkata. I have an interest in application development and competitive coding. And I also love to contribute to open sources. I have developed several app development projects on the MERN stack. And I extensively use C++ and its powerful STL libraries for problem-solving related to competitive coding. I started working with ns-3 while doing my final year project of M.E. and eventually grew my interest in computer networks as well. Sometimes I draw random sketches and portraits during my free time, which I take as a hobby. I enjoy doing all my work listening to music because it boosts my brain, so I low-key consider myself a music lover too.

Milestones and Deliverables

Project status

Please note that this project did not continue past the midterm evaluation on July 29. Code produced in the first phase can be found here:

Weekly Reports

Week 1

Duration: June 6 - June 12

  • Study about Layering, Router Specs, Storing & Purging PMTU from RFC 1191.
  • Understand different approaches to path MTU discovery (Packetization Layer Path MTU Discovery [RFC 4821], Classical Path MTU Discovery [RFC 1191]).

Week 2

Duration: June 13 - June 19

  • Understand the working of Packetization Layer Path MTU Discovery and Classical Path MTU Discovery.
  • List out the main differences between the two. link

Week 3

Duration: June 20 - June 26

  • Pros and Cons of Packetization Layer Path MTU Discovery and Classical Path MTU Discovery. link
  • Flow chart to understand the working of Packetization Layer Path MTU Discovery. link

Week 4

Duration: June 27 - June 3

  • Planned the design for the implementation of Packetization Layer Path MTU Discovery.
  • Created a diagram showing different class function interactions in this implementation.

Week 5

Duration: June 4 - June 10

  • Added classical path MTU discovery implementation to IPv4 network.
  • Create a merge request implementing Classical Path MTU Discovery.

Week 6

Duration: June 11 - June 17

  • Did different code refactoring and changes as suggested.
  • Made both implemented Ipv4 PMTUD and already existing IPv6 PMTUD aligned to each other.

Week 7

Duration: June 18 - June 24

  • Made changes such that any router, that doesn't have PMTUD enabled, uses the minimum link MTU.
  • Updated MTU getter and setter functions at the IP l4 protocol
    • GetLinkMtu - specific for output device link mtu
    • GetPmtu - for geting pmtu when PMTUD is enabled, or min mtu value when disabled
    • SetPmtu - for setting pmtu from the icmp