본문 바로가기
Programming/열혈 TCP, IP 소켓 프로그래밍(저자 윤성우)

Ch 08. 내용 확인문제

by minjunkim.dev 2020. 8. 8.

    모든 내용은 [윤성우 저, "열혈강의 TCP/IP 소켓 프로그래밍", 오렌지미디어] 를 기반으로 제 나름대로 이해하여 정리한 것입니다. 다소 부정확한 내용이 있을수도 있으니 이를 유념하고 봐주세요!


01. 다음 중 DNS(Domain Name System)에 대한 설명으로 맞는 것을 모두 고르시오.

 

a. DNS가 존재하기 때문에 IP를 대신해서 도메인 이름을 사용할 수 있다.

 

c. 하나의 DNS 서버에 모든 도메인 정보가 다 등록되어 있지는 않다. 그러나 등록되지 않은 도메인의 IP주소도 얻어올 수 있다.

 

 

# 설명이 틀린 것

 

b. DNS 서버는 사실 라우터를 의미한다. 라우터가 도메인 이름 정보를 참조하여 데이터의 진로를 결정하기 때문이다 => DNS 서버는 도메인 이름을 IP주소로 변환하는 역할을 수행한다.(역방향도 가능은 하다.)

 

d. DNS 서버는 운영체제에 따라서 구분이 된다. 즉, 윈도우 운영체제용 DNS 서버와 리눅스용 DNS 서버는 구분이 된다.


 

02. 아래의 대화를 읽고 동수가 제안한 해결책으로 문제가 해결될 수 있는지 말해보자. 참고로 이는 실제로 대학의 컴퓨터실에서 여러분이 직접 확인할 수 있는 내용이다.

 

  정수: 동수냐? 야! 우리학교 네트워크 망에 연결되어 있는 디폴트 DNS 서버가 다운되어서 이력서를 넣어야 할 회사들의 홈페이지에 접속이 안돼! 뭔가 방법이 없을까?

 

  동수: 인터넷과 연결은 되어있는데 DNS 서버만 다운 된거야?

 

  정수: 응! 해결책 뭐 없을까? 그냥 주변에 있는 PC방으로 달려가야 하나?

  동수: 그렇게까지 할 필요가 뭐 있냐? 내가 우리학교 DNS 서버 IP 주소를 불러줄 테니까, 네가 사용하는 컴퓨터의 디폴트 DNS 서버 주소를 변경해!

 

  정수: 그런다고 되냐? 디폴트 DNS 서버는 반드시 로컬 네트워크 상에 연결되어 있어야 한다고!

 

  동수: 아냐! 지난번에 우리학교도 디폴트 DNS 서버가 죽으니까, 네트워크 관리자가 다른 DNS 서버의 IP주소를 알려주던데?

 

  정수: 그건 너네 학교에 DNS 서버가 여러 대 있으니까 가능했던 거야!

  동수: 그런가? 네 말이 맞는 것 같기도 하다. 그럼 얼른 PC방으로 달려가봐라!

 

- 꼭 로컬 네트워크로 연결된 DNS 서버를 반드시 디폴트 DNS 서버로 지정해야 하는 것은 아니다. 따라서, 동수가 제안한 방법은 유효한 해결책이 될 수 있다. 


03. 웹 브라우저의 주소 창에 www.orentec.co.kr을 입력해서 메인 페이지가 보이기까지의 과정을 정리해보자. 단, 웹 브라우저가 접속한 디폴트 DNS 서버에는 www.orentec.co.kr에 대한 IP주소가 등록되어 있지 않다고 가정하자.

 

1) 호스트의 컴퓨터는 디폴트 DNS 서버에게 IP 주소를 물음

2) 디폴트 DNS 서버에는 해당 IP 주소가 등록되어 있지 않으므로, 상위 DNS 서버에게 IP 주소를 물음

3) 상위 DNS 서버에 해당 IP 주소가 등록되어 있거나,

상위 DNS 서버가 다른 하위 DNS 서버에 물어 해당 IP에 정보를 얻었다면 이 정보를 전달해줌

4) 상위 DNS 서버로부터 디폴트 DNS 서버가 IP 주소를 전달받음

5) 디폴드 DNS 서버가 상위 DNS 서버로부터 전달받은 IP 주소를 호스트에게 전달

6) 호스트는 웹브라우저에서 디폴트 DNS 서버로부터 전달받은 IP 주소를 통해 해당 서버로 접속


 

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