밍경송의 E.B

[사이버보안] 네트워크개요 본문

CSE/사이버보안개론

[사이버보안] 네트워크개요

m_gyxxmi 2024. 4. 20. 16:44

이번 장에서는 그래두 작년 정통공 시간에 배운 개념들이 나와서 낯설진 않았..다 대충 아직까진 살아남았다는 말.. 

네트워크 개념이 이렇게 많이 쓰일줄 알았으면 그때 좀 더 열심히 할걸!!!🥲

어음 괜자나 괜자나..자신이쏘

 

 

🔒OSI 7계층

 

  • 네트워크의 동작 과정을 설명하는 대표적인 모델 (ISO에서 제정)
  • 실제 구현된 sys가 아니라, 일종의 개념적 모델 [TCP/IP는 실제 구현된 네트워크 모델]
  • 각 계층은 독립적으로 동작하며, 같은 계층의 헤더를 서로 open

*통신 프로토콜 : 네트워크를 통해 데이터를 주고받는 과정의 약속(각 계층별로 다수의 프로토콜 존재)

 

✨7계층 : 응용(Application) 계층

- 사용자에게 인터페이스를 제공하는 계층, 응용 서비스(ex 웹브라우저, 메일전송 프로그램 등) 제공

- 응용계층에서 동작하는 프로토콜 : FTP, HTTP, TELNET, SSH 등

 

✨6계층 : 표현(Presentation) 계층

- 암호화/복호화 or 인코딩/디코딩 등의 데이터 형식의 변환 수행

 

✨5계층 : 세션(Session) 계층

- 양 끝단에 있는 두개의 응용 프로세스 사이에 통신(세션)을 관리

 

<통신방식의 종류>

전이중방식(Full Duplex) 동시에 송수신 모두 가능 ex)휴대전화
반이중방식(Half Duplex) 동시에 송수신 중 1가지만 가능 ex) 무전기
단방향방식(Simplex) 송수신 중 1가지만 가능 ex) 라디오

 

✨4계층 : 전송(transport) 계층

- 양 끝단의 사용자가 데이터를 주고받게 하는 계층 : TCP,UDP

1. TCP : connection-oriented 통신

  • 오류제어(Error control) : 양 끝단에서 전달받은 데이터의 오류 검출 
    • 오류 판단 -> 재전송 요청 (*에러가 확인되면 다음 계층으로 올라가지 않고 돌려보냄)
    • 중복 전송 -> 삭제 처리
  • 흐름제어(Flow contol) : 수신 측에서 처리할 수 있는만큼의 데이터만 송신측에 보내도록 제어

2. UDP : connectionless 통신

  • 신뢰성을 보장하지 않지만 속도가 TCP보다 빠름. 냅다 전송해버리기

*더 자세한 내용은 정통공때 정리한 글을 확인!

 

[네트워크] TCP와 UDP, 그리고 IP (TCP Header, UDP Header, IPv4, IPv6)

해야지 ...웅... 아직 한참 남았잔ㄴ어..ㅇ네 오늘은 이전에 시간에 다룬 Internet Protocol Stack에 이어서 이번에는 수송 계층(transport layer)에서 사용하는 프로토콜 중 가장 대표적인 TCP와 UDP에 대해서

mgyxxmi0219.tistory.com

 

 

✨3계층 : 네트워크(network) 계층     [IP주소 사용]

- 여러 노드를 거칠 때마다 경로를 찾아주는(라우팅) 역할을 하는 계층 = 길찾기 기능

client에서 server로 갈 때 공유된 공용통신망을 이용한다!

* 라우터의 경우 길찾기 기능만 제공하기 때문에 7계층이 아니라 3계층까지만 존재함

-> errorcheck는 4계층이 아닌 2계층에서 이루어진다 (4계층 없서욥)

 

*IP 헤더에는 최적 경로 선택을 위한 기초 자료가 저장됨. + 기존 경로상 노드가 고장 -> 대체 경로를 찾아 전송

 

 

✨2계층 : 데이터링크(Data Link) 계층    [MAC주소 사용]

