본문 바로가기
학교 전공/컴퓨터 네트워크

중간고사 네트워크 네트워크 계층의 목적입니다 🤞

by 응가1414 2023. 4. 30.

컴네_7장_모음.md
0.05MB

기타

  • 패킷(packet, 문화어: 파케트, 소포)은 정보 기술에서 패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록

7장

7-1-1 네트워크 계층의 목적

protocol: 절차를 포함한 통신 규약

Laver(계층): postal mail

Hierarchy: 계층화

protocol layering: 통신 시스템은 프로토콜들로 계층화 되어 있는 구조, 프로토콜들이 모여있는 구조는 통신 시스템이다.

Services: 아래 계층이 상위 계층에게 전달한다.

image-20230325113057966

  • 네트워크 계층의 정의
    • 소스부터 목적지까지 잘 보내는 것
    • 상위 계층에 서비스 잘 제공
    • 하위 계층에 서비스 잘 받기
    • 데이터 덩어리를 소스부터 목적지 까지 잘보내는것
      • 라우터들을 거치고, 라우터들이 적절하게 라우팅 되어야한다.
    • 네트워크층의 한 가지 의무는 근원지로부터 목적지까지 변경이나 활용 없이 페이로드를 운반하는 것

7-1 SERVICES 서비스 관점 7가지 정의

7-1-1 Packetizing

  • 보호하는 것 캡슐화

image-20230325113932030

  • 패킷을 캡슐화 하는데 소스에 네트워크 계층의 정보를 캡슐화 한다.
  • 패킷화: 패킷을 만드는 일
  • 캡슐화 == 패킷화
  • network layer는 사용하거나 변경하지 않고 payload을 잘보내는 방법
  • transport에서 받은 payload을 잘 패킹해서 목적지에 보내는 것이다.
  • network 계층에서 header와 payload을 모아서 패킷화
  • header를 붙이는 이유는 중간에 있는 라우터가 header의 ip주소를 이용해서 목적지까지 가기 위함

7.1.2 Routing 경로설정

  • route는 route을 하는 것
  • Routing: 가장 좋은 경로를 찾는 것
  • Routing protocol
    • 가장 좋은 경로을 찾는 알고리즘
    • 가장 좋은 길이 무엇인가에 대한 정리
    • 어떤길이 좋은 길인가 에 대한 정리
    • 좋은 길을 찾아 주는 알고리즘, 규칙과 절차 또한 라우팅 프로토콜이다.
  • Forwarding
    • 패키지를 그방향으로 보낸다. 라우팅을 찾은 경로로 그 순방향으로 데이터를 보내는 것
    • 들어온 패킷이 좋은 경로로 데이터가 좋은 경로로 나갈수 있도록 forwarding하는 것

그림의 설명

image-20230325122910369

  1. 그림은 라우터 R1이 router table을 가지고있다
  2. B : Data 다 들어 오면
  3. router table에의해 B의 IP에 맞는 Output의 위치를 알자
  4. output interface가 2번 출구로 보내는 것이 좋다.

7.1.2.1 Network layer at the Source, Router, and Destination

네트워크 계층의 송신자, 중간노드, 종단 수신기의 각각의 네트워크 계층 역할

  1. Network Layer at the source (어떤을일 해야하는지) (보내는 놈의 네트워크 계층의 역활)
    1. Creating a packet 상위 계층에서오는 데이터로 부터
    2. Logical addresss of the source and destination in the header
      1. IP 주소, 누구한테 데이터를 보내는 지 결정한다.
    3. 소스는 라우팅 테이블을 보고 내가 만드는 패킷을 누구한테 보내야 되는지에 대한 정보를 찾아야하는데 그것이 물리적인 주소를 찾는 것이다.
      1. 받을 놈의 하드웨어 주소를 정리해서 그다음 노드에게 준다.
    4. 상위 계층의 데이터가 너무 크면 네트워크 계층이 잘라서 보낼수있다.
  2. Network Layer at the destination (수신단의 네트워크 계층)
    1. Responsible for address verification
      1. 인증(확인한다), IP주소 패캣을 받았는데 진짜인지, 아닌지 확인 하는 것
    2. Reassemble the fragments and delivers the reassembled
      1. 만약에 중간 보내는 라우터들이 fragmentation을 하였을때 쪼개는 놈들을 다시 조립해야한다.
  3. NetWork Layer at the switch or router (중간 노드의 네트워크 계층의 router)
    1. 패킷의 라우팅을 책임지면 된다.

7.1.2.2 Network layer at the Source and Destination 사진

image-20230325144751161

  • 네모박스 안에 있는 그림은 송신기에 네트워크 계층이다.
    1. 네트워크 계층은 상위 계층에게 데이터를 받았고.
    2. 네트워크 계층은 초록색(패캣) 박스를 받았다.
      1. 회색 박스 와 초록색 박스는 패킷이라고 하며
        1. 회색 박스는 IP주소 등 header이다.
        2. 빨강색 박스는 Datalink에게 보내는 물리적 주소가 담겨있는 정보를 준다.
    3. 받은 패킷의 venification(공개)를 하면
      1. 회색 박스를 통해 IP주소를 확인하고,
      2. 헤더를 뜯어보고, 목적지가 맞으면 초록색을 잘처리 해서
      3. 상위 계층에 잘 서비스 한다.

7.1.2.3 Network layer at the Router

image-20230325145816475

  • 라우터는 패킷을 하나 받고
  • 라우팅 테이블을 확인하고
  • 패킷을 뜯어 보고 목적지가 어디 인지 확인한다.
  • 하위 계층에게 이 패킷의 목적지를 알려준다.

