네트워크계층 프로토콜과 IP

원래벌레·2022년 9월 14일
0

🌞 프로토콜과 전송단위들의 도표

  • 원격 접속 지원을 해주는 TELNET 프로토콜

🌞 IP 주소

🌼 IP 주소의 활용 예

  • 인터넷 주소 : 각 호스트는 인터넷 상 유일한 4바이트 정수값(IP 주소) 할당
    -> 각 호스트는 하나씩, 라우터와 같은 인터페이스가 여럿인 장비는 각 인터페이스마다 할당

  • 위 사진의 연두색 부분 각각이 서로 다른 LAN 이다. 현재 라우터는 두개의 LAN이 연결되어 있다.

  • 다른 동네로 가게되면 라우터를 통해 가기 때문에 라우터를 default gateway로 두었다.

🌼 IP Address 클래스

  • Network id : network 자체를 나타내는 주소로 다른 network와 구분하는 역할

  • Host id : 해당 network에 속한 호스트의 식별자

  • IP 주소는 2의 host Id 비트 수의 승 - 2 이다. (-2 인 이유, 모두 0 인경우 네트워크 주소, 모두 1인경우 브로드캐스트 주소)

Class D주소의 활용 예 (RIP 메시지 경우)

  • RIP 라우터를 위한 목적지 IP 주소 224.0.0.9 패킷을 보낸다. 이 경우 멀티캐스팅을 통해서 전달된 이 IP주소는 RIP라우터에서만 동작하고 다른 기기에서는 이 패킷을 버린다.

특수 IP 주소들

  • 127.0.0.1 : 루프백 주소로 자신이 송신한 패킷을 그대로 자신이 수신하는 효과를 준다.

  • 0.0.0.0 많은 사용처 중 하나의 예시 : 프로토콜 패킷의 주소 RARP, PPP, Bootp, DHCP 등에서 자신의 주소를 요청하는 메시지의 소스IP주소로

  • Private address(사설 주소) :
    A클래스 - 10.~
    B클래스 - 172.16~ 172.31
    C클래스 - 192.168~ 192.168.255

🌼 CIDR

  • Classless Intra Domain Routing

  • 기본 클래스에 상관없이 서브넷 마스크를 구성하는 1의 비트 개수를 의미하는 prefix값을 사용하여 netid추출 및 해당 인터페이스 선택하는 기법

  • 여러 개의 주소 블록을 하나의 큰 망으로 집단화하는 슈퍼네팅 가능

  • C클래스의 슈퍼네팅 예 ( 4개 C클래스네트워크를 하나의 망에서 관리)

  • C클래스의 네트워크를 4개로 쪼개어 하나의 망에서 관리 하는 서브네팅의 예

  • VLSM을 사용한 경우


🌞 IP

🌼 IP의 구성

🌼 라우터에서의 TTL처리 과정

  • 라우터를 들어가면 TTL 값이 1씩 줄어든다. TTL 값이 0이된 IP는 ICMP 프로토콜을 이용하여 TimeExeed를 출발지 주소에 전달한다.

🌼 IP의 프로토콜 영역에 상위계층매핑

🌼 IP의 fragmentation의 예

  • 데이터링크계층에서 사용하는 FDDI 프로토콜은 최대 4500바이트를 한꺼번에 보낼 수 있는 MTU를 가지고 있다. 네트워크계층에 라우터에 도착한 이 데이터는 최대 1500 바이트의 MTU를 가지고 있는 이더넷에 의해서 위의 예시와 같이 1501바이트를 받았다면, 1500바이트를 잘라서 먼저 보내고 나머지 1바이트와 IP의 헤더의 해당하는 20바이트를 더하여 21바이트를 다음 라우터로 전송한다. (20 1480) (20 1)
    그 후 위의 예시는 마지막 라우터에서 1521바이트로 패킷을 합쳐서 FDDI 프로토콜로 목적지 주소로 전달하였다.

Flag M : 뒤에 잘라진 부분이 있다면 1
Flag DF = 0 : Dont'Fragment 0일때만 자를 수 있다.
Offset = 시작 인덱스를 적는다. 하지만 값은 8로 나눈다.
id = 같은 아이디를 가지고 있어야 같은 놈이 잘린 것인지 확인 가능

🌼 체크섬 영역의 생성 및 검사

  • 체크섬 영역의 생성 : 헤더를 16비트씩 쪼갠다. 체크섬 영역은 0으로 초기화 모두 더한다. 16비트를 초과하는 캐리 영역은 결과 값에 또 더해준다. 그렇게 나온 값을 보수 한 것이 체크섬이다.

  • 체크섬의 계산 : 16비트로 나누어서 다 더한다. 캐리도 더한다. 보수를 한다. 이 값이 0이면 문제 x 0이 아니면 문제가 있다.

