아임노드

Chap 04. 전송 계층 본문

[책] 혼공 시리즈/혼공 네트워크

Chap 04. 전송 계층

Noody 2024. 11. 17.

 

Q1 : 전송 계층의 존재 이유와 직결되는 IP의 한계의 두 가지 중요한 특징이 있다.
그것은 무엇인가?

 

A : 1. IP는 신뢰할 수 없는 비신뢰성 프로토콜 - IP 프로토콜이 패킷이 수신지까지 제대로 전송되었다는 보장을 하지 않는 특징
     (다른 말로 최선형 전달(best effirt delivert)이라고 한다;
     최선은 다해 보겠지만, 전송 결과에 대해서는 어떠한 보장도 하지 않겠다.)

      2. IP는 연결을 수립하는 과정이 없는 비연결형 프로토콜 - 송수신 호스트 간에 사전 연결 수립 작업을 거치지 않는 특징
     (그저 수신지를 향해 패킷을 보내기만 할 뿐)

 

 

Q2 : IP가 왜 어떠한 보장도 없이 신뢰할 수 없는, 비연결 통신을 하는가?

 

A : 주요한 이유는 성능 때문이다.

 

 

Q3 : IP의 한계를 보완하기 위해 전송 계층에서 사용되는 대표적인 전송 프로토콜은?

 

A : TCP

 

 

Q4 : 두 호스트가 정보를 주고받기 전에 마치 가상의 회선을 설정하듯이
연결을 수립하는 전송 계층의 프로토콜은 무엇인가?
(송수신하는 동안 연결을 유지하고 송수신이 끝나면 연결을 종료한다.)

 

A : TCP

 

 

Q5 : 전송 계층에서 패킷이 수신지까지 올바른 순서대로 확실히 전달되는 것을 보장하기 위해
다양한 기능을 제공하는 프로토콜은 무엇인가?

 

A : TCP

 

 

Q6 : 비교적 높은 성능을 위해 신뢰할 수 없는 통신, 비연결 통신을 가능하게 하는
전송 계층의 프로토콜은 무엇인가?

 

A : UDP

 

 

Q7 : 패킷에 특정 애플리케이션을 식별할 수 있는 정보가 포함되어야 해당 패킷이 어떤 애플리케이션에
전달해야 하는지 알 수 있다. 이러한 정보를 무엇이라고 하는가?

 

A : 포트(port)

 

 

Q8 : 포트 번호는 일반적으로 어떤 형식으로 IP 주소와 함께 표기되는가?

 

A : [IP 주소 : 포트 번호]

 

 

Q9 : 포트 기반의 NAT인 '이것'은 NAT 테이블에 변환될 IP 주소 쌍과 더불어 포트 번호도 함께 기록된다.
이것은 무엇인가?

 

A : NAPT(Network Address Port Translation)

 

 

Q10 : 포트 포워딩(port forwarding)이란 무엇인가?

 

A : 네트워크 내 특정 호스트에 IP 주소와 포트 번호를 미리 할당하고,
     해당 'IP 주소:포트 번호' 로써 해당 호스트에게 패킷을 전달하는 기능

 

 

Q11 : 포트 포워딩을 주로 사용하는 경우를 말하여라.

 

A : 주로 네트워크 외부에서 -> 네트워크 내부로 통신을 시작할 때.

     네트워크 내부의 서버를 외부에서 접속할 수 있도록 접속 정보를 공개하기 위해 자주 사용.

 

 

Q12 : IP의 신뢰할 수 없는 전송 특성과 비연결형 전송 특성을 보완하기 위한
네트워크 계층의 프로토콜은 무엇인가? 또 그것의 정의를 말하여라.

 

A : ICMP(Internet Control Message Protocol) - IP 패킷의 전송 과정에 대한 피드백 메시지를

     얻기 위해 사용하는 프로토콜이다.

 

 

