TIL 22_12_06

YES31·2022년 12월 6일
0

TIL

목록 보기
10/35
post-thumbnail

일반적으로 서버는 특정 포트가 바인딩된 socket을 가지고 특정 컴퓨터 위에서 돌아간다. 해당 서버는 클라이언트의 연결 요청을 socket을 통해 listening 하면서 기다릴 뿐이다.

클라이언트는 서버가 작동중인 컴퓨터의 hostname과 서버가 listening 하고 있는 포트 번호를 알고, 이를 통해서 서버와 연결이 가능하다. 클라이언트는 서버 상대로 자신을 식별시켜주기 위해서 연결동안 사용될 로컬 포트에 바인딩됩니다.

서버와 클라이언트가 연결이 되면, 서버는 동일한 로컬 포트에 바인딩된 새로운 socket을 얻게 되며 클라이언트의 주소와 포트로 세팅된 리모트 엔드 포인트를 가지게 된다. 서버가 별개의 새로운 소캣이 필요한 이유는 연결된 클라이언트의 요청을 처리하면서, 동시에 기존의 socket을 통해서는 지속적으로 연결 요청을 받아야 하기 때문이다.

클라이언트와 서버는 소켓에 데이터를 쓰거나 읽음으로써 통신할 수 있다.

socket

네트워크 상에서 돌아가는 두 개의 프로그램 간 양방향 통신의 하나의 엔트 포인트.

  • 포트 번호에 바인딩되어 TCP 레이어에서 데이터가 전달되어야 하는 에플리케이션을 식별하도록 함.

엔드포인트

  • 아이피 주소와 포트 번호의 조합
  • TCP 연결은 2개의 앤드 포인트로 유일하게 식별되어진다.
profile
🏀 주니어 개발자

0개의 댓글