CS공부 - 네트워크 - 3

soonrok·2023년 4월 21일
0

CS

목록 보기
7/7
post-thumbnail

다음 글은 보초님의 CS 네트워크 레포를 기반으로 각 질문에 대한 답을 달며 공부하는 글입니다.
※ 아직 작성중인 글 입니다.

8. DHCP가 무엇인지 설명해 주세요.

사용자가 인터넷을 이용하기 위해서는 본인의 IP주소, 서브넷 마스크, 디폴트 게이트웨이 등 각종 네트워크 환경을 설정해야 합니다. 여기서 DHCP를 사용하게 되는데, DHCP는 Dynamic Host Configuration Protocol의 약자로 네트워크 환경을 사용자가 일일히 설정하지 않고 동적 및 자동으로 할당해주는 프로토콜입니다.

  • DHCP는 몇 계층 프로토콜인가요?
    • OSI 7계층 기준으로 Application layer인 7계층에 속합니다.
  • DHCP는 어떻게 동작하나요?
    • DHCP의 IP 주소 동적 할당 과정은 총 4가지 단계로 이루어지게 됩니다. 먼저 사용자는 네트워크 어딘가에 있는 DHCP 서버를 찾기 위한 메시지를 브로드캐스트로 날리게 되는데, 이 과정을 DHCP Discover라고 합니다. 메시지를 받은 DHCP 서버는 서버가 있다는 것을 알리기 위해 본인의 주소와 사용자에게 할당할 네트워크 정보를 다시 브로드캐스트로 날리게 되는데, 이 과정을 DHCP Offer라고 합니다. 어딘가에 있는 DHCP 서버로부터 응답을 받은 사용자의 단말은 제공받은 네트워크 정보를 본인의 네트워크로 설정해달라는 메세지와 DHCP의 주소를 담아 브로드캐스트로 보내게 되고, 메세지를 받은 DHCP 서버는 담긴 주소가 본인의 주소가 맞으면 해당 요청을 처리하고 설정했다는 메세지와 네트워크 정보를 사용자에게 다시 보내게 되는데 이 과정들을 각각 DHCP Request, DHCP ACK라고 합니다.
  • DHCP에서 UDP를 사용하는 이유가 무엇인가요?
    • DHCP의 역할인 동적 네트워크 환경설정을 제공하기 위해서는 신뢰성있는 연결보다는 빠른 연결이 중요하기 때문입니다. 또한 DHCP를 이용해 IP를 할당받기 전에는 신뢰성있는 연결이 불가능 하기 때문에 TCP를 사용할 수 없습니다.
  • DHCP에서, IP 주소 말고 추가로 제공해주는 정보가 있나요?
    • 서브넷 마스크, 디폴트 게이트웨이, IP 주소 임대 시간, DNS 정보 등이 있습니다.
  • DHCP의 유효기간은 얼마나 긴가요?
    • DHCP는 IP 주소를 임대해주는 개념이기 때문에 일정 시간이 지나면 다시 반환해줘야 합니다. 이때 유효기간은 보통의 DHCP 서버는 8시간으로 설정되어 있습니다. 하지만 유동인구가 많은 장소의 경우 해당 시간은 너무 길어 IP 주소가 금방 동날 수 있습니다. 때문에 직접 설정할 수 있으며, 이 유효기간과 갱신과 반환 기능을 통해 IP 주소의 순환이 원활하게 이뤄지게 할 수 있습니다.

9. IP 주소는 무엇이며, 어떤 기능을 하고 있나요?

