네트워크의 기준! 네트워크 모델

Dorito·2022년 9월 20일
0

네트워크

목록 보기
4/7
  • 네트워크 데이터 단위

  • ip header (packet)

MTU는 유통의 최대크기이고 Total length는 패킷의 길이.
이 길이가 MTU를 넘으면 단편화가 발생 → 실제로는 data 값이 1500바이트까지 데이터 잘라서 씀 (L2 이더넷때문)
원문 출처

Version 필드 (4bit): TCP/IP 제품은 IP v4를 사용한다.
Header Length 필드(4bit): IP 헤드의 길이를 32비트 단위로 나타낸다. 대부분의 IP 헤더의 길이는 20바이트. 필드 값은 거의 항상 5다 (5 * 32 = 160bit or 20Byte)
Type-of-Service Flags: 서비스의 우선 순위를 제공한다.

Total Packet Length 필드 (16bit); 전체 IP 패킷의 길이를 바이트 단위로 나타낸다.
Fragment identifier 필드 (16bit); 분열이 발생한 경우, 조각을 다시 결합하기 원래의 데이터를 식별하기 위해서 사용한다. (Fragment는 최대한 지양하기 위해서 3 way handshake 때 MSS 조절함)
Fragmentation Flags 필드 (3bit): 처음 1bit는 항상 0으로 설정, 나머지 2비트의 용도는 다음과 같다.
1. May Fragment : IP 라우터에 의해 분열되는 여부를 나타낸다.
플래그 0 - 분열 가능 1 - 분열 방지
2. More Fragments : 원래 데이터의 분열된 조각이 더 있는지 여부 판단.    
플래그 0 - 마지막 조각, 기본값 1- 조각이 더 있음

Fragmentation Offset 필드 (13bit); 8바이트 오프셋으로 조각에 저장된 원래 데이터의 바이트 범위를 나타낸다.
Time-to-live 필드(8bit): 데이터을 전달할 수 없는 것으로 판단되어 소멸되기 이전에 데이터가 이동할 수 있는 단계의 수를 나타낸다.
1에서 255사이의 값을 지정하며 라우터들은 패킷을 전달 할 때마다 이 값을 하나씩 감소시킨다.
루프 ip(127.0.0.1)로 핑 찍어보니 mac os는 64번이다.
https://subinsb.com/default-device-ttl-values/ 참고하면 재밌음!

Protocol Identifier 필드(8bit): 상위계층인 L4가 무슨 프로토콜이냐 표현함
1 - ICMP, 2- IGMP, 6 - TCP, 17 - UDPHeader

Header Checksum: 전송오류 체크
Source IP Address 필드 (32bit): 출발지 IP주소

Destination IP Address 필드 (32bit): 목적지 IP 주소

Options(선택적) 필드: 특별한 처리 옵션 .. 주로 없음

  • Wireshark의 내부 구조와 작동 원리

WireSark는 byPass만 하는 센서 (low data 수집)
-> Analyzer를 통해서 어떤 통신이 이루어져있는지 디코딩함

(참고: SSL 적용한 HTTPS ~ L7 단계의 소켓에서는 L7프록시 사용해서 봄)

npCap이라는 Sensor로 받은 패킷을 Wireshark에서 분석
헤더는 뭐 대충 구조체 정의해두고 파일에서 ip헤더 20바이트 읽어보고 헤더 사이즈 읽고 20바이트보다 더 크면 추가로 가져오면 되는 것임
그걸 UI로 보여주면서 뭐 이것저것 분석할 수 있는 편리한 기능들을 엮어준게 Wireshark

0개의 댓글