NO CARRIER (capitalized) is a text message transmitted from a modem to its attached device (typically a computer), indicating the modem is not (or no longer) connected to a remote system.
NO CARRIER is a response message that is defined in the Hayes command set. Due to the popularity of Hayes modems during the heyday of dial-up connectivity, most other modem manufacturers supported the Hayes command set. For this reason, the NO CARRIER message was ubiquitously understood to mean that one was no longer connected to a remote system.
A carrier tone is an audio carrier signal used by two modems to suppress echo cancellation and establish a baseline frequency for communication. When the answering modem detects a ringtone on the phone line, it picks up that line and starts transmitting a carrier tone. If it does not receive data from the calling modem within a set amount of time, it disconnects the line. The calling modem waits for the tone after it dials the phone line before it initiates data transmission. If it does not receive a carrier tone within a set amount of time, it will disconnect the phone line and issues the NO CARRIER message.
The actual data is transmitted from the answering modem to the calling modem via modulation of the carrier.
The NO CARRIER message is issued by a modem for any of the following reasons:
As modems have progressed to pack more bits per second over a telephone line, the specific implementation involves modulating on other than the audio-frequency carrier (particularly on digital modems that connect via ISDN or cellular networks), the message NO CARRIER remains consistent for the sake of compatibility.
Linux's network stack uses the NO CARRIER status for a network interface that is turned on ("up") but cannot be connected because the Physical Layer is not operating properly, e.g. because an ethernet cable is not plugged in.