반응형

네트워크 인터페이스 계층
네트워크 인터페이스 계층![]() 1. Preamble(동기화): 이제 데이터 시작한다라고 신호를 맞춤 2. DA /SA(주소): 목적지와 출발지의 MAC 주소 3. Type(상위 프로토콜 확인): IPv4인지 IPv6인지 구분(분석의 핵심) 4. DATA(가변): 페이로드: 실제 전송 내용(L3 패킷이 담김) 5. FCS(에러 검출): 전송 중 데이터가 깨졌는지 확인(다르면 폐기) Type의 대표적인 값들 1. 08 00: IPv4(가장 일반적인 인터넷 통신) - IP가 보냈다라는 뜻 2. 08 06: ARP(IP주소로 MAC 주소를 찾을 때 사용) 3. 86 DD: IPv6(차세대 인터넷 프로토콜) |
Network Layer 구조 IP
| 인터넷 계층 IP(Internet Protocol) 가장 대표적인 네트워크 계층의 프로토콜, 하위 계층의 서비스를 이요하여 두 노드간의 데이터 전송 경로를 확립해 주는 역할을 한다 IP주소를 총 32비트이며, 네트워크주소와 호스트 주소로 나뉜다 클래스별 차이 ![]() IP 헤더 ![]() * 가로로 4Byte씩 총 20Byte(DESTINATION IP ADDRESS 까지) 1. Version(4bit): IP의 버전 등을 명시함. 인터넷 프로토콜 버전으로 IPv4, Ipv6은 6임. 4비트로 0-15 비트까지 총 16개의 상태를 표현 2. Header Legnth(4bit): IP 프로토콜 헤더의 길이를 나타냄(Word 단위), 헤더의 길이가 가변적일 수 있어 바이트 단위로 계산해 확인 3. Type of Service(8bit): 데이터의 우선순위 등을 설정함. 현재는 거의 무시(사용 안함) 됨 * Type of Service에 값이 있어도 무시함 4. Total Lenghth(16bit): 헤더와 데이터를 합친 전체 패킷(데이터그램)의 길이 5. Identification(16bit): 큰 데이터로 쪼갰을 때(단편화), 원래 같은 데이터였다는 것을 알리기위한 일련번호 * 만약 데이터를 보내는데 데이터가 크다면 큰 데이터가 네트워크를 통과하기 위해 여러 조각(Fragment)로 쪼개진다. 이 조각들이 원래 하나의 데이터였다는 것을 증명하는 일련번호 이다 6. Flag(3bit): 데이터가 쪼개졌는지 여부를 알려줌 - 0 이면 쪼개지지 않은 원본 - 비트 값에 따라 뒤에 남은 조각이 더 있는지 확인함 7. Fragment Offset(13bit): 쪼개진 데이터가 전체의 어느 위치에 해당하는지 알려줌 * 더 쉽게 말해서 내 뒤에 나랑 같은 identification 이 있는지 없는지 알려주게 된다 8. TTL (8bit): 패킷의 '생존 시간'임. 라우터를 거칠 때마다 줄어들며, 0이 되면 패킷을 버려 길을 잃고 영원히 떠도는 것을 방지함 9. Protocol Type (8bit):상위 계층의 프로토콜(TCP, UDP 등) 종류를 알려줌 10. Header Checksum (16bit): 헤더 전달 과정에서 오류(깨짐)가 있는지 검사하며, 손상되었다면 즉시 폐기함 * 깨졌으면 그냥 버림 11. Source IP Address (32bit): 보내는 사람의 IP 주소 12. Destination IP Address (32bit): 받는 사람의 IP 주소 |
Ethernet 헤더 해석
| 70 5d cc 04 be b0 2c fd a1 72 a8 d4 08 06 00 01 08 00 06 04 00 01 2c fd a1 72 a8 d4 c0 a8 0a 03 70 5d cc 04 be b0 c0 a8 0a 01 1. 이더넷 헤더만 추출하기 때문에 14바이트만 해석 하면 된다 2. Ehternet 헤더 해석 - Dest MAC Add: 70:5d:cc:04:be:b0 (패킷을 수신하는 장치의 물리적 주소, Destination) - Sour MAC Add: 2c:fd:a1:72:a8:d4 (패킷을 전송하는 장치의 물리적 주소, Source) - Type: 08 06(상위 계층의 프로토콜 종류, ARP) |
4 바이트 = 1워드 , 1 바이트 = 8 비트
ARP 핵심 요약
| ARP 프레임(Frame)을 생성하기 위해 상대방의 IP 주소는 알고 있으나 MAC 주소를 모를 때, 이를 동적으로 알아내기 위해 ARP를 이용 1. ARP 사용 배경(주소 정보의 불일치) 클라이언트가 서버에 접속할 때 포트 번호와 IP 주소는 제공되지만, 실제 데이터를 전송하기 위한 물리적 주소(MAC Address)는 제공되지 않음 2. 특징(통신 범위) ARP는 동일한 네트워크 영역인 브로드캐스트 도메인 안에서만 데이터를 주고받으며 동작함 3. 계층 32bit IP 주소를 48bit 이더넷 주소로 변환함 * 이 변환은 동적(Dynamic)으로 이뤄짐 4. 작동 프로세스 1) ARP 요청(Request) 목적지 MAC 주소에 **브로드캐스트(Broadcast, ff:ff:ff:ff:ff:ff)**를 적어 네트워크 전체에 전송함 2) ARP 응답(Reply) 목적지 호스트가 자신의 MAC 주소를 담아 요청자에게 **유니캐스트(Unicast)**로 응답함 3) 결과 수신된 응답을 이용해 ARP Cache 목록에 해당 호스트의 MAC 주소를 저장하고 이후 통신을 계속함 5. ARP 패킷의 구분과 전송 방식 1) ARP 요청 (ARP Request) 서버의 MAC 주소를 알아내기 위해 **목적지 MAC 주소에 브로드캐스트(ff:ff:ff:ff:ff:ff)**를 적어 네트워크 전체에 전송함 2) ARP 응답 (ARP Reply) 자신의 IP임을 확인한 서버 호스트가 자신의 MAC 주소를 담아 클라이언트에게 다시 전달함 6. ARP 헤더 구조 1) H/W Type 하드웨어 주소 유형 (Ethernet : 1) 2) Protocol Type 네트워크 레이어 프로토콜 정의 (IPv4 : 0x0800) 3) H/W Length 하드웨어 주소 길이 (6byte) 4) Protocol Length 프로토콜 주소 길이 (4byte) 5) OP (Operation Code) - 현재는 사용하지x 패킷의 유형 구분 (1: ARP 요청, 2: ARP 응답) 6) 주소 식별 필드 (실제 데이터) SA (Sender Address): 송신자의 MAC 주소(6 byte)와 IP 주소(4 byte) DA (Target Address): 목적지의 MAC 주소(6 byte)와 IP 주소(4 byte) |
IP 패킷 분석
| 해석: 현재 네트워크 통신이 어떤 상태인지 상황 파악을 하는 것 P == Version(4bit): 0100(4 : IPv4) 헤더길이(4bit) : 0101(5 word) TOS(1byte): 00 전체길이(2byte) : 00 e0 : 224 byte Identification(2byte) : 0a be : 2750 Flag(3bit): 000 : 절편화 없음 Fragment Offset(13bit) : 0000000000000 : 0 byte TTL(1byte) : 40 : 64 Protocol(1byte) : 06 (TCP) Header Checksum (2byte) : 99 59 : 1001100101011001 Source IP(4byte) : c0 a8 0a 7d (192.168.10.125) Destination IP(4byte) : c0 a8 0a 33 (192.168.10.51) IPv4 헤더 패킷 분석(P 데이터) P == 1. 기본 제어(Version&Lenghth) 1) Version(4bit): 0100(4 : IPv4) - 현재 4버전 인터넷 프로토콜 사용 중 2) 헤더길이(4bit) : 0101(5 word) - 헤더 길이: 20바이트(표준) 3) TOS(1byte): 00 전체길이(2byte) : 00 e0 : 224 byte - Total Length(224 byte): 헤더와 데이터를 합친 전체 패킷 크기 2. 단편화 관리(Identification & Flags) 1) Identification(2byte) : 0a be : 2750 - 이 패킷의 고유 번호. 만약 쪼개진다면 후속 조각들도 모두 이 번호를 가짐 2) Flag(3bit): 000 : 절편화 없음. MF(More Fragments)가 0 이므로 뒤에 올 후속 조각이 없는 "단일 패킷임" 3) Fragment Offset(13bit) : 0000000000000 : 0 byte - 데이터의 맨 앞부분을 나타냄 3. 전송 경로 및 상위 프로토콜 1) TTL(1byte) : 40 : 64 - 라우터를 최대 64개까지 통과 가능(생존 시간) 2) Protocol(1byte) : 06 (TCP) - 상위 계층에서 TCP 프로토콜을 사용함 3) Header Checksum (2byte) : 99 59 : 1001100101011001 - 헤더의 무결성 검증 값 4. 주소 정보(IP Address) 1) Source IP(4byte) : c0 a8 0a 7d (192.168.10.125) - 출발지 IP 2) Destination IP(4byte) : c0 a8 0a 33 (192.168.10.51) - 목적지 IP |
'Infra & Security Eng > Network & Security' 카테고리의 다른 글
| 서버 주요 포트 번호와 포트 스캔(Scan) 유형 총정리 (0) | 2026.03.09 |
|---|---|
| John the Ripper 설치, 패스워드 크랙, 크랙 해석 하기 (0) | 2026.03.09 |
| TCP 개념 정리 (seq, ack, 재전송, 흐름 제어, 혼잡 제어) (0) | 2026.02.19 |
| Go-Back-N의 신뢰성 보장: ACK 유실과 패킷 유실 시나리오 분석 (0) | 2026.02.12 |
| rdt 3.0 완벽 정리: 타이머(Timer)를 활용한 패킷 유실 해결과 신뢰적 전송의 완성 (0) | 2026.02.11 |


