OK again this is a very basic and generic tutorial and it should be looked into further, it's simply an introduction.
**Disclaimer** I am not responsible for anything done with this information.
What does DoS/DDoS stand for?
DoS stands for Denial of Service, and DDoS stands for Distributed Denial of Service.
What do they do?
A DoS describes a method of attacking a computer, network, device etc generally done from one box. It can be done in many ways but generally work very similar to one another. A DDoS attack is essentially the same but increasing the performance of a DoS attack as it's done by many computers in a synchronized manner to overwhelm the target.
What's the point?
Well sometimes people just do it out of revenge, for instance if a company rips you off and you crash there website and cause them a load of problems because you can then there is an example, or sometimes it's a way for hackers to make a name for themselves by bringing thousands of computers down or a mayor server or something it giving them rep. Other times it can be to actually exploit something - for instance, bringing down a certain service so it restarts in default can bring some weakness issues which are them exploitable... There are many reasons to why people do it but you need to understand how to implement it and respectively how to mitigate against such attacks (well, as best you can).
Common types of attacks:
Generally speaking, DoS/DDoS attacks are done by exploiting a weakness or simply flooding a service, chewing as much bandwidth as you can "denying other people of the legitimate service" or something along those line - here is a list of well known attacks (though mainly old) aswell as more info:
http://en.wikipedia.org/wiki/Denial-of-service_attack
OK, here is a basic example of a simple socket flood (bandwidth chew) attack:
FakeSite.bla is running, has a small bandwidth and is run from someones PC not a propper server, an attack is annoyed with this site and decides to either crash it of slow it down for other people, so he floods the site with mass socket connections on port 80, it slows the server down but now he wants to crash it totally, so he gets his bots (pre-compromised computers) to help him do the same thing but with much more power and sucessfully brings it down.
Ways to mitigate attacks:
Well firstly let me say that if in a work environment, the way staff respond to such an attack is very important because you must work in a controled manner.
Generally speaking there isn't a great deal you can do prevent such attacks but there are things like performing intense inbound/outbound rules and blocking certain IP's if an attack is detected and IDS services/Devices, propper preperation on almost any situation is always a must but this is especially important here because if you can do things like configure you network/software propperly before an attack attempt is made then countermeasuring it is more likely - you should look into this deeply (aswell as how to implement them) because testing this on yourself, a client or in work with permission is a big part in ethical hacking.
I've wrote a tool which is very basic to use but also reasonably powerful, it's called JFlood
This is a Java based and thus cross platform DoS (Denial of Service) tool which creates hundreds, even thousands of sockets on the target host in an attempt to chew it's bandwidth causing DoS conditions. It's very trivial to use whilst still a dynamic piece of software, you can enter the target by host name or IP address, choose absoloutly any TCP port (so long as it's open) and also see the packet traversal count in real time if you run via the console/command line. I would normally code something like this is C or C++ but Java's platform independance seemed like a nice option the only down-side is lack of speed.
You can find it on my download page here http://craigfoxsoftware.yolasite.com/software.php but ensure you read the terms and conditions on my home page first.
**Disclaimer** I am not responsible for anything done with this information.