[인공지능 보안을 배우다] 네트워크 추가공부_0119

daniayo·2025년 1월 19일

공부하기 싫다. 오늘은 진짜 하기 싫다.

Ch.3 네트워크의 공통 언어 TCP/IP

TCP/IP

프로토콜 : PC와 스마트폰 등이 통신하는 규칙
네트워크 아키텍처 : 복수의 프로토콜을 조합한 것
호스트 : TCP/IP로 통신하는 PC와 스마트폰, 각종 네트워크 기기 전반

< TCP/IP 계층구조 >

  • 네트워크 인터페이스층 : 프로토콜은 자유롭게 선택할 수 있다. 통신 상대와 같은 것을 사용할 필요는 없다.
  • 인터넷층 : 엔드투엔드 통신을 한다.
  • 트랜스포트층 : 애플리케이션에 데이터를 할당한다.
  • 애플리케이션층 : 애플리케이션에서 다룰 데이터 형식과 절차를 결정한다.

네트워크 인터페이스층과 인터넷층

네트워크 인터페이스층 : 같은 네트워크 내 인터페이스 간 데이터를 전송하는 것
기술적인 관점 - 하나의 네트워크는 라우터와 레이어3 스위치로 구획되는 범위, 또는 레이어2 스위치로 구성하는 범위
유선(이더넷), 무선 LAN(Wi-Fi), PPP

인터넷층 : 원격지 네트워크 간 데이터를 전송하는 것
네트워크끼리 연결하고 데이터를 전송하는 기기가 라우터이다.
라우터에 의한 네트워크 간 전송을 라우팅이라 한다.
원격지 네트워크에서 최종적인 출발지와 목적지 사이의 데이터 전송을 엔드투엔드 통신이라 한다.
IP (엔드투엔드 통신에 이용), ICMP, ARP (IP를 도와주는 프로토콜) 등

트랜스포트층과 애플리케이션층

트랜스포트층 : 적절한 애플리케이션으로 데이터를 배분하는 것
TCP, UDP
TCP의 경우, 데이터의 분할과 조립, 데이터 재전송 제어, 데이터의 순서 제어 등의 기능도 이용할 수 있다. 만약 어떤 이유로 데이터가 유실되더라도 그 사실을 검출해 데이터를 다시 보내주기 때문에, 엔드투엔드의 신뢰성을 확보해주는 기능이 있다.

TCP와 UDP의 차이점
UDP는 빠르고 간단하지만 신뢰성이 낮아 실시간 전송이 필요한 애플리케이션에서 사용됩니다. TCP는 데이터의 신뢰성과 순서를 보장하며, 정확성이 중요한 애플리케이션에서 사용됩니다. UDP는 성능을, TCP는 안정성을 우선시하는 선택이라 볼 수 있습니다.

애플리케이션층 : 애플리케이션에서 다루는 데이터 형식과 처리 순서 등을 결정하는 것
HTTP (웹 브라우저), SMTP, POP3 (전자메일 소프트웨어), DHCP, DNS (애플리케이션의 통신을 준비) 등

캡슐화

통신 주체인 애플리케이션이 데이터를 주고받게 하려면, 복수의 프로토콜을 조합할 필요가 있다.
헤더 : 각 프로토콜에서 각각의 기능을 실현하기 위한 제어 정보
ex) 데이터를 전송하는 프로토콜이라면, 헤더에는 출발지와 도착지 주소가 지정된다.
각 프로토콜은 데이터를 전송할 때 헤더를 추가한다 : 캡슐화
프로토콜이 데이터를 받으면, 각 프로토콜 헤더를 바탕으로 적절하게 처리하여 헤더를 벗겨내고 다시 다른 프로토콜로 처리를 넘긴다. : 역캡슐화, 비캡슐화
TCP/IP의 상위 계층 프로토콜에서부터 하위 계층 프로토콜(HTTP - TCP - IP - 이더넷)의 헤더가 점차 캡슐화되면서, 네트워크로 내보내는 데이터에는 여러 프로토콜의 헤더가 추가된다.
마지막에는 이더넷헤더와 FCS(Frame Check Sequence)가 추가된다. FCS는 에러 체크를 위한 정보이다.

TCP/IP를 이용한 통신

