네트워크 소켓(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 |
댓글