본문 바로가기
Stg

TCP/IP

by 호랑2 2023. 3. 28.

프로토콜

컴퓨터와 네트워크 기기가 상호간에 통신하기 위해서는 서로 같은 방법으로 통신이 이루어져야 한다.

예를 들면 상대를 찾고, 통신을 시작하고, 통신과정에서 어떤 언어를 사용하며, 통신을 어떤식으로 종료할지와 같은 규칙이 필요한 것이다.

 

이렇게 서로 다른 하드웨어와 운영체제에서 서로 통신을 하기 위해서는 모든 요소에 규칙이 필요하며, 이를 프로토콜 이라고 부른다.

 

프로토콜에는 여러가지 종류가 있다. 케이블 규격 및 IP 주소 지정 방법, 상대를 찾고 그곳에 도달하는 순서, 웹을 표시하는 순서 등이다.

이렇게 인터넷과 관련된 프로토콜을 모아놓은 것을 TCP/IP 라고 부른다.

 

TCP/IP 의 계층

TCP/IP 에서 중요한 개념 중 하나가 계층 (Layer) 으로 애플리케이션, 트랜스포트, 네트워크, 링크 계층의 총 4개 계층으로 나뉘어져 있다.

이와 같이 계층으로 구분하는 이유는 만약 하나의 프로토콜로 이루어져 있다면 어디선가 사양 변경이 필요할 때 전체 프로토콜을 수정해야 하지만, 계층화 되어 있으면 사양이 변경된 해당 계층만 수정하면 되기 때문에 관리가 용이하다.

 

각 계층은 계층이 연결되어 있는 부분만 결정되어 있어, 각 계층의 내부는 자유롭게 설계할 수 있다.

애플리케이션 층에서 애플리케이션은 자기 자신이 담당하는 부분만 고려하면 되고, 기타 다른 작업에 대해서는 고려할 필요가 없다.

 

애플리케이션 계층

애플리케이션 계층은 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정한다.

TCP/IP 에서는 여러가지의 공통 애플리케이션이 있으며, ftp, dns, http 등이 이 계층에 포함된다.

 

트랜스포트 계층

트랜스포트 계층은 애플리케이션 계층에 네트워크로 접속되어 있는 2대의 서로 다른 장비 사이의 데이터 흐름을 제공한다.

트랜스포트 계층에서는 서로 다른 성질을 가진 TCP (Transmission Control Protocol) 와 UDP (User Data Protocol) 이 있다.

 

네트워크 계층(혹은 인터넷 계층)

네트워크 계층은 네트워크 상에서 패킷의 이동을 다룬다. 패킷이란 전송하는 데이터의 최소 단위이다.

이 계층에서는 어떠한 경로를 거쳐 상대의 장비까지 패킷을 보낼지를 결정하기도 한다.

네트워크 계층의 프로토콜이 IP 이다.

 

링크 계층

네트워크에 접속하는 하드웨어적인 면을 다루는 계층이다. 운영체제가 하드웨어를 제어하기 때문에 디바이스 드라이버와 네트워크 인터페이스 카드(NIC) 를 포함한다. 그리고 케이블 등과 같이 물리적으로 보이는 부분도 포함한다. 하드웨어 측면은 모두 링크 계층의 역할이다.

 

TCP/IP 통신의 흐름

TCP/IP 로 통신을 할 때 계층을 순서대로 거쳐가며 상대와 통신을 하게 된다.

송신하는 측은 애플리케이션 계층부터 내려가고, 수신하는 측은 애플리케이션 계층으로 올라간다.

 

출처 : https://docs.oracle.com/cd/E18752_01/html/816-4554/ipov-29.html

 

HTTP를 예로 들어 설명하면, 먼저 송신측 클라이언트의 애플리케이션 계층(HTTP) 에서 어느 웹 페이지를 보고싶다 라는 HTTP 리퀘스트를 지시한다.

그 다음에 있는 트랜스포트 계층(TCP) 에서는 애플리케이션 계층에서 받은 데이터 (HTTP 메시지)를 통신하기 쉽게 조각내어 안내 번호와

포트 번호를 붙여 네트워크 계층에 전달한다.

네트워크 계층(IP) 에서는 수신지 MAC 주소를 추가해서 링크 계층에 전달한다. 이로써 네트워크를 통해 송신할 준비가 완료된다.

 

수신측 서버에서는 링크 계층에서 데이터를 받아들여 순서대로 위의 계층에 전달하여 애플리케이션 계층까지 도달한다.

애플리케이션 계층에 도달하게 되면 클라이언트가 발신했던 HTTP 리퀘스트 내용을 수신할 수 있다.

 

각 계층을 거칠 때는 반드시 헤더로 불려지는 해당 계층마다 필요한 정보를 추가한다. 반대로 수신측에서는 각 계층을 거칠 때마다

반드시 해당 계층마다 사용한 헤더를 삭제한다. 이렇게 정보를 감싸는 것을 캡슐화 라고 부른다.

'Stg' 카테고리의 다른 글

HTTP 메소드  (0) 2023.04.05
HTTP  (0) 2023.04.04
URI 와 URL  (0) 2023.04.01
IP / TCP / DNS  (0) 2023.03.30
ChatGPT 에 대한 단상  (0) 2023.01.16

댓글