A friend recently asked me the meaning of the name Madison. Although I wasn’t sure of the meaning of Madison, it prompted a discussion about the suffix ‑son, seen in a lot of names: Jefferson, Henderson, Johnson, Harrison, etc.
I suspect it comes from English, as these names seem to be English in origin, but other than that I could find no information pertaining to the suffix.
tl;dr: What is the origin and definition of the suffix ‑son?