소켓 통신

Jan 09, 2024
소켓 통신
 
인터넷은 물리적으로 전 세계적으로 연결되어 있다.
 
notion image
 
: 클라이언트와 서버, 두 컴퓨터가 특정한 Port를 통해 통신
 
요청하는 자 : 클라이언트(a)
요청받는 자 : 서버(b)
 
방향을 보면 클라이언트인지 서버인지 알 수 있음
 
서버를 ‘갑’이라고 함
ex) 넷플릭스

port

 
notion image
 
: 어떤 프로그램으로 통신할 지 결정
논리적으로 0번부터 65535번까지의 숫자 중 하나를 사용하며,
특정 프로세스(프로그램)가 데이터를 주고받기 위해 할당받는 번호이다.
2^16 / 16bit / 2Byte
 
표현 방식
:번호
 
ex) 네이버
웹서버는 port가 생략되어 있음
보안때문에 :443 씀 (이전에는 :80)
 

소켓

 
notion image
 
최소 2개 필요하다.
소켓 개수 : 클라이언트+1 개
스레드 개수 : 클라이언트+1 개
 
서버 소켓 : 서버 프로그램에서 사용하는 소켓, 클라이언트가 연결해오는 것을 기다림
 
클라이언트가 연결해 올 때마다 요청은 요청 큐에 쌓이고,
클라이언트 연결되면 accept() 함으로써 요청을 요청 큐에서 꺼내고
Socket 객체가 리턴, 포트번호는 랜덤
 
notion image
 
서버와 클라이언트 간의 통신을 위해서는 IP주소와 포트번호를 알아야 한다.
서버로 기능하는 컴퓨터를 사용하려면 PC에 다이렉트로 꽂아야 함
 

루프백 IP

 
: 자기 자신을 가리키는 가상의 IP 주소
서버가 공유기 밖에 빠져나가지 않고 자기 자신으로 되돌아온다.
 
LAN (Local Area Network) : 로컬 영역 네트워크
WAN (Wide Area Network) : 대규모 네트워크
 
notion image
 
Share article

khh