- 직접 연결된 단말(point to point) 사이의 신뢰성 있는 전송을 보장하는 계층

( !=4계층의 경우는 끝단과 끝단 사이(End to End) 의 전송 )

- 1계층(변환의 기능만)에서 발생할 수 있는 오류 검출( ex Parity check)

- 대표 장비 : switch

- 대표 프로토콜 : 이더넷 -> LAN에서 사용되는 기술

 

 

✨1계층 : 물리(Physical) 계층

- 단말과 단말 사이의 실제 물리적 연결 

단말(Terminal) : 네트워크 사이를 연결해주는 관문 역할을 하는 노드(3계층) + 네트워크에 참여한 모든 단

* data를 전자기파로 변환하는 기능 수행

 

 


 

🔒TCP/IP 프로토콜

 

[TCP 헤더]

 

# Source/Destination port: 각 16bits/세그먼트의 출발지와 목적지를 나타내는 필드 (IP 주소는 네트워크 계층의 IP 헤더에 담기기 때문에 포트를 나타내는 필드만 존재)
# Sequence Number: 32 bits/ 전송하는 데이터의 순서를 의미(패킷번호) -> 수신자가 쪼개진 세그먼트의 순서 파악 가능

# Acknowledgment Number: 32 bits/ 데이터를 받은 수신자가 예상하는 다음 시퀀스 번호 (다음에 보내줘야 하는 데이터의 시작점을 의미함) ex) 0-9까지 전송했으면 ACK:10 , 의미는 9번까지 잘 받았다는 

# Header Length(Data offset): 4 bits/ 전체 세그먼트 중에서 데이터가 시작되는 위치가 어디부터인지를 표시

# Reserved: 미래를 위해 예약된 필드 (모두 0으로 채워져야 함)

# Flags: 현재 세그먼트의 속성을 나타냄 [setting :1, x:0] 

  • URG : used to signal “urgent” data that should be prioritized over non-urgent data 
  • ACK
  • PSH : 원래-> 일정 개수가 차면 윗계층으로 전송 but PSH는 더 쌓이는 걸 기다리지말고 다음계층으로 전송하라는 의미
  • RST : 문제 발생 -> connection을 끊어라(reset)
  • SYN : connection 맺자
  • FIN : connection 종료

# Window: 한 번에 전송할 수 있는 데이터의 양을 의미하는 값을 담음 (최대 64KB)

# Checksum: 데이터를 송신하는 중에 발생할 수 있는 오류 검출을 위한 값 (XOR 해서 header랑 비교)

# Urgent pointer: 긴급 포인터 (URG Flag가 1이면 이 포인터가 가리키는 데이터를 우선 처리함)

# Options: TCP의 기능을 확장할 때 사용하는 필드(크기가 고정된 것이 아니라 가변적)

 

 

[TCP 포트]

 

포트: 각 단말기 에서 사용되는 주소로, 수신자의 시스템 내에서 어떤 프로그램/서버로 베세지를 올려 보내줄지 결정함.

*범위

동적 포트의 경우 sys가 자동으로 napping 함

 

*대표적으로 많이 사용되는 TCP 포트

  • 20,21 - FTP(원격 파일 전송을 위함)
  • 22 - SSH(암호화된 원격 접속을 위함)
  • 23 - TELNET(원격 접속을 위한 목적(기존))
  • 53 - DNS(URL의 도메인 주소에서 IP주소를 얻기 위함)
  • 80 - HTTP(웹 접속을 위한 목적)
  • 110 - POP3(이메일 서버로부터 메일을 읽기 위함)
  • 443 - HTTPS(암호화된 웹 접속을 위함)

 

[TCP Connection 맺기]

-TCP는 연결지향적 프로토콜 (통신이 시작->끝날 때까지 연결이 지속됨)

 

1. 시작과정 [3-way Handshaking]

*(2)에서 SYN와 ACK는 하나의 패킷 안에 함께 들어감.

ㄴACK는 (1)의 SYN에 대한 응답

