해당 글은 VSFe 깃허브 레포를 참고하여 작성한 글입니다. (아래 출처에 표기)
✅ IP 주소는 무엇이며, 어떤 기능을 하고 있나요?
▶ IP란?
IP(Internet Protocol): 인터넷을 통해 데이터를 주고받을 때 사용되는 프로토콜
▶ IP의 기능
- 기기 식별: 네트워크 내에서 각 기기를 고유하게 식별할 수 있는 주소를 제공한다.
- 데이터 전송: 데이터를 패킷(packet) 단위로 나누어 전송하고, 수신 측에서는 패킷(packet)을 조립하여 원래의 데이터로 변환하는 과정을 거친다.
- 라우팅: 데이터 패킷(packet)이 정확한 목적지로 전달될 수 있도록 경로를 결정한다. (패킷에는 출발지 IP, 목적지 IP 등의 정보가 있다.)
▶ IP 주소란?
IP 주소(IP Address): 네트워크에서 장비를 식별하기 위해 사용되는 고유한 번호이다. 크게 IPv4, IPv6 두 가지종류가 있다.
IP는 프로토콜 그 자체이고, IP 주소는 IP 통신을 하기 위해 각 기기를 구분하는 식별자이다.
▶ IP 주소 동작 방식
IP는 나누는 방식에 따라 공적 IP, 유동 IP와 공인 IP, 사설 IP로 나눌 수 있다.
🔽 고정 IP, 유동 IP
- 고정 IP (Static IP): 장치가 네트워크에 연결될 때마다 IP 주소가 변경되지 않는다.
- 네트워크 장치에 수동으로 설정된다.
- 유동 IP (Dynamic IP): 장치가 네트워크에 연결될 때마다 IP 주소가 변경될 수 있다.
- DHCP 서버에 의해 자동으로 할당된다.
DHCP와 관련된 자세한 설명은 여기를 참고하면 좋을 것 같다.
🔽 공인 IP, 사설 IP
- 공인 IP (Public IP): ISP가 제공하는 인터넷상에서 고유하게 식별되는 IP 주소
- 전 세계에서 유일하다.
- 외부, 내부 상관없이 해당 IP에 접속할 수 있다.
- 인터넷에 직접 연결된 장치(서버, 웹사이트 등)에 사용된다.
- 사설 IP (Private IP): 내부 네트워크에서만 유효한 IP 주소
- 하나의 네트워크 안에서 유일하다.
- 내부에서만 접근이 가능하다.
- 가정, 사무실, 기업 네트워크 내부의 장치들 간의 통신에 사용된다.
▶ 데이터를 전송하는 방법들
방식 | 대상 | IP 구조 |
유니캐스트 (Unicast) | Host | Host IP |
브로드캐스트 (Broadcast) | 동일 네트워크 | 255.255.255.255 |
멀티캐스트 (Multicast) | 특정 그룹 | 224.0.0.0 ~ 239.255.255.255 |
애니캐스트 (Anycast) | 가장 가까운 노드 | 지정된 애니캐스트 주소 (예: 192.0.2.1) |
✅ IPv4와 IPv6의 차이에 대해 설명해 주세요.
▶ IPv4
IPv4(Internet Protocol version 4): 전 세계적으로 사용된 첫 번째 인터넷 프로토콜
- 주소 길이: 32비트 주소 체계로, 약 2^32 개의 주소를 표현할 수 있다.
- 주소 표기법: 4개의 8비트 숫자(옥텟)로 구성되며, 각각의 숫자는 0부터 255까지의 값을 가진다. (예: 192.168.1.1)
- 인터넷의 급속한 성장으로 인해 주소 고갈 문제가 발생하여 NAT, 서브네팅 등의 부수적인 기술이 생겨났다.
▶ IPv6
IPv6(Internet Protocol version 6): IPv4의 주소 고갈 문제를 해결하기 위해 만들어진 인터넷 프로토콜
- 주소 길이: 128비트 주소 체계로, 2^128 개의 주소를 표현할 수 있다.
- 주소 표기법: 8개의 16비트 블록으로 구성되며, 각 블록은 4자리 16진수로 표현된다. (예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334)
- IPv4의 주소 고갈 문제를 해결하기 위해 등장하였다.
▶ 차이점
구분 | IPv4 | IPv6 |
무엇인가 | 인터넷 프로토콜 버전 4 | 인터넷 프로토콜 버전 6 |
주소 크기 | 32비트, 2^32 개의 IP 주소 | 128비트, 2^128 개의 IP 주소 |
명명 표준 | 숫자형 IP 주소, 마침표로 구분된 3자리 10진수의 4개 묶음 (예: 192.168.1.1) |
영숫자 주소, 콜론으로 구분된 4자리 16진수의 8개 묶음 (예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334) |
주소 변환 필요 여부 |
NAT(Network Address Translation)을 통해 변환 | 필요 없음 |
패킷 주소 지정 | 유니캐스트, 브로드캐스트, 멀티캐스트 | 유니캐스트, 멀티캐스트, 애니캐스트 |
주소 구성 | 수동 및 DHCP 구성 | SLAAC(Stateless Address Autoconfiguration)을 사용한 디바이스의 자동 구성, DHCPv6 상태 저장 연결에서도 지원됨 |
헤더 크기 | 20바이트 ~ 60바이트 | 고정, 40바이트 |
헤더 체크섬 | O | X |
보안 | IPsec(Internet Protocol Security) 지원하지만 옵션임 | IPsec을 기본적으로 지원 |
✅ IPv6는 IPv4의 주소 고갈 문제를 해결하기 위해 만들어졌지만, 아직도 수많은 기기가 IPv4를 사용하고 있습니다. 고갈 문제를 어떻게 해결할 수 있을까요?
- NAT(Network Address Translation): NAT는 네트워크 주소 변환 기술로, 사설 네트워크 내의 여러 장치가 하나의 공인 IP 주소를 사용하여 인터넷에 접근할 수 있도록 해준다.
- 내부 네트워크에서는 사설 IP 주소를 사용하여 장치 간 통신을 진행하고, 외부와의 통신이 필요할 때는 NAT 장비가 이 사설 IP 주소를 공인 IP 주소로 변환하여 데이터 패킷을 송수신한다.
- 이를 통해 공용 IP 주소의 사용을 최소화하고 주소 공간을 효율적으로 관리할 수 있으며, 외부 침입자로부터 내부 네트워크를 보호할 수 있다.
- 주소 재활용: IP 주소를 필요에 따라 재활용하는 방식으로, 사용이 끝난 IP 주소를 다시 사용하여 주소 공간을 효율적으로 활용한다.
- 서브넷팅: 큰 네트워크를 더 작은 서브넷으로 나누어 IP 주소를 체계적으로 관리하고, 네트워크의 효율성을 높인다. 서브넷팅을 통해 주소 공간을 세분화하고, 각 서브넷의 필요에 맞게 IP 주소를 할당할 수 있다.
NAT와 서브넷팅과 관련한 자세한 설명은 여기를 참고하면 좋을 것 같다.
✅ 수많은 사람들이 유동 IP를 사용하고 있지만, 수많은 공유기에서는 고정 주소를 제공하는 기능이 이미 존재합니다. 어떻게 가능한 걸까요?
- DHCP 예약: 공유기에서 특정 장치의 MAC 주소와 특정 IP 주소를 매핑하여, 해당 장치가 네트워크에 연결될 때 항상 같은 IP 주소를 설정한다.
- 정적 IP 설정: 네트워크 설정에서 수동으로 IP 주소를 설정하여 고정 IP 주소를 부여한다. 이 경우 공유기의 DHCP 서버와 상관없이 장치가 항상 동일한 IP 주소를 사용한다.
✅ IPv4를 사용하는 장비와 IPv6를 사용하는 같은 네트워크 내에서 통신이 가능한가요? 가능하다면 어떤 방법을 사용하나요?
IPv4와 IPv6은 서로 호환되지 않는 프로토콜이기 때문에, 기본적으로는 직접 통신할 수 없다. 그러나 두 프로토콜 간의 통신을 가능하게 하는 여러 가지 전환 기술이 있다.
- 듀얼 스택 (Dual Stack)
- 듀얼 스택 환경에서는 네트워크 장비가 IPv4와 IPv6 두 가지 프로토콜을 동시에 지원한다.
- 장비가 IPv4, IPv6 주소를 모두 가지고 있어 두 프로토콜을 모두 사용할 수 있다.
- 트랜슬레이터 (Translator)
- IPv4와 IPv6 네트워크 간의 특정 게이트웨이에서 사용된다.
- IPv4 패킷과 IPv6 패킷 간의 상호 변환을 수행하여 두 네트워크 간의 통신을 가능하게 한다.
- NAT64 트랜슬레이터는 IPv6 주소를 IPv4 주소로 변환하고, DNS64 트랜슬레이터는 IPv6-only 시스템이 IPv4 주소를 가진 호스트에 접근할 수 있도록 도와준다.
- 터널링 (Tunneling)
- IPv6 패킷을 IPv4 네트워크를 통해 전송하기 위해 IPv6 통신을 IPv4 패킷 안에 캡슐화하고 목적지에서 다시 IPv6 패킷으로 추출된다.
- 이와 같은 방식으로 IPv4 패킷을 IPv6 네트워크를 통해 전송하는 기술도 존재한다.
✅ IP가 송신자와 수신자를 정확하게 전송되는 것을 보장해 주나요?
IP 프로토콜 자체는 데이터가 송신자에서 수신자로 정확히 전송되는 것을 보장하지 않는다. IP는 Internet 계층의 핵심 프로토콜로, 데이터를 데이터그램(datagram)이라는 패킷으로 분할하고 네트워크를 통해 전달하는 기능만을 제공하며, 패킷이 목적지에 도달하지 않거나 순서가 바뀌는 경우를 처리하지 않는다. 이러한 보장과 신뢰성을 제공하는 것은 TCP와 같은 상위 프로토콜의 역할이다.
IP 프로토콜과 TCP와 관련된 자세한 설명은 여기를 참고하면 좋을 것 같다.
✅ IPv4에서 수행하는 Checksum과 TCP에서 수행하는 Checksum은 어떤 차이가 있나요?
▶ IPv4 Checksum
- 대상: IPv4 헤더
- 목적: 패킷의 전송 과정에서 헤더 정보의 무결성을 확인하기 위해 사용된다.
- 계층: Network 계층
- 특징: 데이터의 오류를 검출하기 위한 것이며, 전송 도중 헤더가 손상되었는지를 확인한다.
- 계산 방법:
- IPv4 헤더의 모든 16비트 워드를 더한 후, 결과의 끝부분을 자르고 보수 연산을 적용한다.
- 체크섬 필드에는 이 보수 값이 저장된다.
- 수신 측에서는 동일한 방식으로 체크섬을 계산하고, 계산 결과가 0xFFFF(모든 비트가 1인 상태)인지 확인한다. 만약 그렇다면, 데이터에 오류가 없는 것으로 판단된다.
▶ TCP Checksum
- 대상: TCP 세그먼트의 전체(헤더 + 데이터)
- 목적: TCP 세그먼트의 헤더와 데이터 부분의 무결성을 확인하기 위해 사용된다.
- 계층: Transport 계층
- 특징: 데이터 전송의 신뢰성을 보장하기 위한 것이며, 오류를 검출하고, 손상된 데이터를 재전송하는 기능을 제공한다.
- 계산 방법:
- TCP 헤더와 데이터 부분을 포함하여 가상의 헤더를 추가한 후, 16비트 워드 단위로 더한다.
- 결과의 끝부분을 자르고 보수 연산을 적용한다.
- 체크섬 필드에는 이 보수 값이 저장된다.
- 수신 측에서는 동일한 방식으로 체크섬을 계산하고, 결과가 0xFFFF(모든 비트가 1인 상태)인지 확인한다. 만약 그렇다면, 데이터에 오류가 없는 것으로 판단된다.
▶ 차이점
IPv4 Checksum | TCP Checksum | |
적용 범위 | IPv4 헤더 | TCP 전체 (헤더 + 데이터) |
목적 | 패킷 헤더의 무결성 검증 | 전송된 데이터 전체의 무결성 검증 및 오류 검출 |
동작 방식 | 라우터를 거칠 때마다 헤더 체크섬이 계산된다. | 송신지와 수신지에서만 체크섬이 계산된다. |
✅ TTL(Hop Limit)이란 무엇인가요?
IPv4에서는 TTL(Time to Live), IPv6에서는 홉 제한(Hop limit)이라고 하는데, 이는 패킷의 생명 주기를 제어하는 필드로, 패킷이 네트워크를 통과하는 동안의 최대 라우터(홉) 수를 제한한다.
- 동작 원리: 패킷이 네트워크의 각 라우터를 통과할 때마다 TTL 값이 1씩 감소하며, TTL 값이 0이 되면 패킷은 폐기된다.
- 목적: 이 기능은 패킷이 네트워크를 무한히 순환하는 것을 방지하기 위해 사용된다.
✅ IP 주소와 MAC 주소의 차이에 대해 설명해 주세요.
▶ IP 주소
- 정의: IP 주소는 네트워크에서 장치를 고유하게 식별하는 논리적인 주소이다. IP 주소는 인터넷 또는 다른 네트워크에서 장치 간의 통신을 위해 사용된다.
- 목적: 네트워크 상에서 장치를 식별하고, 데이터를 올바른 목적지로 전달하기 위한 경로를 지정한다.
- 형식:
- IPv4: 32비트 주소 (예: 192.168.1.1)
- IPv6: 128비트 주소 (예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334)
- 계층: Network 계층
- 동적/정적: IP 주소는 동적으로 (DHCP를 통해) 또는 정적으로 (수동 설정) 할당될 수 있다.
▶ MAC 주소
- 정의: MAC 주소는 네트워크 인터페이스 카드(NIC)에 부여된 고유한 물리적 주소이다. 네트워크 장비의 하드웨어 주소를 나타내며, 로컬 네트워크에서 장치를 식별하는 데 사용된다.
- 목적: 네트워크 장치의 물리적 식별과 LAN에서의 데이터 프레임(frame) 전송을 관리한다.
- 형식: 48비트 주소, 일반적으로 16진수로 표현된다. (예: 00:1A:2B:3C:4D:5E)
- 계층: Data Link 계층
- 정적: MAC 주소는 보통 하드웨어에 하드코딩되어 있으며, 변경되지 않는다.
IP 주소와 MAC 주소, 프로토콜 스택 모델과 관련된 자세한 설명은 여기를 참고하면 좋을 것 같다.
▶ 차이점
IP 주소 | MAC 주소 | |
정의 | 네트워크에서 장치를 식별하는 논리적 주소 | 네트워크 인터페이스 카드에 부여된 물리적 주소 |
위치 | 장치의 논리적 위치를 식별 | 장치의 물리적 위치를 식별 |
형식 | IPv4: 32비트 IPv6: 128비트 |
48비트 |
계층 | Network 계층 | Data Link 계층 |
동적/정적 | 동적 (DHCP) 또는 정적 | 정적 (하드웨어에 고정됨) |
역할 | 데이터가 올바른 목적지로 전달될 수 있도록 경로를 지정 | 로컬 네트워크 내에서 데이터의 정확한 물리적 전송을 보장 |
📍 문제 출처
Tech-Interview / 03-NETWORK.md
📍 참고 자료
'Programming > Network' 카테고리의 다른 글
[Network] 3-way Handshake (0) | 2024.08.14 |
---|---|
[Network] OSI 7계층 (0) | 2024.08.11 |
[Network] DHCP (0) | 2024.08.05 |
[Network] 프로토콜 스택 (0) | 2024.08.05 |
[Network] 네트워크 (0) | 2024.08.05 |