💡 TCP/IP가 보이는 그림책을 정리한 내용입니다.
네트워크 상의 컴퓨터끼리 데이터를 주고받으려면 그에 맞는 장치가 필요하다.
컴퓨터끼리 데이터를 주고받을 때는 기종이나 통신 방식과 같은 차이가 문제가 된다.
기기의 차이에 관계없이 주고 받으려면 어떻게 할까?
컴퓨터간에 데이터를 주고받기(송수신)위한 공통된 장치를 만들면 각각의 차이에 관계없이 데이터를 주고 받을 수 있다.
송신측과 수신측의 컴퓨터가 미리 정해놓은 공통된 매뉴얼에 따라 연락을 취해야한다. 이 매뉴얼을 프로토콜(protocol)이라고 한다.
컴퓨터는 정해진 것 이상의 작업은 할 수 없으므로 주고받기의 순서나 처리에 대해 아주 자세한 부분까지 정해줘야한다.
전 세계적으로 공통된 통신 프로토콜이다.
만일 전 세계적으로 공통된 통신 프로토콜이 있다면, 그 프로토콜만 사용하면 어떤 컴퓨터끼리든 데이터를 주고받을 수 있게 될 것입니다. 현재 전 세계 공통 통신 프로토콜로 채택된 것이 TCP/IP이다.
데이터를 주고받는 데는 여러 작업이 필요하다. 하나의 프로토콜로 모든 것을 처리하는 것은 힘들기 때문에, TCP/IP는 여러 개의 프로토콜로 이루어져있다.
TCP/IP에서는 송수신과 관련된 일련의 작업을 몇 개의 단계로 나눠서 수행한다. 각 단계를 계층(layer)라고 하며, 층으로 나눈 것을 계층화라고 한다. 회사 조직을 예로 들면 각 계층은 부서에 해당한다. 각 부서에는 작업 매뉴얼이 구비되어 있어 그에 따라 작업을 수행하면 다른 부서의 업무를 몰라도 사장의 요구에 대처할 수 있다. 따라서 계층화에는 ‘계층마다 작업을 독립시킨다’는 장점이 있다.
데이터가 상대에게 전달될 때까지의 흐름을 따라가면서 각 계층의 역할에 대해 간략하게 살펴보자.

5개의 계층이 위로 갈수록 사용자와 가까운 작업을 하고, 아래로 갈수록 기계와 가까운 작업을 담당한다. 각 층에는 다양한 프로토콜이 준비되어 있으며, TCP(Transmission Control Protocol)와 IP(Internet Protocol)도 그 중 하나입니다.

일반적으로 TCP/IP라고 하면 이 5계층 전체를 가리킨다. 하지만 TCP와 IP라는 두개의 프로토콜만 가리키는 경우도 있으므로 그것과 구별하기 위해 5계층 전체를 TCP/IP 프로토콜군(protocol family)라고도 한다.
프로토콜 조합을 바꿈으로써 다양한 애플리케이션이나 기기를 처리할 수 있다.
예를 들어 전자메일의
송신이라면 SMTP와 TCP, IP
수신이라면 POP3과 TCP,IP
등을 조합하면 됩니다.
‘무엇을 할 것인지’에 따라 사용할 프로토콜 조합이 달라진다.
송신측의 각 계층에서는 수신측의 동일한 계층에서 필요한 정보를 공통된 서식으로 데이터에 추가해간다. 데이터보다 앞에 추가한 정보를 헤더(header), 뒤에 추가한 정보를 트레일러(trailer)라고 한다.
💡 데이터와 정보를 하나로 묶어서 다루는 것을 캡슐화라고 한다.


