본문 바로가기
Develop/Network

[윤성우의 열혈 TCP/IP 소켓 프로그래밍] Chapter14 - 내용 확인 문제 풀이

by Tarra 2023. 7. 1.

 

 

 

 

 [윤성우의 열혈 TCP / IP 소켓 프로그래밍] 책을 기반으로 개인적으로  문제 풀이 및 개념을 정리한 내용입니다.

모든 소스 코드와 강의, 확인 문제의 정확한 답안은 (23년 7월 1일부터 전면 무료화 예정)

http://www.orentec.co.kr/

 

====== 오렌지 미디어 ======

 

www.orentec.co.kr

에서 확인할 수 있습니다.

 

 


 

01. TTL이 의미하는 바는 무엇인가? 그리고 TTL의 값이 크게 설정되는 것과 작게 설정되는 것에 따른 차이와 문제점을 라우팅의 관점에서 설명해보자.

 

TTL은 Time to Live의 약자로, 네트워크 패킷이 네트워크 상에서 유효한 시간 또는 홉(hop) 수를 의미한다.

TTL 값은 IP 패킷의 헤더에 포함되며, 라우팅과 관련된 동작에서 중요한 역할을 한다.

 

※ 홉(hop) : IP 패킷이 네트워크를 통과할 때 거치는 라우터나 스위치와 같은 네트워크 장비의 개수를 의미한다.

 

TTL 값이 크게 설정되는 경우

- 패킷이 더 많은 홉을 거치게 되므로, 목적지까지 도달하는 데 더 많은 시간이 소요될 수 있다.

- 대역폭과 네트워크 리소스의 낭비가 발생할 수 있다. 패킷이 불필요하게 많은 홉을 거치기 때문에 네트워크 자원을 낭비하게 된다.

 

TTL 값이 작게 설정되는 경우.

- 패킷이 더 적은 홉을 거치므로, 목적지에 더 빠르게 도달할 수 있다.

- 네트워크 부하가 감소하고 대역폭을 효율적으로 사용할 수 있다. 불필요한 홉을 거치지 않기 때문에 네트워크 리소스를 절약할 수 있다.

- 그러나, TTL 값이 너무 작으면 목적지까지 도달하기 전에 TTL이 0이 되어 패킷이 폐기될 수 있다. 이는 패킷의 손실을 유발하며, 통신의 신뢰성과 정확성에 문제를 야기할 수 있다.

 

더보기

모범 답안

TTL이란 Time to Live의 약자로써 '패킷을 얼마나 멀리 전달할 것인가'를 결정하는 주 요소가 된다.

TTL은 정수로 표현되며, 이 값은 라우터를 하나 거칠 때마다 1씩 감소한다. 그리고 이 값이 0이 되면 패킷은 더 이상 전달되지 못하고 소멸된다.

따라서 TTL을 크게 설정하면 네트워크 트래픽에 좋지 못한 영향을 줄 수 있으며, 너무 적게 설정하면 목적지에 도달하지 않는 문제가 발생할 수 있다.

 

 

02. 멀티캐스트와 브로드캐스트의 공통점은 무엇이고 또 차이점은 무엇인가? 데이터의 송수신 관점에서 설명해보자.

멀티캐스트와 브로드캐스트는 네트워크에서 데이터를 여러 대상에게 전송하는 방법이다.

이들의 공통점과 차이점은 다음과 같다.

 

공통점

- 데이터를 여러 대상에게 동시에 전송한다.

- 송신자는 데이터를 한 번 전송하면 여러 대상이 동시에 수신할 수 있다.

- 송신자와 수신자 간 1:1 연결이 아니라, 1:N 또는 N:N 연결이 가능하다.

 

차이점

- 브로드 캐스트 : 네트워크 상의 모든 호스트에게 데이터를 전송한다. 

브로드캐스트 주소로 패킷을 전송하면 해당 네트워크의 모든 호스트가 패킷을 수신한다.

브로드캐스트는 네트워크 상의 모든 호스트에게 데이터를 빠르게 전달할 때 사용한다. 그러나 네트워크의 대역폭을 낭비할 수 있고, 보안 및 프라이버스 문제가 발생할 수 있다.

 

