A functional requirement is a requirement that specifies an action performed by a system without considering physical constraints.
Non-functional requirement specifies system properties such as environmental and implementation constraints, performance, platform dependencies, maintainability, extensibility, reliability etc. [1].