Computer-Sience41 [Network] MTU(Maximum Transmission Unit) MTU MTU는 어떤 데이터링크에서 하나의 프레임 또는 패킷에 담아 운반 가능한 최대 크기를 의미한다. 해당 예시로 지하도로나 터널의 높이 제한처럼 생각할 수 있으며, 높이 제한보다 높은 차량은 못지나가는 것처럼 네트워크의 MTU보다 큰 패킷은 일반적으로 해당 네트워크를 통과하지 못한다. 하지만 MTU보다 큰 데이터 패킷은 작은 조각으로 잘라 MTU에 맞출 수 있고, 이 과정을 분할(Segmentation)이라고 칭한다. 그리고 분할된 패킷은 목적지에서 조립된다. MTU의 단위는 Byte이며, 보통 MTU 사이즈는 매체마다 차이가 존재하며 Ethernet 구간의 경우, 최대 MTU 크기는 1,500bytes이다. 여기서 IP header로 20bytes, TCP header로 20bytes를 사.. 2024. 11. 12. [Data-Structure] Hash Table(해시 테이블) 1. Hash Table(해시 테이블) 해시 테이블은 (Key, Value) 쌍으로 데이터를 저장하는 자료구조이며, 일반적으로 O(1)의 시간복잡도로 빠른 속도로 데이터를 저장하고 조회할 수 있다. - 기본 구조해시 테이블의 기본 구조는 아래와 같이 이루어져 있다. Key가 되는 데이터를 해시 함수에 입력하면 인덱스가 생성이 되고, 해당 인덱스가 가리키는 버킷에 데이터를 저장하는 것이다. 인덱스 사용하기 때문에, 평균적으로 O(1)의 시간을 가지게 된다는 특징이 있다. 버킷(Bucket): 실제 데이터가 저장되는 공간해시 함수(Hash Function): Key를 고정된 길이의 해시값으로 변환하는 함수인덱스(Index): 해시값을 기반으로 계산된 버킷의 주소 2. 해시 함수(Hash Func.. 2024. 11. 11. [Network] AS(Autonomous System) AS(autonomous system) / 자율 시스템 : 단일 관리 엔티티(네트워크 관리자)에 의해 독립적으로 운영되는 라우터의 집단을 의미한다.예시로 SKT나 KT와 같은 ISP에서 제공하는 네트워크나, 기업 내부에서 구축하여 사용하는 내부 네트워크를 들 수 있다. AS의 특징 :AS는 중복되지 않는 고유한 번호(ASN)를 가진다.각 AS는 자체 라우팅 규칙이 존재하며, 이를 기반으로 네트워크를 관리한다. AS는 내부와 외부를 구분하여, AS 내부 라우팅 정보 전달을 위해 사용하는 프로토콜을 IRP(Interior Router Protocol), AS의 외부의 다른 AS와 라우팅 정보 전달을 위해 사용하는 프로토콜을 ERP(Exterior Router Protocol)라고 한다. AS의.. 2024. 7. 31. [Security] 제로 트러스트(Zero-Trust) 제로 트러스트(Zero-Trust)란 제로 트러스트 아키텍처는 “무엇이든 신뢰하지 않고 항상 검증하라”는 원칙을 기반으로 신뢰가 완전히 제거된 IT 시스템의 설계 및 구현에 대한 접근 방식을 규정한다. 전통적인 보안 모델은 기업 네트워크 내부의 시스템과 장치는 기본적으로 신뢰할 수 있는 경계 내에 있다고 간주하여 서로 제약이 없이 자유롭게 통신하는 구조였다. 이와 다르게, 제로 트러스트는 전통적인 보안 모델에서 취급했던 신뢰가 보안의 취약점이라 정의하고, 내부와 외부를 구분하지 않고 모든 접근 요청을 철저하게 검증하는 것을 의미한다. 이는 사용자, 디바이스, 애플리케이션을 신뢰하지 않고, 각 요청을 세밀하게 검사하여 보안 위협을 최소화하는 구조다. Nvidia에서는 아래의 원칙을 따라서 제로 .. 2024. 5. 18. [Network] NAT / SNAT / DNAT 일반적으로 가정에서 공유기에 연결된 PC는 사설 IP(Private IP)를 공유기로부터 배정받고, 외부로 패킷이 나갈 때는 공인 IP(Public IP)로 나가게 되어 통신을 하게 되는데, 이러한 IP 변환 과정에는 라우터의 NAT를 사용하게 된다. 통신의 흐름을 보면 아래 사진과 같이 볼 수 있다. 예시 : PC(Private IP) -> 공유기(NAT) -> 구글(Public IP) -> 공유기(NAT) -> PC(Private IP) NAT(Network Address Translator) : NAT는 패킷이 라우터를 지나갈 때 패킷의 IP 헤더에 있는 네트워크 주소 정보를 수정하여 IP 주소를 다른 IP 주소로 매핑하는 방법이다. NAT는 다양한 장점이 존재한다. IPv4는 2 ** 32(40억.. 2023. 12. 21. [Algorithm] 시간 복잡도 (Time Complexity) 1. 시간 복잡도 및 표기법 시간 복잡도는 특정 코드가 있을 때, 해당 코드에서 특정한 입력이 주어졌을 때, 얼마나 많은 연산을 하는지에 대한 개념을 나타낸 것이다. 알고리즘마다 특정 값에 대한 참조, 연산이 많을수록 당연히 복잡도가 다르고, 때에 따라서는 비효율적인 알고리즘이 될 수 있기에 우수한 성능을 낼 수 있는 알고리즘을 구현하기 위해서는 시간 복잡도를 정확하게 이해하고 알고리즘을 설계할 필요가 있다. 시간 복잡도를 표기하는 방법에는 아래의 3가지가 존재한다. 1) 빅 오(Big O) 표기법 빅 오(Big O) 표기법은 알고리즘의 실행 시간을 최악의 경우의 시간 복잡도로 나타내는 데 사용된다. 어떤 알고리즘의 시간 복잡도가 O(f(n))이라면, 해당 알고리즘의 실행 시간은 입력 크기 n이 증가함에.. 2023. 8. 19. 이전 1 2 3 4 5 ··· 7 다음