**본 포스팅은 '면접을 위한 CS 전공지식 노트'라는 책을 기반으로 공부한 내용을 정리한 것입니다.
1. ARP
컴퓨터와 컴퓨터 간의 통신은 "IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신"
- MAC 주소 : 네트워크 세그먼트의 데이터 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자
ARP = Address Resolution Protocl (주소 결정 프로토콜)
ARP는 이더넷(Ethernet) 통신의 꽃이라고 한다!
- IP 주소로부터 MAC 주소를 찾아 MAC 주소를 기반으로 통신
- 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환
ARP 동작 과정
핵심은 ARP request가 broadcast가 된다는 것!
- LAN 통신을 하고자 하는 상대방 PC나 서버의 IP는 아는데 MAC 주소를 모를 때,
- ARP request 패킷을 보내고, ARP reply를 받아서 MAC 주소를 알아내어 상대방에게 패킷을 보낼 수 있게 된다.
ARP request = Broadcast
- 브로드캐스트 : 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식
ARP reply = Unicast
- 유니캐스트 : 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 데이터를 전송하는 방식
2. 홉바이홉 통신
: IP주소를 통해 통신하는 과정
- hop : 통신망에서 패킷이 여러 개의 라우터를 건너가는 모습을 비유한 것
- 각각의 라우터에 있는 라우팅 테이블의 IP를 기반으로 패킷을 전달하고 다시 전달
라우팅 테이블
- 라우터에 들어가있는 목적지 정보들과 그 목적지로 가기 위한 방법들이 들어 있는 리스트
- 송신지에서 수신지까지 도달하기 위해 사용
- 게이트 웨이와 모든 목적지에 대해 해당 목적지에 도달하기 위해 거쳐야할 다음 라우터의 정보를 포함
게이트웨이
- 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할의 컴퓨터나 소프트웨어
- 다른 네트워크로 들어가는 입구 역할을 하는 네트워크 포인트
- 서로 다른 네트워크상의 통신 프로토콜을 변환해주는 역할
3. IP 주소 체계
IP 주소
- IPv4
- IPv6
IPv4 vs IPv6
- IPv4 : 32비트를 9비트 단위로 점을 찍어 표기
- IPv6 : 64비트를 16비트 단위로 점을 찍어 표기
클래스 기반 할당 방식
- 클래스 A, B, C : 일대일 통신에 사용
- 클래스 D : 멀티캐스트 통신에 사용
- 클래스 E : 예비용으로 사용
- 맨 앞에 있는 비트('0', '10' , '110'...)를 구분비트라 함 (이진수로 표현했을 때)
- 구분 비트를 통해 클래스 간의 IP가 나눠짐
A 클래스
- 범위 :
0.0.0.0
~ 127.255.255.255
(십진수)
- 네트워크 주소 : 첫번째 바이트
B 클래스
- 범위 :
128.0.0.0
~ 191.255.255.255
- 네트워크 주소 : 첫번째 ~ 두번째 바이트
C 클래스
- 범위 :
192.0.0.0
~ 223.255.255.255
- 네트워크 주소 : 첫번째 ~ 세번째 바이트
네트워크 주소와 호스트 주소
- 첫번째 주소는 네트워크 주소
- 마지막 주소는 브로드캐스트용 주소
예시
클래스 A, 12.0.0.0
이란 네트워크를 부여했을 때
-> 12.0.0.1
~ 12.255.255.254
의 호스트 주소를 부여받은 것
-> 마지막 주소인 12.255.255.255
의 경우 브로드캐스트용으로 남겨두어야해서 사용하면 안됨
IP 주소 예시
10.3.4.3
- 클래스 : A
- 네트워크 부분 :
10.0.0.0
- 호스트 부분 :
3.4.3
132.12.11.4
- 클래스 : B
- 네트워크 부분 :
132.12.0.0
(B 클래스는 두번째 바이트까지 네트워크 주소)
- 호스트 부분 :
11.4
203.10.1.1
- 클래스 : C
- 네트워크 부분 :
203.10.1.0
(C 클래스는 세번째 바이트까지 네트워크 주소)
- 호스트 부분 :
1
DHCP
- 동적 호스트 구성 프로토콜 (Dynamic Host Configuration Protocol)
- 호스트 IP 구성 관리를 단순화하는 IP 표준
- IP주소 및 기타 통신 매개변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜
- 인터넷에 접속할 때마다 자동으로 IP 주소를 할당할 수 있음
NAT
- 네트워크 주소 변환 (Network Address Translation)
- 패킷이 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑
- 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위해 사용
공유기와 NAT
- 인터넷 공유기에 NAT 기능이 탑재되어 있기 때문에 인터넷 회선 하나를 공유기를 사용해 여러 PC가 사용할 수 있음
NAT를 이용한 보안
- 내부 네트워크에서 사용하는 IP 주소와 외부에 드러나는 IP 주소를 다르게 유지할 수 있음
NAT의 단점
- 실제로 접속하는 호스트 숫자에 따라서 접속 속도가 느려질 수 있음