네트워크

4. Network Layer

YJH3968 2021. 10. 5. 20:09
728x90

라우터의 역할

  • forwarding : 패킷의 목적지와 forwarding table을 보고 어느 링크로 보낼지를 결정하는 일
  • routing : forwarding table을 만드는 일
  • longest prefix match forwarding : forwarding table의 목적 주소 항목은 IP의 prefix로 함으로써 forwarding table의 항목 수를 최대한 줄인다. 단, 두 항목 이상의 주소가 matching되는 경우 prefix가 가장 긴 경우를 선택한다.
  • 이외에도 DNS server, NAT, DHCP, firewall 등의 기능을 가지고 있다.

IP 헤더

  • source IP 주소, destination IP 주소
  • length
  • IP version : 현재 version은 4
  • TTL(Time To Live) : 네트워크 내에서 가능한 hop의 수
  • Upper Layer : transport layer에서 사용하는 protocol이 TCP인지 UDP인지를 나타낸다.
  • MTU(Maximum Transfer Unit)의 크기는 링크마다 다르기 때문에 중간에 여러 패킷으로 분리될 수 있다. 이러한 경우를 대비해 필요한 헤더 내 필드가 identifier, fragFlag, fragment offset이다.
    • identifier : 분리된 패킷이 원래 어떤 패킷에 속했는지를 알려준다.
    • fragFlag : 뒤에 분리된 패킷이 남아있으면 1, 아니면 0이다.
    • fragment offset : 현재 패킷이 어떤 부분부터 포함하는지를 나타낸다.

IP 주소

  • IP 주소는 네트워크 인터페이스를 지칭하는 주소
  • 라우터는 서로 다른 네트워크와 연결된 여러 개의 네트워크 인터페이스를 가지고 있다.
  • 계층적 주소 : IP 주소는 네트워크(subnet, prefix) ID와 호스트 ID로 나눠 같은 네트워크에 속하면 같은 네트워크 ID를 가지도록 한다.
  • subnet mask : 어디까지가 네트워크 ID인지를 알려준다.
  • CIDR(Classless Inter-Domain Routing) : 기존의 class 개념을 없애고 네트워크 ID의 범위(subnet mask)를 임의로 조정한다.

Subnet

  • 같은 prefix를 가지는 네트워크 인터페이스들의 집합
  • 라우터를 거치지 않고 도달할 수 있는 호스트들의 집합
  • 라우터는 여러 개의 subnet에 걸쳐 있는 장치로 여러 subnet을 연결한다.

NAT

  • Network Address Translation
  • IPv4의 IP 충돌 문제를 해결하기 위한 방법
  • source IP address를 라우터를 거치면서 해당 라우터의 gateway IP로 바꾸고, source port도 후에 적절한 호스트에게 응답 패킷을 보내기 위해 적절한 port 번호로 바꾼다.
  • 이후 응답이 오면 라우터에서 요청한 호스트가 받을 수 있도록 적절한 destination IP와 port를 바꿔준다.
  • NAT를 사용하는 네트워크는 서버를 사용할 수 없다. NAT는 port number를 네트워크 내 어떤 호스트에게 데이터를 전달할지를 결정할 용도로 사용해서 호스트 내 어떤 process에게 데이터를 전달할지를 결정할 수 없기 때문이다.

DHCP

  • Dynamic Host Configuration Protocol
  • 동적으로 호스트를 인식하는 프로토콜
  • address pool을 유연하게 사용할 수 있지만 대여해 준 address는 반드시 회수해야 한다.
  • DHCP discover → DHCP offer → DHCP request → DHCP ACK 순서로 이루어진다.

ICMP

  • Internet Control Message Protocol
  • 네트워크에서 일어난 이벤트를 source에게 전달하기 위한 프로토콜

Tunneling

  • IPv4에서 IPv6로 넘어가는 과도기에서 아직 IPv6를 이해하지 못하는 라우터를 위해 IPv4 헤더로 감싸서 변환하는 것

Routing Algorithm

  • graph abstraction : routing을 위해 라우터를 노드로, 링크를 간선으로 추상화한 것
  • routing algorithm의 범위는 전체 인터넷이 아닌 하나의 도메인에 속한 라우터들이다.
  • link state algorithm
    • 전체 네트워크 상태를 이용해 routing을 하는 algorithm
    • dijkstra 알고리즘을 이용한다.
    • broadcast를 통해 네트워크 내 모든 라우터에게 link state를 전달한다.
  • distance vector algorithm
    • 이웃한 라우터와 정보를 교환해 routing을 하는 algorithm
    • 이웃한 라우터에게 특정 노드까지의 거리를 vector 형태로 전달한다고 해서 distance vector algorithm이라고 한다.
    • d_x(y)를 x에서 y로 가는 경로 중 최소 비용이라 하면,
    • d_x(y) = min (c(x, v) + d_v(y))를 통해 최소 경로를 찾는다.
    • count-to-infinity
      • distance vector algorithm의 취약점
      • 일부 특수한 상황에서 어떤 간선의 비용이 증가하는 경우 두 라우터 사이에서 서서히 경로의 비용이 증가하는 현상으로 실제 경로를 바로 반영하지 못하는 문제가 발생한다.
      • 이를 해결하기 위해 a → b로 가는 최단 경로에 이웃한 라우터 c가 포함되어 있을 때, 이 정보를 c에 전달하는 경우 이 경로의 비용을 무한대로 한다.
      • 이를 poisoned reverse라고 한다.

Autonomous System(AS)

  • 네트워크 내 자치권을 가지고 있는 routing domain
  • intra-AS routing : AS 내에서의 routing으로 최소 cost를 가지는 경로를 찾는 것이 목적이다.
  • inter-AS routing : AS 간의 routing으로 BGP를 이용해 경로를 찾아 나간다.
  • AS를 제공하는 제공자와 AS를 제공받아 사용하는 customer가 존재한다.
  • 서로 동등한 위치에 있는 peering 관계가 존재한다.
  • BGP(Border Gate Protocol) : link state algorithm, distance vector algorithm과는 달리 경제적, 정치적 목적에 의해 경로를 설정하는 규약을 의미한다.

 

출처 : 컴퓨터네트워크 강의

728x90

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

6. Wireless and Mobile Networks  (0) 2021.10.06
5. Link Layer  (0) 2021.10.06
3. Transport Layer  (0) 2021.10.05
2. application layer  (0) 2021.10.04
1. 컴퓨터 네트워크 기본  (0) 2021.10.04