본 글은 아래의 [변계사 Sam] 블로그에서 개인적인 공부의 목적으로 허가를 받고 발췌하였음을 밝힙니다.
https://better-together.tistory.com/70?category=887984

 


네트워크에서 데이터 전송 요건

 

네트워크는 컴퓨터와 네트워크 장비를 유무선의 전송 매체로 연결하여 데이터를 전송하는 시스템입니다.(물리 네트워크)

이러한 물리적인 네트워크는 OSI 모델이나 TCP/IP 모델 같은 네트워크 설계도, 즉 네트워크 아키텍쳐에 따라 구현된다.

네트워크 아키텍쳐에 따라 데이터 통신 표준 규칙인 프로토콜이 정해지고, 포로토콜 사양에 따라 만들어지는 컴퓨터나 네트워크 장비는 호환성을 갖고 연결할 수 있게 된다.

 

결국 네트워크에서 데이터를 전송하려면 물리적인 기기들의 하드웨어적인 연결과 데이터를 전송하는 규칙인 프로토콜 두 가지가 필요하다.

 

 


인터넷에서의 데이터 전송

 

오늘날 어떤 컴퓨터를 사용하든 전 세계 어디에서나 인터넷에 접속할 수 있는 것은 대부분의 컴퓨터와 네트워크 장비가 인터넷의 표준인 TCP/IP 모델의 프로토콜에 따라 만들어졌기 때문이다.

즉, 기기의 하드웨어는 프로토콜이 정하는 표준 규격에 따라 제작되고 소프트웨어는 프로토콜이 정한 데이터의 전송 순서와 절차,데이터 전송 방법 등을 구현할 수 있도록 프로그래밍 되는 것이다.

 

웹 브라우저를 열어 인터넷에 접속할 수 있는 것은 웹 브라우저라는 응용 소프트웨어(APPlication) 과 응용 소프트웨어를 동작 시키는 OS라는 시스템 소프트웨어가 프로토콜에 따라 프로그래밍 되고, 내 컴퓨터에 설치된 랜 카드, 인터넷 공유기 같은 하드웨어가 프로토콜에 따라 만들어졌기 때문이다.

 


TCP/IP 모델의 4 계층과 주요 프로토콜

 

TCP/IP 모델은

 

1.응용 계층(Application Layer)

2.전송 계층(Transport Layer)

3.인터넷 계층(Internet Layer)

4.네트워크 인터페이스 계층(Network interface Layer)

 

이라는 4개의 계층으로 분류한다.

 

각 계층은 데이터 전송 과정에서 정해진 역할이 있고, 각 역할을 수행할 때 지켜야 할 프로토콜이 있다.

TCP는 전송 계층(Transport Layer)에 ,  IP 는 인터넷 계층(Internet Layer) 에 속한 프로토콜의 이름이다.

 

 

위 그림과 같이 각 계층마다 다양한 프로토콜이 존재하고 프로토콜의 사양에 따라 만들어진 컴퓨터의 하드웨어나 소프트웨어, 네트워크 장비들이 프로토콜을 구현하면서 각 계층의 역할을 수행한다.

 

컴퓨터가 데이터를 주고 받는다는것은 응용 계층의 프로토콜에 따라 프로그래밍된 애플리케이션, 전송 계층과 인터넷 계층의 프로토콜에 따라 프로그래밍된 운영체제에 내장된 TCP/IP 소프트웨어, 이더넷 프로토콜을 따라 만들어진 랜카드가 제 기능을 하고 있다는 뜻이다.

 

프로토콜은 소속된 계층의 역할에 따라 그 기능이 전문화되고 세분화 되어 있다. 따라서 성공적인 데이터 통신을 위해서는 통신의 목적, 즉 서비스에 부합하는 기능을 갖고 있는 프로토콜을 잘 조합해서 사용해야 한다.

 


TCP / IP 계층의 역할 구분 - 서비스 계층과 데이터 전송 계층

 

4개의 Layer 중 응용(Application) 계층이 웹서비스, 이메일, 파일 전송 등과 같은 서비스의 내용을 결정하는 유일한 계층이다. Application Layer 는 데이터의 내용을 보고 그에 맞는 서비스를 처리하는데 집중하고 데이터 전송은 나머지 3개의 하위 계층이 담당한다. 즉, Application Layer 는 인터넷 사용자에게 서비스 관점에서 편리한 서비스를 제공하기 위한 것이며, 하위 계층은 데이터 관점에서 안정적인 데이터 전송을 책임지는 것이다.

 


 

TCP/IP protocol들의 조합

 

애플리케이션이 제공하는 서비스마다 별도의 규칙이 존재하기 때문에 응용 계층에는 다양한 프로토콜이 있다.

즉, Application Layer의 프로토콜은 Application의 수만큼 존재한다고 해도 과언이 아니다.

웹 서비스가 사용하는 HTTP, 파일 전송 서비스가 사용하는 FTP 등이 대표적인 Application Layer 프로토콜이다.

새로운 형태의 Application을 개발할 경우 새로운 응용 계층의 프로토콜을 만들게 된다.

 

Application Layer와 달리 데이터를전송하는 하위 계층은 사용하는 프로토콜이 정해져있다.

Transport Layer에서는 대부분 TCP, Internet Layer에서는 IP 프로토콜을 사용한다.

