Packet 2

다원·2022년 12월 20일
0

패킷분석

패킷 수준의 정상적인 네트워크 트래픽이 어떻게 동작되는지 알아보고, 패킷 모니터링을 통해 Baseline 설정해두고 이후 패킷을 모아서 이상치를 판단

기본 패킷 분석

HTTP 통신 패킷


SYN>SYN,ACK> YCK 를 통해 TCP 3-Way handshake로 통신하였음을 확인 할 수 있음
SYN,ACK 응답에서 Seqense 번호가 0인 이유는 172.16.16.128이 요청한 SYN에 대한 응답이기에 시퀀스 번호가 0임

TCP 프로토콜을 통해 통신을 한 뒤 호스트가 GET 명령으로 홈페이지에 연결을 요청하여, 서버가 ACK 로 응답한 홈페이지 전송

호스트가 데이터를 잘 받았다고 전달하고, 서버가 HTTP 프로토콜로 전송을 확인

TCP HTTP 중 Follow TCP Stream 으로 들어가면
빨강색 클라이언트(요청자): 클라이언트의 정보를 확인 할 수 있음
파란색 호스트(응답자): 서버의 정보를 확인 할 수 있음 > 전송내용은 HTTPS로 전환되어있기 때문에 암호화 되어보여짐

  • 전송 데이터 패킷의 길이
    최대 크기는 1518Byte 이나 Header를 제외하면 1460으로 전송되고, 그 외에 작은 패킷은들은 통신을 위한 패킷

다운로드 느린 경우의 패킷

Time 항목을 보면 속도에 대한 판단을 할 수 있음

3,4사이의 Time과 4,5사이에 Time 차를 확인해보면 5번으로 넘어갈때 Time이 오래걸린 것을 확인 할 수 있음
172.16 IP주소가 193.136 주소를 가진 서버에게 홈페이지 요청하였으나
193.136 주소가 Reassembled 하여 패킷을 재조립하고 있음 > Time이 늘어남

  • Reassebled: 재조립/Retrancemision : 재전송
    TCP 전송 방식은 패킷 스위칭 방식을 사용
    패킷 스위칭 방식: 시퀀스 번호를 헤더에 붙여서 네트워크의 상태에 따라 유동적으로 데이터 전송, 목적지에서 재조립
    동기화 전송: 패킷의 순서대로 가는 것, 시리얼 연결(거리가 짧아야 함)

  • Packet Lengths
    패킷의 크기별로 점유율을 확인 할 수 있는데
    위 패킷 캡처 본에서는 1280 이상의 큰 패킷들은 전체 트래픽에서 66.43을 차지하고 있고, 다운로드와 업로드 게이트웨이 전송들에 대해서 확인 가능

  • 시그널의 크기
    TCP 54byte, IP 20byte, Ethernet 14byte를 일반적으로 가지고
    처리 시간이 오래걸릴 경우 데이터를 통신하고 있음을 확인 할 수 있음

데이터 그래프

  • Follow 그래프 - HTTP 연결
    :대부분 패킷 reassemble 부분에서 시간이 소요되는 것을 확인 할 수 있음

  • IO그래프 - 다운로드 느린 경우
    : 네트워크에서 데이터 처리량을 보는중

    평균 초당 6,70 정도의 패킷을 오고 가는 것을 확인 할 수 있음

  • RTT(Round Trip Time) - 다운로드 빠를 경우
    왕복 Time 시퀀스를 볼 수 있음
    0에 가까이 몰려 있을 수록 전송 속도가 더 좋다는 것을 알 수 있음

  • Throughput grap - 다운로드 빠를 경우
    전체적인 데이터 크기에 따라 확인 할 수 있음

전문가 정보

