오늘하루도 우힣ㅎ

CH4. Network Layer(1) 본문

네트워크/강의정리

CH4. Network Layer(1)

우힣 2020. 1. 8. 09:37

1. Network Layer

: host-to-host packet delivery 서비스를 제공하게 된다.(목적지의 IP주소를 통해 보내게된다.)

  • Two functions in Network layer

-> Data Plane

 Forwarding : routing table을 통해 들어온 데이터를 어디로 보낼지 결정하게 된다.

-> Control Plane

 : src에서 dest까지 어떻게 가게 될지 결정을 라우팅 경로를 결정하게 된다.

 : 여러 라우터 사이에서 정보를 주고 받아서 최적의 경로를 찾게 해준다.

 : routing algorithm이 존재하게 된다.

 : control plane에는 두가지 종류가 존재한다.

Per-router control plane

각각의 routing algorithm이 존재하고 그것간의 상호작용을 통해 routing 경로가 결정이 되게 된다.

Logically centralized control plane

SDN방식처럼 작동이 된다.(server에서 routing 경로를 설정하여 주는 것이다.)
  • Network layer

-> Network layer issues

  • Addressing
  • Routing : 최적의 경로를 찾을후 있는가
  • Fragmentation : packet의 사이즈가 클때 나누어 보내도록 한다(IPv6에서는 불가능하다.)
  • Packetization

2. IP(Internet Protocol)

 : Layer3 부분이다.
  • IP Protocol : packet들을 다루고, 에러가나도 보고를 하지 않는다.
  • ICMP Protocol : 에러가 발생하게 되면 여기서 보고를 하게 된다.
  • Routing Protocol : 경로를 설정하는데에 사용되어진다.

-> RFC 791

  • Datagram delivery : connectionless service
  • Best-effrot service(unreliable service) : error/flow control을 제공하여주지 않는다. 에러 발생여부만을 확인하고 에러발생시에 해당 packet을 버리게 된다(따로 재전송 요청등과 같은 작업을 하지 않는다.), 상위 layer에서 해당 문제를 해결해주어야 한다.
  • Provide only data forwarding : routing protocol을 통해 만들어진 routing table을 보고 데이터를 다음 router로 보내주는 역할을 하게 된다. 에러나 제어 메세지는 ICMP에 의해 만들어진다.

-> IPv4 Header Format

 

  • VER : IP의 버전을 나타낸다
  • HLEN : header의 길이를 나타낸다(20-60bytes)
  • Service : IP에서 제공하는 service 중 사용 하는 것을 표현한다.
  • Total Length : packet의 전체 길이를 나타낸다(header + data)
  • Identification : Fragmentation을 위해 사용된다. 같은 packet이 나누어진 것은 같은 identification 값을 가지게 된다.
  • Flags : Fragmentation을 위해 사용된다. Fragmentation이 더 존재하는지 아닌지에 대해 구분을 한다.
  • Fragmentation offset : Fragmentation을 위해 사용이 된다. 해당 fragment가 실제 pakcet에서 얼마나 떨어져 있는가(어떤 data를 의미하는가)를 나타내게 된다.
  • TTL : packet의 life time을 의미한다.(0이 되면 버려진다.)
  • Protocol : demultiplexing key(상위 레이어에서 어떤 protocol을 사용하는지에 대해 알려주게 된다.)

