1. 3 계층: 네트워크(Network)
- 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할
- 경로를 찾기 위해 사용되는 주소로 IP 사용
- 네트워크 대역 간에 신뢰성 있는 정보 전송
- 라우팅, 흐름 제어, 오류 제어 등을 수행
- 라우팅(Routing): 네트워크에서 경로를 선택하는 프로세스
- IP (Internet Protocol)
- 네트워크 계층에서 사용되는 프로토콜
- 장치 간 데이터 패킷을 전송하고 라우팅을 하는 데 사용
- 인터넷에 사용되는 기본 프로토콜
- 논리 주소인 IP 주소를 부여
- 전송 단위는 Packet 또는 Datagram이라고 함
- IPv4와 IPv6이 존재
- Version
- Internet Protocol의 버전을 나타내는 4 bit 크기의 필드
- IPv4와 IPv6이 존재
- IHL (Internet Header Length)
- IP 헤더의 길이를 나타내는 4 bit 크기의 필드
- 보통은 20 byte 크기이며, Options 필드에 따라 변동
- Word 단위로 헤더 길이를 표시
- TOS (Type of Service)
- 서비스의 우선순위를 제공하는 1 byte 크기의 필드
- 우선순위, 전달 지연, 처리량, 신뢰성을 설정 가능함
- Total Length
- IP 헤더와 실제 데이터의 크기를 모두 합친 크기를 나타내는 2 byte 필드
- Identification
- 보내려는 데이터에 단편화가 일어났을 경우, 단편화된 패킷을 구분하기 위한 일련번호
- 단편화 발생 시 조각을 다시 결합하기 위해 사용
- 2byte
- 단편화(Fragment): IP헤더의 Identifiaction과 IP Flag, Fragment Offset을 이용하여 패킷을 나누어 보내는 작업
- Flags
- 단편화에 대한 정보를 알려주기 위해서 사용되는 3 bit 필드
- 첫 번째 비트(x): 예비로 사용되며, 항상 0으로 세팅
- D (DF): 1 - 패킷이 목적지까지의 경로를 따라 라우터에 의해 단편화되지 않아야 함
- M (MF): 0 - 마지막 단편화 데이터, 1 - 단편화가 더 있음을 의미
- Fragmentation Offset
- 8 byte 단위로 표시하며, 단편화가 이루어지기 전 위치를 나타내는 13bit 필드
- 2300 byte 패킷을 1500 byte와 800 byte로 단편화 시 1번째 패킷과 offset은 0, 2번째 패킷 offset 100 (800/8)
- TTL (Time To Live)
- 패킷이 살아있는 시간을 지정하는 1byte 크기의 필드
- 시간은 몇 개의 라우터를 이동할 수 있는지에 대한 값
- 라우터를 지날 때마다 1씩 감소
- Protocol Identifier
- 상위 계층 프로토콜 (4 계층)을 의미하는 1byte 크기 필드
- 1: ICMP, 2:IGMP, 3:TCP, 17:UDP
- Header Checksum
- IP 헤더 내용이 바르게 교환되고 있는가를 점검
- 2byte
- Source address
- 발신지의 IP 주소로 4 byte 크기의 필드
- Destination address
- 수신지의 IP 주소 4 byte 크기의 필드
- Options
- TOS 필드처럼 특별한 처리 옵션을 정의 가능
- 보안기능, QoS, 라우팅 등
- Data (Payload)
- 상위 계층의 데이터에 따라 최대 65535 bytes의 크기
- 일반적으로 MTU 크기까지 가능
- MTU (Maximum Transmission Unit): 최대 전송 단위
- 단편화 (Fragment)
- 커다란 패킷을 나누어 보내는 작업
- IP 헤더의 Identification과 IP Flags, Fragment offset을 이용
- 패킷을 나눠 보내는 이유
- MTU (Maximum Transmission unit)라는 최대 전송 단위가 존재
- 2 계층의 데이터 링크에서 하나의 프레임 또는 패킷에 담아 운반 가능한 최대 크기를 의미
- Ethernet의 경우 기본 값이 1500 Byte
- Data Link(2 계층)에서 전송 가능한 크기가 있기 때문에 상위 계층인 네트워크 계층 (3 계층)에서 단편화를 이용해 패킷을 전송
- MTU확인: netsh interface ipv4 show interfaces 명령을 통해 MTU 확인 가능
- 사용하는 인터페이스의 이름은 Wi-Fi이며 해당 인터페이스의 MTU는 1500Byte로 설정되어 있는 것을 확인 가능
- MTU가 1500 Byte이며, 168 Byte의 데이터를 보낼 때 IP Header
- Total Length
- 패킷의 총길이는 168 Byte이므로 단편화 필요가 없음
- Identification: 식별 값은 111로 설정
- Flags: 0으로 설정되어 패킷이 단편화되어 있지 않다는 거을 의미
- Fragment Offset: 단편화된 패킷이 아니라 Offset은 0으로 설정
- Total Length
- MTU가 1500 Byte이며, 4000 Byte의 데이터를 보낼 때 IP Header
- 우측과 같은 패킷을 전송할 수 있을까? Total Length가 1500 Byte를 초과하여 전송하기 위해 단편화가 필요함
- 총패킷의 길이 : 4000 Byte
- IP Header 20 byte + Payload 3980 byte
- 단편화시켜야 하는 Payload: 3980 byte
- 첫 번째 단편: MTU 1500 Byte 크기
- IP Header 20 byte + 1480 byte
- Length : 1500 byte
- Flag: 1 (단편화되었고 뒤에 단편 된 패킷이 남아있음)
- Offset: 0 (원래 데이터에서의 시작 시점을 알려주는 정보, 첫 번째 단편)
- 남은 데이터: 2500 Byte
- 두 번째 단편: MTU 1500 Byte 크기
- IP Header 20 byte + Payload 1480 byte
- Length: 1500 byte
- Flag: 1
- Offset: 이전 단편들의 Payload / 8 1480(첫 번째 데이터 크기)/8 = 185
- 세 번째 단편: 남은 데이터
- IP Header 20 byte + Payload 1020 byte
- Length : 20 byte + (3980-1480-1480) byte 20 byte + 1020 byte
- Flag: 0
- Offset: 이전 단편들의 Payload/8 (1480+1480)/8 = 370
- IP주소
- IPv4는 8bit의 수 4개, 4byte
- IPv6은 16bit의 수 8개, 16byte
- IPv4 주소
- IP Header을 확인하면 source 및 Destination 주소가 4 byte임을 알 수 있음
- 모든 비트가 0일 때부터 모든 비트가 1일 떄까지 표현 가능한 범위
- 2의 32승 표현 가능
- 4 byte, 즉 32biy로 표현
- Dot-Decimal notation
- 점으로 구분된 십진수 표기법
- 10진수 문자열로 구성되며 각 옥텟을 점으로 구분한 표기법
- aaa.bbb.ccc.ddd와 같이 표기
- 비트열 아이피를 8 bit씩 온점을 사용하여 4그룹으로 나눔
- 컴퓨터가 IP를 처리할 때는 Dot-Decimal notation을 사용하지 않음
- 네트워크 부와 호스트부
- IP 주소는 어떤 네트워크의 호스트 (누구, 어떤 PC인지)를 식별하는 주소
- 호스트가 속한 네트워크 주소인 네트워크 부(Network ID)와 호스트 부(Host ID)로 구성
- Prefix로 표현하면 192.168.56.1/24와 같이 표기 가능
- 아래의 IP를 네트워크 부와 호스트 부는 어떻게 되며 Prefix 표기로 어떻게 가능?
- IP 주소: 182.168.50.139
- Network ID: 192.168.50
- Host ID: 139
- Prefix: 192.168.50.139/24
- IP클래스
- 과거에 각각의 네트워크 대역에 Class라는 개념을 도입해서 목적과 상황에 따라 IP를 분리
- A class, B class, C class, D class로 분류
- A class 1 ~ 126.xxx.xxxx.xxxx
- B class 128 ~ 192.aa.xxx.xxxxx 학교 등 중대 규모
- C class 192~223.aaa.bbb.xxx 소규모 회사
- D class 224~239.aaa.bbb.xxx
- IP를 할당받을 때 사용할 수 없는 주소
- 특수 목적을 가진 IP주소
- 호스트 ID가 전부 1로 채워진 IP와 0으로 채워진 IP는 사용할 수 없음
- 호스트 ID가 전부 0인 IP
- 네트워크 주소를 의미하며 해당 네트워크를 대표하는 주소의 의미
- ex. 192.168.56.0
- 호스트 ID가 전부 1인 IP
- Broadcast 주소로 전체 네트워크에 데이터를 전송할 때 사용
- ex. 192.168.56.255
- 192.168.57.255로 데이터를 전송하면 192.168.56.0의 네트워크에 있는 모든 호스트가 데이터를 수신
- 특수 목적을 가진 IP주소
- 라우팅
- 네트워크에서 토인을 보낼 때 최적의 경로를 선택
- 출발지로부터 최종 목적지까지 논리적으로 주소가 부여된 패킷의 전달 과정
- 소프트웨어를 이용한 라우팅: 라우팅 테이블을 이용해 라우팅을 수행하는 방법
- 하드웨어를 이용한 라우팅: 라우터 장비를 사용하여 라우팅을 수행하는 방법
- cmd를 실행시킨 후 'route print -4를 입력하면 IPv4의 라우팅 테이블 확인
- 네트워크 대상에 0.0.0.0, 네트워크 마스크에 0.0.0.0이 입력되어 있는데 이는 모든 IP 패킷을 의미함
- 그리고 인터페이스 192.168.11.83을 확인할 수 있는데 이는 해당 인터페이스로 오는 모든 IP 패킷은 게이트웨이 192.168.11.254에 보내라는 의미를 가짐
- 라우터를 통해 패킷이 들어왔을 때, 라우터의 인터페이스로 수신한 패킷의 목적지 IP에 따라 라우터는 어떤 인터페이스를 통해 전송할지 결정
- 라우터는 네트워크 보안이나 Qos 기능
- 네트워크 계층에서 라우팅을 해주는 라우터는 서로 다른 네트워크 대역의 경로를 설정해 줘야 하기 때문에 연결된 네트워크의 수만큼 IP가 필요
'정보보안 (기술) > 네트워크' 카테고리의 다른 글
네트워크 6. 네트워크 계층과 프로토콜(5) (0) | 2024.07.07 |
---|---|
네트워크 5. 네트워크 계층과 프로토콜(4) Port, 3-way handshake (0) | 2024.07.07 |
네트워크 4. 네트워크 계층과 프로토콜(3) ARP (0) | 2024.07.07 |
네트워크 2. 네트워크 계층과 프로토콜 (0) | 2024.07.07 |
네트워크 1. 네트워크 기초 (0) | 2024.07.06 |