네트워크

5. Network Layer

YJH3968 2021. 6. 29. 16:57
728x90

LAN에서는 node가 physical MAC address를 이용해 통신할 수 있다.
이는 작은 범위 내에서는 다른 port의 MAC address를 손쉽게 얻을 수 있기 때문이다.
그러나 모든 네트워크는 unique MAC address를 가지고 있고 체계적으로 정렬되어 있지 않다.
이를 위해 network layer, 그리고 IP가 필요하다.

1. IP address

  • 32 bit 이고 4개의 octets으로 이루어져 있다. 각 octet은 십진법(0~255)으로 표기한다.
  • ex) 12.30.56.78은 유효한 IP address이지만 123.456.789.100은 유효하지 않은 IP address
    이러한 표기법을 dotted decimal notation이라 한다.
  • 각 하드웨어 공급 업체가 결정하지 않고(MAC은 그렇지만) 다양한 단체, 기업 등 큰 구역에 분배한다.
  • physical address에 비해 더 수직적이고 어느 곳의 주소인지에 대한 데이터를 저장하기 쉽다.
  • 각 장치가 아닌 각 네트워크에 지정된다.
  • ex) 노트북은 어딜 가든 항상 같은 MAC address를 가지지만 IP address는 어떤 네트워크에 
    연결되는지에 따라 달라진다.
  • DHCP(dynamic host configuration protocol)를 통해 자동으로 IP address가 네트워크를
    사용하려는 장치에 할당된다. 이를 통해 할당된 IP를 dynamic IP address라 한다.
    <-> static IP address : 노드에서 수동으로 구성해야 한다.
  • 대부분의 경우 static IP address는 서버와 네트워크 장치용으로 사용하고 dynamic IP address는 클라이언트용으로 사용한다.

2. IP datagram

  • network layer의 packet( cf) Ethernet frames : data link layer에서의 data packet )
  • 정교히 구조화된 field의 나열로 이루어져 있다.
  • header와 payload로 나뉜다.

3. Header of IP datagram

  • 1. version
    • 길이 : 4 bits
    • 사용중인 IP의 version
    • 가장 많이 사용하는 것은 IPv4이고, IPv6도 최근에 많이 사용한다.
  • 2. Header Length field
    • 길이 : 4 bits
    • header의 전체 길이
    • IPv4의 경우 항상 20 bytes의 길이를 가진다.
    • IP header의 최소 길이는 20 bytes이다.
  • 3. Service Type field
    • 길이 : 8 bits
    • 서비스 품질이나 QoS 기술의 상세 정보를 나타낸다.
    • QoS는 router가 다른 IP datagram보다 중요한 IP datagram을 결정할 수 있는 서비스가 있다.
  • 4. Total Length field
    • 길이 : 16 bits
    • IP datagram의 전체 길이
  • 5. Identification field
    • 길이 : 16 bits
    • 메세지를 하나로 합치는데 이용한다.
    • 이는 만약 IP datagram이 크기가 최대치를 넘는 경우(Total Length field에서 16 bits로 표현할 수 있는 가장 큰 숫자 : 65535 bits) data를 나눠서 보내는데, 이때 identification field의 값이 같은 packet들의 data를 모아서 나눠 보낸 data를 다시 합칠 수 있다.
  • 6. Flag field & Fragmentation Offset field
    • 길이 : 16 bits
    • flag field는 datagram을 분해해도 되는지, 또는 이미 분해했는지를 나타낸다.
    • 이는 어떤 network들은 수용 가능한 datagram size가 달라 분해하는 경우에 해당한다.
    • fragmentation offset field는 수신 쪽에서 분해한 packet들을 올바른 순서로 합치는데 필요한 값을 가지고 있다.
  • 7. TTL field(time to live field)
    • 길이 : 8 bits
    • datagram이 버려지기 전에 traverse할 수 있는 router hop 횟수를 나타낸다.
    • datagram이 새 router에 도달할 때마다 값이 1씩 감소한다.
    • 값이 0이 되면 router는 그 datagram을 더 이상 전달하지 않는다.
    • 이를 통해 routing에 의한 무한 루프를 막을 수 있다.
  • 8. Protocol field
    • 길이 : 8 bits
    • 어떤 transport layer protocol을 썼는지를 나타낸다.
    • 대표적으로 TCP, UDP가 있다.
  • 9. checksum field
    • 전체 IP datagram header의 내용에 대한 checksum이다.
    • TTL field가 모든 router마다 바뀌므로 checksum field도 매번 새로 계산해야 한다.
  • 10. source and destination IP address field
    • 길이 : 각각 32 bits
  • 11. IP options field
    • optional field로 테스트 목적으로 사용되는 datagram에 대한 특징을 설정하기 위해 사용한다.
  • 12. padding field
    • IP options field가 optional하고 길이가 다르므로, 전체 길이를 맞추기 위한 0의 나열이다.

