본문 바로가기
클라우드 아키텍처 설계 기초지식/01 네트워크 기초

네트워크 기초 (3) - Tracert 이해, 3계층 , 4계층

by Jasie 2018. 10. 17.
  • 3계층 프로토콜

- IPv4 프로토콜이란 무엇인가?

네트워크를 찾아가는 프로토콜, 20바이트


IPv4 프로토콜의 구조 - VERSION -IP 프로토콜의 버전


        - IHL -IP헤더의 길이, 일반적으로 2-바이트를 4로 나누어 표기


        - TTL -TIME TO LIVE로서 네트워크 상의 패킷의 무한루프를 방지하기 위해 라우터 하나를 넘어갈 때 마다 1씩 감소


         - 프로토콜  -빨리 분석할 수 있도록 상위 프로토콜이 무엇인지 알려줌


         - 헤더 체크썸-해더의 오류를 알아내기 위한 값


         - IDENTIFICATION- 조각화가 발생했을 때 각각의 조각들이 하나의 데이터였다라는 것을 구분하기 위한 ID값


         - IP Flags    -조각화가 발생했는지 안했는지, 조각화를 할 것인지 하지 않을 것인지 결정하는 값


          -Fragment offset - 조각화가 발생했을 때 각각의 조각들의 시작위치를 나타내는 값

(offset은 어떠한 기준으로부터 얼마나 떨어져 있느냐를 의미)



  • IP 헤더 캡쳐 실습

cmd에서 ping 8.8.8.8 명령어수행 해당 패킷 와이어샤크로 캡쳐 와이어샤크 필터 icmp 적용


  • 패킷 조각화

MTU는 ip 헤더를 포함한다


-패킷 전송시 (MTU=1500 만큼 잘라서 전송한다)



*tip : 패킷 조각화를 이용한 Dos 공격 종 : (TearDrop, Ping Of Death)


  • ICMP 프로토콜 통신을 확인하기 위해서 사용하는 프로토콜
  • ICMP 프로토콜 구조 - 타입 : 대분류     0(정상적인 응답) : 정상 동작한것     3(목적지로 도착 불가능) : 전송이 안됬거나 ,도착은 했지만 응답X     8(요청)     11(시간초과)     5(리다이렉트, 라이팅 테이블 수정) - 코드 - 체크썸 : 해당 패킷의 오류를 확인하기 위한 값 - 나머지


빅데이터 인공지능 openstack ssl 해킹




  • IP헤더와 ICMP 특징을 이용한 실습 (tracert 명령어)

cmd에서 tracert 168.126.63.1 실행

와이어샤크에서 icmp 필터로 확인


요청할 때 TTL 값을 1씩 증가시켜서 요청

TTL이 0이 되었을 때 해당 패킷을 처리한 라우터는 타입 11번의 icmp 패킷을 전송하여 본인이 해당 패킷을 버렸다고 알려준다.

보안상 알려주지 않는 시스템들도 존재(점점 늘어나는 추세)



  • 4계층

포트주소를 이용해서 통신, 오류 제어(신뢰성 유무), 특정 프로그램과 프로그램의 통신(웹 브 라우저 and 웹 서버)

 - 포트 주소

      2바이트  0~65535

   System Port : Well-Known Port, 0~1023  잘 알려진 주요 서비스를 제공하는 포트


FTP 20, 21 TCP

SSH 22

TELNET 23

SMTP 25

DNS 53 TCP, UDP

DHCP 67,68

TFTP 69 UDP

HTTP 80

HTTPS 443


   User Port : Registered Port, 1024 ~ 49151  어느정도 주요한 서비스들이 

                                                                                                     등록되어있는 포트


MS의 원격 데스크탑 3389

DB 서버(mysql) 3306


   Private Port : Dynamic port, 49152 ~ 65535 사용자들이 사용하는 포트


                                                    사용자 서버포트 80



netstat -ano :   네트워크 상태 및 프로토콜 통계를 표시하는 명령어




  • 4계층 프로토콜

