소켓마다 포트번호가 모두 다를까?

Alex·2025년 3월 8일
0

CS를 공부하자

목록 보기
55/74

웹 서버의 연결 과정은 다음과 같다.

서버는 먼저 listener 소켓을 만든다. 소켓을 생성하고, 이 소켓에 ip와 port#를 bind로 할당해준다.

다음으로 listen을 호출해서 클라이언트들의 요청을 들을 준비가 되었음을 나타낸다.

클라이언트는 소켓을 생성한 뒤 connect만 해주면 된다. 이때 클라이언트는연결할 소켓의 ip와 port#를알아야 한다.

연결마다 새로 생성되는 소켓

여러 클라이언트가 연결할 때, 서버는 각 연결마다 소켓을 새로 생성한다.
그렇다면, 왜 80포트처럼 잘 알려진 포트는 포트가 하나만 있을까?

소켓은 단순히 ip주소와 포트번호만으로 구분되지 안는다.

소켓을 구분하는 기준은

1) 출발지 ip주소
2) 출발지 포트번호
3) 목적지 ip주소
4) 목적지 포트번호
5) 전송계층 프로토콜

이라서, 포트번호가 같더라도 소켓들은 연결된 클랑이언트의 ip주소와 포트번호가 달라서 구분된다. 그래서, 웹서버가 80번 포트에서 여러 클라이언트의 연결을 처리할 수 있는 것이다.

참고자료

소켓번호는 다 달라야 할까?

profile
답을 찾기 위해서 노력하는 사람

0개의 댓글