본문 바로가기
기초지식

Socket (소켓) 이란?

by 광진구뚝배기 2022. 1. 5.

네트워크 소켓(network socket)은 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점이다.

 > 프로세스가 네트워크 세계로 데이터를 내보내거나 혹은 그 세계로부터 데이터를 받기 위한 실제적인 창구 역할을 하는 것 이다. 따라서 프로세스가 데이터를 주고받기 위해서는 반드시 소켓을 열어 소켓에 데이터를 쓰거나 읽어들여야 한다.

 

소켓 통신의 흐름

 

소켓은 프로토콜, ip주소, 포트넘버로 정의

 * 프로토콜 : 어떤 시스템이나 다른 시스템과 통신을 원활하게 해주는 통신규약

 * ip : 전세계 컴퓨터에 부여된 고유 식별 주소

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

 

 

 

특징

* server-client 구조 : tcp/u에 에서 동작하므로 서버와 클라이언트 구조이며,

           데이터를 보내는 쪽이 client, 받는 쪽이 server 이다. 이후에는 서로가 송수신 할 수 있다.

* 양방향 통신 : 데이터를 보내고 수신한 후 연결이 끊어지는 것이 아니라, 양쪽에서 실시간으로            데이터를 송수신 할 수 있다. > 실시간 스트리밍, 채팅에 주로 쓰인다.

* 프로그래밍 언어나 운영체제에 종속적

           : 네트워크 프로그래밍 인터페이스이다. 따라서 운영체제마다 사용법이 다르며 프로그래밍 언어마다 소켓api를 구현한 라이브러리가 다르다.

 

통신 흐름

Datagram sockets - UDP (User Datagram Protocol)

- UDP를 사용하므로 비 연결형(Connectionless) 소켓, 신뢰성을 보장할 수 없다, 일대다 가능

반응형

'기초지식' 카테고리의 다른 글

Internet Explorer 11 지원 종료, Edge / Window11 전환 방법  (0) 2022.06.10
형상관리 란?  (0) 2022.01.11
WEB / WAS 란?  (0) 2021.11.30
윈도우 포트 죽이기  (0) 2021.06.30
ORM이란 무엇인가?  (1) 2021.05.06

댓글