4. Payload

  • IP datagram의 전체 내용은 Ethernet frame의 payload로 캡슐화한다.
  • IP datagram도 역시 payload를 가지는데, payload는 TCP 또는 UDP packet을 가지고 있다.

5. IP address classes

  • IP address는 network ID, host ID로 나눌 수 있는데, 각각이 전체 IP address에서 얼마나
    차지하는지에 따라 세 class로 분류한다.
    • Class A : 첫 octet만 network ID이고 나머지 세 octet은 host ID
                   IP address의 가장 앞 bit가 0, 즉 첫번째 octet이 0~127인 경우
    • Class B : 첫 두 octet이 network ID이고 나머지 두 octet은 host ID
                   IP address의 가장 앞 두 bits가 10, 즉 첫번째 octet이 127~191인 경우
    • Class C : 첫 세 octet이 network ID이고 나머지 세 octet은 host ID
                   IP address의 가장 앞 세 bits가 110, 즉 첫번째 octet이 192~223인 경우
    • Class D : IP address의 가장 앞 네 bits가 1110, 즉 첫번째 octet이 224~239인 경우
                   multicasting, 즉 하나의 datagram이 모든 네트워크에 보내질 때 사용
    • Class E : IP address의 가장 앞 네 bits가 1111인 경우로 테스트 목적으로만 쓰인다.
  • 이 class system은 CIDR(classless inter-domain routing)에 의해 최근에 교체되었다.

6. ARP(Address Resolution Protocol)

  • 어떤 IP address를 가진 node의 하드웨어 address를 알아내기 위해 사용하는 protocol이다.
  • Ethernet frame를 완성하기 위해선 목적지의 MAC address가 필요하다.
  • 네트워크에 연결된 거의 모든 장치는 local ARP table을 가지고 있다.
  • ARP table은 IP address와 그것과 연관된 MAC address의 리스트이다.
  • ARP table의 작동원리
    • 만약 어떤 IP address로 데이터를 보내고 싶은데, 이에 대한 항목이 ARP table에 없다고 하자.
    • 그러면 그 node는 broadcast ARP 메세지를 MAC broadcast address(전부 F인)로 보낸다. 즉, 이 메세지를 local network에 있는 모든 컴퓨터로 보낸다.
    • 이 IP address를 할당받은 네트워크 인터페이스가 이 메세지를 받으면 ARP response를 답장한다. 이 response 메세지는 network interface의 MAC address를 포함한다.
    • 그러면 이제 전송 컴퓨터는 목적지의 MAC address를 알고 Ethernet frame을 완성한다.
    • local ARP table에 이 IP 주소를 저장해 다음에 이 IP와 통신할 때 ARP broadcast를 보낼 필요가 없다.
    • ARP table 항목들은 잠시동안 있다가 사라진다.
728x90

'네트워크' 카테고리의 다른 글

7. Routing  (0) 2021.06.30
6. Subnetting  (0) 2021.06.29
4. Data Link Layer  (0) 2021.06.29
3. Physical Layer  (0) 2021.06.28
2. TCP and IP Five-Layer Network Model  (0) 2021.06.27