- 멀티캐스트

특정 그룹에 속한 호스트들에게 데이터를 전송한다. 멀티캐스트 그룹은 사전에 정의되고, 그룹 멤버들은 해당 그룹에 가입하여 멀티캐스트 패킷을 수신한다. 

멀티캐스트는 네트워크 대역폭을 효율적으로 사용하며, 그룹 내의 호스트들만이 데이터를 수신하므로 보안적인 이점도 있다.

멀티캐스트는 IP 주소 범위 내에서 특정 멀티캐스트 주소를 사용하여 패킷을 전송한다.

 

더보기

모범 답안

멀티캐스트와 브로드캐스트의 공통점은 둘 다 방송의 형태로 데이터를 전송한다는 것이다.

즉, 한번의 데이터 전송으로 둘 이상의 호스트에 데이터를 전송할 수 있다. 그러나 전송의 범위를 구성하는 방법에는 차이가 있다.

브로드캐스트는 네트워크 중심의 방송이다. 그러나 멀티캐스트는 그룹 중심의 방송이다.

 

 

03. 다음 중 멀티캐스트에 대한 설명으로 옳지 않은 것을 모두 고르면?

a. 멀티캐스트는 멀티캐스트 그룹에 가입한 모든 호스트에게 데이터를 전송하는데 사용되는 프로토콜이다.

 

b. 멀티캐스트 그룹에 가입하기 위해서는 동일 네트워크에 연결되어 있어야 한다. 즉, 둘 이상의 네트워크에 걸쳐서 하나의 멀티캐스트 그룹이 형성될 수 없다.

멀티캐스트 그룹은 다중 네트워크에 걸쳐서도 형성될 수 있다.

멀티캐스트 그룹에 가입하기 위해서는 호스트가 해당 그룹의 멀티캐스트 주소로 패킷을 수신할 준비가 되어야 한다.

따라서, 호스트가 다른 네트워크에 위치하더라도 해당 멀티캐스트 그룹에 가입하여 멀티캐스트 패킷을 수신할 수 있다.

 

c. 멀티캐스트 그룹에 가입할 수 있는 호스트의 수에는 제한이 없으나, 이 그룹으로 데이터를 전송하는 호스트(Sender)의 수는 하나로 제한이 된다.

멀티캐스트 그룹에 가입할 수 있는 호스트의 수에는 제한이 없다.

여러 호스트가 동일한 멀티캐스트 그룹에 가입하여 그룹으로부터 데이터를 수신할 수 있다.

또한, 멀티캐스트 그룹으로 데이터를 전송하는 호스트(Sender)도 하나로 제한되지 않고, 여러 호스트가 멀티캐스트 그룹에 속한 다른 호스트에게 데이터를 전송할 수 있다.

 

d. 멀티캐스트를 위한 소켓은 UDP 소켓이어야 한다. 멀티캐스트는 UDP를 기반으로 데이터를 송수신하기 때문이다.

 

정답 b, c

 

 

04. 멀티캐스트는 트래픽 측면에서도 긍정적이다! 그렇다면 어떠한 이유로, 어떻게 긍정적인지 TCP의 데이터 송수신 방식과 비교해서 설명해보자.

1. 효율적인 대역폭 사용

멀티캐스트는 데이터를 그룹 내의 여러 호스트에게 동시에 전송하는 방식이다.

이로 인해 데이터를 여러 개별 호스트에게 별도로 전송하는 것보다 대역폭을 효율적으로 사용할 수 있다.

반면, TCP는 1:1 통신 방식으로 동작하여 데이터를 개별 호스트에게 전송해야 한다.

 

2. 확장성

멀티캐스트 그룹에 가입한 호스트들은 그룹 내의 데이터를 수신할 수 있다.

멀티캐스트 그룹에 가입하는 호스트의 수에는 제한이 없으므로, 대규모 네트워크에서도 효과적으로 데이터를 전송할 수 있다.

반면, TCP는 1:1 통신을 위해 개별 연결을 설정해야 하므로 대규모 네트워크에서는 확장성에 제한이 있을 수 있다.

 