7.1.3 Error Control 오류계층

  • 네트워크 계층은 오류제어 안한다
    • 비효율적이라.
  • 필요에 따라 네트워크 계층이 보내는 데이터를 자를수있다.
  • 네트워크 계층은 오류제어를 하지 않는다.
  • 인터넷 기술자들이 Fragmentation이 가능하도록 하였다.
    • 송신기의 데이터가 크다면 중간에 거쳐가는 라우터들이 성능상 문제로 데이터를 쪼갰다.
    • 이놈들로 오류제어를 한다면 이것이 효율적으로 만들 수 있는 방법이 없다.
  • 네트워크의 오류제어는 효율적이지 않다.
    • DataLinke 단계에서 오류제어를 하니 큰문제는 없다.

image-20230325132504001

7.1.4 Flow Control 흐름제어

  • 수신자가 받는 데이터가 압도 되지 않기 위해 제어하는 것
    • 흐름제어는 sender가 한다.
    • 문제는 항상 받는 사람에 의해 일어난다.
    • 받는 사람의 용량/능력에 의해 정해진다.
  • receiver 는 feedback이 필요하다.
  • 처음과 종단의 라우터들의 협의에 의해 일어난다.

image-20230325133202676

7.1.5 Congestion Control 혼잡 제어

  • 처리 할수 있는 양만 제어
  • 데이터에 흘러가는 양보다 처리 할수 있는 양 제어.
  • image-20230325133359444
  • 혼잡: 네트워크와 라우터의 개념
  • 흐름: 종단의 종단의 결과

7.1.6 Quality of Service (서비스의 품질 기준)

  • 서비스의 품질은 서비스의 종류에 따라 다르게 고려가 된다.
  • 이것들은 네트워크 계층에서 고려하지 않는다.
  • 문자
    • 오래걸리는 것은 문제 XX
    • 하지만 문자가 이상하게 보내지는 것은 문제가 생긴다.
    • 텍스트와 보고서를 보낼때의 서비스 품질은 정확하게 데이터가 가는 것이 중요하다.
  • 비디오, 음성
    • 데이터가 상대방이 받을때 음성이 이상하거나 약간의 오류는 이해하는 데 괜찮지만,
    • 지연이 생기는 것이 문제이다.

7.1.7 Security

  1. 처음에는 보안 생각 하지않았다
    • sender <---> recieve가 좁았기 때문에
  2. 악의적인 router들이 모든 데이터들을 조작한다.
    1. 그래서 네트워크 계층들도 보안이 필요
  3. connectionless service 에서 connection-oriented 서비스로 변경
    1. IPSec as additional virtual layer
      1. 가상의 계층 부가적 생성
      2. IPSec (IP 보안) 새로운 프로토콜
      3. 보안을 위해 새로운 프로토콜

7.2 PACKET SWITCHING

  • 라우터는 스위치다.
    • input port 와 output port로 연결해주는 스위치
    • 소프트적으로 판단하는 것
  • 패킷 스위칭은 들어온 패캣을 적절한 곳으로 빠져나갈수 있도록 하는 것
  • 패킹 스위치에는 2가지 기법이 있다.
    1. Datagram Approach
      1. Datagram: 패캣이라는 데이터 덩어리
    2. Virtual-Cricuit Approach
      1. 가상 회선을 이용해서 데이터를 보내는 방법

7.2.1 Datagram Approach

image-20230325152636205

  1. Datagram: 패캣이라는 데이터 덩어리
  2. connectionless 서비스를 만들었다,
    1. 비연결형 서비스라는 것은 패킷과 패캣 사이에 독립성을 늘렸다.
    2. 관계를 고려하지 않았다.
    3. 트랜스 포트와 네트워크 계층은 연속적으로 연결이 되었지만
    4. 패킷들이 고유한 상관관계가 있더라도 독립적으로 처리한다.
    5. 패캣과 패캣들이 목적지 까지 가는데 동일한 경로가 아닌 다른 경로로 갈수 있다.
7.2.1.1 A connectionless packet-switched network

image-20230325153911242

  1. 1, 2, 3, 4 번의 패캣이 들어가면
  2. 독자적으로 처리를 하여
    1. 라우터가 연관성이 없다고 판단
    2. 1 3 4 2 번으로 도착을 한다.
    3. transport 계층이 1234번의 순서를 원한다면 원하는 순서로 재배열 해야한다.

connectionless

  • 장점: 단순하다.
    • 패캣이 생기면 보내고, 각 라우터들이 연결을 해준다.
  • 단점: 순서가 뒤집어 지면,
    • reordering 해야한다.

7.2.2 Virtual-Circuit Approach ( connection-oriented ) 연결 관계성

오류제어 흐름 제어를 위해서

  • connection-oriented : 패캣들이 연관성이 있다.
  • Virtual-circuit approach : 가상 회선 접근
  • relationship: 하나의 메세지에 속한 모든 패캣들은 다 관련이 있다고 생각한다.
  • 오류제어 흐름제어를 위해서
    • virtual-circuit을 사용한다. -> 선이 연결되어있다.
      • 가상의 회선이 있는 것처럼 연결되어 있다
    • 메세지가 속한 모든 페캣들은 모두 관계가 있다.
  • 미리 선을 만들어 주는 과정이 필요하다
    • connection setup이라고 한다.
    • 연결 과정을 만들어 주는 과정이 필요하다.
  • flow: 흐름에 대한 label을 붙여야한다.
  • 장점: 경로가 이미 정해져있다.
7.2.2.1 virtual-circuit packet-switched network - 그림

image-20230325161034667

  1. 파란색 실선이 목적지 까지 연결이 필요하다.
  2. 인터넷에는 기차길처럼 물리적인 것인 아니다.
  3. virtual : 가상의 논리적으로 마치 물리적인 것처럼 만들어야 한다.
7.2.2.2 Forwarding process in a router when used in a virtual circuit network - 그림

image-20230325161825387

  1. L1 이라고 하면
    1. Virtual circuit identity : L1 이다
    2. IP 주소또한 있지만
      1. IP주소로 라우팅하는 것이 아니라 L1가상 회선으로 라우팅을 해준다.
7.2.2.3 Sending request packet in a virtual-circuit network - Request