🌼 IP 헤더 옵션의 종류

  • IP는 헤더와 데이터 부분을 제외하고 40바이트의 옵션 영역을 가지고 있다. 때에 따라서 헤더의 내용을 추가하기 위해 이 옵션 부분을 사용하거나, 헤더의 옵션필드를 사용하여 경로추적이나 네트워크 상황 파악 등 특정 목적을 ㅜ이해 사용된다. 하나 이상의 옵션을 동시에 사용 할 수 있다.

  • 대표적인 옵션의 형태 Type Length Value (TLV)

No Operation과 End Option의 사용 예

  • IP의 한줄은 4바이트이다. option1 : 4바이트 , option2 : 5바이트
    나머지 3바이트를 채우기 위하여 NOP, End OP 사용

  • No Operation Option : 무연산 옵션으로 다음 옵션을 16또는 32비트 경계에 위치하기 위하여 옵션 사이의 여백을 채워준다. ( 1바이트 )

  • End-of-option option : 옵션 필드의 패딩 목적으로 사용한다. 마지막 옵션으로만 사용 가능하다.

Record route옵션의 사용 예 ( 코드번호 7 )

  • 라우터는 포인터가 지시하는 곳에 출력 인터페이스 IP 주소를 저장을 한다. 그리고 포인터값에 4를 더한다(IP 주소 영역이 4바이트를 차지하기 때문에) 그리고 다음 라우터로 중계한다.

  • 만약 더이상 기록할 영역이 없다면 해당 라우터는 자신의 주소 정보 추가하지 않고 단순 중계

Strict Source Route 옵션의 사용 예 ( 코드번호 89 - 16진수 )

  • 송신쪽에서 목적기까지 경유하는 라우터들의 주소 정보 리스트를 설정하고 보낸다. 지정된 라우터들을 경유하도록 하면서 경로정보도 기록한다. 처음에는 가야할 경로가 적혀져 있는데, 이 경로를 나가고 나서는 나가는 부분의 ip주소를 들어왔던 ip주소가 기록된 옵션 영역에 대체한다.

  • 만약 지시한 경로가 존재하지 않거나, 경로를 다 지나왔음에도 목적지에 도착을 못하면 송신지에 오류메시지를 보낸다.

  • Loose Source Route와 차이 : 이 옵션은 위 두경우 폐기하지 않고, 다른 경로를 취할 수 있음
    ( 코드번호 83 - 16진수 )

Timestamp 옵션의 종류 ( 코드번호 44 - 16진수 )

경우 라우터에 수신된 시간을 기록하는 용도

  • 시간 정보는 세계 표준 시간을 msec 단위로 표시

  • Pointer초기값 : 5 ( 기본적으로 4바이트는 OverFlow, Flags 영역들로 채워져있음)

  • Overflow : 기록할 영역 소진된 패킷을 수신한 라우터는 이 필드값을 1씩 증가, 즉 timestamp를 기록하지 못한 라우터의 수

  • Flags
    1) 0 : 시간 정보만 기재
    2) 1 : 라우터는 시간정보와 출력 포트 주소를 모두 기재
    3) 3 : 송신측에서 미리 경유할 ip주소(입력 또는 출력)들을 명시, 경유 라우터는 지시된 IP주소와 자신의 포트들의 IP주소와 비교하여 같은 경우에만 시간정보 추가 / 중계시 각 라우터의 출력 포트의 IP주소로 대치된다.

cf) NAT : Networtk Address Traslation의 약자로 외부망을 통해서 들어온 공인IP 주소를 내부망의 사설IP 주소로 또 그 반대로 바꿔주는 것이 NAT이다. 라우터를 거치게 되면 이 NAT을 거치게 된다. NAT을 사용하는 이유는 IP는 기기마다 일대일 매칭이 되는 것이 정상인데, 요즘 같은 경우에는 하나의 공유기에 컴퓨터, 스마트폰, 테블릿피시등 많은 기기들이 공유기에 연결하기 때문에 할당 할 수 있는 IP가 부족하다. 그래서 사설 IP의 공인IP를 대표로 하여 인터넷을 연결하면 모든 기기들이 하나의 IP 주소로 인터넷을 사용 할 수 있다.

profile
학습한 내용을 담은 블로그 입니다.

0개의 댓글