3. 실시간 통신 지원

멀티캐스트는 데이터를 그룹 내의 모든 호스트에게 동시에 전송하기 때문에 실시간 통신에 유리하다.

예를 들어, 멀티미디어 스트리밍이나 실시간 동영상 전송과 같은 응용 프로그램에서 멀티캐스트는 빠른 데이터 전달을 가능하게 한다.

TCP는 연결 기반의 통신이므로 실시간 통신에는 적합하지 않을 수 있다.

 

4. 브로드캐스트와의 차이점

멀티캐스트는 특정 그룹에 가입한 호스트에게만 데이터를 전달하는 반면, 브로드캐스트는 네트워크 내의 모든 호스트에게 데이터를 전송한다.

따라서, 멀티캐스트는 대역폭을 더 효율적으로 사용하고 명확한 수신 대상을 선택할 수 있는 장점이 있다.

 

더보기

모범 답안

멀티캐스트 데이터는 라우터상에서 복사가 진행된다.

따라서 호스트의 수가 많더라도 호스트가 존재하는 경로가 동일하다면, 단 한 번의 데이터 전송으로 여러 호스트에게 데이터를 전송할 수 있다.

그러나 TCP의 경우에는 경로에 상관없이 호스트의 수만큼 데이터를 직접 전송해야 한다.

 

 

05. 멀티캐스트 방식의 데이터 송수신을 위해서는 MBone이라는 가상의 네트워크가 구성되어 있어야 한다. 즉, MBone은 멀티캐스트를 위한 네트워크이다. 그런데 이러한 MBone을 가리켜 가상 네트워크라 한다. 그렇다면 여기서 말하는 가상 네트워크가 무엇을 뜻하는지 설명해보라.

MBone은 가상 네트워크라고 불리는 개념을 나타낸다.

여기서 가상 네트워크란 물리적인 네트워크 인프라 위에 구축된 논리적인 네트워크를 의미한다.

즉, 가상 네트워크는 실제로 물리적인 링크, 라우터, 스위치 등이 존재하지 않지만, 논리적으로 가상의 네트워크 토폴로지를 형성하여 데이터 통신을 지원하는 구조이다.

 

MBone은 IP 멀티캐스트를 기반으로 구성된 가상 네트워크로서, 인터넷 상에서 멀티캐스트 데이터를 전송하기 위한 인프라이다.

MBone은 일종의 가상 터널링 기술을 사용하여 멀티캐스트 패킷을 지원하지 않는 물리적인 네트워크에서도 멀티캐스트 기능을 제공한다.

따라서 MBone을 통해 멀티캐스트 그룹 간 데이터 송수신이 가능해지는 것이다.

 

가상 네트워크는 물리적인 제약을 극복하고 논리적인 네트워크 구성을 유연하게 할 수 있는 장점이 있다.

이를 통해 멀티캐스트와 같은 특정한 네트워크 요구사항에 대한 지원이 가능해지며, 복잡한 물리적인 구조를 가지지 않고도 네트워크 기능을 확장할 수 있다. 가상 네트워크는 보안, 성능, 관리 등의 측면에서도 유연성을 제공하며, 다양한 네트워크 응용을 지원하는 데 사용될 수 있다.

 

더보기

모범 답안

가승의 네트워크라는 것은 물리적인 네트워크가 아닌, 소프트웨어의 형태로 구성이 되는 네트워크를 뜻한다.

즉, 인터넷이라는 TCP/IP 프로토콜 기반으로 동작하는 네트워크 상에서 소프트웨어의 형태로 존재하는, 

소프트웨어의 형태로 호스트를 묶는, 말 그대로 가상의 네트워크이다.

 

 

 


출처 : [윤성우의 열혈 TCP / IP 소켓 프로그래밍] / 윤성우 저 / 오렌지 미디어

https://cafe.naver.com/cstudyjava

 

윤성우의 프로그래밍 스터디그룹 [C/... : 네이버 카페

윤성우의 스터디 공간입니다. C와 JAVA를 공부하시는 분들은 모두 들어오세요. ^^

cafe.naver.com