2.4.20 is obviously the kernel version.
Stuff before the "+++" are patches.
Stuff after the "+++" are configurations.
w = patched to compile with gcc-3.0
fhs5 = a patch to increase the number of filehandles available
nfs = trond NFS patches
gr199d = grsecurity (restricts proc like william pointed out)
ptf = ptrace fix (not sure if that one was necessary or not)
p3 = pentium III
4gb = up to 4GB of system memory (RAM)
gr0b = a somewhat strict configuration of grsecurity
c1 = configuration 1 (the kernel name was getting too long, 64
characters maximum, so I had to take the most common
configuration codes and shove them into configuration 1, 2, 3, etc)
c1 = configuration 1 = +ext3+mr+csm+hmem+ge+3w
c2 = configuration 2 = +4gb+ext3+mr+csm+hmem+ge+3w+sar1
Do you want translations for those too?
v2.178 = my internal versioning system, completely unrelated to the
official kernel version, helps me to keep track of where I am
Hope that was helpful,