본문 바로가기

IT 용어 정리/Network

소켓 정의와 특징, HTTP와 비교

https://helloworld-88.tistory.com/215

 

[기본] 소켓(SOCKET)통신 이란?

소켓통신 소켓(SOCKET)이란?소켓(Socket)은 프로세스가 드넓은 네트워크 세계로 데이터를 내보내거나 혹은 그 세계로부터 데이터를 받기 위한 실제적인 창구 역할을 한다. 그러므로 프로세스가 데

helloworld-88.tistory.com

https://velog.io/@yoho98/%EB%B0%94%EC%9D%B8%EB%94%A9binding

 

바인딩(binding)

컴퓨터 프로그래밍에서 각종 값들이 확정되어 더 이상 변경할 수 없는 구속(bind) 상태가 되는 것. 프로그램 내에서 변수, 배열, 라벨, 절차 등의 명칭, 즉 식별자(identifier)가 그 대상인 메모리 주

velog.io

 

Socket

- Client Server가 특정 Port를 통해 실시간으로 양방향 통신하며, 실시간 동영상 Streaming이나 온라인 게임 등과 같은 경우에 자주 사용

- 프로세스가 드넓은 네트워크 세계로 데이터를 내보내거나 혹은 그 세계로부터 데이터를 받기 위한 실제적인 창구 역할을 함. 그러므로 프로세스가 데이터를 보내거나 받기 위해서는 반드시 소켓을 열어서 소켓에 데이터를 써보내거나 소켓으로부터 데이터를 읽어들여야 함.

- 소켓은 네트워크 상에서 돌아가는 두 개의 프로그램 간 양방향 통신의 하나의 엔드 포인트

- 소켓은 포트 번호에 바인딩하여 TCP Layer에서 데이터가 전달되야하는 애플리케이션을 식별할 수 있게 함

 

엔드 포인트

- 아이피 주소와 포트 번호의 조합을 의미

- 모든 TCP 연결2개의 엔드 포인트로 유일하게 식별되어질 수 있음

- 따라서 Client와 서버 간 여러 개의 연결이 맺어질 수 있음

 

IP (Internet Protocol)

- 전 세계 컴퓨터에 부여된 고유의 식별 주소

 

포트 (Port)

- 네트워크 상에서 통신하기 위해서 호스트 내부적으로 프로세스가 할당 받아야 하는 고유한 숫자이다. 한 호스트 내에서 네트워크 통신을 하고 있는 프로세스를 식별하기 위해 사용되는 값이므로, 같은 호스트 내에서 서로 다른 프로세스가 같은 포트 넘버를 가질 수 없다. , 같은 컴퓨터 내에서 프로그램을 식별하는 번호.

 

바인딩 (Binding)

- 컴퓨터 프로그래밍에서 각종 값들이 확정되어 더 이상 변경할 수 없는 구속(Bind) 상태가 되는 것

- 원시 프로그램의 컴파일링 또는 링크 시에 확정되는 바인딩정적 바인딩(Static binding)이라 하고, 프로그램 실행되는 과정에서 바인딩 되는 것동적 바인딩(Dynamic binding)이라 함.

 

- 정적 바인딩 장점 : 실행시 효율 높아짐 -> 컴파일 시, 이미 값이 확정되어 있기 떄문에 실행만 하면 끝

                                 속도가 빠름

                                 값이 변하지 않아서 안정적임

 

- 동적 바인딩 장점 : 값이 변할 수 있어 유연함

                      단점 : 들어올 값보다 많은 메모리 공간을 차지하고 있기 때문에, 메모리 공간 낭비 O

                                들어오는 값이 메모리 타입에 맞는 지 확인하기 때문에, 속도가 늦어짐

 

Socket 종류

TCP/IP 프로토콜 (Transmission Control Protocol)

- TCP는 데이터를 일정한 크기로 분할하고, IPTCP가 분할한 데이터에 송신처를 붙여서 네트워크를 보낸다.

- 데이터 전송의 정확성을 강조한 프로토콜

- 오류 수정, 전송 처리, 흐름제어 보장

- 소량의 데이터보다 대량의 데이터 전송에 적합 -> TCP를 사용

- 송식된 순서에 따라 중복되지 않게 데이터를 수신 -> 오버헤드 발생

UDP 프로토콜 (User Data Protocol)

- 데이터 전송의 속도를 강조한 프로토콜

- 비연결형 소켓, 신뢰성이 없는 전송 프로토콜

- 데이터 크기 제한이 있음

- 데이터가 손실되도 오류가 발생하지 않음

- 실시간 멀티미디어 정보를 처리를 하기 위해 주로 사용 EX) 전화

HTTP 프로토콜

- Client의 요청(Request)이 있을 떄만, 서버가 응답(Response)하여 해당 정보를 전송하고, 곧바로 연결을 종료하는 방식

- 웹 브라우저에 따라 요청에 따라 HTML 파일이나 그림을 보내고 받는다.

- 인터넷에서 하이퍼텍스트 문서를 전송하기 위해서 사용되는 통신 규약이다.

- http://www. 로 되어 있는 것은 www 주소에서 문서 전송을 HTTP 통신 규약으로 처리하는 것임.

 

HTTP 통신의 특징

- Client가 요청을 보내는 경우에만 Server가 응답하는 단방향 통신

- Server로부터 응답을 받은 후에는 연결이 바로 종료됨.

- 요청을 보내 Server의 응답을 기다리는 어플리케이션의 개발에 주로 사용

 

<비교>

Socket 통신은  Server와 Client가 서로 양방향 통신을 하며, 실시간으로 데이터를 주고 받을 수 있음

HTTP 통신은 Client의 요청이 있을 때만, Server와 통신을 할 수 있으며,  Server가 응답하여 해당 정보를 전송하고, 곧바로

                      연결 종료하는 방식