네트워크?
- 구성요소 측면
여러 호스트들, 종단 시스템(end system)들이 통신 링크(케이블), 패킷 스위치(라우터, 스위치) 등을 통하여 연결되어 이루어진 네트워크.
종단 시스템은 ISP (Internet Service Provider)를 통해서 인터넷에 접속한다. 인터넷의 구성요소 (종단 시스템, 패킷 스위치 등)은 인터넷에서 정보 송수신을 제어하는 여러 프로토콜(protocol, 규약)을 수행한다. - 서비스 측면
애플리케이션에 서비스를 제공하는 인프라 구조.
프로토콜이란 무엇인가?
통신하는 둘 이상의 원격 개체가 포함된 인터넷에서의 모든 활동은 프로토콜이 제어한다. 프로토콜은 교환되는 메시지 포맷과 순서를 정의하고, 뿐만 아니라 메시지의 송수신과 다른 이벤트에 따른 행동들을 정의한다.
네트워크 가장자리(edge)와 중심(core)
네트워크의 가장자리는 종단 시스템. 네트워크 코어는 패킷 스위치와 링크.
프로토콜 계층화
네트워크 프로토콜의 설계에 대한 구조를 제공하기 위해, 설계자는 프로토콜을 계층으로 조직한다. 다양한 계층의 프로토콜을 합하여 프로토콜 스택이라고 한다. 인터넷 프로토콜 스택은 5개 계층으로 구성된다. (애플리케이션 계층, 트랜스포트 계층, 네트워크, 링크, 물리)
애플리케이션
네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있다. HTTP, SMTP, FTP 같은 프로토콜을 포함한다. 애플리케이션 계층에서의 정보 패킷을 메시지라고 부른다.
트랜스포트
클라이언트와 서버간 애플리케이션 계층 메시지를 전송하는 서비스를 제공한다. TCP, UDP 프로토콜이 있다. TCP는 연결지향형 서비스를 제공한다. 메시지 전달 보장과 흐름제어를 포함한다. 혼잡제어도 제공해 네트워크가 혼잡할 때 출발지의 전송속도를 줄이도록 한다. UDP는 비연결형 서비스로 다른 기능을 제공하지 않는 간단한 서비스다. 트랜스포트 계층의 패킷을 세그먼트라고 한다.
네트워크
한 호스트에서 다른 호스트로 데이터그램을 라우팅하는 책임을 진다. IP 프로토콜이 있다. 그리고 출발지와 목적지 사이에서 데이터그램이 이동하는 경로를 경정하는 라우팅 프로토콜을 포함한다.
캡슐화
송신하는 호스트는 프로토콜 스택의 아래로 데이터를 보내면서 헤더 + 페이로드로 캡슐화를 진행한다. 애플리케이션 계층에서 트랜스포트 계층으로 메시지를 전달하고, 트랜스포트 계층에서는 메시지에 헤더를 붙여 세그먼트로 네트워크 계층에 전달하는 것과 같이, 각 계층을 내려올 때 캡슐화를 진행한다. 다른 계층에서 필요없는 데이터를 확인하지 않아도 된다.
예를 들어, 링크 계층 스위치에서는 네트워크 계층의 데이터를 볼 필요가 없다. 이럴 때, 링크 계층까지만 확인해 다음 목적지로 보낼 수 있다.
캡슐화된 패킷은 수신하는 호스트에서 캡슐화의 반대과정을 진행한다.
'Anything' 카테고리의 다른 글
[Java] Windows에서 Gradle 프로젝트 생성하기 (0) | 2021.05.29 |
---|---|
[MySQL] ERROR 1064 (0) | 2021.05.27 |
[Javascript] Ajax (0) | 2021.04.20 |
[DB] 커넥션 풀 (Connection Pool) (0) | 2021.04.15 |
[Basic] RESTful API (0) | 2021.04.12 |