Network Layer : Data Plane

2024. 6. 15. 17:10네트워크

Contents 접기

TCP 5 Layer Architecture

Network Layer

Network Layer는 TCP 5 Layer에서 identified end system간 frame을 교환하는 역할을 하고,

이를 위한 두 가지 핵심 요소는 다음과 같다.

Routing : 각 pkt의 route를 결정하고, routing algorithm이 필요함.
Forwarding : router에서 packet을 이동시키며, routing table에 기반함

 

Router가 위의 역할을 수행하는데, 

router에서는 routing algorithm을 작동시키고, datagram을 forwarding 한다.

Router Architecture

 <Router의 4가지 주요 구성요소>
1. Input port
2. Output port
3. Switching fabric
4. Routing processor

 

 

Virtual Circuit Packet Switching (VC)

Packet은 Virtual Circuit과 datagram switching 방법 두 가지로 나뉘며,

VC switching은 packets의 route를 사전에 setup하는 Connection-oriented 방법이다.

이때, 각 pkt는 목적지의 address가 아닌 a virtual circuit identifier(VCI)를 사용하는데,

이는 routing decisions 없이 전송될 수 있음을 의미한다.

 

그러나, VC Switching은 Router에 부담을 주기 때문에 현재는 사용되지 않는다.

 

 

Datagram Packet Switching

Datagram pkt switching은 전 포스팅에서 소개한 것과 같이 각 pkt가 independently하게 처리되므로,

도착과 순서를 보장받지 못하는 특징이 있다. 따라서, receiver 입장에서는 re-order와 recover가 필요하다.

Nexthop Routing

router는 전반적인 e2e에 대한 routing decision이 아닌 next router(hop)에 대한 routing decision이 일어난다.

 

 

Data and Control Planes

모든 Router는 data plane과 control plane을 가지고 있어 개별적인 interact를 진행하며,

이때 SDN을 통해 control plane과 data plane을 physically하게 분리하여 각 plane에서의 행동을 구분한다.

 

 

IP

IP는 Network layer에서 사용하는 Protocol이며, 현재는 IPv4를 주로 사용한다.

IPv4 Datagram은 Encapsulation된 후 Physical layer로 interface하게 되는데,  구조는 다음과 같다.

IPv4 Datagram Format

 

IP Fragmentation and Reassembly

IP datagram fragmentation

IP datagram fragmentation은 네트워크 버전의 segmentation이라고 생각하면 되는데,

router에서 IP datagram size가 link's MTU를 초과하는 경우 분할한다고 생각하자.

fragmentation 하는 과정에서 datagram header는 변화가 생기게 되는데,

Datagram length, Flags, 13-bit fragmentation offset, TTL, Header Checksum, Data 부분이 사라진다.

 

IPv4 addressing

IP address는 각 네트워크 interface에 주어진 고유 식별자로, host간 연결이나 router-physical link의 interface를 돕는다.

IPv4 address는 32 bit로, . decimal notation을 사용하고, IPv6 address 128 bits는 : 을 사용하여 주소를 분리한다.

 

host가 multiple NIC(Network Interface Card)를 가질 때, 각 NIC는 unique IP address를 가지게 된다.

 

IPv4 addresses는 network part와 host part로 구분되며,

모든 host는 같은 network address를 가진 router에 연결된다.

 

 

Classful IPv4 address

IPv4 address는 초기에 Class로 나누어 부여었고, 다음과 같이 구별되었다. (현재는 x)

 

 A~E까지의 5개의 class가 존재하지만, E는 사용되지 않았다.

또한, A, B, C classes의 경우 unicast addressing을 위해 사용되었고, D classes는 multicast를 위해 사용되었다.

 

 

Multicast : 같은 multicast address를 가진 그룹끼리  communication
Broadcast : host part has all '1's, host within a LAN segement에게 보냄, 외부 host간 통신은 router에 의해 차단
Unicast : bi-directional between two unicast hosts

 

 

IP exhaustion Problem

host가 증가하면서 IPv4 address 문제가 생겼고, 이를 해결하기 위해 여러가지 방법들이 고안되었다.

 

Private IP & Public IP

