네트워크, 시스템보안

프로토콜 동작 원리

mimimin 2022. 5. 2. 09:06

[인터넷]

  • 인터넷은 미국방부 산하의 연구소에 속한 빈트 서프, 로버트 칸이 만듦
  • 1970년대 초반에 현재와 같은 네트워크(TCP/IP) 완성

[TCP / UDP]

  • TCP - 주로 User(사람)이 요청한 경우 사용되며 용량이 큰 경우가 많음
    • ex) http(웹), FTP, SSH, Telnet 등
    • ex) 로그인, 게임점수, 수치 - 정확 but 확인 과정 필요
  • TCP Flag (UAPRSF - 각 1bit씩 6bit할당되어 있음) - On이면 1, Off일때는 0으로 표시
  • UDP - 주로 System 간 정보를 교환하는 경우 사용되며 신호(약속된 신호 - 프로토콜)만 주고 받음
    • ex) SNMP(네트워크 관리), NBNS(윈도 파일 공유), DNS(도메인네임과 IP주소)
    • ex) 게임 화면, 음성 - 확인 과정 없이 처리
  • UDP 헤더 - 별 기능이 없기 때문에 처리 속도가 빠름
  • 참고 - TCP / UDP의 속도 차이는 확인 과정의 유무이며 도착 속도는 네트워크 회선에 따라 좌지우지 됨

[LAN / WAN]

  • LAN - 많은 컴퓨터를 연결하는 것이 목적
    • ex) Ethernet, Token Ring, FDDI, Wi-Fi
  • WAN - 장거리 연결이 목적
    • ex) HDLC, PPP, ATM, X.25

[캡슐화]

  • 캡슐화 - 데이터에 헤더를 붙이는 것
  • 헤더에는 출발지, 목적지 IP 주소와 TTL, Protocol 등 포함
  • 캡슐 해제 - 헤더를 분리해 버리는 것 (단, 목적지 주소와 자신의 주소가 일치할 때)
  • 목적지의 IP 주소와 나의 IP가 일치하지 않을 때(나에게 전달되는 정보가 아닐 때) 보는 것은 해킹, Sniffing(데이터 도청) = 정보 통신망법 위반으로 처벌받을 수 있음
  • 데이터가 캡슐화 될때, 세그먼트, 패킷, 프레임이 붙는데 제일 마지막에 붙는 프레임은 각 구간별 통신 방식에 따라서 변경 됨
  • 데이터가 최종 목적지에 도착할 때까지 프레임은 변경되며 도착 = 패킷에 쓰여있는 ip 주소는 최초 출발지부터 최종 목적지까지 변함없이 유지, 프레임은 최초 출발지에서 공유기, 공유기에서 라우터 등 출발지와 목적지가 계속해서 변화

[IP 주소]

  • IP 주소는 네트워크 부분과 호스트 부분으로 분리, 구별 방법은 2가지
    • Classful -> A, B, C, D, E class 기반으로 구별하는 방법으로 지금은 쓰이지 않음
    • Classless -> Class가 아닌 서브넷 마스트로 구별, 1은 네트워크 0은 호스트. IPv4에서 해당 방법으로 구별, IPv6는 앞의 반은 네트워크 뒤의 반은 호스트로 설정되어 있음

[MAC 주소]

  • LAN 카드에 존재
  • 형태 - 78-2b-46-8d-bd-9b
  • 각 자리는 16진수, 각 자리는 4bit
  • 즉, 12 * 4 = 48 bit 주소 체계
  • 앞의 24 bit - 제조사 식별코드(OUI)
  • 뒤의 24 bit - 제품 일련번호
  • IEEE - 통신, 네트워크 등 연구하는 미국의 표준 기관으로 MAC 주소 판매
  • 참고로 MAC 주소는 https://regauth.standards.ieee.org/ 에서 조회 가능

[TTL]

  • TTL은 패킷의 수명을 의미
  • 다른 네트워크로 갈 때마다(라우터를 지날 때마다) 1씩 감소하며 0이 되면 버려짐
  • 네트워크의 혼잡을 방지하기 위해 사용됨
  • 출발지의 운영 체제에 따라 값이 다른데, UNIX: 255, Windows: 128, Linux:64로 설정되어 있음

[Fragmentation 필드]

  • 패킷이 너무 커서 작게 나눠야 할 때 사용하는 필드들
  • Identification : 재조립을 위해서 같은 패킷을 단편화하더라도 같은 ID값을 가짐
  • Flag : 막내가 아니면 1, 막내는 0으로 표시
  • Fragment Offset : 순서번호 (패킷을 단편화하면 Offset값을 부여

[Port]

  • Port 번호 - 16bit
  • System Port ( Well Known Port) : 1~1023 - 공통의 서비스를 사용하는 서버들이 사용하는 포트 번호
    • ex) 53(DNS), 80(HTTP), 22(SSH), 23(Telnet), 25(SMTP)
  • User Port / Registered Port : 1024~49151- 특정 회사의 Application에서 사용하는 포트 번호 (등록해야함)
    • ex) 3306(MySQL)
  • Dynamic Port : 49152~65535 - 자유롭게 사용 가능 (주로 웹브라우저가 사용)