프로세스간 통신 interface

IPC를 가능케하는 interface이다. 서로 다른 process에서 접속을 하려 할 때, 이 socket을 사용하여 접근하게 되고, 해당 socket은 접속하는 process가 제대로 왔는 지와 같은 검사를 수행하게 된다. 은행에서 창구를 생각하면 된다.

사용처

  • 양방향 통신을 위해 사용
  • 게임, 실시간 채팅, 스트리밍 중계 등
  • 일반적으로는 서버에 요청은 가능하나, 서버는 나한테 정보를 줄수는 없다.
  • 요청이 있어야 응답을 주는 구조: http 통신
  • 소켓 통신은 서버와 클라이언트가 특정 port를 통해 실시간으로 양방향 통신을 하는 방식
  • 높은 비용

사용자 입장에서 소켓을 통해 메시지를 내려받을 때, 원하는 요구사항

  1. timing
    • 빠른 시간내에 데이터가 도착했으면 좋겠다. (음성)
  2. security
    • 안전하게 나한테만 왔으면 좋겠다.
  3. data integrity
    • 모든 데이터가 순서에 맞게 제대로 왔으면 좋겠다.
  4. Throughput
    • 특정 시간안에 도착하는 데이터의 양이 많았으면 좋겠다. (영화 다운로드)

등이 있지만, 실질적으로 TCP를 사용한다고 가정했을 때 제공받을 수 있는 것은 3번 뿐이다. UDP를 사용할 경우 3번도 지켜지지 않는다. 결과적으로 내가 위의 3가지에 해당하는 기능을 원한다면, 애플리케이션 계층에서 구현하여야 한다.