Network_8

김현민·2021년 1월 21일
0

Computer_Science

목록 보기
4/9
post-thumbnail

8번째 수업

Network Layer

Router

Router가 하는일

1. forwarding

패킷을 목적지 방향으로 전달한다. (헤더에 적혀있는 목적지로)

  • 과정

    1. 목적지 파악
    2. forwarding table을 보고목적지를 판단한다.

    • Value값과 output을 1:1 매칭시키면 수만개의 데이터가 생기면 너무 많아 검색이 불가능해진다.
    • 이를 개선해 범위로 지정한다.
    • forwarding table은 누가만드나 ?
      : Routing algorithm에 의해 만들어진다.
  1. Routing

Longest prefix matching

두번째 예제에서

addr range 두번째와 세번째를 비교해보면

두번째 range가 더 길게 (보다 정확하게) 매칭이되므로 선택이된다.


IP datagram format

  • 패킷의 헤더필드를 모두 합하면 20byte
  • IP header 20 + TCP header 20 = 40 byte의 오버헤드가 덧붙여져 전송된다.
  • 실제로 단지 40byte가 대부분 -> TCP ACK (ACK만 담긴 패킷들임)





IP address

IPv4

32bit 주소체계,

2^32개의 IP주소를 가진다.

8비트씩 끊어서 255가 최대

IP주소는 호스트에 들어있는 N/W interface(NAC)를 지칭한다.

즉 IP주소를 여러개 동시에 가질 수 있다. --> 대표적인 예가 Router




IP주소는 어떻게 배정되나 ?

  1. 막무가내로

    : 문제점 -> forwarding table이 너무너무 커진다.

  2. 계층화

    N/W id(=prefix=Subnet ID) 와 Host ID로 나눔

Subnet Mask

addr와 Mask는 항상 같이다닌다.

같은 prefix끼리 묶인다. forwarding table에서 단순화됨.

Add하기도 쉬워진다. (prefix만 맞춰주면 되므로)




Classful Addressing

선정하는데 그렇다고 모두 사용는것도 아님.낭비하게 된다.

Class C로가면 기관은 많아지지만 하나받으면 255개의 host만 처리가능하다. (부족함)

Class간 유연함이 매우 떨어져 Class개념이 사라지고

Classless Inter-Domain Routing(CIDR)이 생겨남


Classless Inter-Domain Routing(CIDR)

2개의 32비트 숫자를 사용한다.

Network number = IP address + Mask

계층적인 주소 배분(Router가 하는 일)

Longest prefix matching방식으로 찾는다.


Subnets

같은 prefix를 가진 device들의 집합

Router를 거치지 않고도 접근 가능한 host들의 집합

Router도 IP주소를 갖는다.


예제)

6개의 서브넷. prefix가 같은 것이 subnet이니까


IP address는 32bit의 주소공간이며 interface를 지칭한다.

2^32개의 host지원가능 ( 약 40 억)

초창기에는 매우 많은 수였으나,

상업화 후에는 부족하게 되어

IPv6로 재디자인하게 되었다.

IPv6는 128bit로 늘림으로 2^128개의 host가 지원 가능하다-> 매우 많음 ( 해변 모래알만큼의 양 .. )

하지만 현재는 iPv4를 사용한다.

왜?

이미 IPv4의 용량은 초과했지만 재활용으로 버티고 있다.

-> NAT 라는 기술 (trick 같은 느낌이랄까)

NAT

local주소는 글로벌(외부)로 나갈 수 없기 때문에 NAT가 IP 주소를 바꿔준다.

재사용하긴 하지만 문제점이 있다.

IP packet (Header | Data) 에서

Header부분의 source IP -> 헤더정보 & Data부분까지 바꿔버린다. (계층 violation)


Port 넘버의 기능 : host내부에서 process를 찾아가는 용도

IP주소 : Host를 찾아가는 용도

Host를 찾는데에 포트번호를 써버림. 서버를 사용하게 되지 못한게 된다.

profile
Jr. FE Dev

0개의 댓글