1. Introduction  
- Control Plane  
- Data Plane  
2. Routers and Their Architectures  
2.1. Routers  
2.2. IP routing protocols  
2.3. Routing Protocols Overview  
2.4. Routing actions separation  
2.5. Hardware routers architecture  
2.6. Software routers architecture  
3. Types of Software Router  
3.1. Software Router Classification  
3.2. Introducing Types of Useful Software Router  
4. Related works and strategies for overcoming limitations  
5. Challenges and Recommendations  
6. Conclusion