image-20230325162304021

  1. A가 B와 버추얼 서킷으로 데이터를 보내고 싶으면 만들어 주세요 라고 하는 Request 메세지를 보낸다.
  2. 고전된 길을 만들어 주세요" 라는 요청을 R1에게 보낸다.
  3. R1이 임의 적으로 R3로 길을 정하고
  4. 레이블을 기록한다.
  5. 하나식 가상의 길을 만들어라.
7.2.2.4 Sending request packet in a virtual-circuit network - respons

image-20230325163939312

  • 목적지에 request를 보내면
    • response를 받는다.
  • 목적지까지 다시 데이터를 돌아가도록 만든다
  • 각각의 라우터는 버추얼 서킷의 길을 확립하게 된다.
7.2.2.5 Flow of one packet in an established virtual circuit - 연결 완료

image-20230325164936584

  • A가 하는 역할은 맨앞에 보내고 싶은 데이터를 14번 식별자로 보낸다.

7.3 Performance 성능

  1. 네트워크 계층은 완벽하다 / 완벽하지 않다
    1. 내가 보낸 데이터를 수신자가 잘받는 환경
    2. 성능척도를 이용해서 판단을 해야한다.
  2. 척도를 이용해 지연, 처리율, 패킷손실
  3. 혼잡제어를 하면 패캣로스, 딜레이를 개선할수있다.

7.3.1 Delay 지연

  • 4가지 지연 전송지연, 전파지연, 처리지연, 대기지연
  • 4가지 지연이 합쳐져야
  • serder가 recieve에게 데이터를 보내는데 필요한 시간이 정의

7.3.1.1 Transmission Delay : 전송 지연

  • message 비트들의 집합 : 100개 비트

image-20230325205827014

  • 전송지연 Delay(tr) : 위의 message 비트들의 집합 1부터 100까지 보내는데 걸리는 시간
  • 전송지연 Delay(tr)

image-20230325205109422

  • 전송 지연 = 비트들의 갯수 / 전송률로 나누어 주면
  • 비트를 하나씩 차례로 보낼필요가 있다.

7.3.1.2 Propagation Delay : 전파 지연

image-20230325211359815

  1. 전파지연
    • point A 에서 Point B 까지 물리적으로 (전송매체를) 통해서 하나의 비트가 전파되는데 걸리는 시간
  2. 전기는 (진공에서) 빛의 속도와 비슷하다.
    • image-20230325212251277
  3. 전파 지연 = 거리 / 속도
    • image-20230325211451124

7.3.1.3 Processing Delay 처리 지연

  • 처리 지연
    • 커퓨터 통신을 지원하는 디바이스가 통신을 하기 위해 처리 해주는데 걸리는 시간
    • 라우터가 하나의 패캣을 받았을 때
      • 헤더를 뜯어 보고
      • 헤더의 목적지 주소를 보고 라우팅 테이블을 검색 하는데 시간이 걸린다.
      • (매우 짧지만 연산을 처리하는 시간이 있다)
      • image-20230325213055752

7.3.1.4 Queuing Delay 대기 지연

image-20230325213428660image-20230325213445396

  • 대기 지연
    • 라우터에서 보통 일어난다.
    • 라우터는 여러가지의 연결이 연결되어 있는데
  • 라우터의 여러가지 연결에 들어어는 데이터를 처리하는 데 처리 시간이 걸린다
    • 라우터가 처리하는 시간보다 더 많은 패킷이 들어오면
      • 버퍼, 큐라고 하는 들어온 순서대로 저장하고
        • 하나식 처리하는 과정이 필요하다
          • 혼잡때문에 버퍼의 데이터가 들어가고
            • 이 데디터가 자기 서비스를 받는데 걸리는 시간을
              • 지연시간이라고 한다.

7.3.1.5 Total Delay 전체 지연

image-20230325214452047

  • image-20230325214516072 - 라우터가 n개인 경우 링크는 (n+1)개이다. - n개의 라우터 갯수 + 1(수신단)
  • image-20230325214638946 - n개의 라우터 갯수 * (대기지연)

7.3.2 Throughput 처리률

  • 처리률: 1초동안 어떤 포인터에서 그포인터를 지나가는 갯수
    • 실제로 들어가는 양으로 정의
    • 처리율은 Cavacity를 넘어 갈수 없다.
  • image-20230325222333607
  • 처리율은 가장 보낼수 있는 가장 낮은 놈에게 의존을 한다.
    • 처리할 수 있는 양은 100kbps에 의존해야한다.
    • 200kbps으로 데이터가 들어가도,
    • R1 - R2의 100kbps만 처리하니
      • 전체 처리율은 100kbps이다.
    • 문제 해결 방법
      • image-20230325222646750
      • Backbone : 라우터와 라우터 사이를 빽본으로 연결 매우 높은 전송율을 높이는 것
      • ​ (큰통의 수도관을 만들다.)

7.3.3 Packet Loss 패킷의 손실

  • image-20230325223529037
    1. 버퍼: 쌓아서 처리 -> 만약 한계를 만나면
    2. 라우터가 처리 할 수있는 속도보다 더 많이 들어오면
      1. 버퍼가 가득차고 데이터가 들어오면
    3. 버려지는 것 -> 패캣 로스
    4. 하지만 혼잡이 생기니 버퍼가 쌓이고
    5. 혼잡제어를 해야한다
    6. 들어온 데이터를 줄여야 한다.
  • 라우터 에서의 로스 처리
    • 여기서의 로스는 처리를 못 하는 것은 버린다.
    • 패킷을 손실은 하나이다
      • 라우터가 있는데 라우터의 데이터가 많이 들어오면
    • 버퍼를 각각두고 버터의 데이터를 쌓아두고 처리를 하는데 불행하게 버퍼가 가득찬다.
    • 이 버퍼가 허용하는 범위 까지 계속 들어온것들이 버퍼보다 크다면
  • 패캣 손실이 생기는 환경은
    • 라우터에서 혼잡이 생기기 때문에 버퍼가 차는 것이다.
    • 버퍼의 오버플로우 때문에 패캣 로스가 생긴다.
    • 패캣 로스를 막는 방법은 혼잡제어를 해주는 방법이다.
    • 혼잡제어를 하는 방법은 들어온 데이터를 줄인다.