따라서 대부분의 컴퓨터 OS에는 TCP/IP 프로토콜에 따라 프로그래밍된 TCP/IP 소프트웨어가 내장되어 있다. 우리가 어떤 OS를 사용하든 인터넷에 접속할 수 있는 이유이다.

 

Network Interface Layer 에서는 네트워크 기기 간에 물리적인 연결을 가능하게 하는 모든 프로토콜과 표준 기술을 지원한다. 현재는 유선 LAN에서 사용되는 이더넷 프로토콜, 무선 LAN에서 사용되는 Wi-Fi 기술이 사실상의 표준으로 사용되고 있다. 내 컴퓨터에 설치된 랜 카드, 우리 집에 설치된 인터넷 공유기나 router 등이 이미 이더넷 프로토콜과 Wi-Fi 기술에 따라 만들어져 있다. 만약 새로운 기술을 사용하는 기기를 개발할 경우 새로운 Network Interface Layer 의 프로토콜을 만들게 된다.

 

새로운 응용 소프트웨어를 개발해서 Application Layer의 프로토콜을 변경하더라도, 새로운 하드웨어를 개발해서 Network Interface Layer 의 프로토콜을 변경하더라도,  Transport Layer와 Internet Layer의 프로토콜은 TCP/IP를 사용한다. 이렇게 모든 애플리케이션과 기기들이 공통으로 사용하는 TCP/IP가 프로토콜 조합의 중심이 되기 때문에 TCP/IP 모델 또는 TCP/IP 라고 부르는 것이다.

 

따라서 프로토콜을 조합할 때는 Network Interface Layer의 프로토콜은 고려할 필요 없이 TCP/IP를 중심으로 인터넷에서 무엇을 할 것인지, 즉 어떤 서비스를 이용할 것인지에 따라 Application Layer의 프로토콜을 선택하게 된다.

예를 들면 아래의 그림과 같이 서비스의 종류에 따라 웹 서비스는 HTTP, 이메일 서비스는 SMTP와 POP3, 파일 전송 서비스는 FTP 라는 응용 계층의 프로토콜을 선택한다. 기존의 프로토콜을 사용하지 않는 새로운 형태의 서비스를 제공하는 애플리케이션을 만들 경우 새로운 프로토콜을 만들어야 한다.

위에서 본 것처럼 Application을 제외한 하위 3개층의 프로토콜은 이미 컴퓨터와 네트워크 장비의 제조업체들이 소프트웨어나 하드웨어로 구현해 놓았기에 이를 적절히 이용할 수 있으면 된다.

 

따라서 인터넷에서 사용할 수 있는 새로운 애플리케이션을 개발할 때 중요한 것은 Application Layer에서 사용할 프로토콜이다. Application Layer에서 사용할 프로토콜에 따라 Server Application 과 Client Application이 만들어지고 Server 와 Client 간에 통신이 가능하기 때문이다.


새로운 형태의 애플리케이션 개발

 

기존에 없던 새로운 형태의 애플리케이션을 개발할 경우 응용 계층에서 사용할 프로토콜을 새롭게 만들어야 한다.

 

지금은 전국민이 사용하는 앱이 된 카카오톡 앱은 카카오톡 서비스를 개발할 때 새롭게 만든 프로토콜에 따라 프로그래밍된 클라이언트 애플리케이션이다. 카카오톡 서버가 제공하는 *인스턴트 메세징 서비스를 이용하려면 사용자는 전용 클라이언트 애플리케이션인 카카오톡 앱을 설치해야 한다. 카카오톡 서비스를 만드는 입장에서는 ① 카카오톡 서비스를 제공할 카카오톡 서버 애플리케이션(카카오톡 서버), ② 카카오톡 서버를 이용하기 위한 클라이언트 애플리케이션(카카오톡 앱), ③ 카카오톡 서버와 카카오톡 앱이 통신할 수 있는 프로토콜을 개발해야 하는 것이다.

 

*. 인스턴트 메시징(Instant Messaging)은 인터넷에 접속되어 있으면 실시간으로 쌍방향 통신을 할 수 있는 서비스를 의미한다.

카카오톡뿐만 아니라 라인, 페이스북 등도 인스턴드 메시징 서비스를 제공하지만 서로 간에는 통신이 불가능하다. 카카오톡 앱으로는 카카오톡의 인스턴트 메시징 서비스만, 라인 앱으로는 라인의 인트턴트 메시징 서비스만 이용 가능하다.

인스턴트 메시징 서비스의 프로토콜이 통일되지 않아 저마다 다른 프로토콜을 사용하고 있기 때문이다.

 

따라서 웹 형태로 새로운 서비스를 만들 때, 즉 웹 애플리케이션을 만들 때는 이미 개발되어 있는 다양한 웹 브라우저와 HTTP 프로토콜을 이용하면 된다. 다시 말해 클라이언트 어플리케이션과 Application Layer 프로토콜 개발 없이, 서비스를 제공하기 위한 웹 서버 Application 만 HTTP 프로토콜을 적용해서 개발하면 되는 것이다.

카카오톡 서비스와 같이 통일된 프로토콜이 없는 새로운 서비스를 만들 때와는 훨씬 적은 비용과 노력으로 개발이 가능하다.

이런 이유로 인터넷과 웹 서비스를 혼용해서 사용할 정도로 대부분의 인터넷 서비스가 웹을 이용해 제공되고 있다.

 



 

+ Recent posts