Computer Network(Top-down) - Network Layer

in network •  6 years ago 

It is just my opinion, so don't you attack me. please!

But if this posting has some incorrect informations, you comment about that

Please!!

Network Layer


  • Router
    · Transport layer가 구현이 되어있지 않다.
    · Router(network layer까지는 볼 수 있음.) 가 헤더를 보고 어디로 보낼지 결정을 함.
    · Transport의 역할은 dst에 잘 도착했는지 안했는 지를 판단하는 것이다. 어디서 오고, 어떤 경로로 온 것인지 확인하는 것이 아니다.

  • Per-router control plane
    · 각 Router에는 table이 존재하고, 알고리즘이 프로그램으로 설치되어 있다.

  • SDN
    · Traditional algorithms의 문제점은 각각의 routing 알고리즘이 구현이 되어야 하고, 각 라우팅 알고리즘을 설치를 하는 것이다. 따라서 새로운 라우팅 algorithm을 적용하기 힘듬.
    · SDN → logically centralized control, Remote Controller 가 존재한다, 위치는 개인 server일 수도 cloud일 수도 있음, forwarding table을 각각 업데이트 하라고 알려준다.

  • Destination-base forwarding
    · 목적지 주소를 보고, 또 mulit-cast인지 등 여러가지 요인을 사용하여 forwarding 함.

  • Switching fabric
    · Input port 와 output port 사이에 forwarding 이 되도록 해주는 역할을 한다.
    · 메모리(1세대 방식) - 시스템 버스를 통해서 메모리에 저장이 되고, 메모리에서 다시 읽어서 out port로 내보내는 형태 (shared memory)
    Switching speed는 memory speed에 국한 된다. (동시에 읽거나 쓰기를 할 수 없으므로 절반의 속도를 가질 것이다.)

    · 버스 - input, output port, 공유 버스가 있다, input에서 버스에 쓰면 output 에서 전부다 읽어내어 나한테 보낸 것이 맞는지를 판단. (access network에서는 사용하기 충분 함.)

    · Crossbar - Crossbar 형태로 점마다 스위치가 달림, permutation matrix 형태를 띄게 된다. 어떤 조합으로 사용하느냐에 따라 성능이 달라짐

  • HOL

    위에서 빨간색 패킷을 보면, 2 패킷이 동시에 메모리에 쓸 수 없음.
    녹색 port는 놀게 됨, head-of-line blocking(앞에 빨간 패킷이 막아서 못 가는 경우) → HOL blocking 해결? → FIFO queuing 을 버려야 함.
    →VOQ(virtual output queue): 각각 3개의 큐가 존재하게 되고 쉬고 있는 output port가 있는 경우 해당하는 queue에서 바로 실행하도록 함.

  • Subnets

    · 무조건 subnet은 24bit?
    · Subnet bit의 길이가 정해져 있지는 않음.
    · 위의 예제에서는 첫 23bit가 subnet part, 이경우는 마지막이 254가 됨. 마지막 하나가 빠지기 때문 IP class C(24), B(16), A(8)
    · Class 형식으로 나누면 상당히 비효율적임, 애매한 양의 host가 있다면 C를 써야할 지 B를 써야할 지 잘 모름, 요즘엔 임의로 쓸 수 있도록 바뀜

  • DHCP (dynamic host configuration protocol)
    P&P방식을 갖고 있으며 자동으로 IP를 할당해주는 Protocol, 대략적인 순서는 다음과 같다 client에서 UDP broadcast 방식으로 DHCP request를 날리고 이에 DHCP server는 이에 응답을 보낸다. 응답을 보낼 때, 사용가능한 IP를 같이 전달하고 응답을 받은 client가 사용하겠다는 request를 보낸다. DHCP가 ACK을 보내면 그 때부터 client의 IP가 할당된 것이다. DHCP는 first-hop의 IP주소, DNS server의 IP주소, network mask등을 같이 보내준다.

  • NAT (network address translation)
    공유기로부터 물려 받는 IP는 private IP address로서 WAN에서 보여지지 않음. Translation table이 존재하기 때문에 적절하게 매핑을 시켜 생성한다. 16-bit port-number를 가지고 있는 경우 대략 6만개의 private IP를 사용할 수 있음 하지만 NAT은 port #까지 보는 것이기 때문에 transport layer를 침범하여 캡슐화를 위배하는 것임. 이 것을 해결하는 것은 IPv6로 가능하고 server가 NAT 뒤쪽에 존재한다면 forwarding을 통해 해결 할 수 있음. (network layer에 관련된 것임.)

  • IPv6 IPv4 변환
    Version간의 변환은 Tunneling, header 변환 방법으로 나뉜다. 터널링의 경우 IPv6 를 IPv4의 payload 부분에 데이터처럼 감싼 뒤 전송한다. 이후 IPv6를 사용이 가능한 router에 도착하면 IPv4의 payload 부분만을 보낸다.

  • ARP
    ARP는 IP주소를 이용하여 MAC address 얻는 프로토콜이다. Sender의 ARP table에 receiver의 MAC이 없는 경우 sender는 broadcasts ARP query를 보낸다. (여기서 broadcast는 MAC address를 통한 네트워크를 말한다.) receiver가 query를 받고 sender에게 자신의 MAC address를 전달한다. 위에서 DHCP를 통하면 first hop IP를 얻을 수 있다는 점을 기억하자. 이 녀석은 link Layer

  • Dijkstra vs Bellman ford
    다익스트라의 경우 O(n2)의 복잡도를 갖고 있으며, 더욱 효율적으로 만들면 O(nlogn)까지 줄일 수 있다. 하지만 oscillations 문제가 발생할 수 있다. 반면 bellman ford 방식은 poisoned reverse 문제가 발생할 수 있다.
    이부분은 문제가 생김. 1씩 계속 증가하는 문제가 생김
    Dy(x) = min {C(y, x) + Dx(x), C(y, z) + Dz(x)} = min{60 + 0, 1 + 5} = 6
    Dz(x) = min {C(y, z) + Dy(x), C(z, x) + Dx(x)} = min{1 + 6, 50 + 0} = 7
    Poisoned reverse: z가 y한테 z → x로 가는 cost는 무한대라고 알려줌

  • Switch forwarding and VLAN
    Flooding으로 self-learning을 수행할 수 있고 이 것으로 hierarchical 구조의 switching문제도 해결 할 수 있다. VLAN은 trunk port를 두어 switch들을 연결해 놓은 것이다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!