Network/네트워크 핵심이론 - 기초

L3 수준에서 외울 것들

Tony Lim 2023. 6. 2. 13:22

L3 Packet

  • Packet이라는 말은 L3 IP Packet으로 외워라
  • Header 와 Payload 로 나뉘며 이는 상대적인 분류이다
  • 최대 크기는 MTU

header에 보통 src , dst 가 나오게된다. Packet이니까 ip로 나오겠지

wire shark 에서 및에 16진수 바이트코드들이 뭘의미하는지 위에 해석해서 나오게 된다.

차례대로 Frame -> ethernet header( mac src dst) -> IP ( ip src dst)  -> tcp (port src dst) 이렇게 목적지를 써서 감싸준다.

 socket file에게 data를 write하면 커널에서 패킹징에서 L2 Access Switch까지 쏴주면 Router를 거쳐 목적지의 네트워크망으로 도착하게되고 역순으로 지정한 process port에게 전달이 되게 된다.

 


IPv4 Header 형식

IHL = Internet Header Length = 보통 5 , 그래서 5 row * 32bits(4bytes) = 20bytes 

TotalLength = Header + Payload , 2의 16제곱 까지의 길이 , 64KB가 가장 크게 ip packet을 정의할수 있는 값

Fragment offset = Payload가 적을때 단편화 시킴

TTL = 홉이라는 단위를 지날때마다 감소되고 0이되면 ip packet은 버려지게 된다.

Protocol = Ip Header의 header 를 어찌 해석 할지?  TCP , UDP 프로토콜의 값이 오게 된다.

Header checksum = 보안성은 딱히 없고 , packet의 손상을 확인하는 값

위에 나온것을 wireshark에서 다 분석해준다

TCP임으로 Transmission Control Protocol 을 알려주고 HTTP 정보를 차례대로 알려주게 된다.

 


서브넷 마스크와 CIDR

Subnet mask와 비트단위 로 AND 연산을 해서 Network Id가 일치하면 우리 네트워크가 맞구나 하고 인식을 하게 됨

지금은 IP 주소 의 ABC 클래스 개념을 거의 사용하지 않음

 

CIDR(Classless Inter-Domain Routing)

192.168.0.10 /24 이런식으로 표기한다.

왼쪽부터 24bit를 network id라고 규정하는것이다. 

이렇게 ip주소를 서브넷으로 나누는것은 Broadcast 범위가 나뉘는것임으로
예전에 언급했던 broadcast로 인해 해당 네트워크를 사용하지 못하는 범위를 줄일 수 있다.

 

local host = 127.0.0.1

network를 사용하는것은 host안의 process다. 

위 사진 처럼 process 1에서 process2 와 네트워크 통신(Inter Prcoess Communication)을 하기 위해서 192.168.0.10 으로 원래의 host ip를 적어도 되지만
127.0.0.1 로 적어도 자신임을 안다.

이때 host 의 ip가 변경이 되더라도 알아서 자신임을 안다.

이때 실제로 packet이 Driver,NIC까지 가지 않는다.


TTL과 단편화

  • 인터넷은 라우터의 집합체 라고 할 수 있는 논리 네트워크이다.
  • Time To Live는 세포의 텔로미어 같은 역할을 한다.
  • 단편화는 MTU 크기 차이로 발생한다.
  • 보통 단편의 조립은 수신측 Host에서 이루어진다.

router - router의 사이를 hop 이라는 단위로 표현하고 hop을 지날때마다 1씩 감소한다.

MTU 보통 1500 이다.  중간에 MTU 1400 이면 1500을 보내는 놈이 쪼개서 보내게 된다.
인접한 라우터끼리는 MTU를 공유하기 때문에 알 수 있다.

쪼개진 상태로 endpoint (host) 까지 도착하게 되면 여기서 ip layer3를 만나면 조립을 하게 된다.

그 이후 합쳐진 상태에서 segment (layer 4, tcp)를 끄집어 내게 된다. 

하향 평준화를 애초에 해서 단편화가 안일어나게 하는것이 best다.


인터넷 설정 자동화를 위한 DHCP

  • DHCP( Dynamic Host Configuration Protocol) 체계는 주소를 할당하는 서버와 할당 받으려는 클라이언트로 구성된다.
  • 복잡한 인터넷 설정을 자동으로 해준다고 볼 수 있는데 핵심은 내가 사용할 IP주소를 서버가 알려준다는것에 있다.

기본적으로 broadcast로 현재 ip가 필요한 endpoint가 전파하면 DHCP server가 쓸 수있는 ip , gw ,subnet mask 등을 응답으로 전달해주게 된다.

보통 인터넷 공유기는 DHCP 서버 기능을 내장하고 있다.


ARP (Address Resolution Protocol)

  • ARP는 IP주소로 MAC주소를 알아내려 할 때 활용된다.
  • 보통의 경우 PC를 부팅하면 Gateway의 MAC 주소를 찾아내기 위해서 ARP Request가 발생하며
    이에 대응하는 Reply로 MAC 주소를 알 수 있다.

네이버 3.3.3.3 으로 가는 패킷을 보낼 때는 L3 Gateway를 거쳐서 가게된다.

이떄 패킷의 L2의 MAC 주소의 dst는 L3 Gateway주소가 적히게 된다.

 


Ping과 RTT

  • Ping 유틸리티는 특정 Host에 대한 RTT(Round Trip Time) 을 측정할 목적으로 사용된다.
  • ICMP(Internet Control Message Protocol) 프로토콜을 이용한다.
  • Dos(Denial of Service) 공격용으로 악용이 된다.

echo request의 일종이다. response 똑같은 문자열을 주고 받음