프로세스간 통신 interface

IPC를 가능케하는 interface이다. 서로 다른 process에서 접속을 하려 할 때, 이 socket을 사용하여 접근하게 되고, 해당 socket은 접속하는 process가 제대로 왔는 지와 같은 검사를 수행하게 된다. 은행에서 창구를 생각하면 된다.
사용처
- 양방향 통신을 위해 사용
- 게임, 실시간 채팅, 스트리밍 중계 등
- 일반적으로는 서버에 요청은 가능하나, 서버는 나한테 정보를 줄수는 없다.
- 요청이 있어야 응답을 주는 구조: http 통신
- 소켓 통신은 서버와 클라이언트가 특정 port를 통해 실시간으로 양방향 통신을 하는 방식
- 높은 비용
사용자 입장에서 소켓을 통해 메시지를 내려받을 때, 원하는 요구사항
- timing
- 빠른 시간내에 데이터가 도착했으면 좋겠다. (음성)
- security
- 안전하게 나한테만 왔으면 좋겠다.
- data integrity
- 모든 데이터가 순서에 맞게 제대로 왔으면 좋겠다.
- Throughput
- 특정 시간안에 도착하는 데이터의 양이 많았으면 좋겠다. (영화 다운로드)
등이 있지만, 실질적으로 TCP를 사용한다고 가정했을 때 제공받을 수 있는 것은 3번 뿐이다. UDP를 사용할 경우 3번도 지켜지지 않는다. 결과적으로 내가 위의 3가지에 해당하는 기능을 원한다면, 애플리케이션 계층에서 구현하여야 한다.