TCP : 연결 지향형, 신뢰성 있는 통신 가능, 비연결 지향형에 비해서 속도가 떨어진다.

        연결 지향형 프로토콜, 신뢰성 있는 통신이 가능하게 해준다. 계속해서 물어보고 

        대답하는 과정을 통해서 신뢰성을 보장하고 서버와 클라이언트 사이의 통신을 동기화


  • TCP 프로토콜 구조

- 출발지 포트

      - 목적지 포트

      - Seq 번호 - TCP 패킷의 순서 번호

      - Ack 번호 -Seq 번호에 대한 응답 번호

      - 오프셋  - 헤더의 길이, 최대 15, offset * 4 =  실제 헤더의 크기

      - Reserved - 예약된 필드로써 사용하지 않는 곳

      - TCP Flags - 현대 패킷의 종류를 표시

      - URG - 긴급 BIT, 우선순위가 높은 데이터를 포함한 패킷

      - ACK - 승인 BIT, 승인의 뜻을 포함한 패킷

      -PSH - 밀어넣기 BIT, TOP Buffer가 일정 크기만큼 쌓여야 패킷을 추가 전송하는데 이를 생략하고 계속 데이터를 전송하게 함

-SYN - 동기화 BIT, Seq번호를 동기화하고 연결 수립을 요청한다는 패킷

- RST - 초기화 BIT, 데이터를 주고받는거에 문제가 발생했으니 서로의 연결을 초기화하겠다는 패킷

- FIN - 종료 BIT, 서버와 클라이언트가 연결을 종료하겠다는 패킷

- Checksum- 헤더의 오류를 확인하기 위한 값

- Urgent Pointer: 어디가 긴급 데이터인지를 가리키는 곳



  • TCP PSH Flag와 TCP Buffer 설명

클라이언트 

 

 서버

 고수 최신화

(TCP buffer(100byte))


->


 

 

 <-

 고수 그림 1장 중에서 100byte

 

 <- 

고수(100byte) 잘 받았어?

어 고마워 잘 받았어 다음꺼줘

TCP Buffer(150byte)

 ->

 

 

 <-

 고수 그림 1장 중에서 나머지 150byte



  • 클라이언트 서버 모델

-소프트웨어 아키텍처 모델


계층 모델

클라이언트 서버 모델

파이프 필터 모델

MVC 모델 


- 클라이언트 서버 모델


서비스를 사용하는 클라이언트와 서비스를 제공하는 서버 간에 작업을 분리해주는 구조


- 서버의 특징


- 클라이언트가 서비스를 이용하기 때문에 일반적으로 좀 더 고사양을 요구.

- 클라이언트가 언제든지 서비스를 이용할 수 있도록 서버는 항상 작동해야 한다.

- 서버가 제공하려는 서비스의 포트를 항상 Listening 하고 있어야 한다.

- 서버는 포트를 항상 열어놔야 한다





  • UDP : 비연결 지향형, 연결 지향형보다 속도가 빠르지만, 신뢰성이 떨어진다.



  • TFTPD64 프로그램을 이용한 UDP 패킷 캡쳐 실습
  • 서버

     

    클라이언트 

     Server Interface 설정  

     

     TFTP client 탭 선택 

     (192.168.201.4) 

     

     Host [서버의 IP]

     tftpd.exe가 있는 곳에 abc.txt 생성

     

     Port 69

     

     

    Local File [내 PC의 저장 위치]

     

     

    Remote File [서버가 공유한 파일 이름]

     


    Get 클릭! 


  • UDP통신 - 서버컴퓨터 일때




  • UDP통신 - 클라이언트컴퓨터 일때



  • 네트웤 보안수업때 할예정


*tip : SYN Flooding, 포트스캔(TCP Connect Scan, Half Scan), TCP Session Hijacking

             (DDos공격)




공감() 과 댓글은 필자에게 큰 힘이 됩니다.

잠시 1초만 내주시면 안될까요? ~~


로그인 없이도 가능합니당 



댓글