네트워크 소켓이란? 통신의 끝점(endpoint)
- Network
- 2023. 1. 3.
소켓이란?
소켓(Socket)은 네트워크에서 실행 중인 두 프로그램의 양방향 통신 끝점입니다. 즉, 통신의 끝과 끝입니다. 각 소켓에는 IP 주소와 포트 번호가 구성되어 있습니다.
통신의 끝과 끝이라는 말은 클라이언트-서버 모델을 떠올리면 이해가 쉽습니다. 클라이언트와 서버는 모두 소켓을 만들어 서로 데이터를 교환합니다. 가장 많이 사용되는 프로토콜은 TCP/IP 입니다.
서버는 소켓을 만들어 클라이언트가 서비스를 요청할 때까지 기다립니다(LISTENING). 클라이언트는 소켓을 만들어 수신을 대기하고 있는 서버에 서비스를 요청합니다. 서버는 요청을 수행하고 응답을 반환합니다.
예를 들어, 리눅스에서 netstat -ntlp 명령어를 실행하면 LISTENING 상태인 프로세스 목록을 확인할 수 있습니다. 로컬 주소 항목에는 0.0.0.0:22, 0.0.0.0:80, 127.0.0.1:3306 등의 데이터가 출력됩니다. 이를 두고 0.0.0.0 IP 주소의 22번 포트에서 소켓이 바인딩되어 수신을 대기하고 있다고 표현할 수 있습니다. 여기서 바인딩(binding)이란 주소를 설정하는 작업을 말합니다.
소켓 작동 흐름
소켓의 작동 흐름은 아래의 이미지를 참고하시면 좋을 거 같습니다.
반응형
'Network' 카테고리의 다른 글
netstat으로 출력되는 네트워크 정보들의 의미 (0) | 2023.01.04 |
---|---|
0.0.0.0 IP 주소를 사용하는 이유 (0) | 2023.01.04 |
리눅스 리스닝(LISTENING) 포트 확인하는 방법 (0) | 2022.12.31 |
윈도우 리스닝(LISTENING) 포트 확인하는 방법 (0) | 2022.12.31 |
WIPS란? 핫스팟 연결이 안 되는 이유 (0) | 2022.12.17 |