컴퓨터과학 61

네트워크에 대한 근본적 이해 (뇌피셜)

모든 네트워크 상황은 결국 프로토콜로 설명될 수 있고,프로토콜은 아래 요소들로 구성된다:- 패킷의 구조 정의 (+ 여기에 실제로 담긴 데이터)- 패킷 해석 로직- 기본적인 제어 로직 (패킷과 별개로) 또한, 로직과 패킷 구조 정의 정보가 실제로 들어있는 곳은 아래의 `처리 주체`이다 (gpt가 알려줌):OSI 7 Layer주요 프로토콜 / 기능 예시처리 주체7응용 계층 (Application)HTTP, HTTPS, FTP, SMTP, DNS, SSH 등애플리케이션 소프트웨어 (브라우저, 메일클라이언트 등)6표현 계층 (Presentation)인코딩, 암호화, 압축 (e.g., JPEG, TLS, ASCII)운영체제 또는 라이브러리 (예: OpenSSL, codec)5세션 계층 (Session)세션 관리..

[Network Layer (Layer 3) in OSI 7 Layer <3>] Router, Subnet, DHCP Relay, Class, Sub-Interface

Router모듈형임: 전체 시스템을 여러 개의 독립적인 부품(모듈)으로 나누고, 필요에 따라 추가, 제거, 교체가 가능한 구조eg. Cisco 2811 라우터기본 본체에는 WAN 포트가 2개뿐.하지만 WIC-1T 모듈을 추가하면 시리얼 포트 1개를 확장 가능NM-ESW-16 모듈을 꽂으면 스위치 포트 16개 추가Subnet서로 다른 서브넷 간의 통신은 반드시 라우터를 거쳐야 함DHCP Relay클라이언트와 DHCP 서버가 서로 다른 네트워크(서브넷)에 있을 때, DHCP 통신이 가능하도록 중개 역할필요한 이유: DHCP Discover 메시지는 브로드캐스트(255.255.255.255)로 전송되기 때문에 라우터를 넘을 수 없으므로.DHCP 클라이언트 라우터 (DHCP Relay 에이전트 역할인 경우) D..

[Data Link Layer (Layer 2) in OSI 7 Layer] Switch, STP, VLAN

Switch스위치는 수신 MAC 주소를 학습하여, 정확한 포트로만 전달함.eg. PC1이 PC2에게 데이터를 보내면 → 스위치는 모든 포트가 아니라 PC2가 연결된 포트로만 전송 → 불필요한 트래픽 감소 단순한 허브(Hub)는 들어온 데이터를 모든 포트로 방송(Broadcast)함.스위치의 Trunk Port & Access Port L2에 소속되므로, 기본적으로 MAC 주소를 기반으로 작동하고, IP 주소가 불필요하지만, 원격 관리를 위해 IP 주소를 할당하기도 함. (eg. 다른 서브넷의 관리 서버에서 스위치를 관리/모니터링.) 이때 스위치의 모든 포트와 관리 IP 주소는 기본적으로 가상 인터페이스인 VLAN에 속함.-> 스위치가 속한 VLAN 인터페이스 & 다른 네트워크 간의 통신.STP이 프로토..

[Kubernetes] Container, Pod, Deployment, Service, Node, Cluster

container✅사용 목적Single Responsibility Principle에 따라 분리된 각각의 기능 (프로세스)를 격리된 환경에서 실행할 수 있음 eg. "nginx", Database, 백엔드 각각이 container 하나씩 사용▶ pod 정의에 각 container 정의가 포함돼 있음. 예를 들어 nginx의 경우 그 내용은:기반 OS: 보통 `debian`, `alpine`, `ubuntu` 중 하나.nginx 바이너리: `/usr/sbin/nginx` 위치에 존재 nginx 설정 파일: `/etc/nginx/nginx.conf` 등 ..

[GoLang] 디렉터리 구조, 패키지

hello.exe를 만들기 위한 기본적인 디렉터리 구조ㅡ hello ㅡㅡ go.mod (go mod init hello으로 생성됨, go mod tidy로 수정됨) ㅡㅡ pkg1 ㅡㅡㅡ pkg1.gopackage pkg1// Imported Packagesimport ( "..." "...")// Constconst ( PublicConst = ... privateConst = ...)// Variablevar PublicVar ...var privateVar ...var someVar = someFunc()var someVar2 = ...// Aliastype PublicType ...type privateType ...// Functionfunc init() { someVar2...}func Publ..

[Heap] ptmalloc2(pthread malloc 2)

Memory Allocator의 일종리눅스에서 사용됨, GLibc에 구현됨목표메모리의 효율적인 관리1. 메모리 낭비 방지▶ 메모리 할당 요청이 발생하면먼저, 해제된 메모리 공간 중에서 재사용할 수 있는 공간이 있는지 탐색여기에 요청된 크기와 같은 크기의 메모리 공간이 있다면 이를 그대로 재사용 ▶ 작은 크기의 할당 요청이 발생하면해제된 메모리 공간 중 매우 큰 메모리 공간이 있는 경우 그 영역을 나누어 주기도2. 빠른 메모리 재사용 ▶ 메모리 공간을 해제할 때, tcache 또는 bin이라는 연결 리스트에 해제된 공간의 정보를 저장해둠 이유: 운영체제가 프로세스에게 제공해주는 가상 메모리 공간은 매우 넓으므로,특정 메모리 공간을 해제한 이후에 이를 빠르게 재사용하려면 해제된 메모리 공간의 주소를 기억하고..

WSL 활성화 ↔ VT-x/EPT or AMD-V/RVI 활성화 전환

WSL 활성화해당 VM이 위치한 폴더의 .vmx 파일 >다음 라인 추가: hypervisor.cpuid.v0 = "FALSE" windows 기능 켜기/끄기 >"Hyper-V"와 "Windows Subsystem for Linux" 켜기 VMware Workstation >Edit > Preferences > Display tab > "Accelerate 3D graphics" 활성화Settings > Processors tab > "Virtualize CPU performance counters"와 "Virtualize Intel VT-x/EPT or AMD-V/RVI" 끄기 관리자 권한으로 PowerShell >dism.exe /online /enable-feature /featurename:Virt..

VMware Ubuntu 브릿지 설정 방법

나는 host machine = Windows 11, guest virtual machine = Ubuntu 22.04였다. 1. (확실치는 않지만) host machine에서제어판 > 네트워크 및 공유 센터 > 어댑터 설정 변경 > 현재 연결된 것 우클릭 > 속성 > VMware Bridge Protocol 체크 2. host machine에서VMware Workstation 열기 > 해당 virtual machine의 Settings > Network Adapter > Network connection 섹션에서 Bridged 선택  3. 해당 virtual machine 들어가서아래 명령어 실행ip addr 만약 거기서 ens33에 "DOWN"으로 되어있다면 -> 아래 명령어 실행sudo ip lin..

[Windows test mode]

>> Test mode (Test Signing Mode) 신뢰할 수 있는 certificate authority(Microsoft 등)가 전자서명해주지 "않은" driver/system file들도 설치/실행 할 수 있다. >> Test mode 끄고 켜는 방법 1. secure boot 해제 test mode의 on off는 secure boot이 해제된 상태에서만 가능하므로 해제한다. 노트북 켠 뒤, 부팅 다되기 전에 F8 눌러 Advanced startup options 진입 > Troubleshoot 클릭 > Advanced options 클릭 > UEFI Firmware Settings 클릭 > Boot > Secure boot control (삼성 노트북 기준) 2. test mode on/..