메이쁘

[TCP/IP] 2020.11.11. 오늘의 면접 Q&A 본문

면접 대비 CS지식/SELF CS면접 Q&A

[TCP/IP] 2020.11.11. 오늘의 면접 Q&A

메이쁘 2020. 11. 11. 00:03

안녕하세요.

 

CS관련 질문과 면접에 맞는 답변을 작성하면서 지식도 쌓고 면접도 대비하는 시간을 가지려고 합니다.

 

 

틈틈히 게시글을 작성하며 면접 대비 데이터셋을 확보해둔 다음

 

언젠간 면접하게 될 때 모아서 쓰려고 합니다.

 

(실제로 면접에서 들었던 질문이 아니라, 제가 스스로 답을 정해놓고 짜논 질문이라 이렇게 안나올 수 있습니다!!!)

 

 

 

이번 글은 Network - TCP/IP 카테고리 입니다.

 

 

 

 

  -- 질문 목록

 

Q1.  ARP 테이블이 무엇인가요? 

Q2.  출발지IP 에서 목적지IP로 데이터를 전송하는 방법은 무엇인가요?


 

Q1.  ARP 테이블이 무엇인가요? 

 

A.  ARP 테이블은 IP와 MAC 주소를 매칭한 테이블 입니다. 보통 ARP 캐시 테이블을 사용하는데, 이는 IP주소와 MAC주소의 대응관계를 저장한 테이블을 뜻합니다. 여기서 IP주소를 가지고 MAC주소를 알 수 있기 때문에 IP주소 간 통신에 활용됩니다.

 

 

 

Q2.  출발지IP 에서 목적지IP로 데이터를 전송하는 방법은 무엇인가요?

 

A. 이는 우체국으로 편지 보내는 과정과 같습니다. (run-it.tistory.com/18 참고)

즉, 출발지 -> 출발지 동네의 우체국 -> 목적지 동네의 우체국 -> 목적지 와 같은데, 이 때 우체국은 게이트웨이를 뜻합니다.

바꿔 말하면 출발지IP -> 출발지 LAN 영역의 게이트웨이 -> 목적지 LAN 영역의 게이트웨이 -> 목적지IP 의 과정과 같습니다.

 

 

 

예를 들어, 출발지IP 주소를 192.168.0.4 라고 하고, 목적지IP 주소를 10.10.10.10 라고 가정하겠습니다.

 

먼저, 두 IP주소의 네트워크ID를 비교합니다. 이 때, 서브넷 마스크를 활용해서 네트워크ID와 호스트ID를 알아냅니다.

여기서 만약 두 IP주소의 네트워크ID가 같으면 스위칭을, 다르면 라우팅을 진행합니다.

라우팅은 게이트웨이를 통해 통신(데이터 전송)해야합니다.

 

이 때, 스위칭을 하는 경우에는 호스트ID와 MAC주소를 통해 전달하면 됩니다.

 

반면, 라우팅을 해야하는 경우에는 우선 OS에서 목적지IP를 게이트웨이 IP주소로 변경합니다. 이 때, 스위칭이 필요한데요.

1) 해당 게이트웨이의 MAC주소를 알기 위해 ARP 캐시 테이블로 가서 해당 게이트웨이의 MAC 주소가 등록되어있는지 체크합니다.

*** 예를 들어, 우리 동네의 우체국이 어딘지는 알지만, 다른 동네의 우체국 위치까지는 모릅니다. 이처럼, 같은 LAN영역 내의 게이트웨이 IP주소는 사전에 알고 있기 때문에 바로 OS에서 목적지IP를 변경할 수 있습니다. 

 

2) 만약 ARP 캐시 테이블에 게이트웨이의 MAC 주소가 등록되어있지 않으면 브로드캐스트 방식으로 LAN 영역 내의 ARP를 요청합니다.

여기서 브로드캐스트 방식이란, 자신과 같은 네트워크ID(LAN 영역 내) 를 사용하는 모든 호스트에게 데이터를 전송하는 방식입니다.

 

3) 이렇게 브로드캐스트로 모두에게 쏘면, 나다 싶은 호스트(게이트웨이) 가 이를 듣고 유니캐스트 방식으로 발신자에게 ARP를 전송합니다. 이 때의 ARP는 게이트웨이의 MAC주소입니다. 

여기서 유니캐스트 방식은 브로드캐스트 방식과 반대로 특정 호스트에게 데이터를 전송하는 방식입니다.

 

4) 이후에는 OS가 전송하고자 하는 데이터를 유니캐스트 방식으로 목적지IP가 포함된 동네(LAN 영역)의 게이트웨이에 전송합니다.

 

5) 목적지 동네의 게이트웨이가 스위칭을 사용하여 목적지IP 주소로 데이터를 전송합니다.

*** ARP 영역 : 2) 의 과정이 진행되는 영역.

 

이렇듯 IP 주소간에 데이터를 전송하기 위해서는 ARP와 라우팅이 반드시 필요하며, 이 둘을 꼭 사용해야합니다.

 

 

 

 

 

이상입니다.

 

감사합니다!

 

 

 

 

 

 

 

Comments