IP는 네트워크 상에서의 단말, 즉 하나의 사용자를 식별하기 위해 부여되는 주소입니다. OSI 7계층 중 3계층인 Network layer에서 할당되어 32bit로 표현되며 .를 기준으로 네 부분으로 나뉩니다. 또한 나눠진 네 개의 부분은 네트워크 주소와 호스트 주소로 나뉠 수 있으며, 각 부분은 8bit이기 때문에 0부터 255까지의 수로 표현됩니다.

  • IPv6는 IPv4의 주소 고갈 문제를 해결하기 위해 만들어졌지만, 아직도 수많은 기기가 IPv4를 사용하고 있습니다. 고갈 문제를 어떻게 해결할 수 있을까요?
    • Network Address Translation의 약자인 NAT를 이용해 해결하고 있습니다. 실제 우리의 스마트폰이나 노트북에 할당되는 IP는 네트워크와 직접적으로 연결되는 공인 IP가 아닙니다. IPv4의 방식으로는 2의 32승 개의 주소만을 만들어 낼 수 있기에 각각의 네트워크에서는 본인들의 네트워크내에서만 식별될 수 있는 IP를 따로 사용하게 되는데 이 IP는 사설 IP라 불립니다. 하지만 사설 IP는 외부 네트워크로 나갈때 공인 IP로의 변환을 거치게 되는데 이 기술을 NAT라고 합니다.
  • IPv4와 IPv6의 차이에 대해 설명해 주세요.
    • IPv4는 32bit의 길이를 사용하지만 IPv6는 128bit를 사용합니다. 때문에 IPv6는 IPv4보다 많은 양의 주소 양을 가지고 있고 기존에 사용하던 NAT 게이트웨이와 같은 장비를 사용하지 않고 직접 네트워크에 연결될 수 있으며 더 빠른 속도를 기대할 수 있습니다. 또한 헤더의 길이가 IPv4는 가변적이고 IPv6은 고정적이라는 점, 체크섬의 계산 유무 등의 차이가 있습니다.
  • IPv4를 사용하는 장비와 IPv6를 사용하는 같은 네트워크 내에서 통신이 가능한가요? 가능하다면 어떤 방법을 사용하나요?
    • 가능합니다. IPv6가 출시되고 전세계 모든 장비가 이미 사용중이던 IPv4를 한 번에 변환하는 것은 불가능하기에 크게 세가지의 방법을 이용해 IPv6와의 통신도 가능하게 되었습니다. 하나의 시스템에서 v4와 v6를 모두 처리하는 듀얼 스택 방식과 IPv6 구조의 패킷을 IPv4 구조의 패킷으로 캡슐화해서 IPv4 망을 터널처럼 이용하는 터널링 방식, NAT와 비슷하게 IPv4와 IPv6의 헤더를 바꾸는 헤더 변환 방식이 있습니다.
  • IP가 송신자와 수신자를 정확하게 전송되는 것을 보장해 주나요?
    • IP 자체로만은 비신뢰성과 비연결성의 특징을 가지고 있기 때문에 보장할 수 없습니다. 따라서 TCP와 같은 상위 계층의 프로토콜을 함께 사용해야 합니다.
  • IPv4에서 수행하는 Checksum과 TCP에서 수행하는 Checksum은 어떤 차이가 있나요?
    • IPv4에서 수행하는 체크섬은 전달된 IP 패킷의 헤더에서 체크섬 값을 제외한 모든 값을 더해 전달된 체크섬 값과 비교해 같으면 정상, 다르면 비정상으로 판단이 진행하게 됩니다. 하지만 TCP에서 수행하는 체크섬은 IPv4와 같이 헤더만 필요한 것이 아닙니다. IP 헤더에서 뽑아낸 출발지의 주소와 도착지의 주소 등을 포함하고 있는 의사 헤더(Pseudo Header)를 만들어낸 다음, 의사 헤더와 TCP 세그먼트의 값을 16비트 단위로 끊은 뒤 모두 더해 하나의 값을 만들어냅니다 만들어진 값이 전달된 체크섬과 더해 모두 1이라면 정상, 아니라면 비정상으로 판단하며 정상일 경우 1의 보수를 취한 뒤 체크섬 값으로 보내게 됩니다.
  • TTL(Hop Limit)이란 무엇인가요?
    • IP 패킷이 무한정으로 네트워크를 떠돌지 않도록 하기 위해서 설정한 거칠 수 있는 라우터의 최대 개수를 말합니다. 하나의 라우터를 거칠 때 마다 1씩 감소하며 TTL이 0인 패킷을 받은 라우터는 해당 패킷을 버리게 됩니다.
  • IP 주소와 MAC 주소의 차이에 대해 설명해 주세요.
    • IP 주소는 네트워크 상에서 단말을 구분하기 위해 부여된 논리적 주소이고, MAC 주소는 NIC에 부여된 고유한 물리적 주소입니다. 구조 또한 다른데, IP 주소는 v4의 경우 32bit, v6의 경우 128bit로 이루어지지만 MAC 주소는 48bit로 이루어져 있습니다.

