Server signature

Hey There

Do anyone know about a tool or document, where you can see what different open ports mean.
I am not talking about scanning, I am thinking more about enum after your port scan.

I find it hard on windows, what I want is some information that says, when you see something like:

135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Windows XP microsoft-ds

That is probably this program on windows, and it is use for this and this.
Also a guess on what the server is, like if you see LDAP is it probably a AD server etc.

My impression with windows (have not used it in over 12 years), is that one service is often opening serval ports