• [ Network ] Network Layer ( Datagram type ~ Routing Algorithm)

    2021. 4. 30.

    by. KimBangg

     

    < IPV4 >

     

    1)Datagram length = IP header + datagram 의 길이

     

    2) 2번째 줄 = 데이터 그램을 쪼개고 다시 합치는 역할을 한다

    쪼개는 경우 Maximum Transport unit 이라는 기준점에 맞춰서 쪼갠다.

    Exam : Data = 5000 byte, MTU = 1500 byte = > 1500x3, 500x1

    ( transport layer에서 network layer로 datagram을 보내는 경우, 데이터를 분리해서 보내준다. 이 후 다시 받을 경우에는 올바르게 재조합 해서 applicaiton layer로 올려준다 ! )

     

    Payload : 헤더를 제외한 온전한 data를 의미.

     

    segment를 보내는 과정은 IP의 UDP를 타고 보내지기 때문에, Loss가능성이 있다.

    reassemble을 할 때는 source,desti,identifacation num을 이용해서 한다.

    offset 플래그를 사용해, missing or not 을 확인 한다

    이에따라, 끝에 있는 flag만 0을 가지고 나머지는 1을 가지게 함으로써 온전히 도착했는지 확인가능

     

    3) Time to Live = 영원히 지속되지 않고 일정 시간 이후에 사라진다.

    4) Checksum

    5) 32bit source & destination = 32bits 이기 때문에, 사용 할 수 있는 IP의 양이 상당히 제한적이다. 그러한 이유로 IPV6는 IP의 크기를 128bits로 증가 시킨다.

     

     

     

    < IP Addressing >

    Host는 single link를 가지고 있고, Router는 여러개의 link를 가지고 있다.

    Interface = interconnection between computer(=host ) & physical link/

    IP = require host or router interface to have its own ip address.

     

    subnet = subnet part ( hight order bits) , host part ( low part bits)

    즉, 라우터 없이 물리적으로 서로 연결된 하나의 junk!

    CIDR = a,b,c,d/x => 상위 x개의 bit가 서브넷 주소임

     

     

    ======================================================================

     

    - DHCP서버

     

    < 장 점 >

    서버로부터 능동적으로 IP주소를 얻어온다.

    재사용이 가능해짐! -> +

    IP 충돌방지

     

    < 단 점 >

    서버가 다운되면 IP 할당이 불가능해진다.

     

    DHCP서버와 커뮤니케이션 하는 단계

    1) 유저가 DHCP 서버 및 발견 메시지를 를 찾은후, 하나의 패킷을 만든다

    IP + DHCP discovery + source & destination

     

    2) 서버는 유저가 보낸 데이터에 응답 한 후, 모든 노드에게 전파하여 사용 가능한 서버를 찾은 후 IP +network mask + IP address lease time(시간 지정 -> not forever) 을 다시 recevier에게 보낸다.

     

    3) 받은 내용 중 필요한 서버를 고른 후 ACK을 보내준다.

     

    ======================================================================

    < Network Address Transition >

     

    NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다. 많은 네트워크 관리자들이 NAT를 편리한 기법이라고 보고 널리 사용하고 있다. 출처 : 위키백과

     

    외부에서 NAT router를 보는 경우, 1개의 IP를 가진 device로 생각한다.

     

    Example ) A host가 웹페이지에게 요청한다고 가정

    1) A(10.0.0.1)은 임의의 소스 포트번호 3345를 할당하여 데이터그램을 LAN으로 전송한다.

    2) NAT 라우터는 데이터그램을 수신하고, NAT table에 없는 임의의 소스포트번호 5001로 교체하고 IP도 138.76.29.7로 변경 한 후 Table에 추가한다.

    3) 웹으로 부터 답장이 올 경우, Table을 통해 다시 변환하여 A에게 돌려준다..

     

    - 장점

    공용 IP 주소의 수를 제한하고 내부에서는 공유 -> 경제적 & 보안적요소 강화!

     

    - 단점

    주소변환을 통해 복잡성을 향상에 따른 성능 감소, 호환성의 문제

     

     

     

    ======================================================================

     

    < IPV6 >

     

     

     

    IPV4와 IPV6의 차이점을 정확하게 아는 것은 중요하다.

     

    PRI(= Traffic class ) : 특정 데이터그램에게 우선순위를 부여하기 이해 사용된다

    Flow label : 특별하게 다루고 싶은 packet에 라벨링을 한다. ( = real time service or nondefault qulaity service)

    Next Header : 데이터그램이 전송 될 datafield의 프로토콜을 확인하기 위해 사용된다(TCP, UDP)

    Hop limit : TTL 필드와 똑같은 역할을 한다, 이동 할 때마다 홉이 줄어서 0이되면 사라진다.

    Source & Destination = 128 bits 로 증가

    IPV6는 쪼개거나 다시 합치는 행동을 하지 않는다 + Checksum이 존재 x

     

    IPV6 -> IPV4로 전송시

     

    IPv6 노드에서 전송을 하게 되면, IPv6 데이터를 IPv4 datafield에 두게 된다.

    그 IPv4에 담겨있기 때문에, 터널은 6라는걸 인지하지 못하고 문제없이 IPv6에게 간다.

    그렇게 될 경우 IPv6 receiver는 받은 data가 IPv6 데이터 포함하고 있다고 인식 -> 추출한다.

     

     

     

     

     

    ======================================================================

     

    < Generalized & SDN > = Match plus Action

     

    Match = "일치"는 프로토콜 스택의 다른 계층에서 서로 다른 프로토콜과 연관된 여러 헤더 필드를 통해 이루어질 수 있다.

     

    Action = 패킷을 여러가지 출력포트에 보내는 것,패킷을 의도적으로 차단 & 드롭, Rewriting Header field

    등 다양한 역할 수행 가능

     

    In generalized routing, 포워딩에 대한 결정은 링크,네트워크의 출발 및 도착주소를 사용해서 결정되기 때문에, 전송장치는 packet switching이라고 불린다.

     

     

     

     

     

     

    A set of header field values

     

    이전과 같게도, 하드웨어를 기반으로 수행이 된다! 만약 flow table = packet 맞지 않으면 버려지거나, 선별 작업을 위해서 controller로 전송이 된다.

     

    • A set of counters

    패킷이 플로우 테이블과 일치하면 업데이트가 된다. 이 곳에서는 flow table과 일치한 packet의 수와 시간을 기재한다.

     

    • A set of actions

    패킷이 flow table과 일치하면, 이 테이블은 주어진 outport로 packet을 전송하거나 drop, 복사 품을 만들어서 다양한 ouput port로 보내고, header field를 다시 쓰는 역할등 다양한 역할을 수행한다.

     

     

    댓글