와이어 샤크에서 각 프로토콜에 대한 정밀 분석기는 해당 프로토콜을 사용해서 패킷 내의 특정 상태 사용자에게 경고를 주는 expert_info 정의

  • Chat: 통신에 대한 기본 정보
    • Window Update 두 호스트 간의 TCP 수신 크기(Window size) 크기가 변경
  • Note: 일부 비정상 패킷
    • TCP Retransmission 수신 시 패킷이 손실되었거나 전송 시간 내에 수신자로부터 ACK를 받지 못했을 때 송신자가 다시 데이터를 보내는 것
    • Duplicate ACK 어느 호스트가 예상하고 있었던 다음 패킷 순서번호를 받지 못했을 때 다시 확인 요청 하는 것
    • Zero Window Probe 데이터가 없는 크기가 제로인 패킷을 받으면 window 크기를 살펴보게 하는 것
    • Zero Window Probe ACK 데이터가 없는 크기가 제로인 패킷을 확인한 뒤 응답하는 것
    • Keep Alive ACK 호스트가 살아 있는지 확인하는 것
    • Winodw is Full 수신자의 TCP 버퍼(수신) 창이 가득 찬 것을 송신자에게 알리는 것, 송신자는 Window update를 통해서 다시 전송량 조절
  • Warn: 대부분 비정상 패킷
    • Previous Segment Lost 데이터 스트림에서 예상되는 순서번호가 없는 경우
      -> 패킷 손실이 있는 경우
    • ACKed Lost Packet: ACK 패킷을 받았는데 순서에 의한 승인된 패킷이 아닐 때 발생
    • Keep Alive 상대가 살아 있는 연결일 때 보임
    • Zero Window TCP 버퍼 창이 가득차서 새로운 데이터를 수신할 수 없다고 송신자에게 데이터 전송을 중지하는 요청
    • Out-of-Order 패킷이 잘못된 순서 번호를 수신한 경우 잘못된 순서 번호라고 탐지
    • Fast Retransmission Duplicate ACK 발생 시 20ms 이내에 재전송 된다는 의미, 클라이언트의 GET 요청 보내면 서버가 ACK 보내서 요청 요구를 잘 받았다고 보내는데 이것이 늦게 오면 Duplicate ACK가 여럿 발생하고 재전송을 하는 일이 생김
  • Error: 패킷이나 정밀 분석기 해석에서의 오류로 분

    Details: 상세하게 전송 내용을 확인 할 수 있음

특정 MAC 주소로 가는 패킷

스위치 장비는 각 포트에 연결된 모슨 호스트의 MAC 주소를 CAM(Content Addressable Memory) 테이블에 저장해두고 네트워크 상의 장비들을 상호 연결
스위치가 특정 MAC 주소로 가는 트래픽을 수신하면 도메인을 분할
호스트는 목적지 호스트의 MAC 주소를 모르면 먼저 자신의 캐시에 저장되어 있는 MAC 주소 목록을 보고 목적지를 찾음

ARP

  • ARP
    일반적인 ARP 프로토콜로 브로드캐스트를 요청하고 MAC 주소를 응답

  • gratuitous ARP
    네트워크 장비가 추가가 됐을 때 본인의 존재를 알리기 위한 패킷, 통신의목적이 아님으로 요청 패킷 하나 밖에 없음을 확인 할 수 있음

    Target MAC address 가 00000 ... 임을 확인할 수 있음
    해당 요청을 받은 장비들은 MAC 주소를 본인의 캐시메모리에 저장

TTL Source


TTL은 라우터를 지날 때 마다 감소하고 0이 되면 패킷을 폐기
PING 을 보낸 것은 10.10.0.3이고 캡처한 곳은 192.168.0.128

위의 것과 반대로 10.10.0.3에서 캡처 한 거고 192.168.0.128이 ping을 전송함
=> TTL은 라우터를 지나갈 때 감소하는 것으로 방향을 판단 할 수 있음

  • 데이터 내용을 확인 할 때

    문자를 확인 할 때 문자 앞에 abc~ 같이 의미 없는 문자열이 있는데
    bit 수를 맞추기 위해서 문자열을 추가 한 것으로 일종의 PAD 라고 생각하면 됨
    즉 위에 내용은 hi를 전송한 것을 확인 할 수 있음

IP 간편화

fragmented : 장비가 보낼 수 있는 최대 데이터 크기가 모두 다르므로 간편화로 맞추어야됨
Total Length MTU 1500 넘으면 단편화가 발생 -> frags set 되어있으면 더 보낼 데이터가 존잼함 을 확인 할 수 있음

no.2 의 internet protocol 정보를 보면

flag에 more fragment 가 확인됨을 알 수 있음
no.3을 열어보면 flag가 not set 임을 확인 할 수 있음 더이상 분할할 패킷이 없다는 의미

TCP 프로토콜 패킷

패킷을 전송할 때 사용되는 Source port
패킷이 전송되어 들어가는 Desination port
TCP 세그먼트에서 식별을 위해서 사용되는 번호로써 데이터 스트림의 일부가 누락되지 않게 하는 Sequence number,
상대로부터 기대되는 다음 패킷의 일련 번호인 Acknowledgment number

  • TCP 연결

    172.16의 호스트가 212 서버와 TCP로 연결을 하여 홈페이지를 전송 요청


    TCP 연결의 FIN이 뜨지 않고 바로 3-WAY 연결을 시도하는데 연결된 212 서버를 통해서 67서버로 TCP 연결을 요청한 것
    IP 주소도 변경된 것을 확인 할 수 있음

    172-212로 연결할 때 slc-systemlog 2826

    172-67로 연결할 때 slc-systemlog 2827
    slc-systemlog 다이나믹 포트: 서버의 연결되었을 때 서버가 한가한 포트를 할당해서
    클라이언트가 사용하는 포트

    end point를 통해 접속 사이트를 확인 할 수 있음
profile
공부일지,

0개의 댓글