• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1566
  • Last Modified:

Linux tcp/ip stack implementation


could anyone suggest an online resource which clearly explains linux networking source code and specificaly source code for tcp/ip implementation.

I need to understand what does the following mss stand for in tcp_opt :

mss_cache, mss_clamp, user_mss, advmss!

regards.

0
perfect_tranquility
Asked:
perfect_tranquility
1 Solution
 
jlevieCommented:
If there is such a document (and I doubt it) it is awfully well hidden. I suspect that the only documentation is the kernel code itself.
0
 
scnCommented:
No document will deal with such details. However, the following links may help:
http://gnumonks.org/ftp/pub/doc/packet-journey-2.4.html
http://www.linuxjournal.com/article.php?sid=4852 
http://www.kernelnewbies.org/documents/ipnetworking/linuxipnetworking.html (rather old - kernel 2.2)

Also, the book "The Linux TCP/IP Stack: Networking for Embedded Systems" based on a 2.6 kernel may contain valuable information.
0
 
gysbert1Commented:
I can't remember offhand what each of those represent, but I looked into the exact same thing a few months ago. I looked at the kernel source for a few minutes, and it was quite obvious what each of them were for. IIRC:
user_mss is what the user of the socket specified with setsockopt, if specified at all (TCP_MAXSEG option).
mss_clamp is part of the solution for negotiating the mss between client/server and what the user specified.
I think mss_cache is the current effective sending mss.
I can't remember what advmss does anymore.
Anyway, take a look at the source, it is very simple.
Look in usr/src/linux/net/ipv4, specifically tcp.c, tcp_input.c, tcp_output.c, the code is fairly well commented.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now