*(3)의 ACK는 수신자의 승인 패킷을 확인했다는 의미

 

2. 데이터 전송 과정 [2-way 방식]

- Flow control을 통해 송신 측이 수신 측의 처리속도보다 빨리 데이터를 보내지 못하도록 제어함.

     *TCP 헤더 정보 이용 + 슬라이딩 윈도우 기법으로 처리

        -DATA를 전송할 때마다 윈도우 공간이 줄고, ACK를 받을 때마다 윈도우 공간이 늘어남(확장).

     *수신자의 ACK 패킷이 일정기간이 지났는데도 안 온다 ? -> 송신자는 수신자에게 메세지 재전송

 

 

3. 종료 과정 [4-way 방식] 

*수신자측에서 보내는 ACK와 FIN은 +가 아님 나눠보내짐. (!= 연결 시작 과정)

ㄴ여기서 FIN은 자신도 연결 종료를 요청하는 것

 

 

 


 

[IP 프로토콜]

IP : 네트워크 계층(3)에 해당하는 통신 프로토콜로 라우팅을 담당함.

각 노드의 주소 = 3계층의 IP 주소

- 라우팅 테이블 : 각 노드 사이의 연결 정보를 저장한 테이블, 두 연결 사이의 cost( 속도, 거쳐야 하는 라우터 개수(hop count)) 저장

 

 

[IP 주소] = 네트워크 주소(망 주소) + 호스트 주소

 

1. IPv4 주소(기본)

  •  네트워크 상에서 유일한 주소로 32비트(4바이트) -> 8비트씩 네묶음으로 구성(10진 표현)
    • 0.0.0.0 ~ 255.255.255.255
  • 신규 주소 할당이 중지됨

2. IPv6 주소

  • 128비트(16바이트) -> 16비트씩 8묶음으루 구성(16진 표현) , ':'으로 구분
    • ex) 2001:0db8:....
  • IPv4와 호환x

 

- IP주소의 클래스 

  • A,B,C,D,E (ABC가 일반적, D는 멀티캐스팅용, E는 연구용)

맨 첫번째 범위로 구분 (경계값: 128, 192)

네트워크 주소의 크기가 커질 수록 호스트 주소의 크기 작아짐(반비례)

 

ex) 203.10.1.1 의 클래스와 네트워크 주소는?

-> 203이면 192보다 크니까 C클래스고, 네트워크 주소는 203.10.1.0 호스트 주소는 0.0.0.1

 

- IP 주소의 요청 : 국제 표준기구에 요청하면 '네트워크 주소' 부분만 할당됨, 호스트부분은 자율적으로 신청자가 관리

 

<클래스별 IP주소의 구성>

: B 클래스의 경우 앞의 2bit가 fix -> 2^6 * 2^8

: C 클래스의 경우 앞의 3bit가 fix -> 2^5 * 2^8 * 2^8


 

[공인 IP 주소와 사설 IP 주소]

 

- 공인 IP 주소 : IANA에서 할당받은 주소

- 사설 IP 주소 : 사내 넽웤에서만 사용될 수 있는 주소

*공인 IP 주소가 다르기 때문에, 세상에는 같은 사설 IP를 가진 컴이 굉장히 많을것!

 

 

 

 

[IP 주소와 MAC 주소]

 

IP주소 십진수로 표현(32bit), 네트워크가 달라지면 바뀜, 3계층(넽웤)에서 사용
MAC주소 16진수로 표현(48bit), 물리적 주소, 고정된 주소, 2계층(데이터링크)에서 사용

*4계층에서는 포트번호를 사용함

 


 

[네트워크장비]

 

 

  • 리피터 : 신호가 약해지거나 잡음으로 인해 형태를 잃지 않도록 신호증폭역할을 함.

  • 허브(hub) : 다중 포트 리피터로, broadcasting 방식이 기본

연결된 애들한테 다 보냄

  • 스위치 : 2계층 MAC 주소를 확인, 해당 포트로 패킷 전송 (허브의 전송방식돠 다름)

 

  • 라우터 : IP 주소를 검사해 경로 지정