Identifying the Operating System (OS) running on an end device
based on its traffic is valuable in many contexts. For example, an
enterprise network may restrict the usage of specific OSes for security
reasons. Moreover, OS fingerprinting can be used to detect
NAT/tethering (i.e., multiple devices sharing the Internet connection
of a mobile device), since the presence of multiple OSes sharing
the same IP address is an indication of tethering, which may be
prohibited by a wireless network due to resource usage concerns.