인프런 커뮤니티 질문&답변

이길훈님의 프로필 이미지
이길훈

작성한 질문수

외워서 끝내는 네트워크 핵심이론 - 기초

TCP와 UDP 개요

사용자에 따라 의미가 다른 Port Number

해결된 질문

작성

·

273

0

안녕하세요! 먼저 좋은 강의 항상 감사드립니다!

 

강의에서 Port Number는 사용자 관점에 따라

- L2 수준: 인터페이스 번호

- L4 수준: 서비스 식별자

- 엔드포인트: 프로세스 식별자

세가지 의미로 사용될 수 있다고 말씀해주셨는데요.

 

  1. 클라이언트에서 Dst Port Number를 80으로 설정하고 통신을 보냈다고 가정하면, 서버측 L2 수준에서 80으로 정해진 포트를 거치고, L4 수준에서 80으로 정해진 서비스 식별자를 거치고, 엔드포인트 프로세스 식별자가 80 포트인 프로세스에 도달하는걸로 이해하면 되는걸까요..?

     

  2. 아니면, 클라이언트 쪽 TCP의 Dst Port Number는 서버측 TCP의 Port Number 랑만 관련있는 걸까요?

  3. 마지막으로, WebServer 는 보통 80포트를 사용한다는 말은 제가 이해하기로는 프로세스 식별자가 80이라는 의미로 이해했는데 맞게 이해한걸까요?

질문 읽어주셔서 감사합니다!

 

답변 2

1

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

  1. 연결 대시 및 요청을 수신하는 서버에서 L2 수준에서 20번으로 정해진 포트를 거치는 것이 아닙니다. L2 수준까지는 MAC 주소를 이용해 Frame 데이터가 전달될 뿐입니다. 이후 Decapsulation이 진행되고 Frame에서 Packet을 추출합니다. 그리고 Packet에서 다시 TCP Segment를 꺼내 목적지 포트 번호 80번을 사용하는 소켓이 무엇인지 운영체제가 식별한 후 해당 소켓을 개방한 프로세스에게 정보를 전달합니다.

  2. 1번 답변에 포함된 내용입니다.

  3. 프로세스 식별자는 PID(Process ID) 입니다. 그런데 프로세스가 소켓을 개방하고 독점하기 때문에 소켓에 바인드 된 포트번호를 이용해 대상 프로세스를 식별 할 수 있습니다. 결과적으로 포트 번호는 프로세스 식별의 근거가 될 수는 있지만 이를 프로세스 식별자로 분류하는 경우는 일반적이지 않습니다. 왜냐하면 TCP 80번을 사용하던 프로세스가 종료된 후 다른 프로세스가 TCP 80을 사용할 수도 있기 때문입니다. 참고하시기 바랍니다. 😄

이길훈님의 프로필 이미지
이길훈
질문자

꼼꼼하게 답변주셔서 감사합니다!! 😄

1

안녕하세요, 인프런 AI 인턴입니다.

이길훈님의 질문에 답변드립니다. 이 질문은 일반적으로 네트워크 포트와 관련된 개념의 이해를 바탕으로 하고 있으며, 계층별의 포트 번호의 의미와 웹 서비스에서의 사용에 대한 궁금증을 포함하고 있습니다. 각 질문에 대해 설명 드리겠습니다.

  1. 클라이언트에서 목적지(Port Number)를 80으로 설정하여 통신을 보낸 경우: 클라이언트가 서버에 HTTP 통신을 요청할 때 사용하는 목적지 포트 번호는 서비스 식별자로서의 포트 번호를 의미합니다. 따라서, 이 경우 클라이언트는 80 포트를 사용하는 웹 서버에 접근하고자 합니다. 이는 L4(트랜스포트 계층)에서의 서비스 식별자로 사용되며, 서버측에서 해당 포트를 리스닝하는 웹 서버 프로세스로 향하는 트래픽을 의미합니다. L2(데이터 링크 계층)의 포트는 이와는 다른 개념으로, 네트워크 스위치 등에서 사용되는 물리적 또는 논리적 인터페이스를 말합니다.

  2. TCP의 Dst Port Number와 관련성: 클라이언트 측 TCP의 목적지 포트 번호는 서버 측 TCP의 포트 번호와 매칭되어야 합니다. 즉, 클라이언트가 서버의 특정 서비스(예: 웹 서버)에 접근하기 위해 사용하는 포트 번호입니다. 네트워크의 다양한 레이어에서 포트는 다르게 사용될 수 있지만, TCP/IP 모델에서의 통신을 위한 포트 번호는 끝점간의 연결을 위해 사용되는 것입니다.

  3. WebServer가 80포트를 사용하는 의미: 맞습니다. 웹 서버가 통상적으로 80 포트(HTTP 서비스의 기본 포트)를 사용한다는 것은, 웹 서버 프로세스가 80 포트에 바인딩 되어 클라이언트의 HTTP 요청을 받아들일 준비가 되어 있다는 것을 의미합니다. 이 때의 포트 번호는 엔드포인트에서의 프로세스 식별자로서의 역할을 합니다.

각 계층에서의 포트 사용과 관련하여 조금 더 깊은 이해를 위해 추천드릴 만한 유사한 질문에 대한 답변을 찾았습니다:

  • 포트번호에 관해 질문드립니다. - 포트 번호가 각 계층에서 어떻게 사용되는지, 그리고 포트포워딩에 대한 개념을 포함하여 상세한 설명을 제공한 답변입니다.

이 내용이 이길훈님의 궁금증을 해소하는데 도움이 되길 바랍니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이길훈님의 프로필 이미지
이길훈

작성한 질문수

질문하기