Network layer
- Data plane (데이터 전송 담당) : forwarding, per-router function
- Control plane (전송 제어 담당) : routing, network-wide function,
Forwarding, Routing
- Forwarding : 현재 라우터에서 적당한 라우터로 패킷을 어떻게 전송할 것인가.
- Routing : source로부터 destination까지 패킷의 route를 어떻게 결정할 것인가.
Per-router, SDN
- Per-router function: local의 하나의 라우터에서만 작동
- SDN(Software-Defined networking) : 원격의 서버에서 실행됨. data plane은 라우터에서, control plane은 원격서버에서 작동
Best-effort
: IP는 best-effort. error recovery, flow control 안해줌. 최선이지만 unreliable. 오직 데이터 forwarding만 담당.
IPv4
32bit IP 주소 이용.
Input port
Switching fabric
Output port
Destination-based forwarding
Longest prefix match
Buffer management: tail drop, priority
HOL (Head OF Line) blocking
같은 queue에 있는 패킷이 첫번째 패킷 때문에 지연되는 현상
패킷의 처리 속도가 저하됨.
Packet scheduling
- FCFS, Priority, RR, WFQ
IP fragmentation/reassembly
- 각 네트워크마다 수용할 수 있는 패킷을 길이가 달라서 조각으로 쪼갬.
- MTU(Maximum Transmission Unit) : 내가 가지고 있는 IP의 datagram이 MTU보다 크면 fragmentation을 통해 MTU이하의 크기로 쪼개어 보낸다. 헤더크기 포함.
- path MTU : 네트워크마다 MTU 다름. 그래서 가장 작은 MTU 찾으면 어느 네트워크에서나 보낼 수 있다.
IP addressing
- Classful와 Classless가 있는데 요즘은 리스가 더 많다.
- A클래스 : 0으로 시작. 0과 127 빼고, 1.0.0.0 ~ 126.0.0.0 총 126개 부여
- B클래스 : 10
- C클래스 : 110
Subnet
네트워크 IP를 할당받은 AS가 가신의 구역 내에서 다시 물리적인 네트워크 환경을 나누기 위해 필요한 것.
CIDR (Classless Inter-Domain Routing)
- class를 구분하지 않지 때문에 어디까지가 network ID인지 알려줘야함. 그래서 IP주소를 pair로 나타냄. (IP주소, network ID 비트수)
DHCP (Dynamic Host Configuration Protocol)
- 동적주소할당 프로토콜
1) DHCP discover : 단말이 DHCP를 찾음. 자기는 0.0.0.0으로 임의설정하고, 255.255.255.255로 보내서 자기 서브넷 안에 브로드캐스팅함
2) DHCP offer : DHCP 서버가 자기 IP주소 알려주면서 사용할 수 있는 IP주소 알려줌
3) DHCP Request : 단말이 그 IP주소 사용하고 싶다고, 얼마나 사용할지 등의 정보 포함해서 요청
4) DHCP Ack : DHCP 서벅가 단말에게 해당 IP주소 허락함을 알리고, 사용기간 등에 대해 알려줌
NAT (Network Address Translation)
- 제한된 IPv4의 주소를 해결하기 위해 등장. 이것 때문에 IPv6로 잘 안넘어가게 됨.
- IP패킷의 TCP/UDP 포트 숫자와 소스, Destination의 IP주소를 재기록하면서 라우터로 주고 받음.
IPv6
- FEDB:0000:0000:0000:3243:0000:0000:ABCD
- 마지막 32bit dot-decimal 가능 (::127.23.45.88)
Tunneling
: IPv4를 쓰는 구간을 따로 저장해놓고 그 부분에서 IPv4의 헤더를 붙여 IPv6의 헤더와 그 페이로드를 묶어 하나의 페이로드로 간주하는 것이다. 그리고 tunnel이 끝나면 IPv4의 헤더를 떼어내고 전송한다.
Generalized forwarding
Match plus action
OpenFlow
ICMP, IGMP, OSPF
- 모두 네트워크 레이어에 존재하지만 IP를 도와주는 입장이고 페이로드에 들어가는 정보라서 실질적으로는 TCP, UDP랑 트랜스포트 레이어의 프로토콜 기능을 수행
- ICMP : IP protocol은 error recovery 기능을 지원하지 않아서, error를 reporting해주는 ICMP Protocol 필요.
- OSPF (Open Shortest Path First) : 라우팅
- IGMP : 멀티캐스트