IP주소라는건 왜 필요할까?
우리가 택배를 보낼때도 "주소"가 꼭 필요하다. 주소가 없으면 어디로 보낼지 모르기때문에!
인터넷도 그렇다.
내 컴퓨터가 데이터를 어딘가로 보낸다면
이 데이터를 어느 장치에 보내야하는데??
이때 사용하는 논리적인 주소가 IP address인것
그래서 오늘은 이 IP주소에 대해서 학습을 해보자!!
IP란 엄밀하게 이야기하면 네트워크 인터페이스에 할당되는 주소에 가깝다.
쉽게 이야기 해보자면, 우리가 노트북을 쓸때 네트워크에 연결되는 방법은 여러개다.
와이파이를 쓸수도 있고, vpn을 쓸수도 있고 이더넷 등등 ...
이렇듯 각각의 네트워크 인터페이스가 서로 다른 IP를 가질 수 있다.
즉 노트북에서 집 와이파이론 192.168.0.15 라는 ip 주소가 있지만
VPN으로 접속하면 다른 인터페이스가 추가될수도 있고~~
IP는 네트워크에서 통신 대상을 식별하기 위한 논리적 주소다!

IPv4는 실제로는 32bit이다. 하지만 11000000101010000000000000001010 이렇게 들고 다닐 수 없으니, 8bit를 네덩어리로 나누었다.
그렇게 나눈 2진수를 10진수로 변환해서 우리가 아는 192.168.0.10 이런식으로 나타낸것임을 알고가자!
32bit 이니까 2^32, 즉 약 43억개를 만들 수 있다.
"43억개?!?! 개많다!" 라고 생각할 수 있지만 인터넷에 연결되어있는 장치는 어마어마하게 많고 앞으로 더더 많아질 것이다.
그래서 이 43억개로는 부족해서 나중에 배울 Private IP, Public IP, NAT, IPv6와 같은 애들이 나오는것이다!

IP는 단순히 숫자가 아니라 개념적으로
1) Network 부분
2) host 부분
으로 나눌 수 있다.
택배로 비유하자면 Network = 서울시 강남구, host = 101동 101호 같은 느낌으로
192.168.0.xxx라는 형태가 있다면, 그 안에는
192.168.0.10, 192.168.0.11, 192.168.0.12...이런 집들이 있다고 생각하면 된다.
개념적으론 그렇지만 항상 앞의 3칸이 네크워크, 마지막이 호스트인것은 아니다!
이런 경계는 다음에 배울 서브넷 마스크/CIDR로 결정! 오늘은 흐름만 알고가자~
IP가 논리적 주소라고 한다면 컴퓨터는 이 IP주소를 어디에 적어서 보내는 거징??
지난번에 배운 캡슐화를 기억해보자!
HTTP Data
↓ TCP Header 추가
[ TCP Header | HTTP Data ]
↓ IP Header 추가
[ IP Header | TCP Header | HTTP Data ]
여기서 IP 헤더 안에 주소 정보가 들어간다.
대표적으로
source ip : 내 노트북 ip
destination ip : 다음 목적지 ip
그래서 저번에 배운 router가 destination ip를 보면서 다음에는 어디로 가지? 를 판단한다.
IP 자체는 데이터의 신뢰성 있는 전달을 보장하지 못한다. 기본적으로 목적지를 향해 패킷을 전달해보는것..!
그러면 이런 유실, 순서, 재전송 보장은 누가해주지...?
-> 여기서 위 계층인 TCP가 나오는것!! 이 친구가 신뢰성을 담당 하기 때문에
Application
↓
TCP
"빠진 데이터 있나?"
"순서 맞나?"
↓
IP
"목적지는 여기네. 보내자."
이렇게 계층이 나눠져 있어서 IP는 목적지까지 전달, 신뢰성은 정송 계층에 맡기는것!
꼭 그렇진 않다. 내 컴퓨터와 옆집 노트북이 같은 IP일수도 있다.
하지만 충돌하지 않는다.
그 이유는 이 주소가 인터넷 전체에서 사용하는 주소가 아니라 특정 내부 네트워크 안에서 사용하는 주소, 즉 ip에도 사용되는 범위가 존재하기 때문이다.
그래서 나중에 배울 Private IP
Public IP 것들이 존재!
크게 두가지가 있다.
직접 설정
→ Static IP
자동으로 할당
→ Dynamic IP
보통 집이나 카페에 연결되면 자동으로 IP를 받는 과정에서 보통 DHCP라는 프로토콜이 사용된다.
노트북
"나 이 네트워크 처음 왔어.
IP 하나 필요해!"
↓
DHCP
↓
"그럼 너는
192.168.0.15 사용해!"
공유기는 이 주소를 일정 시간 동안 네 노트북에 임대(lease) 해준다.
그래서 같은 집 Wi-Fi에 계속 붙어 있는 동안에는 보통 같은 IP를 유지하는 경우가 많아. 하지만 아래 같은 상황에서는 바뀔 수 있어.
DHCP 임대 시간이 끝난 뒤 다른 주소를 받을 때
공유기를 재부팅했을 때
노트북이 Wi-Fi에서 오래 끊겼다가 다시 연결됐을 때
공유기의 DHCP 설정이 바뀌었을 때
다른 기기가 기존 주소를 먼저 할당받았을 때
예를 들어
오늘
MacBook → 192.168.0.15
며칠 뒤 재접속
MacBook → 192.168.0.23
처럼 바뀔 수도 있어.
다만 DHCP는 보통 같은 기기에게 이전에 쓰던 IP를 다시 주려고 하는 경우가 많아서, 실제로 집에서 보면 꽤 오래 같은 IP를 쓰는 것처럼 느껴질 수 있어.
그리고 이건 사설 IP 얘기야.
인터넷에서 보이는 집의 공인 IP도 통신사 정책에 따라 바뀔 수 있어. 가정용 인터넷은 동적 공인 IP인 경우가 많아서 공유기 재연결이나 통신사 DHCP 임대 갱신 때 달라질 수 있어.
ipconfig getifaddr en0
이렇게 하면 지금 할당된 ipv4주소가 보인다.
더 자세히 보고싶다면
ifconfig
하면 저렇게 여러 인터페이스가 나타난다. 즉 하나의 컴퓨터 안에도 여러 network interface 존재!
