GSOC2022TCPMaximumSegmentSize

From Nsnam
Revision as of 03:01, 27 July 2022 by Akash98Sky (Talk | contribs) (Weekly Reports)

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: https://summerofcode.withgoogle.com/programs/2022/projects/QsOiooM7
  • 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


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