본문 바로가기

알아두면 좋은 IT 지식/Network

TCP 통신 서버/클라이언트 요청/응답 인바운드/아운바운드 차이 및 정확한 개념

제목에 열거된 것들은
TCP통신 시 사용하는 기본 용어들인데
그 정확한 개념을 이해하고 사용하는 사람은
생각보다 많지 않다
(경험상 최소 50%는 정확히 알지 못한다)

일반적으로 이렇게 세트로 알고 있는 경우가 많다
클라이언트가 아웃바운드로 요청을 보내면
서버는 인바운드로 요청을 받고 응답을 보낸다

위 예시가 틀린건 아니지만
반드시 저렇게 세트로 동작하진 않는다
만약 아래와 같은 질문을 받는다면?

Q. 연결방식은 서버인데 수신거래는 1111 포트로 요청받아서 해당 세션으로 응답을 보내고 송신 거래의 요청은 상대방 2222포트로 보내고 응답은 수신거래랑 같은 포트(1111)를 사용할 수 있나요?

질문이 복잡해 보이지만 상호간 회선을 정의하는데
기본적으로 설정해야 되는 내용들이다
감이 잘 안오거나 헷갈린다면
TCP 기본개념의 공부가 필요하다


서버/클라이언트

내가 먼저 연결을 맺으면 클라이언트
특정 포트를 열어서 상대방이 연결 맺기를
기다리면 서버이다

전화에 비유하면
전화를 거는 사람이 클라이언트
전화를 받는 사람을 서버로 보면 된다

요청/응답

상대방에게 데이터를 먼저 보내면 요청,
요청에 대한 회신을 응답이라고 한다

전화에 비유하면
먼저 말을 하면 요청
대답(리액션)을 응답이라고 할 수 있다

인바운드/아웃바운드

데이터를 수신하는 회선(어댑터)을
인바운드(수신)라고 하고
데이터를 송신하는 회선을
아웃바운드(송신)라고 표현한다
송수신 모두 가능한 회선도 존재하며
Both 혹은 양방향 이라고 표현한다

전화기에 비유하면
스피커가 인바운드

마이크가 아웃바운드라고 볼 수 있다



그럼 다시 처음 질문으로 돌아오면?

정답은 Yes이다

내가 먼저 전화를 걸었든 받았든

(Client든 Server든)
마이크로 먼저 말하고 대답하고

(아웃바운드로 요청, 응답 송신)
스피커로 들을 수 있듯이

(인바운드로 요청,응답 수신)

즉, 서버/클라이언트 여부와 상관없이
인바운드/아웃바운드/양방향 설정이나
데이터 요청/응답을 보내고 받는 것
모두 가능하다