The short answer is we're not sure.
When the Roman State was in decline and had to withdraw from England, (coincidentally?) Germanic tribal power was on the increase. That left a power vacuum in England at the same latitudes that coastal Germanic tribes were already living on the opposite shore of the North Sea. Unfortunately, it also left a literacy vacuum, that was not filled until the Anglo-Saxons were converted to Christianity hundreds of years later.
As for who they were, for the Angles and the Jutes, we really only have two things to go by: Bede and Linquistics.1. Bede was likely using the names in use in his day, but those names ultimately may or may not have been geographic rather than uniquely descriptive. The following map is a depiction of Bede's account:
The picture we get when we look at this linguistically is that the tribes on the European North Sea coast appear to have been part of a coherent linguistic grouping we call North Sea Germanic, or "Ingvaeonic". It seems quite likely that this started out as a coherent culture of Germanic tribes that specialized in living on the North Sea coast, and primarily communicated with each other via sea travel.
North Sea Germanic eventually split into Old Saxon, Old English, and Old Frisian, but that was in the future. In the 400's it was likely just a single language with different dialects used by the different speakers on the North Sea coast from the Dutch lowlands to the Jutland peninsula. With that distribution, it wasn't a great jump for a maritime people to hop the channel and plant tribes over there as well.
One clue to this is in the modern distribution of Frisian. Frisian is the closest surviving continental language to English2. Here's the distribution of Frisian speakers today:
To someone who's seen this kind of linguistic map before, this strongly implies that at one point their ancestor language existed in an unbroken continuity in an area encompassing all of these areas (plus some indeterminate amount more of course). This includes the area Bede said the "Angles" came from.
Its tempting to call all the people in this entire area "Frisians" but that would be anachronistic, as Old Frisian (and old Saxon) was still 400 years in the future.
Now the Vikings came later, speaking Old Norse. This was a language from the North Germanic branch, while the North Sea Germanic languages are instead from the West Germanic branch (you can perhaps see here why some prefer to call them "Ingvaeonic"), along with German and Dutch. Both Beowulf (a Geat), and Hrothgar (a Dane) would have been North Germanics, speaking Proto-Norse, which at this early date may well have been understandable by West Germanic speaker. Norse-speaking tribes started moving into the Jutland peninsula via Zeeland sometime around the Anglo-Saxon movement. Likely they were taking advantage of the power vaccuum left by the departing "Angles and Jutes". How active of a hand they had in that departure, we don't know. However, it wasn't until about 300 years later that the Viking age proper began, and that's when these new "Danes" started making serious attempts at conquering England themselves.
Both Beowulf (a Geat), and Hrothgar (a Dane) would have been North Germanics, speaking Old Norse. The story was set around 700 AD.
1 - There were some classical sources talking about Germanic tribes with similar names, but its not clear they were talking about the ancestors of these same tribes. Also, Bede likely relied on Gildas for some of the relevant information.
2 - Scots is technically closer.