상위층에서 추가된 헤더와 트레일러는 데이터와 합쳐져서 또 하나의 데이터가 된다.
송신측의 각 계층에서 추가된 헤더와 트레일러는 수신측의 동일한 계층에서만 사용된다.
예를들어 송신측의 애플리케이션층에서 추가된 정보는 수신측의 애플리케이션층에서만 사용합니다.
상위층에서 추가된 헤더는 캡슐화되어 있으므로 다른 계층에서는 볼 수 없다.
이 때문에 서로 동일한 계층끼리만 연락을 취하고 있는 것처럼 보인다.
사용된 헤더(및 트레일러)는 수신측에 들어가면서 순서대로 벗겨진다.
송신과는 반대 순서를 밟아서 데이터를 조합한다.
TCP/IP에서는 데이터를 일정한 크기로 분할(패킷)해서 송수신하는 패킷 교환이라는 방법으로 주고받기를 수행한다.
| 공간 | 하는 일 |
|---|---|
| 송신측 | 데이터를 패킷으로 나누고, 각 패킷에 수신처나 원래대로 되돌리기 위한 번호 등의 필요한 정보를 추가한 후 회선을 사용해 데이터를 송신한다. |
| 회선 | 다른 네트워크로 가는 중계 지점에서 다음은 어디로 가면 좋을지에 대한 새로운 정보가 추가된다. 하나의 회선으로 여러 개의 데이터를 거의 동시에 주고받을 수 있다. 여러 개의 데이터를 회선에 맞는 크기로 만든다. 수신 불명인 경우 파기하고 송신측에 연락한다. |
| 수신측 | 자기 앞으로 온 패킷이 아니면 아무 일도 일어나지 않는다. 자기 앞으로 온 패킷만 바든다. 헤더 정보를 기초로 해서 데이터를 되돌린다. 만약 손상되어 있으면 해당 패킷만 다시 받는다. 이 작업들이 마무리되면 데이터를 원래대로 되돌린다. |
데이터 송수신에 관한 일련의 작업을 하나로 모은 것이다.
일련의 작업이란 송신측에서 수행되는 일, 송신측에서 수신측으로 갈 때까지 수행되는 일, 수신측에서 수행되는 일 등 상당히 많은 공정으로 이루어져 있다.
데이터를 디지털 신호로 바꾼다 → 보낼 곳에 전달한다 → 디지털 신호를 데이터로 되돌린다
의 작업을 효율적으로 수행하기 위해서 TCP/IP에서는 데이터를 신호로 바꾸거나, 신호를 데이터로 되돌리는 데 5단계의 절차를 거친다. 각 단계를 계층(layer)이라고 하며, 위에서부터 순서대로 되어있다. 데이터가 우리에게 가까운 곳부터 점점 기계의 세계로 들어간다는 것이다. 데이터 링크층과 물리층을 합쳐서 4계층으로 취급하는 경우도 있다.

TCP/IP의 특징 중 하나 ‘데이터를 일정한 크기로 분할해서 보낸다’는 것이다. 작게 나눠진 데이터 하나 하나를 패킷이라고 하며, 이런 통신 방법을 ‘패킷 통신’이라고 한다.
패킷 통신에는 데이터를 세분화함으로써 하나의 회선을 사용해 여러 데이터를 거의 동신에 송수신 할 수 있다. 또 통신 중에 데이터의 일부가 손상되어도 해당하는 부분만 다시 보내면 된다는 장점이 있다.
TCP/IP
통신 프로토콜군을 총칭
신호
다른 컴퓨터와 통신하기 위해서 데이터를 통신 매체를 통과하기 위한 신호로 바꿔야한다. 신호에는 아날로그와 디지털 신호가 있으며, 이 변환은 TCP/IP 5계층 중 물리층에서 일어난다.
계층(layer)
TCP/IP을 이용한 통신은 서로 다른 기능과 역할을 가지고 있는 5개의 계층을 통해 일어난다. 이 5계층을 차례로 통과하면서 데이터 송수신이 일어난다. TCP/IP 5계층과 달리 OSI 참조 모델을 7계층을 사용한다.
패킷(packet)
데이터 전송시는 데이터를 일정한 크기로 잘라서 보내는데, 패킷이란 이때 사용되는 정보의 전송 단위로, 한 패킷은 보통 1,024비트다. 각 패킷에는 데이터뿐만 아니라 데이터의 수신처, 주소, 제어 부호 등의 제어 정보를 담고 있다.