7.3.4 Congestion Control 혼잡제어

  • 명시적으로 혼잡제어를 하지 않는다
  • transport layer - network layer가 계급제
  • Congestion 혼잡은 처리율, 지연에 영향을 미친다.
  • 만약 보낸것이 혼잡 때문에 패캣로스 발생
    • 그러면 sender는 다시보내야 된다
      • 그래서 처리율, 지연시간 높다.
  1. 네트워크 계층에서 명시적은 혼잡제어를 하지 않는다.
  2. transport 계층에서 네트워크 계층에서 혼잡제어를 할수 있도록 도와준다.
  3. 혼잡은 처리율과, 지연에 영향을 준다.
  4. 데이터가 혼잡때문에 패캣로스가 생겼으면 sender는 다시 보내야 한다.
    1. 그러면 다시 가다가 없어지고, 다시보내고
  5. 지연시간와, 처리율의 관계도 늦어진다.

7.3.4.1 Congestion Control 혼잡 제어의 방법

  • 혼잡제어는 네트워크 계층도 한다.
  • 상위 계층 transport 계층이 우선적으로 한다.
  1. Open loop congestion control : before it happens
    1. 혼잡제어 생기기 전에 미리미리 해 조심을 해야 하는 경우
  2. Closed loop congestion control: after it happened
    1. Choke packet
  3. 딜레이 관점에서 용량에 접근할수록 무한으로 커진다.

image-20230326001052766

  1. 처리율관점에서 처리를 증가하다가 capacity에 도착하면
    1. 재전송이나, 지연특성, 버퍼 오버플로워에 의해 패캣 로스 발견한다.

image-20230326001109748

7.3.4.2 Backpressure method for alleviating congestion

  • Backpressure
    • image-20230326001518133
    • 소스가 데이터를 보내면 패캣에 로스가 발생할꺼 같으면
      • 이전 라우터에 빽프레셔 뒤에 압력을 준다.
      • 소스까지 압력이 들어가서 보내는 속도를 줄인다.
  • Choke packet
    • image-20230326002334743
    • 명시적인 메시지를 만들어서 소스한테 보내는 것
    • 바로 직접적으로 소스한테 명령을 하는 것
    • 목을 조이는 명령을 만들어서 소스에게 보낸다.

7장_IPv4

7.4 Internet Protocol Version 4

  • IPV 4 와 6가 있다.
    • 우리나라 66%, 전세계 33% 가 보급
  • IPV 4 , IPV 6

7.4.1 IPv4 Addressing

  • image-20230326003503606
  • 라우팅이 주요목적 - 주소 (IPV4 address)
    • 논리주소, 물리주소, 정해진 주소, 논리적으로 정해진 주소
    • IP주소 - 우리가 쓰는 주소, 네트워크 계층이 쓰고있는 주소
      • image-20230326003841342
  • 각각의 디바이스의 연결이 네트워크의 개념이다.
    • image-20230326030850034
  • IPv4 address은 32-bit address 이다.
    • IPv4 주소는 유일하고, 전세계적으로 통용이 된다.
  • IP의 주요목적은 라우팅이다.
    • 라우팅이랑 sender가 있고, 중간에 많은 라우터를 거쳐서 목적지 까지 가는 것
    • 요 연결을 해 ip 프로토콜을 돌아가는 것
  • IP주소를 사용한다 (논리주소) -> 네트워크 계층에서 사용하는 주소
    • IP주소는 논리 주소이기에 특정한 디바이스의 식별자로 사용하는 것은 아니다.
    • 연결이 네트워크의 개념이다
  • IP 주소의 역활 : 인터넷 네트워크 계층의 IP 역할은 연결을 식별한다.
    • 유일해야 되고, 전세계적으로 통용 인터넷의 호스트
      • 종단, 중간 라우터들의 연결을 정의 하는 것
    • IP주소는 연결에 관한 주소이다.
  • ICAN은 숫자(IP주소, 포트번호), name(도메인: 조선대를 나타내는 인식주소, 월래는 IP주소 대신 인간이 기억하기 편하게 도메인 이름 할당)

7.4.2 Address Space : 주소의 공간

  • IPV4의 문제점: 주소의 고갈 -> address deplition
    • 주소가 부족하다.
    • IPV4 는 32bit address을 사용한다 -> 2^32 은 42억개을 사용한다.
  • 주소를 아껴서 사용해보자
    • long term solution: IPV6을 만들고 거기의 안정적인 버전이 생김
    • short-term solution: 3가지가 있다.
      1. classless addressing 방법
      2. DHCP라고 하는 프로토콜 사용
        1. 네트워크 계층의 프로토콜이 아닌 앱플리케이션에 사용하는 프로토콜
      3. NAT 이라고 하는 기술을 사용한다.

7.4.3 Notation 표기법

  • IP 주소를 쓰는 표기법은
  • 2진수, 256진수, 16진수
    • IP주소를 표현하는 표기법을 쓴다.
  • image-20230326033752973

7.4.4 Three different notations in IPV4 addressing 3가지 IP4 표기법

image-20230326033947218

7.5 Hierarchy in addressing 주소의 계층화

  • 주소가 계층적으로 만들어 졌다.
  • image-20230326034820137
  • 32-bit IPV4 address 은 two parts로 나누어 져있다.
    • first part 은 prefix
      • 물리적인 (네트워크: 특정한 물리적인 지형의 위치를 나타내는 정보)
      • 물리적으로 지역을 알려준다.
    • second part of the address 은
      • node를 알려주는 정보, 디바이스 6030을 알려준다.
      • 조선대 안에 있는 수없이 많은 놈의 한개를 보여준다.
    • prefix와 surfix의 간격은 변경이 가능하다.
  • 특정한 네트워크를 출발해서 특정한 네트워크를 도달한다.
    • 062 - 230 : 지역 물리적 (작은 형태의 영역을 지목)
    • 6030 : 수없이 많은 전화기 중에 한대가 이번호이다.

