IT 기획의 길
네트워크 정복하기 6. 인터넷의 핵심인 TCP/IP의 개요 (ft. 애플리케이션의 개발) 본문
네트워크 정복하기 6. 인터넷의 핵심인 TCP/IP의 개요 (ft. 애플리케이션의 개발)
완벽하기 쉽지 않지만 완벽해지려고 노력해야 한다 2021. 9. 30. 16:21네트워크에서 데이터 전송 요건
네트워크는 컴퓨터와 네트워크 장비를 유무선의 전송 매체로 연결하여 데이터를 전송하는 시스템입니다(물리 네트워크). 이러한 물리적인 네트워크는 OSI 모델이나 TCP/IP 모델 같은 네트워크 설계도, 즉 네트워크 아키텍처에 따라 구현됩니다(논리 네트워크). 네트워크 아키텍처에 따라 프로토콜이라는 데이터 통신의 표준 규칙이 정해지고, 프로토콜의 사양에 따라 만들어지는 컴퓨터나 네트워크 장비는 호환성을 갖고 연결할 수 있게 되는 것입니다.
결국 네트워크에서 데이터를 전송하려면 물리적인 기기들의 ① 하드웨어적인 연결과 데이터를 전송하는 규칙인 ② 프로토콜 두 가지가 필요합니다.
참조: 물리 네트워크, 즉 네트워크의 하드웨어에 대해서는 '네트워크의 구성'에서, 논리 네트워크는, 즉 프로토콜에 대해서는 '프로토콜과 네트워크 아키텍처'에서 자세히 설명하였습니다.
<그림 1> 물리 네트워크와 논리 네트워크
인터넷에서의 데이터 전송
오늘날 어떤 컴퓨터를 사용하든 전 세계 어디에서나 인터넷에 접속할 수 있는 것은 대부분의 컴퓨터와 네트워크 장비가 인터넷의 표준인 TCP/IP 모델의 프로토콜에 따라 만들어졌기 때문입니다. 즉, 기기의 하드웨어는 프로토콜이 정하는 표준 규격에 따라 제작되고 소프트웨어는 프로토콜이 정한 데이터의 전송 순서와 절차, 데이터 전송 방법 등을 구현할 수 있도록 프로그래밍되는 것입니다.
내 컴퓨터로 웹 브라우저를 열어 인터넷에 접속할 수 있는 것은 웹 브라우저라는 응용 소프트웨어(애플리케이션)와 응용 소프트웨어를 동작시키는 운영체제라는 시스템 소프트웨어가 프로토콜에 따라 프로그래밍되고, 내 컴퓨터에 설치된 랜 카드, 내 컴퓨터와 연결된 인터넷 공유기 같은 하드웨어가 프로토콜에 따라 만들어졌기 때문입니다.
웹 애플리케이션을 만드는 창업자의 입장에서 생각해보면 TCP/IP 모델의 프로토콜에 따라 웹 애플리케이션을 프로그래밍해야 사용자들이 인터넷에서 웹 브라우저를 통해 웹 애플리케이션과 통신하며 웹 애플리케이션이 제공하는 서비스를 이용할 수 있게 되는 것입니다. 웹 애플리케이션이 동작하는 웹 서버 컴퓨터의 운영체제도, 웹 서버 컴퓨터의 랜카드나 라우터 같은 네트워크 장비도 TCP/IP 모델의 프로토콜에 따라 만들어야 합니다. TCP/IP 모델의 프로토콜이 중요한 이유입니다
지금부터 인터넷의 핵심이자 네트워크에서 가장 중요한 TCP/IP 모델에 대해 살펴보도록 하겠습니다.
TCP/IP 모델의 4 계층과 주요 프로토콜
TCP/IP 모델은 ① '응용 계층(Application layer, 애플리케이션 계층)', ② '전송 계층(Transport layer, 트랜스포트 계층)', ③ '인터넷 계층(Internet layer)', ④ '네트워크 인터페이스 계층(Network interface layer)'이라는 4개의 계층으로 분류합니다.
각 계층은 데이터 전송 과정에서 정해진 역할이 있고, 각 역할을 수행할 때 지켜야 할 프로토콜이 있습니다. TCP (Transfer Control Protocol)는 전송 계층에, IP(Internet Protocol)는 인터넷 계층에 속한 프로토콜의 이름입니다.
<그림 2>와 같이 각 계층마다 다양한 프로토콜이 존재하고 프로토콜의 사양에 따라 만들어진 컴퓨터의 하드웨어나 소프트웨어, 네트워크 장비들이 프로토콜을 구현하면서 각 계층의 역할을 수행합니다. 컴퓨터가 데이터를 주고받는다는 것은 응용 계층의 프로토콜에 따라 프로그래밍된 애플리케이션, 전송 계층과 인터넷 계층의 프로토콜에 따라 프로그래밍된 운영체제에 내장된 TCP/IP 소프트웨어, 이더넷 프로토콜을 따라 만들어진 랜카드가 제기능을 하고 있다는 뜻입니다.
<그림 2> TCP/ IP 계층과 주요 프로토콜
프로토콜은 소속된 계층의 역할에 따라 그 기능이 전문화되고 세분화되어 있습니다. 따라서 성공적인 데이터 통신을 위해서는 통신의 목적, 즉 서비스에 부합하는 기능을 갖고 있는 프로토콜을 잘 조합해서 사용해야 합니다.
TCP/IP 계층의 역할 구분 - 서비스 계층과 데이터 전송 계층
4개의 계층 중 응용(애플리케이션) 계층이 웹서비스, 이메일, 파일 전송 등과 같은 서비스의 내용을 결정하는 유일한 계층입니다. 응용(애플리케이션) 계층은 데이터의 내용을 보고 그에 맞는 서비스를 처리하는데 집중하고 데이터 전송은 나머지 3개의 하위 계층이 담당합니다. 즉, 응용(애플리케이션) 계층은 인터넷 사용자에게 서비스 관점에서 편리한 서비스를 제공하기 위한 것이며, 하위 계층은 데이터 관점에서 안정적인 데이터 전송을 책임지는 것입니다.
<그림 3> TCP/ IP 계층의 역할
TCP/IP 프로토콜들의 조합
애플리케이션이 제공하는 서비스마다 별도의 규칙이 존재하기 때문에 응용 계층에는 다양한 프로토콜이 있습니다. 즉, 응용 계층의 프로토콜은 애플리케이션의 수만큼 존재한다고 해도 과언이 아닙니다. 웹 서비스가 사용하는 HTTP, 파일 전송 서비스가 사용하는 FTP 등이 대표적인 응용 계층의 프로토콜입니다. 새로운 형태의 애플리케이션을 개발할 경우 새로운 응용 계층의 프로토콜을 만들게 됩니다.
응용 계층과 달리 데이터를 전송하는 하위 계층은 사용하는 프로토콜이 정해져 있습니다. 전송계층에서는 대부분 TCP, 인터넷 계층에서는 IP를 사용합니다. 따라서 대부분의 컴퓨터의 운영체제에는 TCP/IP 프로토콜에 따라 프로그래밍된 TCP/IP 소프트웨어가 내장되어 있습니다. 우리가 어떤 운영체제를 사용하든 인터넷에 접속할 수 있는 이유입니다.
네트워크 인터페이스 계층에서는 네트워크 기기 간에 물리적인 연결을 가능하게 하는 모든 프로토콜과 표준 기술을 지원합니다. 현재는 유선 LAN에서 사용되는 이더넷 프로토콜, 무선 LAN에서 사용되는 Wi-Fi 기술이 사실상의 표준으로 사용되고 있습니다. 내 컴퓨터에 설치된 랜 카드, 우리 집에 설치된 인터넷 공유기나 라우터 등이 이미 이더넷 프로토콜과 Wi-Fi 기술에 따라 만들어져 있습니다. 만약 새로운 기술을 사용하는 기기를 개발할 경우 새로운 네트워크 인터페이스 계층의 프로토콜을 만들게 됩니다.
새로운 응용 소프트웨어를 개발해서 응용 계층의 프로토콜을 변경하더라도, 새로운 하드웨어를 개발해서 네트워크 인터페이스 계층의 프로토콜을 변경하더라도 전송 계층과 인터넷 계층의 프로토콜은 TCP와 IP를 사용합니다. 이렇게 모든 애플리케이션과 기기들이 공통으로 사용하는 TCP와 IP가 프로토콜 조합의 중심이 되기 때문에 TCP/IP 모델 또는 TCP/IP라고 부르는 것입니다.
따라서 프로토콜을 조합할 때는 네트워크 인터페이스 계층의 프로토콜은 고려할 필요 없이 TCP/IP를 중심으로 인터넷에서 무엇을 할 것인지, 즉 어떤 서비스를 이용할 것인지에 따라 응용 계층의 프로토콜을 선택하게 됩니다. 예를 들면 <그림 4>와 같이 서비스의 종류에 따라 웹 서비스는 HTTP, 이메일 서비스는 SMTP와 POP3, 파일 전송 서비스는 FTP라는 응용 계층의 프로토콜을 선택합니다. 기존의 프로토콜을 사용하지 않는 새로운 형태의 서비스를 제공하는 애플리케이션을 만들 경우 새로운 프로토콜을 만들어야 합니다.
<그림 4> 서비스에 따른 프로토콜의 조합
<스타트업 창업자 이야기> TCP/IP 프로토콜과 애플리케이션의 개발
위에서 살펴 본 것처럼 응용 계층을 제외한 3개의 하위 계층의 프로토콜은 이미 컴퓨터와 네트워크 장비의 제조업체들이 소프트웨어나 하드웨어로 구현해 놓았기에 이를 적절히 이용할 수 있으면 됩니다.
따라서 스타트업 창업자가 인터넷에서 사용할 수 있는 새로운 애플리케이션을 개발할 때 중요한 것은 응용 계층에서 사용할 프로토콜입니다. 응용 계층에서 사용할 프로토콜에 따라 서버 애플리케이션과 클라이언트 애플리케이션이 만들어지고 서버와 클라이언트 간에 통신이 가능하기 때문입니다.
TCP/IP프로토콜과 애플리케이션 개발
새로운 형태의 애플리케이션 개발
기존에 없던 새로운 형태의 애플리케이션을 개발할 경우 응용 계층에서 사용할 프로토콜을 새롭게 만들어야 합니다.
지금은 전국민이 사용하는 앱이 된 카카오톡 앱은 카카오톡 서비스를 개발할 때 새롭게 만든 프로토콜에 따라 프로그래밍된 클라이언트 애플리케이션입니다. 카카오톡 서버가 제공하는 인스턴트 메시징* 서비스를 이용하려면 사용자는 전용 클라이언트 애플리케이션인 카카오톡 앱을 설치해야 합니다. 카카오톡 서비스를 만드는 입장에서는 ① 카카오톡 서비스를 제공할 카카오톡 서버 애플리케이션(카카오톡 서버), ② 카카오톡 서버를 이용하기 위한 클라이언트 애플리케이션(카카오톡 앱), ③ 카카오톡 서버와 카카오톡 앱이 통신할 수 있는 프로토콜을 개발해야 하는 것입니다.
*. 인스턴트 메시징(Instant Messaging)은 인터넷에 접속되어 있으면 실시간으로 쌍방향 통신을 할 수 있는 서비스를 의미합니다.
새로운 형태의 애플리케이션 개발
카카오톡뿐만 아니라 라인, 페이스북 등도 인스턴드 메시징 서비스를 제공하지만 서로 간에는 통신이 불가능합니다. 카카오톡 앱으로는 카카오톡의 인스턴트 메시징 서비스만, 라인 앱으로는 라인의 인트턴트 메시징 서비스만 이용 가능합니다. 인스턴트 메시징 서비스의 프로토콜이 통일되지 않아 저마다 다른 프로토콜을 사용하고 있기 때문입니다.
웹 애플리케이션 개발
반면 팀 버너스리가 개발한 웹 서비스(월드와이드웹)는 HTTP라는 통일된 프로토콜을 사용합니다.
웹 서비스의 클라이언트 애플리케이션으로 사용되는 웹 브라우저는 HTTP 프로토콜에 따라 프로그래밍 됩니다. 따라서 인터넷 사용자는 구글이 만든 크롬을 사용하든, 마이크로소프트가 만든 인터넷익스플로러/엣지를 사용하든, 애플이 만든 사파리를 사용하든 웹 서버가 제공하는 웹 서비스를 동일하게 사용할 수 있습니다.
구글의 검색 서버가 제공하는 검색 서비스를 크롬 뿐만 아니라 사파리 등 어떤 회사가 만든 웹 브라우저에서도 이용 가능한 것은 구글의 검색 서버 애플리케이션과 모든 웹 브라우저가 HTTP 프로토콜에 따라 프로그래밍 되었기 때문입니다.
따라서 웹의 형태로 새로운 서비스를 만들 때, 즉 웹 애플리케이션을 만들 때는 이미 개발되어 있는 다양한 웹 브라우저와 HTTP 프로토콜을 이용하면 됩니다. 즉 클라이언트 애플리케이션과 응응 계층의 프로토콜 개발없이 서비스를 제공하기 위한 웹 서버 애플리케이션만 HTTP 프로토콜을 적용해서 개발하면 되는 것입니다. 카카오톡 서비스와 같이 통일된 프로토콜이 없는 새로운 서비스를 만들 때와는 훨씬 적은 비용과 노력으로 개발이 가능해집니다. 이런 이유로 인터넷과 웹 서비스를 혼용해서 사용할 정도로 대부분의 인터넷 서비스가 웹을 이용해 제공되고 있습니다.
웹 애플리케이션의 개발
따라서 IT 서비스를 기획하는 테크 스타트업 창업자라면 웹 서비스가 동작하는 원리와 만들어지는 과정을 이해하는 것이 필요합니다.
출처: https://better-together.tistory.com/70?category=887984 [변계사 Sam의 테크 스타트업!]
'IT 인프라 > 네트워크' 카테고리의 다른 글
네트워크 정복하기 8. 인터넷의 TCP/IP 데이터 전송 과정(ft. 캡슐화와 역캡슐화) (0) | 2021.10.01 |
---|---|
네트워크 정복하기 7. TCP/IP 계층의 특징과 역할 및 프로토콜 (0) | 2021.09.30 |
네트워크 정복하기 5. 프로토콜과 네트워크 아키텍처 - OSI 모델과 TCP/IP (0) | 2021.09.30 |
네트워크 정복하기 4. 서버, 클라이언트와 웹 서비스 (ft. 비즈니스 로직과 사용자 인터페이스) (0) | 2021.09.30 |
네트워크 정복하기 3. 인터넷과 월드 와이드 웹(ft. 팀 버너스 리의 위대한 결단) (0) | 2021.09.30 |