10. OSI 7계층에 대해 설명해 주세요.

OSI 7계층은 ISO에서 발표한 내용으로 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말합니다. 1계층인 물리계층부터 7계층인 응용계층까지 있는데 각 단계는 독립적이며 위 아래로 인접한 계층만 신경쓰면 된다는 장점이 있습니다.

  • Transport Layer와, Network Layer의 차이에 대해 설명해 주세요.
    • 4계층인 Transrpot Layer는 데이터의 송신자와 수신자를 연결해 통신을 활성화하기 위한 계층이고 3계층인 Network layer는 데이터를 목적지까지 전달하기 위한 계층입니다. 비유적으로 표현하자면 한 집에 방이 4개가 있고 집이 여러 개가 있다면 Network layer는 우편물이 특정 집에 잘 배송되게 합니다. 이후 Transport layer를 통해 한 집에 있는 4명 중 한 명에게 전달되게 합니다. 또한, Transport layer는 데이터의 단위로 '세그먼트'이라는 단어를 사용하지만 Network layer에서는 '패킷'이라는 단어를 사용한다는 차이가 있습니다. 대표적으로 Transport layer에는 TCP와 UDP가 있고, Network layer에는 IP가 있습니다.
  • L3 Switch와 Router의 차이에 대해 설명해 주세요.
    • 먼저 Router는 3계층인 Network layer에서 데이터가 목적지까지 잘 도착할 수 있도록 경로를 찾는 라우팅을 진행하는 장비입니다. 그리고 Switch는 본래 2계층의 장비이지만 L3 Switch의 경우 라우터를 스위치내에 수용시켜 L3에서 동작시킨 장비입니다. 라우터는 소프트웨어 기반으로 다양한 기능과 인터페이스를 지원하고 확장성을 가지지만, L3 스위치는 특정 처리에 특화된 하드웨어 기반으로 빠른 패킷 처리가 가능하지만 지원 기능 수나 확장성은 제한된다는 차이점이 있습니다.
  • 각 Layer는 패킷을 어떻게 명칭하나요? 예를 들어, Transport Layer의 경우 Segment라 부릅니다.
    • 1계층인 물리 계층은 Bits, 2계층인 데이터링크 계층은 프레임, 3계층인 네트워크 계층은 패킷, 4계층인 전송 계층은 세그먼트, 5계층, 6계층, 7계층에 해당하는 세션, 프레제테이션, 응용 계층은 데이터라는 명칭으로 불립니다.
  • 각각의 Header의 Packing Order에 대해 설명해 주세요.
    • 1계층은 전기 신호나 광 신호 등의 물리적인 신호를 전송하기 때문에 packing order가 따로 정해져 있지 않습니다. 2계층도 정해져 있지 않은게 대부분이지만 대대수의 네트워크 장비들이 little-endian 방식을 사용하기 때문에 packing order를 사용하는 경우 little-endian 방식을 사용합니다. 또한 3계층과 4계층, 7계층은 big-endian을 사용하며 5, 6계층은 따로 packing order가 정해져 있지 않습니다.
  • ARP에 대해 설명해 주세요.
    • APR는 Address Resolution Protocol의 약자로 네트워크 상에서 IP 주소를 MAC 주소로 대응시키기 위해 사용됩니다. 네트워크 상에서 어떤 목적지에 데이터를 전달하기 위해서는 지정하는 IP는 항상 해당 단말을 가리키는 고정적인 값이 아닙니다. 때문에 IP 주소를 가지고 있는 해당 단말의 고유한 값이 필요한데 이 값이 바로 해당 단말의 MAC 주소입니다. 호스트 A가 호스트 B와 통신하고자 할 때, 호스트 A는 자신의 ARP 테이블을 확인하고 B의 MAC 주소가 없다면, B의 IP 주소를 ARP Request 패킷에 담아 브로드하게 날리게 됩니다. 해당 패킷을 받은 B는 패킷에 담긴 IP가 자신을 가리키는지 확인한 후, 일치한 다음 자신의 MAC 주소를 ARP Reply 패킷에 담아 전송하게 되고 이제 호스트 A는 호스트 B의 IP 주소와 MAC 주소를 모두 알기 때문에 통신할 수 있습니다.

