ARP 정의
* 수신측 IP 주소를 알고 있지만 MAC 주소를 모를 때 사용하는 프로토콜이다.
ARP 패킷 캡처
Source -> Destination (Broadcast 전송)
Destination -> Source
ARP 패킷 구조
* Request
- Hardware type : Ethernet (1)
- Protocol type : IPv4 (0x0800)
- Hardware size : 6
- Protocol size : 4
- Opcode : request (1)
- Sender MAC address : InelCor_d3:a6:b7 (34:f6:4b:d3:a6:b7)
- Sender IP address : 192.168.0.43
- Target MAC address : 00:00:00_00:00:00 (00:00:00:00:00:00)
- Target IP address : 192.168.0.42
* Reply
- Hardware type : Ethernet
- Protocol type : IPv4 (0x0800)
- Hardware size : 6
- Protocol size : 4
- Opcode : reply (2)
- Sender MAC address : InelCor_ab:ed:ed (b4:b6:76:ab:ed:ed)
- Sender IP address : 192.168.0.42
- Target MAC address : IntelCor_d3:a6:b7 (34:f6:4b:d3:a6:b7)
- Target IP address : 192.168.0.43
ARP 패킷 캡처 설명
* Hardware type
- 사용 중인 MAC 주소나 데이터 링크 유형 / 물리 주소 길이를 정의하는데 사용되며, 여분의 Hardware Length 필드를 생성한다. (Hardware type의 종류는 다양하다.) Hardware type (1)은 Ethernet (10Mb)에 할당된 것을 의미한다.
* Protocol Type
- 사용 중인 프로토콜 주소 유형을 정의하며, 이더넷 프레임 구조에 사용되는 표준 프로토콜 ID 값을 사용한다. 그리고 Hardware Type과 같이 여분의 Protocol Length 필드를 생성한다.
* Hardware size
- 해당 패킷에 사용되는 MAC 주소의 길이를 정의하며, 단위는 Byte이다. Hardware Length의 값은 Hardware type에 의해 결정되기 때문에 여분의 필드이다.
* Protocol size
-패킷에 사용되는 프로토콜 주소의 길이를 정의하며, 단위는 Byte이다. Protocol Length의 값은 Protocol Type에 의해 결정되기 때문에 여분의 필드이다.
* Opcode
- ARP Request / Reply 또는 RARP Request / Reply 패킷인지를 정의한다. Opcode (1)는 ARP Request, Opcode (2)는 ARP Reply이다.
* Sender MAC address
- ARP 요청과 응답을 전송하는 장치의 MAC 주소를 정의한다.
* Sender IP address
- ARP 요청과 응답을 전송하는 장치의 IP 주소를 정의한다.
* Target MAC address
- 요구되는 대상의 MAC 주소를 정의한다. ARP Request 패킷의 경우 일반적으로 0으로 표시되며, ARP Reply 경우 ARP Request 패킷을 전송하는 장치의 MAC 주소를 표시한다.
* Target IP address
- 요구되는 대상의 IP 주소를 정의한다. ARP Request 패킷의 경우 질의할 IP 주소가 표시되며, ARP Request 패킷을 전송할 IP 주소를 표시한다.
ICMP 정의
* TCP/IP를 위해 제어, 에러보고, 정보 제공 기능을 수행하는 메시지를 보낸다.
ICMP 패킷 캡처
ICMP 패킷 구조
* Type : 8
* Code : 0
* Checksum : 0x4d56 [correct]
* Message 1 : Data
* Message 2 : 66………….
ICMP 패킷 의미
* Type
- IMCP의 메시지를 구별한다.
* Code
- 메시지 내용에 대한 추가 정보이다.(Type에 대한 상세 정보)
* Chercksum
- ICMP의 값이 변조 여부를 확인한다.
* Message1,2
- Type에 따라 내용이 가변적으로 들어가는 내용이다.
TCP 정의
* 컴퓨터가 다른 컴퓨터와 통신하기 위한 프로토콜로 신뢰성이 높으며, 다른 통신 프로토콜엔 UDP가 있다.
TCP 패킷 캡처
TCP 패킷 구조
* Source Port : 60534
*Destination Port : 2186
* Sequene Number : 0 (relative sequence number)
* Ackknowledg Number : o
* Header Length : 32 bytes
* Reserved : 0
* Flags : 0x002 (SYN)
* Windows Size : 64240
* Checksum : 0xb82e
* Urgent Point : 0
TCP 패킷 캡처 설명
* Source port
- 패킷을 송신하는 시스템의 포트번호를 나타낸다. 클라이언트의 경우 예약된 0-1023의 well-known 포토번호를 제외한 번호를 임의로 생성하고 서버의 경우 일반적인 서비스 제공 시 well-known한 포트를 사용한다. * http(80), FTP(20,21)
* Destination Port
- 패킷을 수신할 시스템의 포트번호를 나타낸다.
* Sequence Number
- 세그먼트(4계층 패킷) 데이터의 순서 번호를 표기한다.
* Acknowledge
- 상대방으로부터 수신할 데이터의 바로 다음에 수신할 데이터 순서 번호를 나타낸다. Sequence Number의 확인 응답으로 데이터 전송자에게 패킷을 잘 받았으니 그 다음 패킷을 송신하라는 의미로 사용된다.
* Header Length
- TCP 헤더의 전체 길이를 byte 단위로 표현한다.
* Reserved
- 미래를 위해 예약된 필드로 항상 0으로 설정된다.
* Flags
- CWR : 송신자가 자신의 윈도우 사이즈를 줄인다
- ECE : 혼잡 감지 시 수신자가 ECE를 설정하여 송신자에게 알린다.
- URG : Urgent Point 필드와 함께 사용되고 플래그 설정 시 TCP는 해당 세그먼트를 전송 큐의 제일 앞으로 보낸다.
- ACK : SYN에 대한 확인의 의미이다. 3Way-Handshaking에서의 SYN가 reset을 제외한 모든 세그먼트에 ACK가 설정된다.
- PSH : 일반적으로 모든 데이터를 전송하고 마지막에 보내는 신호로 수신측은 데이터를 즉시 전송하라는 의미이다.
- RST : 송신자가 유효하지 않은 연결을 시도할 때 거부하는데 이용되고 또한 통신의 연결 및 종료를 정상적으로 할 수 없을 때 사용된다.
- SYN : 통신 시작 시 연결을 요청하고 ISN을 교환한다.
- FIN : 데이터 전송을 종료한다.
* Windows Size
- 송신 시스템에서 자신이 수용하는 버퍼의 크기를 byte 단위로 나타낸다. 통신하는 송수신자는 해당 필드를 통해 수신 사이즈를 계속 변경한다.
* Checksum
- 데이터가 전송 중에 손실되지 않고 원본과 동일한지 검사한다.
* Urgent Point
- Urgent flag 설정 시 urgent 데이터의 마지막 byte의 일련번호를 Urgent Point 필드에 저장한다. 해당 부분까지 긴급하게 처리를 요구한다는 의미이다.
DHCP 정의
* 호스트의 IP 주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜이다.
DHCP 패킷 캡처
DHCP 패킷 구조
* Opcode : Boot Reply (2)
* Hardware type : ethernet (0x01)
* Hardware address length : 6
* Hops : 0
* Transacation ID : 0x08026a80
* Boot flags : 0x0000 (unicast)
* Client address : 0.0.0.0
* Offerd address : 192.168.0.43
DHCP 패킷 캡처 설명
* Discover
- Client가 브로드캐스트를 통해 DHCP 서버를 찾는 과정이다.
* Offer
- DHCP Server가 지정한 IP주소를 사용할 것이냐고 제안하는 과정이며 메시지에는 클라이언트의 MAC 주소와 서버가 제공하는 IP 주소, 서브넷마스크, 임대 기간 및 쿠폰을 제공하는 DHCP 서버의 IP 주소가 포함된다.
* Request
- Offer에 대한 응답을 한다.
* Ack
- DHCP Server가 클라이언트로부터 Request를 받으면 ACK 패킷을 보낸다.
수정이 필요하거나 궁금한 점 있으시면 댓글 달아주세요. 글 읽어주셔서 감사합니다. :D
'introduceThing > Network Information' 카테고리의 다른 글
[Network] HTTP (2) | 2020.05.02 |
---|---|
[Network] FTP (11) | 2020.05.01 |
[Database] Linux - Windows tcpdump, 파일 전송 방법 (2) | 2020.04.25 |
[Network] VLAN (2) | 2020.04.23 |
[Network] IEEE 802.1q와 Cisco ISL (2) | 2020.04.22 |