image-20230326035822474

7.6 Occupation of the address space in classful addressing 클래스 기반

  • 클래스 기반으로 주로 나눈다
    1. 클래스 기반으로 주로 나눈다.
    2. FIX 시킨다.
    3. 하나의 덩어리가 아닌 3가지 클래스로 FIX를 시킨다.
    4. ABC, DE 클래스 기반 주소
  • n = 8, n = 16, n = 24 기반의 클래스 3개

단점

  • 컴퓨터 10개만 사용이 가능하지만
    • 할당받는 주소는 256개이다.
    • 최소가 256개이니 손해이다.

그림

image-20230326041007857image-20230326041043181

  • class A의 첫비트는 0으로 판단한다.
    • Prefix : (판단으로 1비트 사용) 7네트워크를 정의 한다 8-1 = 7비트
      • 대신 Surfix : 2^24개가 된다.
  • class B의 첫비트는 10 으로 시작
    • prefix : 16bit - 2bit(인식) = 16 bit
  • class C는 110으로 시작한다.
    • prefix: 24bits - 3bit(인식) = 2^21 이
    • surfix: 2^8 = 256개까지 서로 다른 컴퓨터를 class C로 구성
  • Class D, E는 특정할수 있다.
  • 단점
    • ip주소의 낭비가 심하다
    • 가장 작은 단위는 256이다
      • 직원 5명에 컴퓨터 10대만 사용이 사능하지만
      • 할당받은 주소는 256개이다
        • 최소 256이니 낭비이다.
  • 네트워크의 크기 id, sufix의 갯수 만큼만 정하고 나머니는 prefix로 사용한다.
    • long-term solution
      • IPV6로 가는 것
    • short-term solution :
      • classless addressing

7.8 Slash notation (CIDR) "/N"

  • CIDR: Classless InterDomain Routing -> 사이더 발음(cider)
  • image-20230326105333213
  • image-20230326105441505
  • prefix의 값을 N으로 알수있다.
  • /n을 사용해서 IP어드레스 안에 명시적으로 "/" 을 이용해 써주자.
  • N은 prefix의 length이다.
  • /n : CIDR 이다.
    • ClassLess는 네트워크와 네트워크 간의 상호 동작할수 있도록 해주는 라우팅
  • IP 예시 220.8.24.255/25
    • network의 prefix는 25비트
    • surfix는 32 - 25 = 7 bit이다.
      • 2^7 은 128개 까지 IP주소를 가능하다

image-20230326120804320

7.8.1 example

image-20230326121033476

  1. 2진수 변경
  2. 127 보고하기
  3. 실전
  4. image-20230326121215986
  5. image-20230326121418638
  6. image-20230326121514980

7.8.2 maske를 이용한 example

image-20230326121707139


7.8.3 example Classless addressing 확인

  1. image-20230326122009858

image-20230326122101018image-20230326122052861

7.9 Network address = prefix

  1. The first address

image-20230326125221427image-20230326125128978

  1. Forwarding table = rougting table
    1. Destination address
    2. Find network address
      • IP주소, prefix
    3. prefix 만가지고, 라우팅 데이블을 만들었다.

7.4 Example

  1. ISP가 1000개의 address을 요청한다.
    1. surfix는 10 이다. log1024
  2. 2의 제곱인 1024의 주소만 할당해준다.
    1. prefix = 32 - surfix = 32 - 10 = 22

image-20230326130536051

7.4.1 IPV4 주소지정: 서브네팅 (p20)

  • 쪼개는 걸 -> 서브네팅이다.
  • 1024개 IP을 받으면
    • 관리부 512개
    • 영업부 256개
    • ... 64개 나눠서 관리한다.

7.5 Example - 1, 서브네팅

  1. 14.24.74.0/24 의 시작
    1. one subblock of 10 addresses
    2. one subblock of 60 addresses
    3. one subblock of 120 addresses
  2. surfix : 8비트 => 256개의 IP address 사용가능
  3. 3가지 조직에서 각각 10, 60, 120 개의 IP을 달라고 요구
  4. 정리
    1. 14.24.74.0/24 인 주소체계는 => surfix = 8bit
    2. 14.24.74.0/24 ~ 14.24.74.255/24 까지 주소 할당 가능
    3. subnet은 surfix가 작아지느 prefix의 값이 높아진다.
      A : 14.24.74.0/25 ~ 14.24.74.127/25 필요 120 -> 실제 할당 128 이다
      B : 14.24.74.128/26 ~ 14.24.74.191/26 필요 60 -> 실제 할당 64 이다
      C : 14.24.74.192/28 ~ 14.24.74.207/28 필요 10 -> 실제 할당 16 이다.
    4. A > B > C 로 갈수록 prefix의 값은 증가하고 surfix의 값은 감소한다.

7.4.2 IPV4의 main와 다른것 \ Four Related Protocols (Main and Auxiliary Protocols)

부수적인 프로토콜 돌아간다.

image-20230326150143629

  • IPV4 프로토콜
    • Packetizing (패킷화)
    • Forwarding (포워딩)
    • Dlivery of a packet (패킷 전달)
  • ICMPv4 (Internet Control Message Protocol Version 4)
    • IPv4를 도와 네트워크층의 전송 중 발생할 수 있는 오류를 제어함
    • 컨트롤 하기 위한 IP에는 없었던
      • 컨트롤 하기 위한 메세지를 가진 프로토콜
  • IGMP (Internet Group Management Protocol)
    • IPV4의 멀티 캐스트를 도와줌
  • ARP (Address Resolution Protocol)
    • address 문제를 해결
    • 네트워크층 주소와 링크 계층 주소를 메핑
    • 네트워크 계층과 데이터계층이 있는데 네트워크 계층이 헤더가 붙은 데이터를 내려 보내면서 데이터 계층에 명령을 줘야하는데 이 데이터 패킷을 누구한테 보내기위한
      mac 어드레스, H/W, 물리 주소에 대한 주소를 알려줘야한다. 이런 정보를 줘야하는데
    • 지금 네트워크가 목적지 IP는 알지만 다음 홉의 거리에서의 Data Link 계층에 필요한 주소를 모른다면
      ARP라고 하는 프로토콜이 동작하면서 보내기위한 다음홉의 Data Link 계층의 어드레스 , 물리주소가 무엇인지 찾아주는 역활이다.
    • Network 에서 목적지 주소 IP는 알지만
      • 다음홉의 누구한테 Data link에 대한 address 모른다면
        • Data link에 대한 address 찾아주는 것
    • image-20230326145540085

