inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

모든 개발자를 위한 HTTP 웹 기본 지식

TCP/IP 통신 및 포트에 대한 질문

해결된 질문

810

헛핫훗

작성한 질문수 8

0

  1.  

    3 way handshake 과정이 완료되면 서버와 클라이언트가 연결된 상태이므로

    데이터(HTTP 메시지)가 담긴 패킷을 주고받게 된다. 이때 TCP 계층에선 데이터가 성공적으로 전송/수신됐는지 등을 검증한다고 배웠는데요. 그럼 3way handshake나 수신받은 패킷의 헤더들을 단계별로 확인한 뒤 실제 데이터를 소켓으로 전달하는 작업은 운영체제 관여 하에 이뤄지나요?

  2. 클라이언트 애플리케이션은 남은 포트 중 랜덤으로 할당받고(port=0),
    서버는 80 등으로 미리 지정해서 포트를 받는데
    그러면 해당 프로세스의 포트가 정해지는 시점은 소켓을 생성할 때인가요?

     

  3. 프로세스 한개당 반드시 하나의 포트만 할당되나요? (ex: 포트 두개를 바인딩하고
    서버 소켓을 두개 연다, 한 클라이언트 프로세스가 여러 로컬 포트를 할당받을 수 있다 등이 가능한지..)

    실제 여러 포트를 할당받을 수 있다면 어떻게 활용되는지 궁금합니다.

  4. 일반적으로 웹 서비스는 웹 서버(80 포트)와 WAS(8080 포트)로 구성하여
    웹 서버가 처리하지 못하는 요청은 WAS로 위임한다고 했는데,
    웹 서버와 WAS 간 연결에도 http 통신을 사용한다면 웹 서버 프로세스는 기존 80 포트로 바인딩된 소켓을 생성해서 통신하는 것인가요?

네트워크

답변 2

1

나무늘보

안녕하세요. CS님, 공식 서포터즈 코즈위버 입니다. AI 답변에 더하여 답변 드립니다.

1. 네 맞습니다. 운영체제는 여러 커널들을 이용하여 하드웨어를 통제하는데요, TCP/IP 통신 규약을 처리하기 위한 커널 프로그램이 있고 이를 운영체제가 이용하여 통신을 시행하므로 운영체제가 통제하고 있다고 해도 맞는 말입니다.

  1. 네 맞습니다. 네트워크 통신을 시작할 때 할당 받습니다.

  2. 소켓을 여러개 생성하여 여러개의 포트 번호를 이용할 수 있습니다.

  3. WS는 80이 아닌 다른 소켓을 생성, WAS 통신을 시행합니다. 말씀하신것처럼 통신 프로토콜은 HTTP가 일반적입니다.

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요. TCP/IP 통신과 포트에 대한 질문입니다.

3-way handshake 과정이 완료되면 클라이언트와 서버는 연결된 상태가 되고, 이후 데이터가 주고받게 됩니다. TCP 계층에서는 데이터가 성공적으로 전송/수신되었는지 등을 검증합니다. 이때 실제 데이터를 소켓으로 전달하는 작업은 운영체제에 의해 이뤄집니다. 운영체제는 소켓 API를 통해 데이터를 전송하고, TCP/IP 스택을 통해 패킷을 생성하고 처리합니다.

클라이언트 애플리케이션은 남은 포트 중 랜덤으로 할당받고, 서버는 미리 지정된 포트를 사용합니다. 포트는 소켓을 생성할 때 정해집니다. 일반적으로 하나의 프로세스에는 하나의 포트만 할당됩니다. 즉, 한 클라이언트 프로세스가 여러 로컬 포트를 할당받는 것은 불가능합니다.

웹 서비스의 경우, 웹 서버와 WAS가 웹 서버의 포트와 WAS의 포트로 구성됩니다. 웹 서버는 처리하지 못하는 요청을 WAS로 위임하기 위해 내부적으로 http 통신을 사용합니다. 이때 웹 서버 프로세스는 기존 80 포트에 바인딩되어 http 요청을 처리합니다. WAS는 다른 포트(예: 8080)에 바인딩되어 웹 서버로부터 받은 요청을 처리합니다. 이렇게 포트를 구분하여 역할을 분리하는 것이 웹 서비스의 일반적인 구성 방식입니다.

여러 포트를 할당받을 수 있다는 것은 다른 프로세스들이 동시에 해당 포트를 사용하여 통신할 수 있다는 뜻입니다. 각 포트는 서로 다른 프로세스에게 할당되며, 포트를 활용하는 방법은 프로세스의 용도에 따라 다양합니다. 예를 들어, 여러 개의 서버를 동시에 운영하거나, 특정한 서비스를 위한 포트를 지정하여 접속을 제어하는 등의 용도로 활용될 수 있습니다.

더 자세한 내용은 TCP/IP 프로토콜에 대한 이해와 운영체제의 네트워크 스택 동작 방식에 대해 참고할 수 있습니다.

캐시무효화시 그냥 no-store만 넣어되지 않나요?

0

71

2

API의 헤더와 바디에 대한 문의 입니다.

0

70

2

수정폼과 수정

0

69

1

쿠키에 대해 질문드려요!

0

89

2

서버에서 캐시 검증 헤더를 직접 처리해야 하나요?

0

87

1

http api get, post 멱등

0

40

1

컬렉션의 개념

0

49

1

시작라인에 들어가는 요청 대상 경로는 상대 경로 아닌가요?

0

54

1

PATCH 는 PUT처럼 멱등이여야 하지 않나요?

0

81

1

리소스 질문드립니다

0

56

1

IP 패킷 질문입니다.

0

59

1

html from, http api

0

75

2

브라우저 캐시가 60초 유효하다는게 무슨 뜻일까요

0

120

1

stateless 무상태 예제가 생각났는데. 저가 생각 한게 맞는지 궁금합니다.

0

99

1

URI 및 URL 질문, 왜 자바(스프링)에서는 이렇게 나누었는지?

0

141

1

host와 port

0

106

1

tcp/ip는 연결을 유지? 아니면 유지하지 않음?

0

145

1

다음 강의 커리큘럼 질문!!

0

131

2

캐시 개념에 대해서 설명하시지는 않으시는건가요?

0

113

1

클라이언트가 patch, delete 요청 시 알아야 하는 url

0

91

1

html form 형태 전송시 new, edit 등 컨트롤 리소스를 사용하는 이유

0

168

2

비 연결성(connectionless) 강의에서 질문입니다~

0

140

1

PATCH를 사용하지 못할 때 왜 POST?

0

162

2

협상과 우선순위3 질문드립니다.

1

130

1