-time to live(ttl) : 라우터를 거칠 때 마다 1씩 감소, def 256으로 세팅, 만약 ttl보다 많은 라우터를 거치면 좀비 패킷이 된다.
-TCP Header와 같은 것은 payload에 포함 즉, data 안에 들어가 있다.
-16-bit identifier, flags, fragment offset 라인에서 flags에 1=>다음 패킷 존재, 0=>종료 1=> fragment offset 을 확인하여 다음 패킷의 위치 참조
-Option, data 제외 20byte의 header를 갖는다.
IP fragmentation, reassembly
-MTU (Maximum Transfer Unit) : 네트워크 링크는 각 종류마다 MTU가 다르다. 따라서 datagram을 잘게 잘라 사이즈에 맞게 전송해야 하는데, 이 작업을 fragmentation이라 한다. => 이 잘게 쪼개진 fragments를 도착지에서 합치는 것을 reassembly라고 한다.
자 이제 Fragmentation 하는 작업을 detail하게 보자.
-Ip header사이즈는 20byte, 3번째 fragment는 1,2 fragment의 header를 포함 => 1040
-Offset은 datagram에서 data의 시작 위치를 알리며, 예시는 1500bytes 중 20byte가 header기에, 1480/8 = 185가 data의 시작 위치임을 알린다는 뜻이다.
IP Addressing: introduction
-인터페이스 : 호스트 IP가 데이터그램을 보낼 때, 물리적 링크 사이에 개입
인터페이스는 각 링크 마다 하나씩, 라우터는 여러 링크를 가짐 => 라우터 : 인퍼페이스 = 1 : N
각 IP는 인터페이스 하나에 할당된다.
Network prefix and Host number
-IP 주소 = 네트워크 주소[network prefix] + 호스트 ID[host number]
-Network prefix와 host number의 길이는 필요에 따라 달라지며 아래 방법으로 나뉨
-Class-based addressing
-CIDR (classless)
Classful IP Address (Old Way)
-Class A,B,C로 묶는 다.
-각 IP 주소는 Class 구분용 key를 갖는다.
{Class A : “0”, Class B : “10”, Class C : “110”}
-문제점
A,B와 같은 경우 대규모 네트워크에서 사용하기에는, network address가 너무 적다.
A,B와 같은 경우, 과하게 IP 주소가 남을 수 있는데, 이때 브로드케스트와 같은 작업을 하면 과소비를 하게 된다. => 서브넷 등장!
Subnets
-IP aderss : 두 레이어로 이뤄짐
Subnet part – high order bits
Host part – low order bits
Subnetting = 서브넷을 구성하는 방법
-회사와 같은 Organization 안에는 여러 개의 Network가 존재한다. 이 때 각 네트워크를 분리하는 방식은 2가지가 있다.
-첫 째, 각 네트워크에 주소를 할당하는 것이다. 둘 째, 다른 레벨의 IP 주소 구조를 생성해, 네트워크를 분리한다.
Subnet Masks
B클레스를 사용하면 서브넷 포함 24bit가 subnet mask로 사용되고 8bit만 host주소로 사용됨
-32비트 중 23개가 subnet 주소로 사용 => 2^9만큼 host 주소를 할당 가능하다.
-22 = 16 + 4 + 2 = 0001 011[0] []안에 있는 비트를 1과 0으로 바꿔 쓸 수 있음 => 22,23이 될 수 있다.
-솔루션 1 : 200만큼의 공간을 확보하려면 8개의 비트 필요 => 32 - 8 => 24가 subnet mask 사이즈