- Fragmentation and Reassembly

  • MTU(Maximum Transmission Unit)
    : router에서 packet을 보낼때 최대로 설정할수 있는 사이즈
    : physical network 마다 다른 MTU를 가지고 있다.(Ethernet ; 1500bytes, FDDI : 4352bytes...)
    : Path MTU = 경로(packet이 sender에서 rcv까지 가는데 경유하는 모든 router)중에서 가장 작은 MTU
  • Fragmentation
    : 큰 사이즈의 datagram을 router의 MTU에 맞게 작은 사이즈로 나누어 주는 작업을 의미한다.
  • Indentification : 같은 datagram에서 만들어진 fragment임을 알려준다.
  • FLAGS : DF(Don't Fragment),MF(More Fragment) Fragment가 더 이어지는 가 아닌가를 표시하여준다.
  • Flagment offset : 원래 데이터에서 몇번째 바이트의 데이터인가를 의미한다

- Reassembly

-> fragment들이 목적지에 도착하여 재조합이 되는 과정을 의미한다.

-> 단점

  • 효율적이지 못하다
  • 하나의 fragment에서 오류나 손실이 발생하게 되면 같은 ID를 가지는 모든 fragment를 버려야 한다.
  • fragment들이 reassembly timer가 끝나기 전까지 오지 못하면 이전의 fragment들은 다 버려지게 된다.

-> IPv4

  • 모든 IP 주소는 각각의 고유의 주소값이다.
  • 계층적 구조를 가지고 있다.(Net ID + Host ID)
  • 32bit 의 길이를 가진다.

-> Special address

  • 0.0.0.0 : Unknown host(sources) (DHCP 설정시 자신의 host번호를 모를때 0.0.0.0으로 설정이 되게된다.)
  • 255.255.255.255 : Broadcast를 의미한다. (동일 네트워크 내의 모든 IP로 보내게 된다.)
  • 129.34.255.255 : 129.34 network 내에서의 Brodadcast를 의미한다.
  • 0.0.0.3 : 현재 네트워크 내에서 호스트 번호가 3인 host
  • 127.0.0.1 : local server(자기 자신을 말함.)

-> Classful IP Addressing

- Subnetting

AS 들을 여러개의 피지컬 네트워크로 나누어 사용을 하게 되는것을 의미한다. 이때 각각의 subnet들은 유니크한 subnet ID를 가지게 된다.

  • Host ID 부분이 network ID부분과 subnet ID 부분으로 나누어 지게 된다.

-> Default subnet mask

Class In Binary In Dotted-Decimal using Slash
A 11111111 00000000 00000000 00000000 255.0.0.0 /8
B 11111111 11111111 00000000 00000000 255.255.0.0 /16
C 11111111 11111111 11111111 00000000 255.255.255.0 /24
  • 외부에서 해당 사이트로 routing을 원할때 network ID로만 구분하여 보내진다.
  • AS내에서 subnet과 network ID를 통하여 routing을 시키게 된다.
  • (AS : 같은 라우팅 프로토콜을 사용하는 라우터, 서브 네트워크의 집합을 의미한다.)

ex) In a Class B network
- if subnet mask = 255.255.192
- (11111111 11111111 11000000 00000000)
- 앞의 16 bit가 network를 의미하는 부분이 되고
- 바로 뒤의 2비트가 subnetmask가 된다.
- max. number of subnet = 2^2 = 4개
- max. number of hosts per a subnet = 2^14-2(-2는 private network를 고려한것)

- CIDR - Supernetting(Classless 헝태)

-> Class B부터 각각의 network 마다 사용할수 있는 주소가 너무 작은것이 문제가 되기 시작했다.

  • CIDR을 사용하기 위해서는 모든 router들이 CIDR의 개념을 알고 있어야 한다.
  • CIDR의 표기법은 (Address/Count) : 123.123.10/24 (24는 어디까지가 Network ID인지를 알려주는 것이다.)
  • 좌측부터 넷마스크를 취하여 고정길이가 아닌 가변적인 길이로 network ID를 설정하여 주는 방식이다.
  • 블럭 사이즈를 알기 위해서 Bit mask를 사용한다.
  • 단체 C에서 사용하는 network 가 123.123.98 ~ 123.123.123.255라고 가정한다.
    98(01100010), 123(01111011)여기서 공통인 부분은 011까지이다.
    -> bit mask = 255.255.224.0
    -> 255.255.255.98/19라고 표현을 할수가 있다.
  • use a longest match paradigm to select a route
  • example

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

CH5. Network Layer : The Control Plane  (0) 2020.01.14
CH4. Network Layer(2)  (0) 2020.01.11
CH3. Transport Layer(4)  (0) 2020.01.05
CH3. Transport Layer(3)  (0) 2020.01.03
CH3. Transport Layer(2)  (0) 2020.01.01
Comments