11. 3-Way Handshake에 대해 설명해 주세요.

3-Way Handshake는 TCP에서 안정적인 통신을 하기 위해 연결하는 절차로, 주고 받는 Flag 값을 바탕으로 3단계로 이루어지기 때문에 3-Way Handshake라고 불립니다. 연결를 원하는 주체를 Client, 연결을 하고 싶은 대상을 Server라고 했을 때, Client는 Server에게 SYN 플래그를 보내게 됩니다. 이때 SYN 플래그를 받은 Server는 연결이 가능하다면 SYN 플래그와 ACK 플래그를 함께 보내게 됩니다. 연결이 가능하다는 플래그를 받은 Client가 다시 ACK 플래그를 전송함으로서 연결이 맺어지게 됩니다.

  • ACK, SYN 같은 정보는 어떻게 전달하는 것 일까요?
  • 2-Way Handshaking 를 하지않는 이유에 대해 설명해 주세요.
  • 두 호스트가 동시에 연결을 시도하면, 연결이 가능한가요? 가능하다면 어떻게 통신 연결을 수행하나요?
  • SYN Flooding 에 대해 설명해 주세요.

12. 4-Way Handshake에 대해 설명해 주세요.

TCP에서 안정적으로 통신을 끝내고 연결을 끊기 위해 실행되는 프로세스로 3-Way Handshake와 마찬가지로 Flag 값을 바탕으로 이루어지지만 4단계로 이루어집니다. 먼저 Client가 Server에게 통신이 끝내고 싶다는 FIN 플래그를 보내게 됩니다. FIN 플래그를 받은 Server는 알겠다는 의미로 ACK 플래그를 보내게 되고, 이후 Server 또한 연결을 종료할 준비가 다 됐을 때 FIN 플래그를 보내게 됩니다. Server로부터 FIN 플래그를 받은 Clinet가 최종적으로 ACK 플래그를 보내게 되면 연결이 정상적으로 종료되게 됩니다.

  • 패킷이 4-way handshake 목적인지 어떻게 파악할 수 있을까요?
  • 빨리 끊어야 할 경우엔, (즉, 4-way Handshake를 할 여유가 없다면) 어떻게 종료할 수 있을까요?
  • 4-Way Handshake 과정에서 중간에 한쪽 네트워크가 강제로 종료된다면, 반대쪽은 이를 어떻게 인식할 수 있을까요?
  • 왜 종료 후에 바로 끝나지 않고, TIME_WAIT 상태로 대기하는 것 일까요?

13. www.github.com을 브라우저에 입력하고 엔터를 쳤을 때, 네트워크 상 어떤 일이 일어나는지 최대한 자세하게 설명해 주세요.

  • DNS 쿼리를 통해 얻어진 IP는 어디를 가리키고 있나요?
  • Web Server와 Web Application Server의 차이에 대해 설명해 주세요.
  • URL, URI, URN은 어떤 차이가 있나요?

14. DNS에 대해 설명해 주세요.

DNS는 Domain Name Server의 약자로 각 도메인에 실질적으로 매핑되는 IP 주소를 반환해주는 서버입니다. 따라서 특정 웹을 사용함에 있어서 해당 웹의 어려운 IP 주소를 사용하는게 아니라 간편하게 도메인을 사용할 수 있게 해주는 역할을 하는 Server이며 DNS에 없는 도메인은 DNS의 DNS에 요청될 수 있습니다.

  • DNS는 몇 계층 프로토콜인가요?
  • UDP와 TCP 중 어떤 것을 사용하나요?
  • DNS Recursive Query, Iterative Query가 무엇인가요?
  • DNS 쿼리 과정에서 손실이 발생한다면, 어떻게 처리하나요?
  • DNS 레코드 타입 중 A, CNAME, AAAA의 차이에 대해서 설명해주세요.
  • hosts 파일은 어떤 역할을 하나요? DNS와 비교하였을 때 어떤 것이 우선순위가 더 높나요?

참고자료
DHCP
DHCP 개념 및 동작원리 이해하기
[프로토콜 헤더] IPv4 / IPv6 변환 기술
OSI 7 계층
ARP 쉽게 이해하기

profile
I Will be Relaxed Person

0개의 댓글