네트워크(4)

김형선·2023년 8월 31일

네트워크

목록 보기
4/6

IP (Internet Protocol) 패킷의 헤더에는 다양한 필드가 있으며, 이들 각각은 중요한 역할을 합니다. 여기서는 몇 가지 주요 필드에 대해 설명하겠습니다:

  • Version (버전): IP 프로토콜의 버전을 나타냅니다. 현재 널리 사용되는 버전은 IPv4와 IPv6입니다.
  • IHL (Internet Header Length): 헤더 길이를 나타내며, 이를 통해 데이터 부분이 어디에서 시작하는지 알 수 있습니다.
  • Type of Service (서비스 유형) / Differentiated Services Code Point (DSCP) and Explicit Congestion Notification (ECN): 이 필드들은 패킷 처리 방식을 제어합니다.
  • Total Length: 전체 IP 패킷의 길이를 나타냅니다(헤더와 데이터 모두).
  • Identification, Flags, Fragment Offset: 이들은 IP 패킷 분할과 재조립에 관련된 정보를 제공합니다.
  • Time to Live (TTL): 이 필드는 패킷이 네트워크 상에서 존재할 수 있는 최대 시간 또는 "hop" 수를 제한합니다.
  • Protocol: 이 필드는 사용된 상위 레벨 프로토콜(예: TCP, UDP, ICMP 등)을 식별합니다.
  • Header Checksum: 헤더의 오류 검사 합계입니다. 수신 측에서는 이 값을 사용하여 헤더의 오류를 검출합니다.
  • Source Address and Destination Address: 송신자와 수신자의 IP 주소입니다.
  • Options: 선택적인 추가 정보가 들어갑니다(모든 패킷에 포함되지 않음).
    위와 같은 정보들을 담고 있는 IP 프로토콜 구조는 인터넷상에서 데이터가 올바르게 전송될 수 있도록 하는 데 매우 중요한 역할을 합니다.

Wireshark

패킷캡쳐 , 모니터링 , 네트워크 정보 수집

  • tcpdump (CLI)
  • wireshark (GUI, CLI - Tshark)
  • wildpacket
    disk내에 패킷 data가 있으면 해석을 해줌.
    실시간으로 NIC에 패킷 들어오고 나가는 정보를 모니터링
    라이브러리 필요함. libpcap, winpcap, npcap, airpcap

IP주소 할당을 하고 IP 통신 테스트를 할 때.
ICMP 프로토콜 utility : ping, traceroute(tracert)경로추적
인터넷이 안될 때, 확인하기
1) cable 확인
2) IP주소, sm 같은 시스템내에서 통신
arp -a
3) gateway에게 ip ping test
4) 외부로 ping test ex) ping 8.8.8.8
5) DNS 서비스 확인 : nslookup ,host, dig
6) 웹브라우저에 프락시 설정, URL 오타\

gateway에게 ip ping test를 먼저 해보겠다

내 IPv4 주소는 192.168.0.222이고 기본 게이트웨이 주소가 192.168.0.1인 것 확인.

Wireshark에서 이더넷2 눌러서 들어간다.

icmp(internet control message protocol)만 필터링한다.

내 IPv4 주소는 192.168.0.222이고 기본 게이트웨이인 192.168.0.1로 ping을 보내보겠다.

그러면 Wireshark에 4번의 request와 reply가 캡쳐된다.

Stop capturing packets를 하고 바탕화면에 저장하고 들어가보면 맨 왼쪽의 번호가 보기 좋게 바뀐 것 알 수 있음.

추가 조건으로 더 필터링할 수도 있다.

구글에 핑 보내보려한다. 8.8.8.8도 되고 www.google.com도 된다.

이렇게 뜬다.

옆사람한테 핑 보내고 받아보려해서 방화벽 관련해서 설정 좀 해야한다. 인바운드는 통신이 들어오는 것이고 아웃바운드는 나가는 것인데 다음 사진을 보면 인바운드 연결을 차단해둔걸 알 수 있다.

여기서 개인/공용 부분 허용으로 바꿔준다.

옆사람 IPv4주소는 192.168.0.225이고 나는 192.168.0.222이다.

nslookup은 네트워크 관리 명령어로서, DNS(Domain Name System)를 통해 호스트 이름을 IP 주소로 변환하거나 그 반대의 작업을 수행한다.


UDP, TCP 프로토콜구조에 사용하는 Port Number은 16bit로 구성된다.
그래서 0~65535까지의 범위를 가진다.

TCP 정확하게. 패킷 데이터 손실 시에 재요청한다.
UDP는 걍 우선 보냄 신속하게.

  1. Well-Known Ports (잘 알려진 포트): 0-1023
    이 범위의 포트 번호는 특정한 서비스를 위해 IANA(Internet Assigned Numbers Authority)에 의해 예약되어 있습니다. 예를 들어, HTTP 서비스는 포트 80을, HTTPS는 포트 443을 사용합니다.

  2. Registered Ports (등록된 포트): 1024-49151
    이 범위의 포트 번호는 소프트웨어 애플리케이션에 의해 일반적으로 사용됩니다. IANA에 등록되어 있으며, 특정 애플리케이션들이 기본적으로 사용하는 포트들이 여기에 속합니다.

  3. Dynamic or Private Ports (동적 또는 개인 포트): 49152-65535
    이 범위의 포트 번호는 개인적인 또는 동적인 사용을 위해 남겨져 있습니다. 시스템에서 임시적으로 할당하거나 프로그램에서 동적으로 선택하여 사용할 수 있습니다.


ICMP (Internet Control Message Protocol)
(IP가 신뢰성 보장하진 않아서 ping 같은걸로 확인. 크게 Error reporting, Query로 구성.)
는 인터넷 프로토콜 스택의 핵심 구성요소로, 주로 네트워크 노드 간에 오류 메시지를 전달하거나 네트워크 상태 정보를 질의하는데 사용됩니다. ICMP는 IP 패킷 안에 캡슐화되어 전송됩니다.
Error Reporting (오류 보고):
ICMP는 네트워크 통신 중 발생한 다양한 오류를 보고하는데 사용됩니다.
예를 들어, "Destination Unreachable" 메시지는 목적지로 패킷을 전달할 수 없을 때 발생합니다. 이것은 목적지 호스트가 존재하지 않거나, 목적지 호스트까지의 경로가 존재하지 않을 때 발생할 수 있습니다.
또 다른 예로 "Time Exceeded" 메시지는 패킷이 너무 오래 동안 라우팅되어 TTL(Time to Live) 값이 0이 되었음을 알립니다.
Query:
ICMP는 호스트나 라우터에 대한 정보를 질의하는데도 사용됩니다.
가장 대표적인 예가 "Echo Request"와 "Echo Reply" 메시지입니다. 이들은 일반적으로 ping 명령에서 사용되며, 특정 호스트가 네트워크상에서 활성 상태인지 확인하기 위해 사용됩니다.
ICMP는 이러한 기능들을 통해 인터넷 프로토콜 스택이 정확하고 효율적으로 작동할 수 있도록 돕습니다.

0개의 댓글