7.4.3 Characteristics of IPv4

  1. Unreliable and connectionless
    1. 신뢰성이 없다 (보낸 데이터가 정확하게 다음노드에 받아졌는가 에 대한 신뢰성이 없다)
    2. 전달을 하기 위해서 Best하는 노력을 한다.
    3. 정확성에 관해서는 신경을 쓰지 않는다.
  2. 전달을 하기 위해서 Best하는 노력을 한다.
    1. 전달에만 최선을 다한다.
  3. Header에 관해서는 오류에 관한 판단을 하겠다.
  4. Best transmission : 심플하면서 보낸가 싶을때 보내지만 보장하지 않는다.
  5. IPV4 에서 만들어진 패캣을 데이터 그램이라고 한다.

7.4.4 Datagram Format - 데이터 그램 포멧 Header - datagram

  • 데이터 그램의 포맷은
    1. IP에의해서 만들어진 패캣을 datagram이라고 한다.
    2. datagram은 가변의 길이를 갖는다.
      1. header와 payload이다.
    3. header는 20에서 60byte 이다.
      1. 가변이다. 헤더의 길이도 가변 header에는
      2. routing 과 delivery을 하기 위한 제어정보가 있다.
    4. 관습적으로 4 byte을 끊어서 보여준다.

7.13 IP datagram Header Format의 정리

image-20230326154353722image-20230326154415934image-20230326154641577image-20230326154703136

7.13.1 IPV4 datagrma format - 윗 그림 상세 설명

  • Version (VER) : protocol version
  • Header Length (HLEN) :
    • 20~60byte, 4바이트식 끈기
    • HLEN 5
  • Services: IETF의 기관에서 지정한 서비스 품질을 정의 하는 것
  • image-20230326155752923 1. 딜레이를 최소화 2. 신뢰성 최대 3. 처리율 최대 4. 가격 최소화
  • Total Length: 16bits가 있다 최대 65535byte의 헤더가 포함 - 2^16

image-20230326161518726

  • EG
    • 네트워크 계층은 transport 계층과, 데이터 링크 계층이 편하게 일을 해야한다.
    • 내가 만드는 데이터의 덩어리를 밑으로 보내야 하지만
    • 데이터링크의 계층이일을 할수있는 Frame의 길이가 46~1500byte까지의 길이만 갖게 된다면
    • 길이를 잘라서 보내줘야한다.
      • 이렇게 하기 때문에 fragmentation 이필요하다
        • 최소 20byte을 보낸다면 - padding을 사용해서 필요한 사이즈를 강제로 만들어 준다.
  • Identification: used in fragmentation
    • 인식, 신원, ID이다 (IPX 각각의 데이터 그램을 구분하기 위한 구분자)
  • Flags: 파면에서 사용, fragmentation 에서 사용한다.
  • Fragmentation offset: fragmentation에서 사용한다.
  • Time to live
    • 얼마나 오래 생활을 하는가
    • number of hops 거처가는 라우터의 갯수 :
      • 과거의 데이타로부터 목적지가 어리라면
      • 과거의 목적지까지 가는 홉수가 최대 10개 라면
      • Time to live는 10*2 정도로 셋팅한다.
    • 데이터 그램이 라우터 방문을 할때 마다 '-1'을 해준다.
    • 라이프타임 없으면 목적지를 못간 데이터들이 좀비처럼 떠다닌다.

7.4.2 데이터 그램 형식: 헤더 필드(3)

  • 헤더 검사합(Header checksum) : 16 bits
  • image-20230326165352666
  • image-20230326165413803
  • 헤더 검사합(Header checksum) : 16 bits
  • 발신지 주소: 32 bits
  • 목적지 주소 : 32bits
  • 선택사항 : Used for network testing
  • 패딩 :To fill to multiple of 32 bits long
    • 상위 계층의 사용자 데이터 전달
    • 8 비트 길이의 정수
    • 데이터그램의 최대 길이(헤더 + 데이터)는 65535

7.14 protocol field에서 사용하는 다중화 및 역다중화

image-20230326170538142

  • TCP, UDP 애들이 데이터를 만들어서 network 계층에 보내진다.
    • 상위 계층, TCMP, IGMP, OSPF 에서 받아온 정보을 이용해 Datagram을 만들다
      • 목적지에 전달 가능해야한다.
  • Datagram이 만들어 질때 마다
    • 그때 만들어지는 대상이 되는 프로토콜들의 정보까 따로 정리가 된다.
  • p40에서 프로토콜이라고 하는 필드가 정리 Header Format 정리

7.7 header의 길이 Example_1

  • IPv4 packet has arriced
    • 첫번째 비트가 01000010(2)
    • image-20230326201507237
    • 0100 : versin 4
    • 0010 : 헤더의 길이 -> 2
      • 헤더의 기본 길이는 HLEN 5이다.
      • 그래서 성립이 안된다.

7.8 header의 길이 Example_2

  • HLEN is 1000(2) : 8 이다
    • 8 * 4 = 32byte
      • 20byte는 기본 byte이고, 12byte 는 option이다.

7.9 Header , Example 7.9

  • HLEN is 5
    • 5 * 4byte = 20byte
    • total length field 0028(16)
      • 0010 1000 = 32 + 8 = 40byte
    • 전체 40byte, header 20byte, packet 20byte

