There are two main international aviation organizations. The International Civil Aviation Organization (ICAO) and the International Air Transport Association (IATA). ICAO is a part of the United Nations and is responsible for navigation and technical issues related to flight. IATA is a trade association responsible for managing commercial flight areas, such as flight tickets.
That means that in most cases a passenger airline ticket is sold with IATA standards/rules, for example, DL-flight number from LHR to JFK, but the pilot is flying the aircraft with ICAO standards/rules, which means flying with call sign DAL from EGLL to KJFK. Most airlines have both a three-letter ICAO code (used for call sign) and a two-letter IATA code (used for flight number).
Charter airlines and business jet operators in most cases only have a 3-letter ICAO code (used for call sign) as they are not selling tickets and don't need a flight number. Small/Private aircraft in most cases don't have an airline code and use their registration as a call sign. Most airports in the world have a 4-letter ICAO code but, generally, only airports handling passenger traffic have a 3-letter IATA code.
More information about alphanumeric call signs is available on our blog.