네트워크 기기는 수신한 물리적인 신호를 일단 0과 1의 데이터로 되돌린다. 그리고 각각의 네트워크 기기의 동작에 대응하는 헤더를 참조하여 데이터를 전송해간다.
이더넷 헤더를 참조해 자기 앞으로 온 데이터인지 확인하고 FCS로 데이터에 오류가 없는 지 확인한다.
IP에서는 IP헤더를 참조해 넘기고, TCP에서는 TCP헤더를 참조해 넘기고, 이후에 HTTP 데이터와 그 뒤의 데이터 부분을 처리한다.
데이터를 수신하는 쪽은 TCP/IP 계층을 아래에서 위로 따라가며 헤더를 참조해 프로토콜을 처리한다.

메시지, 세그먼트, 패킷, 프레임

네트워크 아키텍처 계층 별로 데이터를 부르는 방법이 구분된다.

  • 네트워크 인터페이스층 : 프레임
  • 인터넷층 : 패킷 또는 데이터그램
  • 트랜스포트층 : 세그먼트(TCP 이용) 또는 데이터그램(UDP 이용)
  • 애플리케이션층 : 메시지

데이터 + HTTP 헤더 : HTTP 메시지
HTTP 메시지 + TCP 헤더 : TCP 세그먼트
TCP 세그먼트 + IP 헤더 : IP 패킷
IP 패킷 + 이더넷 헤더 + FCS : 이더넷 프레임

IP, IP 패킹, 라우팅

IP의 역할 : 엔드투엔드 통신 = 네트워크 상의 어떤 PC에서 다른 PC등으로 데이터를 전송하는 것
IP 주소를 이용하여 데이터의 출발지와 목적지를 나타낸다.
목적지가 다른 네트워크에 있을 때는 경로 상에 있는 라우터가 IP 패킷을 라우팅한다.

IP 주소

IP 주소 : TCP/IP에서 통신 상대가 되는 호스트를 식별하기 위한 식별 정보
TCP/IP 통신에서는 반드시 IP주소를 지정해야만 한다.
IP 프로토콜은 호스트의 운영체제에서 동작하고, 호스트 내부에서 인터페이스와 IP의 프로토콜 부분을 연관 지어 IP 주소를 설정하게 된다.
( IP주소는 호스트 자체가 아니라 정확하게는 호스트의 인터페이스를 식별한다. )
IP 주소 표기는 8비트씩 4개로 0~255 사이의 10진수로 변환하고 '.'으로 구분한다.

유니캐스트, 브로드캐스트, 멀티캐스트

  • 유니캐스트 : 단 하나의 목적지에 데이터를 전송하는 것
    • 출발지 IP : 유니캐스트
    • 목적지 IP : 유니캐스트
  • 브로드캐스트 : 같은 네트워크 상의 모든 호스트에 데이터를 전송하는 것
    • 출발지 IP : 유니캐스트
    • 목적지 IP : 브로드캐스트
  • 멀티캐스트 : 특정 그룹에 포함되는 호스트에 데이터를 전송하는 것
    • 출발지 IP : 유니캐스트
    • 목적지 IP : 멀티캐스트
    • 멀티캐스트 그룹에 포함되는 호스트가 반드시 같은 네트워크라고는 할 수 없다

유니캐스트 IP 주소

TCP/IP 통신의 대부분은 유니캐스트이다.
유니캐스트 IP 주소는 전반의 네트워크부와 후반의 호스트부로 구성된다.
브로드캐스트 IP 주소는 32비트가 모두 '1'인 255.255.255.255 이다.
( 유니캐스트 IP 주소 후반 호스트부의 모든 비트가 '1'로 된 IP 주소도 브로드캐스트 IP 주소이다. )
멀티캐스트 IP주소는 224.0.0.0 ~ 239.255.255.255 이다.

서브넷 마스크

네트워크부와 호스트부의 구분은 고정된 게 아니라 가변적이다.
서브넷 마스크 : 32비트 IP 주소의 어디까지가 네트워크부인지 명시한 것
서브넷 마스크는 반드시 연속한 '1'과 연속한 '0'이며, '1'은 네트워크부를 나타내고 '0'은 호스트부를 나타낸다.
ex) 192.168.1.1 255.255.255.0 또는 192.168.1.1/24 로 나타낸다.
(255.255.255.0 = 1111 1111 1111 1111 1111 1111 0000 0000으로 연속된 '1'이 24개)

IP 주소 후반 호스트부를 모두 비트 '0'으로 채우면, 네트워크 자체를 식별하기 위해 이용하는 네트워크 주소이다. 호스트부를 모두 비트 '1'로 채우면, 브로드캐스트 주소이다.

profile
댜니에요

0개의 댓글