7.10 Example Header

packet의 데이터가 16진수로 도착을 했다

  • 45000028000100000102...(16)
  • image-20230326202941874
  • 하나당 4비트 (2진수 4비트가 == 16진수 한자리수)
  • image-20230326203042926

7.4.3 Header 옵션, Options에 관한 이야기

image-20230326212935573

  1. a variable part 40byte 까지 사용가능

7.4.3.1 옵션의 이유

  1. testing and devugging 의 목적
  2. record rout option:
    1. 최대 9개 라우터 정보를 기록한다. 수신자는 어떤 라우터를 거쳐서 도착했는지 알수있다
    2. 루트옵션을 세팅해서 보내면
      • 중간에 거처가는 라우터에 IP주소를
        • 옵션 필드에 기록
  3. source route option:
    • 우리가 지금까지의 데이터 그램이 보내는 경우는 경로 설정에 대해서 생각하지 않지만
    • Strict, loose 옵션을 이용해서 보내는 놈을 미리 결정가능하다.
      1. Strict source : 무조건 결정된 경로를 따르는
      2. Loose source : 거쳐가는 router을 꼭 갈필요없다.
  4. Timestamp option: 시간 정보를 주고 받기위한 옵션

7.10 Solution to Example 4.5 서브네팅 그림 그룹화

image-20230326133540360

surfix 의 영역


prefix 의 영역

7.11 Example of address aggregation 묶을 수있다.

  1. 라우터의 가짓수를 줄일수 있으며,
  2. 묶어서 외부에서 보면 한개처럼 보인다.
  3. image-20230326135120030
  4. IP 순차적 할당
    1. 작은 그룹은 다시묶으면 큰그룹으로 보인다.
  5. 연산에 필요한 연산의 가짓수를 줄일 수 있다.
  6. 큰덩어리로 라우팅 가능하다.
  7. aggregation 잘라진 작은 그룹은 큰그룹으로 보인다.
  8. 합치는 이유는 각각의 하나하나를 4개를 한개처럼 보이게 한다.

7.12 DHCP

  1. 다이나믹하게 자동적으로 호스트(유저)에게 IP주소를 만들어주는 것
  2. IP가 대상 IP주소가 논리 주소고 연결
    1. 상호관의 연결시켜주는 주체가 되고
      1. 행위의 수단이 IP가 없으면 인터넷 연결이 안된다
      2. DHCP는 앱플리-케이션 계층의 프로토콜이다.
  3. 컴퓨터의 IP주소가 셋팅이 되어있지 않으면 처음에는 network계층이 안된다.
  4. 그러면 IP주소를 찾기 위해서 DHCP가 IP주소를 만들어준다.
  1. DHCP는 IP할당 방법
    1. 고정 IP 할당 - 24시간 (학교 컴퓨터, 회사 컴퓨터)
    2. 자동 IP 할당 - 집에 있는 컴퓨터 잠깐 잠깐 컴퓨터를 쓰면 시간이 짧다
      1. 컴퓨터를 켰을때 IP를 할당해주는 경우
      2. 제일먼저 DHCP가 돌아가면서
      3. DHCP가 주변에 있는 DHCP서버 한테 IP주소를 요청한다
      4. DHCP라는 서버에 임시로 IP주소를 할당 응답
      5. DHCP 서버가 DHCP가 요청하는 IP주소를 할당한다.

*DHCP *의 그림

  1. DHCP가 주변에 요청을 뿌린다.
    1. 내가 누군지 모르는 상태
    2. 255.255.255.255 : 특별한 목적 IP주소, 방송용 IP주소
      1. 내가 이주소로 메세지를 보내면 주변에 있는 친구들이 모든 메세지를 받는다.
  2. 너의 address는 이거다
    1. 나의 주소를 먼저 알려준다.

image-20230326141731454

7.13 Fragmentation 분할, 파편

  • 내가 보내는 프로토콜의 방식에 따라 분할의 방식이 달라진다
  • 내가 보내는 데이터 그램이 거처가야되는 물리적인 네트 워크에 따라서
    • 네트워크가 사용하는 프로토콜에 의존하다.
  • 내가 보내는 데이터 그램이 거쳐가야되는 물리적인 네트워크에 따라서
    • 네트워크그가 사용하는 프로토콜에 의존한다.

7.13.1 Maximum Transfer Unit 최대 페이로드 사이즈 분할

  • 다른 형태에 네트워크 구성에 대해 허용할 수 있는 최대 페이로드 사이즈가 정의
    • 유선 VS 무선 : 다른 환경
      • 유선 : 가이드 라인
      • 무선 : 아무 것도 없는 (신호에 방해)
        • 다른 형태의 프로토콜
      • image-20230326203804402

7.13.2 Maximum transfer unit (MTU) : fragment의 이유, 파편의 이유

image-20230326204408890

  • 데이타 링크 계층에 허용할 수 있는 최대 크기를 MTU라 정했다.
  • 네트워크 계층이 상전, 상사
    • 부하 직원이 원하는 대로 만들어 주는 것도 역할이다.
    • 데이터 링크의 최대 능력에 맞게 쪼개서 보내야 한다.
      • fragmentation 이 경우에 따라 필요하다
  • 유선 데이터를 크게
    • 무선에서 허용하는 크기로 자른다
      • 이과정을 fragmentation

7.13.3복원이 될수 있도록 fragmentation 분할해야한다.

  1. Identification: 16bits
    1. 똑같은 16bit의 ID 필요하다
    2. 잘린 것이 복원이 가능해야한다.
    3. 잘린 놈들이 똑같은 16비트 ID을 가져야 한다
    4. ID는 인식 번호이다.
      • 시퀀스
        • datagram하나 만들때 마다 ID + 1 하게끔 만들어 났다.
  2. Flags: 3bits
    1. First bit: reserved 미래에 사용
    2. second bit: do not fragment bit
      • 1 -> 자르면 안된다.
    3. Third bit: more fragment bit
      • datagram이 만드는 Lenth는 가변이다. 만약에 잘렸는가 Fragmentation을 만들면
      • 이것이 첫번째, 두번째, 마지막인지 구별할 수 있어야 한다.
        • 만약 잘린놈이 M -> 1이면 : 내가 잘려있고, 내뒤에 잘린 파트가 있고, 마지막이 아니다!!
    4. image-20230326205038765

