카테고리 없음

3/26 네트워크 정리

from-alien 2025. 3. 26. 18:04

ip_v_4_헤더 구조 출처 : https://nmap.org/book/tcpip-ref.html

 

ip header의 길이는?
ip (ihl)헤더는 4비트-> 총 ip_4 헤더의 크기 20바이트 

ip header 구조상 필요한 어떤 정보들을 포함 하는가 ?>
필드에 들어가는 값
version(4비트) : 아이피 버전이 들어감

Header Length 4비트 : 아이피 헤더의 길이를 32비트 단위로 나타냄

Type-of-service flags : 서비스의 우선 순위 번호별
0 : 보통 -> 보통의 데이터로 취급, 대부분의 ip 데이터는 이쪽에 속함
1: 최소화 -> ip가 가장 비용이 적게 드는 경로를 통해 패킷을 라우트 할 것을 요구하는 경우
2:신뢰성 최대화 -> ip가 가장 신뢰성 있는 네트워크를 통해 패킷을 라우팅할 것을 요구 
4: 처리량 최대화 -> ip가 가장 신뢰성 있는 네트워크를 통해 패킷을 라우팅할 것을 요구 할떄
8:지연 최소화 -> ip가 보통 데이터 보다 더 신속한 패킷의 라우트를 요구 하는 경우 
15:보안 최대화 -> ip가 가 가장 안전한 경로를 통해 패킷을 라우트를 요구 할 때 

토탈  length -> 상위 계층에서 data + 헤더 받은 값에서 총 바이트 크기 (프레그먼트가 됐으면 바이트 단위로 계산)

프레그먼트 offset(13비트) : 데이터를 담을 양 바이트 담김 첫번째 수로 표기

 

*여기서 프레그먼트의 예시를 들면*

5000바이트의 크기를 한번에 보낸다 치면 MTU는 1500이다.

MTU는 데이터링크 계층으로 보낼 최대 바이트 수 

IP헤더의 크기는 20 ~60바이트이다. 

최소 IP 헤더가 20바이트 이면 ....... 상위 계층으로 부터 1480바이트를 받아야 한다.

 

PING을 치면 커맨드창에 5000바이트를 한번에 보내는 명령어를 치고

보내면 데이터를    0~1479 ip flag는 M=1 , 1480~2959(1480 바이트)  flag는 M=1  , 2960~4440(1480바이트)/  ip flag는 M=1  를 보내고 ICMP는 Frag m=0, d=0 나머지 바이트

fragement offset의 순서 = 0         

fragement offset의 순서 = 1480    

fragement offset의 순서 = 2960

fragement offset의 순서 = 4440

 

/total legnth = 1500

/total legnth = 1500

/total legnth = 1500

나머지 500

 

4개의 정보를 만들고 조각으로 나눠서 fragmentaion을 해서 아래 계층으로 보내고 추후 fcs, 데이터링크 계층에서 헤더 붙고 해서 1514바이트됨 -> 도착지에서는 프레그먼트 아이디를 보고 다시 패킷을 재조립

 

프레그먼트 아이덴티피파이어(16): 데이터가 프래그먼트 되었을 때 조각을 다시 결합기 위해서 목적지에서 할려고 식별 용도
 
프레그먼트 플래그(3비트) : 플래그 0은 false, 플래그 1은 true 라고 생각 
ip flags x는 예약된 flag
ip flags D는 프레그먼트 안함
ip flags m은 더 프레그먼트화 해야함 

TTL(8비트) : 데이터를 전달 할 수 없는 것으로 판단되어 소멸되기 이전의 데이터가 이동할 수 있는
단계수0이 되면 라우터는 패킷 버림 

Protocol identifier 8bits :상위 계층의 프로토몰 tcp, udp, icmp, igmp등 적어 놓음

header checksum(16비트)
ip 헤더의 체크섬을 저장 

src ip address (32bits) 출발지 ip주소
dst ip address (32bits) 출발지 ip주소

---------------------------------------------------------------------------------------------------------------------------------------------------

 

 

ip를 전송하다가 여러가지 이유로 라우터가 패킷을 drop한다
에러를 알려주는 프로토콜은?
->icmp

 

icmp프로토콜 가장 많은 에러를 발생되는 type의 값과 의미 

destination unreachable, time exceeded, redirect, source quench 

 

출처 : https://nmap.org/book/tcpip-ref.html

 

0 : 에코 응답

3 : 수신처 도달 불가능    

4 : 발신 제한

5 : 라우트 변경

8 : 에코 요구

11 : 시간 초과

12 : 파라미터 불량

13 : 타임스탬프 요구

14 : 타임스탬프 응답

15 : 정보 요구

16 : 정보 응답

17 : 주소 마스크 요구

18 : 주소 마스크 응답

--------------------------------------------------주요 icmp 에러 응답 메시지 

현재 RFC 6335 3개로 분류 <-포트의 번호 번위로 클라이언트 및 서버를 구분한다.
System port 1~1023 : 서버용 포트
user port (1,024~49,151) :기업에서 주로 사용 레지스트리 / 서버용 포트(업체마다 다름)
dynamic port  (private port) : 49,152~65,525 : 클라이언트 포트 라고도 불림

--------------------------------------------------------------------------------------------------------------------------------------

 

윈도우 운영체제에서 tcp upd 세션 정보를 확인하는 명령어는>?netstat -na

 

icmp 프로토콜로 사용되는 os상의 유틸리티 명령어는 ? => ping? , tracert

------------------------------------------------------------------------------------------------------------------------------------

 

<사설아이피는 내부 인터넷은 상관 없는데 외부로 연결 할때는 공인 ip주소로 바꿔야한다 뭘로? NAT으로>
사설 ip 주소대역 
A class 10.x.x.x (사설일때) 10.0.0.0/8  10.0.0.0~10.255.255.255


B class 172.16~31.xx   172.16.0.0/12  172.16.0.0~172.31.255.255 

<B 클래스는 16개 있음 31-16=15 인데 총 16개 +1함> 
172는 8비트로 이루어져 있는데 16부터 31을 2진수로 바꾸면 앞에 4비트는 같음
그래서 서브넷 마스크는 12임 B클래스이지만 원래는 

C class 192.168.xx 192.168.0.0/16 192.168.0.0 ~192.168.255.255 

Class 예시 <-사설 ip 주소 c class
192.168.0.0/24 ~ 192.168.0.255
192.168.1.0/24~ 192.168.1.255
....192.168.255.0~192.168.255.255

--------------------------------------------------------------------------------------------------------------------------------------------

아래는 ip a b c d e 클래스 범위

클래스  십진수  이진수
A 1~127 (0.0.0.0 ~ 127.255.255.255) 0XXX XXXX
B 128~191(128.0.0.0 ~ 191.255.255.255) 10XX XXXX
C 192~223 (192.0.0.0 ~ 233.255.255.255) 110X XXXX
D 224~239 1110 XXXX
E 240~254 1111 XXXX
     

D E 특수용도 E는 실험실 연구용