kakasoo

[TCP/IP] TCP/IP 프로토콜 스택 (1) 본문

프로그래밍/네트워크

[TCP/IP] TCP/IP 프로토콜 스택 (1)

카카수(kakasoo) 2020. 7. 15. 15:48
반응형

인터넷 프로토콜(IPv4) 기반 소켓인 경우, 데이터 전송방법에 따라  TCP socket과 UDP socket으로 나뉘고,

특히 TCP 소켓의 경우 연결을 지향하기 때문에 stream 기반 소켓이라고 이야기한다.

TCP는 앞전에 말했듯이 Transmission Control Protocol의 약자로, 전송 제어 프로토콜, 데이터 전송 과정의 컨트롤이라는 뜻을 가지고 있다.

 

 

좌측은 TCP/IP 프로토콜 스택이고, 우측은 TCP 프로토콜 스택이다.

 

좌측의 그림을 볼 때, TCP/IP 스택이 총 4개의 계층으로 나뉘어 있음을 볼 수 있다.

이는 데이터 송수신의 과정이 총 4개의 영역에서 이루어지는 것으로 받아들일 수 있는데, 이는 즉 '인터넷 기반의 효율적인 데이터 전송'이라는 커다란 하나의 문제를 하나의 덩치 큰 프로토콜 설계로 해결한 것이 아니라,

그 문제를 작게 나눠서 계층화하려는 노력이 시도되었음을 의미한다.

그냥 쉽게 말하면, 큰 문제를 작게 나눠서 해결하려는 시도가, 스택을 계층화시켰다는 의미다.

 

당연한 이야기지만, 네트워크라고 하는 것은 단순하지도 않고, 소프트웨어로만 이루어지지도 않았다.

수 많은 분야의 전문가와 자원이 모인 산물이라고 해야 적합할진데,

그 크기가 커서는 효율적이지 않아, 상호 논의 간에 만들어진 다양한 약속으로 인해 작은 문제로 분할해낸 것이다.

 

이렇게 만들어진 계층은, 각각 운영체제와 같은 소프트웨어, 또는 NIC (network interface card) 같은 장치가 담당한다.

(프로그래머의 관점에서는 4계층으로 이해해도 충분하다, 데이터 통신에서는 7단계로 나눈다고 하는데... 배워볼까!?)

 

프로토콜을 계층화함으로써 얻게 되는 장점!

  • 프로토콜 설계의 용이성
  • 표준화 작업을 통한 개방형 시스템 ★

위에는 프로토콜 설계의 용이성, 효율성을 위해서 계층을 분할했다는 이야기를 했지만, 더 큰 이유가 하나 더 있다 한다.

'표준'의 조건은 감출 것이 아니라 개방하여 모두가 보고, 이해하고, 따를 수 있게 만든다는 의미를 갖고 있는데,

이렇게 만들어진 표준적인 시스템을 '개방형 시스템'이라고 한다.

개방형의 장점은, 다시 아래와 같다.

 

  • 표준을 따르기 때문에 다른 제조사 제품들 간의 호환이 가능하다. (라우터, 네트워크 카드, 랜 카드)
  • 이로 인해 빠른 속도의 기술 발전이 가능하다.

이런 표준에 대한 생각은 나중에 객체지향으로도 이어진다.

반응형