본문 바로가기
IT 개발/Network

프로토콜(Protocol) 이란 / TCP/IP, HTTP, Web Socket

by Love of fate 2020. 2. 5.
728x90
반응형

프로토콜(Protocol) 이란 / TCP/IP, HTTP, Web Socket

 

프로토콜(Protocol) : 

- 복수의 컴퓨터 사이나 중앙 컴퓨터와 단말기 사이에서 데이터 통신(데이터를 을 원활하게 하기 위해 필요한 통신 규약

 

- 사람과 사람이 통신할 때 서로 이해할 수 있는 언어, 공용된 언어를 사용해 전세계 모든 사람과 대화 할 수 있다.라고 하면, 컴퓨터와 컴퓨터도 서로 이해할 수 있는 언어, 공용된 언어를 사용해야 한다는 것인다.

이 것이 바로 프로토콜(Protocol)이다.

 

- 프로토콜을 정의하는 기관은 IEEE, ISO 등이 있다.

 

* 프로토콜의 기능

- 캡슐화(encapsulation)

- 흐름제어 (flow control)

- 연결제어 (connection control)

- 오류제어 (error control)

- 주소설정 (addressing)

- 순서설정 (sequence)

- 동기화 (synchronization)

- 세분화와 재합성 (fragmentation and reassembly)

- 다중화(multiplexing)

 


구성(OSI 참조 모델 기반)

각 계층의 수직적 상하관계는 Top-Down 구조이다. 

 

- 물리적 측면 : 자료 전송에 쓰이는 전송 매체, 접속용 단자 및 전송 신호, 회선 규격 등.

      (물리 계층, 데이터 링크 계층, 네트워크 계층)

- 논리적 측면 : 프레임 구성, 프레임 안에 있는 각 항목의 뜩과 기능, 자료 전송의 절차 등.

      (전송 계층, 세션 계층, 표현 계층, 응용 계층)

 

프로토콜 계층 별로 주로 사용되는 데이터 단위(Protocol Data Unit) 명칭

- 응용 계층 : 메세지, 데이터

- 표현 계층 : 메세지, 데이터

- 세션 계층 : 메세지, 데이터

- 전송 계층 : 세그먼트

- 네트워크 계층 : 패킷, 데이터 그램

- 데이터링크 계층 :  프레임

- 물리 계층 : 비트 


TCP/IP (Transmission Control Protocol / Internet Protocol)

TCP : 정보 패킷 차원에서 다른 인터넷 노드와 메시지를 상호 교환하는데 필요한 규칙을 사용한다. 

IP : 인터넷 주소 차원에서 메시지를 보내고 받는데 규칙을 사용한다. 

 

네 개의 계층

1. 애플리케이션 :

     다른 계층의 서비스에 접근할 수 있게 하는 애플리케이션을 제공, 교환하기 위해 사용하는 프로토콜을 정의

     - HTTP : WWW의 Web 페이지 파일을 전송하는데 사용된다.

     - DNS : 호스트 이름을 IP주소로 변환하기 위해 사용된다. 

 

2. 트랜스포트 : 애플리케이션 계층에 세션과 데이터그램 통신 서비스를 제공한다. 

     - TCP : 1대1 연결지향, 신뢰할 수 있는 통신 서비스를 제공한다. 

               연결확립과 보내진 패킷의 확인, 순서화, 전달 중 손상된 패킷을 복구하는 책임을 지는 역할 

     - UDP : 1대1 , 1대 다의 비연결 지향, 신뢰할 수 없는 통신 서비스를 제공한다. 

                데이터의 크기가 작을때나, 연결 확립에 의한 부하를 피하려고 할 때 사용한다. 

 

3. 인터넷 : addressing, pakaging, routing 기능을 제공한다. 

     - IP (Internet Protocol) : 어드레싱과 패킷을 분해, 재조합을 책임지는 역할 

     - ARP(Address Resolution Protocol) :

       인터넷 계층 주소를 네트워크 인터페이스 계층의 주소(하드웨어 주소)로 변환하는 역할이다.

     - ICMP (Internet Control Message Protocol) : 

       IP패킷의 전달에 따른 오류나 상태를 리포트하고 진단하는 기능을 제공하는 역할이다.

     - IGMP (Internet Group Management Protocol) : IP 멀티캐스트 그룹의 관리를 책임진다.

 

4. 네트워크 : TCP/IP 패킷을 네트워크 매체로 전달하는 것과 받아들이는 과정을 담당 - OSI계층에서 물리계층에 해당


HTTP (Hyper Text Transfer Protocol)

- 서버가 html로 만들어진 문서(디자인된 문서)를 유저에게 잘 보여주는 것을 목적으로 하는 프로토콜로

   TCP와 UDP를 사용하며, 80번 포트를 사용한다.

   클라이언트와 서버 사이에 이루어지는 request / response 프로토콜이다.

 

ex) 회원가입 시 ID 입력할 때 중복검사를 해야할 경우 

     서버에게 중복검사를 요청하기 위해 새 페이지를 요청해야 하는데 

     회원정보 작성 중에 페이지를 이동할 수 없기 때문에 새로 요청한 페이지를 팝업창으로 띄웠던 것이다.

     Ajax를 이용하여 팝업창 없이 검사가 가능하다. 


