TCP/IP network architecture
Network - TCP/IP model
Network
데이터 전송을 위해 여러 개의 PC가 연결된 시스템을 네트워크라고 한다. 네트워크에 연결된 PC를 host라고 한다. 데이터가 전송되는 과정을 논리적인 단계로 분할하여 각 단계에서 핵심 기능을 뽑아내 구조로 표현한 것이 network architecture(또는 network model)이다. 결국 네트워크 모델은 프로토콜의 집합이다.
OSI 7-Layer와 TCP/IP 모델이 가장 대표적인 네트워크 구조이다.
Protocol
컴퓨터 사이에 데이터를 어떻게 주고 받을 것인지를 정의한 통신규약이다.
- syntax(구문) - 데이터 구조 또는 형식 (**무엇을)
- semantics(의미) - 전송 오류 및 처리 등을 위한 제어 정보 (어떻게)
- timing(타이밍) - 데이터의 전송 속도 및 순서 (언제)
컴퓨터끼리 데이터를 교환할 때에는 다양한 프로토콜 중 데이터의 전송 목적, 즉 서비스의 종류에 따라 프로토콜을 조합하여 사용한다.
예를 들어 인터넷을 통해 제공되는 웹 서비스들은 TCP, IP, HTTP를 조합하여 데이터를 주고 받는다.
OSI 7 - Layer
네트워크에서 통신이 진행되는 과정을 7 단계로 추상화한 모델이다. 각 계층은 프로토콜에 의해 구현된다.
구조가 복잡하여 실무에서 사용되지는 않지만 네트워크 통신 과정을 설명하는 용도로 활용되고 있다. 현재는 전송 과정을 4개의 계층으로 단순화한 TCP/IP 모델이 사실상 표준이다.
각 계층에는 역할에 따라 다양한 프로토콜이 존재한다.
TCP/IP model
네트워크 구조는 프로토콜의 집합이고 프로토콜은 각 계층의 핵심 기능을 정의한 것이다.
TCP/IP 모델은 데이터 전송 과정을 4개의 계층으로 단순화했다.
- application layer(응용 계층) - 데이터를 앱으로 전달한다.
- transport layer(전송 계층) - 데이터의 흐름을 제어하여 신뢰성, 효율성을 관리하고 호스트에 도착한 데이터를 어떤 애플리케이션(포트)으로 전달할지 결정한다. port number 사용
- internet layer(인터넷 계층) - 서로 다른 네트워크에 데이터를 전송한다. IP address 사용
- network interface layer(네트워크 인터페이스 계층) - 같은 네트워크 안에서 물리적으로 연결된 네트워크 장비로 데이터를 전송한다. MAC address 사용
인터넷을 사용하는 애플리케이션의 경우 아래 네 개의 프로토콜은 고정(TCP/UDP + IP + Ethernet/WiFi)되어 있고 애플리케이션의 목적에 맞는 애플리케이션 계층의 프로토콜을 선택한다.
인터넷을 통해 데이터를 교환하는 앱을 개발할때 중요한 것은 응용계층에서 사용할 프로토콜이다. 기존에 없던 기능이 필요할 경우, 응용 계층의 프로토콜을 새로 만들어야 한다.
예를 들어 카카오톡은 서비스를 개발할때 LOCO라는 새로운 프로토콜을 개발했다.
Comments