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

놀란 나비님의 프로필 이미지
놀란 나비

작성한 질문수

기출로 대비하는 개발자 전공면접 [CS 완전정복]

Q. TCP vs UDP를 비교해서 설명해 주세요

Transport 계층의 process-to-process 통신은 network, data link, physical 단계를 거치지 않는 건가요?

작성

·

301

1

"전송계층은 두 응용 계층 사이에서의 process-to-process 통신을 제공한다. 전송계층은 응용계층으로부터 메시지를 받아 전송계칭 패킷으로 캡슐화하여 전송한다" 라고 하셨는데,
 
제가 헷갈리는 부분이...
 
원래 TCP/IP 모듈을 보면 응용계층에서 데이터를 캡슐화하면서 Physcial layer 물리계층에 도달하면 0과 1의 신호가 돼서 다른 컴퓨터로 전선으로 전송이돼서 데이터를 받은 컴퓨터에서 다시 decapsulation을 거치면서 원본 데이터를 응용계층에 전달하는 것으로 알고 있는데요 
 
전송 계층에서는 3way handshaking을 통해 두 컴퓨터의 transport 계층 사이에 논리적인 연결을 구축해서 데이터를 주고받는 것이라면... 아래의 network, data, physical layer은 거치지 않고 곧바로 주고받는 것인가요??? 
 
그럼 어떤 상황에서 전송계층을 통해 곧바로 주고받고 어떤 상황에서 physical layer까지 도달해서 전달하는지 궁금합니다

답변 1

0

개발남노씨님의 프로필 이미지
개발남노씨
지식공유자

안녕하세요 ㅡ. 님

제가 질문 알림을 놓쳐서 이제야 답변드려서 너무 죄송합니다 ㅜ

모든 통신은 각 모든 계층을 통과하면서 캡슐화하여 physical later계층까지 도달하여 결국 0과 1의 전기 신호로 다른 컴퓨터로 전송되는 것이 맞습니다. 그리고 전송받은 컴퓨터에서 모든 계층을 통과하여 decapasulation 과정을 거치게 되는 것이 맞습니다. 이건 실제로 일어나고 있는 현상입니다.

하지만 process-to-process라든지 network계층간의 통신 등을 말할 때 마치 캡슐화와 디캡슐화를 생략하고 말하기도 합니다. 즉 다른 계층을 통과하는것을 생략하고 말합니다. "실직적"으로는 process끼리 직접 연결된게 아니라 모든 계층이 연결되어 있지만 간편화를 하기 위해 "논리적"으로 process끼리 연결되어 있다고 개념화를 합니다.

이렇게 논리적 연결을 개념화 하는 이유는 계층을 나누는 이유와 일맥상통해요! 개념적으로 각 layer를 분리하여 문제가 발생하는 지점을 쉽게 debug한다든지, process-process 간에 나누는 정보에 집중한다든지 등의 이유로 논리적 연결을 말하곤 합니다.

즉 실제 데이터는 encapsulation과 decapsulation을 거쳐서 하위에 있는 모든 Layer를 거치게 되는 것이 맞습니다.

혹시 또 궁금한 점이 있다면 질문 남겨주세요~ 최대한 빨리 답변 드리겠습니다!

감사합니다 :)

놀란 나비님의 프로필 이미지
놀란 나비

작성한 질문수

질문하기