socket programming
인터페이스란?
- 여기서는 클라이언트 프로세스와 서버간의 상호작용을 위한 계층간의 경계
- OS가 제공하는 기능만 사용 가능하다.
- TCP(socket stream) / UDP(socket datagram) 가 대표적
Socekt function - TCP case
- socket() -> bind() -> listen() -> accept() -> read()/write() -> close()
1. 서버 소켓 생성, 특정 port에 바인딩, 클라이언트에 연결될 때 까지 block된다.
2. 소켓이 연결되면, 서버는 클라이언트에서 보낸 데이터(Input stream)를 읽을 수 있음 -read
3. 클라이언트에 데이터를 보냄 (Output stream) -write
4. 연결을 닫음
- 정확한 src ip, src port 에서 dest ip, dest port로 demultiplexing한다.
UPD Socket
- 커넥션 없이 데이터 전송, 핸드셰이킹 없음.
- (ex: 전화, 통화내용 패킷 하나 분실됐다고 재전송할 필요 없음)
- segment의 header를 확인해 적절한 port로 demultiplexing한다.