7.13.4 Fragmentation : offset 기준으로 부터 얼마 만큼 벗어났는가

  • offset : 어떤걸들 절대적인 기준으로 부터 얼마 만큼 벗어나 있는가
    • offset : 은 8byte을 나눈다
  • image-20230326211148669
  • fragmentation offset : 13bit
    • offset : 정확치에서, 어떤 기준에서 얼마만큼 벗어나 있는가
    • byte단위가 아닌 8byte의 단위로 표시하게 되어있다.
      • offset에는 13bit 밖에 없다
        • 그래서 8byte로 나누어서 다시 배열을 해야한다.
        • offset에는 13bit 밖에 없다 그래서 크기를 재조정해야하는데
          3비트 해당되는 만큼을 내가 표현할수 있는 능력이 사라진다. =>>>> 3비트는 2^3 byte 이다
          그래서 8byte 단위로 total Lenth의 byte 순서 번호를 다시 변경 시켜준다

image-20230326211517402image-20230326211538577


Example 7.14 Fragmentation

  • M bit value of 1 , offset : 0
  • image-20230326211810871 1. 첫번째 fragment 2. fragment 화 되었다.

Example 7.15 Fragmentation

  • image-20230326212000910 - offset :100 - ->>>> first byte = 100 * 8 byte = 800 byte

Example 7.16

  1. offset : 100 -> first 800 byte
  2. HLEN : 5 -> header 20byte
  3. total Length 100 -> 100byte
  4. payload 100 (3번) byte - 20 (2번) byte = 80byte

따라서 800 ~ 879byte 이다.

image-20230326212113153


7.14 Security of IPv4 Datagrams 보안의 3가지

image-20230326213918759

  1. Packet Sniffing (냄새를 맡다, 찾아내다)
    1. Intercept a packet and copy of it :
      1. 패캣을 가로채서 복사한다.
    2. Passive attack 수동적인 공격
      1. 조작하지 않고 가로채고 , copy 하는 것,
      2. 복사해서 다시보내고, 다시 해석
    3. Difficult to detect 찾아내기 어렵다
    4. 해결법 -> encryption 암호화
  2. Packet Modification 패캣 조작
    1. 중간에 있는 놈이 가로채고, 조작해서 은행에 돈을 보낸다(제 3자의 돈이체)
    2. Intercept a packet and modify it
      • 가로채고, 조작한다.
    3. contents change of the packet
      • 내용변경 , 무결점 (서명)
    4. Detect using a data integrity mechanism
      • 만약에 누가 정보를 조작하면 찾아 낼수 있다 -> 조작 검출이 쉽다.
  3. IP Spoofing 놀리다, 조롱하다
    1. Masquerade as somebody , create IP packet
      • 다른사람으로 변장하고, IP packet을 만든다.
      • 다른사람인것 처럼 보내서 인증을 하게 만들다
    2. result -> authentication 인증을 하게 만든다.

7.14.1 IPSec 보안을 위한 계층

image-20230326214729934

  1. IPSec은 보안을 위한 특별한 계층
    1. attack을 보호하기 위해
    2. Connection-oriented service 사용 (data의 앞뒤 관계가 있는)
      1. connectionless XX
    3. Packet encryption 암호
    4. Data integrity 무결성: 조작할때 찾는 기능
    5. Origin authentication 인증

7.15 checksum 의 예시

image-20230326203219950

18.4.5 NAT : short term solution 중하나이다.

  1. Network Address Translation
  2. private addresses 을 사용하여 IP부족을 줄일수있다.
  3. image-20230326142436882

image-20230326142507787

18.4.5.1 NAT

  1. IP주소가 왜 있어야 되는가?
    1. 연결을 을 위해서
    2. 디바이스 구분을 위해
  2. 그런데 외부에서 보았을때 구분되는 IP주소 일 필요가 있는가?
    1. 없다.
    2. 외부와 동일한 내부IP 주소를 사용해도된다.
  3. 라우터만이 다른 디바이스를 할당해주면 된다.
    1. 라우터만이 외부와 내부의 IP을 구별해주면 된다.
  4. 라우터 문을 나갈때 (외부)는 전셰계적으로 유니크하고 구분되는 IP주소가 되어야한다.
    1. NAT 기능을 수행 할수 있으면 IP을 찾아 갈수 있다.

18.4.5.2 NAT

  1. 네트워크는 모두 라우터가 관리한다.
  2. 라우터를 통해 집밖으로 났다가 들어온다.
    1. 이것을 라우터가 관리 출입문 역할을 하는 것
    2. 라우터가 NAT의 기능을 수행할 수 있으면 IP주소를 찾아갈 수 있다.
  3. IP주소가 왜있어야 되는가
    1. 연결을 위해
    2. 디바이스 구부을 위해
  4. 이런 사설 IP주소는 외부에서 구분이 가능한가
    1. 라우터면 분간이 가능하다
    2. 외부에 나갈때 IP주소는 전세계적으로 유니크하고 구분되는 IP주소가 되어야한다.
  5. 안에서 사용하는건 사설 아이피이다.
    1. 문밖으로 나갈때는 유니크한
      1. 인정을 받을 수 있는 IP로 변경해야한다.

18.4.5.3 NAT 그림

image-20230326143854502

*장점 *

  1. 밖에 IP중복을 신경안쓰고 사용가능
  2. 절약가능

*단점 *

  1. IP주소가 한개 밖에 없으면 (외부 중복이 안되는 IP가)
  2. Private 영역 IP가 한개만 나갈수 있다.

밖에는 GLOBAL 안에는 Private IP 이다.

7.4.2 Four Related Protocols

-