본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다.
ARP (Address Resolution Protocol)
- 컴퓨터와 컴퓨터 사이 통신은 IP주소 기반으로 통신한다고 알고 있지만 정확히 이야기하면 ARP를 통해 MAC 주소를 찾아 MAC 주소 기반으로 통신
- 가상 주소인 IP주소를 실제 주소인 MAC주소로 변환
- 반대로 RARP를 통해 실제 주소인 MAC주소를 가상 주소인 IP주소로 변환하기도 함.
- ARP Request 브로드캐스트를 보내 IP주소에 해당하는 MAC 주소를 찾음. 그리고 해당 주소에 맞는 장치 B가 ARP Reply 유니캐스트를 통해 MAC 주소를 반환하는 과정을 거침
hop by hop 통신
- IP주소를 통해 통신하는 과정을 홉바이홉 통신이라고 함
- 통신망에서 각 패킷이 여러 개의 라우터를 건나가는 모습을 비유적으로 표현
- 수많은 서브네트워크 안에 있는 라우터의 라우팅 테이블 IP를 기반으로 패킷을 전달하고 전달
Routing VS Forwading
Routing: 출발지에서 목적지까지의 경로를 설정하는 것(라우팅 알고리즘을 통해 라우팅 테이블을 만드는 것)
Forwarding: 라우터의 입력 포트에서 출력포트로 패킷을 이동시키는 것
라우팅 테이블(Routing table)
- 송신지에서 수진지까지 도달하기 위해 사용되는 라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어 있는 리스트
- 게이트웨이와 모든 목적지에 대해 해당 목적지에 도달하기 위해 거쳐야 할 다음 라우터의 정보를 가지고 있음.
게이트웨이(Gateway)
- 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할을 하는 소프트웨어를 두루 일컫는 용어
- 사용자가 인터넷에 접속하기 위해서는 수많은 톨게이트인 게이트웨이를 거쳐야함
- 서로 다른 네트워크상의 통신 프로토콜을 변환해주는 역할을 하기도 함.
IP 주소 체계
- IPv4: 32비트, 8비트 단위로 . 찍음
- IPv6: 128비트, 16비트 단위로 : 찍음
클래스 기반 할당 방식(classful network addressing)
- A, B, C, D, E 다섯 개의 클래스로 구분하는 방식
- 앞에 있는 부분을 네트워크 주소, 뒤에 있는 부분을 호스트 주소로 놓아서 사용
- 클래스 A,B,C는 일대일 통신으로 사용
- 클래스 D는 멀티캐스트 통신
- 클래스 E는 예비용으로 사용
- 클래스 A의 범위는 0.0.0.0 부터 127.255.255.255까지 범위를 가짐
- 맨 왼쪽의 구분 비트가 클래스마다 다르다
- A는 0, B는 10, C는 110
- 네트워크에 할당된 첫번째 주소 = 네트워크 구별 주소
- 가장 마지막 주소는 브로드캐스트용 주소
- 12.0.0.1 ~ 12.255.255.254가 컴퓨터에게 부여할 수 있는 호스트 주소
- 하지만 이 방식은 사용하는 주소보다 버리는 주소가 많은 단점이 있고 이를 해소하기 위해 DHCP, IPv6, NAT가 나왔다.
DHCP(Dynamic Host Configuration Protocol)
- IP 주소 및 기타 통신 매개변수를 자동으로 할당하기 위한 프로토콜
- IP주소를 수동으로 설정할 필요없이 인터넷에 접속할 때마다 자동으로 IP 주소 할당
- 라우터와 게이트 장비에 DHCP 기능이 있다.
NAT(Network Address Translation)
- 패킷이 라우팅 자체를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정하여 IP주소를 다른 주소로 매핑하는 방법
- 많은 주소를 감당하지 못하는 단점을 해결해 줌.
- 공인 IP 와 사설 IP로 나눠서 많은 주소를 처리.
- 여러 대의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함.
- 보안 효과: 내부 네트워크에서 사용하는 IP주소와 외부 IP주소가 달라 내부 네트워크에 대한보안 가능
- 여러 명이 동시에 인터넷을 접속하게 되므로 호스트 숫자에 따라 접속 속도가 느려질 수 있다.