Computer Network _ Network Layer_data plane
학교 시험대비 글 정리합니다
Network Layer
- Forwarding(data plane) : 패킷들을 라우터의 input link에서 적절한 output link로 내보내는 것
- Routing(control plane) : 패킷을 보낼때 루트를 결정하는 것
- Data plane : 어떻게 router input port에 도착한 데이터그램이 output port로 Forwarding되는지 결정
- Control plane : 데이터그램이 어느 라우터들을 걸쳐 갈지 결정
Data Plane
I. input port functions
- Destination based forwarding : 그냥 냅다 destination 주소 범위만 보고 판단 -> 구간 많아지면 테이블 더러워지고 lookup시간 오래걸림
- Longest Prefix matching : Destination 주소 범위를 이진수로 나타낸 후 가장 긴 접두사를 매칭함
II. Switching fabris
input link로부터온 packet을 적절한 output link로 이동시킴
N*R의 rate가 이상적임 (N:인풋, R:전송속도)
- Memory : CPU로 통제, 메모리에 패킷이 복사됨, 메모리 크기에따라 속도 제한
- BUS : 데이터그램이 전송될때 버스를 독점함(다른 얘들은 기다렸다 다음차례 보내야함)
- Interconnection network : N*N의 multistage switch사용, 병렬성을 활용함, 고정길이 셸로 조각화했다가 나갈때 다시 데이터그램으로 변환, 평행한 planes를 구성->확장성 용이
III. Output port
버퍼->링크로 갈때 버퍼링 걸릴수도 있음
버퍼링 걸리는 시간
C : 링크의 용량
N : flow (얘 높을수록 좋아요)
Packet scheduling
1. FCFS : 순서대로
2. Priority : 우선순위
3. Round Robin : 클래스별로 돌아가면서
4. Weighted Fair Queuing : 가중치 두고 가중치 마다 bandwidth 달라짐
Ip protocol
IP는 인터페이스에 부여됨
- 인터페이스 : host/router가 물리적으로 연결된 것
- 서브넷 : 물리적으로 연결되어있는 디바이스 인터페이스들(라우터를 거치지 않고)
IP주소 = Subnet Part + Host Part
CIDR : IP주소를 a.b.c.d/x 이렇게 지정하는 방법
DHCP : 네트워크 연결되어있을 때 IP주소를 동적으로 얻기
DHCP는 라우터에 공동 위치되어있음 (2번의 handshaking을 통해 ip를 받음)
[DHCP 예시]
1.자신의 ip주소, 첫번째 라우터 주소와 DNS서버의 주소를 얻으려함
2. ethernet으로 encapsulated함
3. FFFFFFFFFFFF 를 dest로 해서 전파
4. DHCP 서버에서 해당되면 다시 캡슐화하고 원래 보냈던곳으로 reply
Hierarchical addressing
만약 subnet주소를 옮기면은 longest prefix에 의해 일단 전에있던곳까지 요청은 감
옮긴 subnet주소는 따로 광고해서 거기까지 요청
NAT : network address translation
-모든 디바이스는 다른 디바이스에 연결될 때 하나의 ip 주소만으로도 연결 가능함
-로컬 네트워크 주소 변경이 가능함
-로컬 네트워크 변경없이 ISP 변경이 가능함
(source IP address, port#) -> (NAT IP address, new port #)
이 쌍이 테이블에 저장되어있어야 함
Ipv6
- 128비트
- checksum, fragmentation/reassembly, option 없음
Ipv4 -> Ipv6
Ipv4 datagram에다가 Ipv6 datagram을 집어넣음
Ipv6를 읽을수있는 라우터로 가는 Tunneling 작업이 필요함
Generalized Forwarding : match plus action
matching하고 action취하는거
- 많은 헤더필드 사용해 action 결정(drop, copy, modify, log packet)
- flow : 헤더 필드에 의해 결정
- rules : match, actions, priority, counters
OpenFlow : flow table entries
상황에 따라 NAT, Router, Switch, Firewall 기능 수행
MiddleBox
독점적인 하드웨어 솔루션
어떻게 구현되었는지 모르게 해야함
인터넷은 simple하고 ip protocol이 좁은 허리를 갖고있어야하고 지능적이고 복잡한 네트워크엣지를 가져야함