웹 소켓(Web Soket)

등장

Web Socket은 HTTP의 단점을 보완하기 위해 등장 

현재 사용하고 있는 HTTP의 Client-Server간 접속을 유지하지 않으며 

한번에 한 방향으로만 통신이 가능한 half-duplex이다.

점차 클라이언트와 서버간 주고받는 데이터 양이 많아지면서 half-duplex로 인한 성능저하는 피할 수 없게 되었다.

또한 HTTP는 지나치게 많은 헤더 데이터를 갖고 있다. 

 

정의

WebSocket 프로토콜은 웹을 통해 클라이언트와 서버 간의 신속하고 보안이 유지된 양방향 통신을 위한 메커니즘이다. 

웹 소켓은 실시간 게임, 인스턴트 소셜 네트워크 알림, 주식, 또는 날씨 정보의 최신 디스플레이 등의 안전하고 빠른 데이터 전송이 필요한 앱에 사용하는데 적합하다.

웹 소켓 연결 설정을 하기 위해 클라이언트와 서버간에 특정 HTTP 기반의 핸드셰이크가 교환된다.

교환이 성공하면 이전에 설정된 TCP 연결을 사용하여 응용 프로그램 계층 프로토콜이 HTTP에서 웹소켓으로 업그레이드가 된다. 

업그레이드가 되면 HTTP는 완전 무시되고 웹 소켓 연결이 닫힐 때 까지 두 끝점에서 웹 소켓 프로토콜을 사용하여 데이터를 주고 받을 수 있다. 

 

그래서 HTML5에 Web socket이 포함되었다.

웹 소켓을 사용하면 더 이상 Active X를 사용하지 않고도 TCP/IP 소켓통신을 구현할 수 있다.

또한 네트워크의 과부하를 줄이고 애플리케이션의 반응성을 높일 수 있게 된다. 

앞서 말한 HTTP헤더크기도 수 byte 수준으로 압축이 가능하다. 

물론 웹 소켓이 HTTP를 대체하는 것은 아니다

다만 HTTP가 적합하지 않은 메세징, 트랜잭션 및 애플리케이션 특성 상 트래픽이 높고 지연시간이 낮은 환경에서 유용하다.

 

 

 

 

728x90
반응형

'IT 개발 > Network' 카테고리의 다른 글

인터넷이란  (0) 2020.02.05
CORS (HTTP 접근 제어) 이란  (0) 2020.02.04
Proxy란  (0) 2020.02.03