So far, we have explained the operation of TCP/IP with a focus on LANs.
Then, what should be done to enable the TCP/IP mechanism that can be used in LAN to be used via public lines (telephone lines, etc.)?
With this mechanism, the TCP/IP mechanism can be used to communicate with terminals in remote locations, but this cannot be achieved with TCP/IP functions alone.
To achieve this, it is necessary to wrap (encapsulate) TCP/IP before sending it out over public lines.
That's why protocols exist to make point-to-point connections. These are protocols such as PPP and SLIP. These protocols are located at the data link layer.
The data link layer defines the communication method between devices that are directly connected on the network. By encapsulating TCP/IP data with a data link layer protocol that enables communication between two adjacent points, it enables TCP/IP communication with terminals located far away.
A typical point-to-point communication configuration consists of two endpoints connected by a communication link.
Protocols for making point-to-point connections include SLIP and PPP, but most current dial-up connection protocols use PPP.
SLIP is an abbreviation for "Serial Line Internet Protocol" and is also called "slip" for short. It is a data link layer protocol for operating IP over serial lines such as RS-232C and RS-422.
Developed by 3Com in the United States in the early 1980s and standardized as RFC1055.
SLIP is generally thought to be a protocol used in RS-232C, but it is also used to connect to TCP/IP networks such as the Internet through telephone lines.
However, with SLIP, only IP can be used for the network layer protocol. Protocols such as AppleTalk and Netware cannot be used. SLIP also has many problems. Another problem is low security. Therefore, PPP is mainly used at present.
SLIP is used for point-to-point connections that transmit 8-bit data transparently.
It starts with END (0xc0), then the actual IP packet data, and ends with END (0xc0). It has no functionality other than that. It is very simple to make.
SLIP uses "0xc0" as a delimiter to indicate a chunk of data.
It is inconvenient if END (0xc0) is included in the data.
In that case, we deal with it by doing a special transmission of 2 octets like below.
END(0xc0) ・・・ ESC(0xdb) ESC_END(0xdc)
With this, "0xc0" will not appear in the data.
However, there is a problem when you want to send ESC (0xdb) as data.
This case is handled by a special transmission of 2 octets as below.
ESC(0xdb) ・・・ ESC(0xdb) ESC_ESC(0xdd)
In this way, SLIP simply encapsulates IP frames.