Q13 : TCP로 전송할 수 있는 최대 페이로드 크기를 무엇이라고 하는가?
(여기서 이것은 TCP 헤더 크기는 제외한다_MTU와 대조적)

 

A : MSS(Maximum Segment Size)

 

 

Q14 : TCP 세그먼트 헤더 구조에서 이 필드는 플래그 비트(flag bits)라고도 부르며
현재 세그먼트에 대한 부가 정보를 나타낸다.
기본적으로 8비트로 구성되어 각 자리의 비트는 각기 다른 의미를 가지고 있다.
세 개의 제어 비트를 말하여라.

 

A : ACK - 세그먼트의 승인을 나타내기 위한 비트
     SYN - 연결을 수립하기 위한 비트
     FIN - 연결을 종료하기 위한 비트

 

 

Q15 : TCP 통신 단계를 크게 세 단계로 나워 말하여라.

 

A : 연결 수립 > 데이터 송수신 > 연결 종료

 

 

Q16 : TCP 데이터 송수신 과정에서 제공하는 기능은 무엇인가?

 

A : 재전송을 통한 오류 제어, 흐름 제어, 혼잡 제어

 

 

Q17 : TCP 연결 수립 과정은 무엇을 통해 이루어지는가?

 

A : 쓰리 웨이 핸드셰이크(three-way handshake)

 

 

Q18 : 아래 그림은 쓰리웨이 핸드셰이크를 통해 연결을 수립한 뒤 데이터 송수신이 끝났을 때
TCP가 연결을 종료하는 과정을 그린 것이다. 각 빈칸에 들어갈 말은?

 

A : 1. FIN
      2. ACK
      3. FIN
      4. ACK
     (송수신 호스트가 각자 한 번씩 FIN과 ACK를 주고받으며 이루어진다.)

 

 

Q19 : TCP는 어떤 상태이며 각 상태에 대한 의미는?
(1) CLOSED, (2) LISTEN

 

A : 상태 - 연결이 수립되지 않은 상태
     (1) - 아무런 연결이 없는 상태
     (2) - 일종의 연결 대기 상태

 

 

Q20 : UDP 데이터그램의 네 가지 필드는 무엇인가?

 

A : 송신지 포트, 수신지 포트, UDP 길이, 체크섬 필드

 

 

Q21 : UDP 데이터그램의 체크섬 필드에서 하는 역할은 무엇인가?

 

A : 데이터그램 전송 과정에서 오류가 발생했는지 검사하기 위한 필드이다.

 

 

Q22 : RTT는 무엇인가?

 

A : Round Trip Time의 약자로, 송신 호스트가 세그먼트를 전송한 뒤
     그에 대한 답변을 받는 데까지 걸리는 시간이다.

 

 

Q23 : TCP의 재전송 기법으로 문제가 생긴 메시지를 재전송함으로써
신뢰성을 확보하는 방식을 무엇이라고 하는가?

 

A : ARQ(Automatic Repeat reQuest, 자동 재전송 요구)

 

 

Q24 : 파이프라이닝(pipelining)이란 무엇인가?

 

A : 연속해서 메시지를 전송할 수 있는 기술

 

 

Q25 : 윈도우(window),란 무엇인가?

 

A : 송신 호스트가 파이프라이닝할 수 있는 최대량을 의미한다.
     (이것은 윈도우 크기만큼 확인 응답없이 한 번에 전송 가능하다는 의미이기도 하다.)

 

 

Q26 : 만일 수신 호스트가 첫 번째 세그먼트를 올바르게 수신했다면
수신 윈도우는 오른쪽으로 한 칸 이동 > 두 번째 세그먼트를 올바르게 수신했다면
수신 윈도우는 다시 한 번 오른쪽으로 한 칸 이동한다.
파이프라이닝 과정에서 송수신 윈도우는 점차 오른쪽으로 미끄러지듯 움직이는데
이러한 TCP의 흐름 제어를 무엇이라고 하는가? 

 

A : 슬라이딩 윈도우(sliding window)