The 'chargen' service should only be enabled when testing the machine.
When contacted, chargen responds with some random text (something like all the characters in the alphabet in row). When contacted via UDP, it will respond with a single UDP packet. When contacted via TCP, it will continue spewing characters until the client closes the connection.
An easy attack is 'pingpong' which IP spoofs a packet between two machines running chargen. They will commence spewing characters at each other, slowing the machines down and saturating the network.
On UNIX, chargen should be disabled in '/etc/inetd.conf"
chargen stream tcp nowait root internal
chargen dgram udp wait root internal
Disable these by simply inserting a hash character as the first character on the line:
#chargen stream tcp nowait root internal
#chargen dgram udp wait root internal
On Windows, go to the Networking Control Panel and make sure that "Simple TCP Services" is disabled. None of these simple services are needed for anything but testing, but are extremely dangerous.