🩷 CS (Computer Science) 14

헷갈릴 수 있는 C, C++ 기본 지식

C, C++에 대한 CS 공부 중 헷갈릴만한 지식들을 정리해보았습니다.메모리 할당C 언어에서 메모리 할당은 변수의 종류에 따라 다릅니다:일반 변수 (지역 변수, 전역 변수):malloc 없이 사용 가능하고, 메모리가 자동으로 할당됩니다.배열 (고정 크기):int arr[10]; 같이 컴파일 시간에 크기가 결정되는 배열은 자동으로 메모리가 할당됩니다.포인터 변수:포인터 변수 자체는 자동으로 메모리가 할당되지만 포인터가 가리키는 메모리는 할당되지 않습니다. (p가 가리키는 공간)예: int *p; (포인터 변수 p에 대한 메모리는 할당됨)동적 메모리 할당이 필요한 경우:실행 중에 크기가 결정되는 메모리(가상 함수 등)함수 종료 후에도 유지해야 하는 데이터크기가 큰 데이터를 효율적으로 관리할 때 (동적 메모리..

AES 암호화

AES 암호화AES(Advanced Encryption Standard)는 현대 데이터 보안의 중추적 역할을 담당하는 대칭 키 암호화 알고리즘입니다. 2001년 미국 표준 기술 연구소(NIST)에 의해 공식 표준으로 채택된 이후, 전 세계적으로 가장 널리 사용되는 암호화 알고리즘 중 하나가 되었습니다.AES는 벨기에 암호학자 Joan Daemen과 Vincent Rijmen이 개발한 Rijndael 암호 알고리즘을 기반으로 합니다. 이 알고리즘은 고도의 수학적 연산을 통해 데이터를 암호화하여, 권한이 없는 사용자가 원본 데이터를 복원하는 것을 실질적으로 불가능하게 만듭니다.AES의 강점은 다음과 같습니다:보안성: 현재까지 알려진 어떤 실용적인 공격 방법으로도 AES를 완전히 해독하는 것은 불가능합니다.효..

OSI 4계층 전송 계층 (2) - TCP, UDP

TCP 프로토콜TCP(Transmission Control Protocol)는 네트워크 통신에서 신뢰성과 데이터 순서를 보장하기 위해 설계된 전송 계층 프로토콜입니다. UDP에 비해 속도는 느릴 수 있으나, 안정적인 데이터 전송과 에러 검출·복구 기능을 제공합니다. 이 글에서는 TCP 프로토콜의 구조와 동작 원리를 상세히 살펴봅니다.TCP와 MSSMTU(Maximum Transmission Unit): 네트워크를 통해 전달 가능한 전체 패킷 크기로, 헤더와 데이터 모두를 포함합니다.MSS(Maximum Segment Size): TCP 세그먼트의 데이터 페이로드 최대 크기를 나타냅니다. 이는 헤더 크기를 제외한 순수 데이터의 크기를 의미합니다. 일반적으로 MSS는 MTU에서 IP 및 TCP 헤더 크기를 ..

OSI 4계층 전송 계층 (1) - 프로세스와 포트, NAT

전송 계층OSI 4계층은 전송계층으로, 데이터의 신뢰성과 정확성을 보장하며 송신자와 수신자 간의 효율적인 데이터 전송을 담당합니다.프로세스컴퓨터에서 실행 중인 프로그램을 뜻하는 프로세스는 전송 계층에서 수행하는 단위입니다. 전송 계층은 네트워크와 프로그램 사이의 중개자 역할을 하고 각각의 프로세스는 독립적으로 동작합니다. 프로세스는 데이터 통신이 단순한 전달이 아닌 안정적, 신뢰적, 효율적 전달로 이루어질 수 있도록 정의와 목적을 가집니다.전송 계층의 역할프로세스 간 통신 서비스 제공전송 계층은 송신자의 프로세스와 수신자의 프로세스를 연결하여 신뢰성 있는 통신을 제공하는 역할을 합니다. 예를 들어, 내 컴퓨터에서 실행 중인 애플리케이션과 상대 컴퓨터의 애플리케이션 간 데이터를 전송합니다.네트워크 계층의 ..

OSI 3계층 네트워크 계층 (2) - 클래스풀 주소, 사설, 공인 IP주소

클래스풀 주소 체계(Classful Addressing)클래스풀 주소 체계는 IP 주소를 A, B, C, D, E로 나누어 각 클래스별로 고정된 범위와 서브넷 마스크를 사용하는 방식입니다. 과거에는 널리 사용되었으나, IP 주소의 낭비가 많아 오늘날에는 클래스리스 방식으로 대체되었습니다.클래스별 주소 범위주로 사용하는 A, B, C 클래스의 주소 범위는 다음과 같습니다.A 클래스:범위: 0.0.0.0 ~ 127.255.255.255서브넷 마스크: 255.0.0.0B 클래스:범위: 128.0.0.0 ~ 191.255.255.255서브넷 마스크: 255.255.0.0C 클래스:범위: 192.0.0.0 ~ 223.255.255.255서브넷 마스크: 255.255.255.0예시: 172.16.12.45네트워크 ..

OSI 3계층 네트워크 계층의 라우팅 과정

라우터란?라우터는 네트워크에서 데이터를 전송하기 위한 최적 경로를 결정하고, 서로 다른 네트워크를 연결하여 통신이 가능하도록 하는 장치입니다. 라우팅 프로세스를 통해 데이터 패킷이 원활하게 전달되도록 돕습니다.라우터의 주요 역할1. 경로 결정라우터는 네트워크의 다양한 지표(지연, 용량, 속도 등)를 분석해 소스에서 대상으로 이동할 데이터를 위한 최적 경로를 선택합니다. 이는 네트워크 트래픽을 효율적으로 관리하기 위해 중요합니다. 2. 데이터 전달라우터는 데이터 패킷을 선택한 경로를 따라 네트워크의 다음 장치로 전달합니다. 이를 통해 네트워크 간 통신이 이루어집니다. 3. 로드 밸런싱라우터는 여러 경로를 통해 동일한 데이터 패킷의 사본들을 전송해 트래픽 볼륨을 관리하고 데이터 손실로 인한 오류를 줄입니다...

OSI 3계층 네트워크 계층 (1) - IP주소와 IPv4, IPv6

3계층의 역할3계층 네트워크 계층은 서로 다른 LAN 대역을 연결하고, 데이터가 네트워크를 넘어 전송되도록 하는 중요한 역할을 수행합니다. 네트워크의 전송은 IP주소를 기반으로 합니다. LAN과 LAN을 연결하여 WAN을 구성하며, 이 계층에서의 주요 장비는 라우터입니다. 스위치와 같은 2계층 장비만으로는 다른 네트워크 대역 간 통신을 구현할 수 없습니다. 즉, 멀리 떨어진 네트워크로 데이터를 보내기 위해서는 3계층의 라우팅 기능이 필수적입니다. 라우팅이란 네트워크 간 통신을 가능하게 하는 기능인데 데이터 패킷이 최적의 경로를 통해 목적지까지 도달하도록 돕습니다. 또한, 단편화(Fragmentation) 작업도 3계층에서 이루어집니다. 이 과정에서는 패킷 크기를 MTU(Maximum Transmissio..

VLAN (Virtual Local Area Network) 개념

VLAN은 네트워크 관리와 보안을 향상시키기 위해 하나의 물리적 네트워크를 논리적으로 여러 개의 네트워크로 분리하는 기술입니다. 이를 통해 물리적 제약 없이 네트워크를 유연하게 구성할 수 있으며, 네트워크에서 브로드캐스트 트래픽이 특정 그룹의 디바이스 내에서만 전달되도록 네트워크를 논리적으로 구분하여 성능과 효율성을 높입니다.VLAN의 필요성기본적으로 스위치에 연결된 모든 디바이스는 동일한 브로드캐스트 도메인에 속해 있어, 한 디바이스에서 보낸 브로드캐스트 트래픽이 모든 디바이스에 전달됩니다. VLAN을 사용하면 하나의 물리적 스위치를 여러 개의 가상 스위치로 나누어 각 VLAN이 독립적인 브로드캐스트 도메인이 됩니다. 이렇게 하면 한 VLAN에서 발생한 브로드캐스트 트래픽은 해당 VLAN 내부에서만 전..

허브와 스위치의 개념 및 CSMA/CD 원리

허브 (Hub)허브는 물리 계층의 장비로, 여러 호스트를 연결하는 포트 역할을 합니다. 네트워크 초창기에 많이 사용되었지만, 오늘날에는 거의 사용되지 않고, 스위치나 라우터로 대체되었습니다.특징:MAC 주소 사용 X:허브는 데이터 링크 계층의 개념인 MAC 주소를 사용하지 않습니다브로드캐스트 통신:주소 개념이 없어, 들어온 신호를 연결된 모든 포트로 내보냅니다. 이를 멀티탭과 비슷한 구조로 이해할 수 있습니다반이중 통신:한 번에 송신 또는 수신 중 하나만 가능합니다 (무전기)무전기처럼 송신과 수신을 동시에 처리하지 못합니다. 따라서 두 호스트가 동시에 데이터를 전송하면 충돌이 발생합니다.전이중 통신 : 허브와 반대되는 통신이며 송신과 수신이 동시에 이루어지는 통신입니다 (전화)CSMA/CD (Carrie..

NIC(네트워크 인터페이스 카드)과 계층의 관계

NIC를 공부하면서 NIC가 1계층인지 2계층인지 헷갈렸습니다. 그렇기에 나름대로 정리를 해보았습니다NIC(네트워크 인터페이스 카드)NIC(Network Interface Card)는 컴퓨터와 네트워크 간 데이터 전송을 담당하는 하드웨어 장치입니다. NIC를 통해 컴퓨터가 네트워크에 연결되며, 데이터의 물리적 송수신과 변환 과정을 수행합니다.NIC가 OSI 모델에서 1계층(물리 계층)에 속하는 이유물리적 데이터 전송 및 수신NIC는 네트워크 매체(예: UTP 케이블, 광섬유)와 직접 상호작용하여 데이터를 전기 신호로 변환하고, 네트워크 매체로부터 신호를 수신합니다.데이터가 실제로 네트워크 매체를 통해 이동할 수 있도록 물리적 연결을 설정하고 관리합니다네트워크 매체의 상태와 전송 속도에 맞춰 신호를 생성합..