TCP/IP and OSI layer protocols are equivalent in most areas. Why is there a need for two models that define the same thing? If you had to choose one over the other to define those protocols, which would you choose and why?

TCP/IP and OSI layer protocols are equivalent in most areas. Why is there a need for two models that define the same thing? If you had to choose one over the other to define those protocols, which would you choose and why?