먼저, IANA에 의해 부여받는 Public IP와 부여받은 장치에 의해 host는 Private IP를 부여받았고, 이를 통해 private IP address를 부여받은 장치는 the Internet에 직접 연결되지 않고, outside host에 의한 접근을 차단시켰다.

 

그러나, Private IP를 가진 device가 outside private network와 통신하기 위해 public IP가 필요한 경우가 있었고,

이때 NAT을 통해 public-private IP간 전환을 통해 이런 문제를 해결할 수 있었다.

 

 

Subnet

하나의 router interface는 하나의 subnet을 형성하는데, 이때 같은 network address를 갖게 된다. 이를 통해 message는 같은 subnet의 모든 interface에 broadcast 될 수 있게 됐다.

subnet mask

subnet 형성을 위해선 같은 network part 구분을 위한 subnet mask가 필요하며, subnet의 각 IP address는 같은 subnet mask와 subnet address를 갖게 된다.

 

subnet address는 subnet mask와 NIC IP address를 AND연산하여 구할 수 있다.

Subnetting은 하나의 network를 여러 개 ip 다수 Network IP로 분할하는 작업이며, host part의 bit를 일부 빌려 형성한다.

subnetting example

b : subnetting을 위한 borrowed bits의 수
→ usable subnets의 최대 수 : 2^b

r : remaining host bits의 수
→ 각 subnet의 host의 최대 수 : 2^r -2 (-2는 broadcast '1'의 경우와 host 자신 '0'의 경우 x)

 

 

CIDR

Class로 IP를 구분하니 각 class는 고정된 수의 device를 지원하였고, 이로 인해 IP address를 할당하는데 있어 비효율적이고, IP address space 공간 낭비로 이어졌다. 이에 대한 해결방법으로 class를 구분하지 않고, IP address를 32 bit 중 임의로 부여하는 CIDR 방법이 사용되게 되었다.

 

supernetting은 여러 주소 영역을 할당 받아 하나의 주소 영역으로 통합하는 방법이고,

address aggregation

subnet 형성을 위해 subnet mask가 필요했던 것과 같이 CIDR을 위해서는 CIDR mask가 필요하다.

2진법으로 변환하여 mask 구하는 과정

 

 

DHCP

network에 host가 join할 때, server로부터 IP address를 동적으로 할당받을 수 있으며,

DHCP operation

위와 같은 과정을 통해 IP address를 동적으로 할당받는다.

 

DHCP server는다음과 같은 항목을 제공하며,

1. IP address
2. Subnet mask
3. first-hop router address (Default gateway)
4. name and IP address of DNS server

DHCP Server가 other subnet에 존재하는 경우, router의 DHCP Relay를 통해 IP address를 할당받게 된다.

 

NAT

NAT는 TCP/UDP 포트 숫자와 소스 및 목적지의 IP address 등을 재기록하면서 router를 통해 IP를 변환하는 것이고,

private network에 속한 여러 host가 하나의 public IP address를 사용하여 인터넷에 접속하기 위함이다.

NAT operation

이것만 기억하자.

1. host는 router에게 datagram을 보냄
2. router는 요청받은 private IP 기록
3. 요청한 host의 private IP를 public IP로 변환

 

 

IPv4 vs IPv6

Packet Header : IPv4의 경우 variable size (20 bytes), IPv6의 경우 Fixed size (40 bytes)
Address : IPv4의 경우 32 bits, IPv6의 경우 128 bits
Address Type : IPv4의 경우 Broadcast, IPv6의 경우 Anycast
Configuration : Interface ID에 48-bit MAC address 포함

 

 

IPv6 Datagram Format

IPv6는 IPv4와 비교하여 no fragmentation, checksum is removed, no option field의 특징이 있다.

모든 사용자가 IPv6를 사용하는 것이 아니기 때문에 IP간 전환이 필요하다.

1. Dual stack : 장치들이 IPv4/IPv6 모두 지원, but IPv4 고갈 문제 해결 x
2. Tunneling : 2개의 IPv6 host 사이 IPv4 망이 있을 경우, IPv6 패킷을 IPv4 패킷 속에 캡슐화하여 사용하는 기술

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

Transport Layer - TCP Congestion Control  (0) 2024.06.15