사용자 공간을 처리하는 애플리케이션 프로토콜 1. 요청을 보내는 애플리케이션이 socket에 데이터를 기록 2. socket에 기록된 데이터는 다른 한쪽의 socket으로 전달됨 → 즉, 애플리케이션 자체가 통신 구조를 가지지 않고서도 원격지에 있는 서버 애플리케이션과 통신 가능 Socket을 처리하는 커널 공간 (Socket이 만들어지는과정) 1.애플리케이션 프로세스가 네트워크 통신을 하는 경우, 커널에 TCP/IP로 통신하기 위해 상대방 애플리케이션과 통신할 수 있는 회선을 열어달라고 의뢰 (시스템 콜) ※이 때 접속 대상 서버의 IP주소와 TCP포트 두가지 정보가 필요 2.의뢰를 받은 커널은 소켓을 만들어 줌 (데이터를 기록할 준비가 됨) 3.TCP를 사용한다는 것과 IP주소 및 포트 번호 정보를 ..
동기와 비동기 동기 프로세스가 끝날 때까지 아무것도 하지 않고 기다리기 때문에 그 사이에 다른 것을 할 수 없다. 비동기 프로세스가 끝날 때까지 기다리지 않기 때문에 병렬로 다른 일을 할 수 있다. 비동기 - Ajax에서는 비동기 통신을 이용한 병렬 처리가 가능하다 - 클라우드 기술의 발전과 대량의 데이터를 처리하는 대규모 웹서비스가 늘어나면서 장비 발열과 소비 전력이 문제가 되고 있어 매니 코어화(many core)가 진행되고 있는 흐름을 보면, 비동기처리를 해야하는 경우가 증가하고 있다 동기와 비동기의 장단점 장점 단점 동기 1. 프로세스 종료여부를 쉽게 알수 있어 구조가 간단함 2. 구현 난이도 낮음 1. 프로세스 종료시까지 기다려야 하기 때문에 대시 시간을 활용할 수 없음 비동기 1. 프로세스가 ..
OS커널의 역할 1 시스템 콜 인터페이스 프로세스/스레드에서 커널로 연결되는 인터페이스로, 애플리케이션이 OS를 통해서 어떤 처리를 하고 싶을 때 시스템 콜이라는 명령을 이용해서 커널에 명령을 내린다. 2 프로세스 관리 언제 어떤 수십, 수백, 수천 개의 프로세스가 어느 정도의 CPU 코어를 이용할 수 있는지 처리 우선순위를 어떻게 결정할 것인지 등을 관리한다. 3 메모리 관리 메모리 공간의 최대치를 고려하여, 프로세스가 이용하는 독립 메모리 공간을 확보하거나 상호 간의 참조 영역을 지키기 위해 독립성을 관리한다. 4 네트워크 스택 5 파일 시스템 관리 디렉토리 구조를 제공하고, 액세스를 관리하고, 고속화 및 안정성 향상을 한다. 6 장치 드라이버 디스크나 NIC 등의 물리 장치용 인터페이스를 제공하고,..
Bridge Adapter(브릿지 어뎁터) PC가 공유기로부터 IP를 받는 경우 VM또한 공유기로부터 IP를 받음 --> 개별적으로 IP를 할당함 결론: vm이 바로 공유기와 연결됨 호스트 PC와 동일한 네트워크 대역의 IP를 갖음 별로의 PC가 또 하나 생겨서 네트워크에 연결된 것과 같은 효과 클라이언트와 서버 기능 NAT 로컬 PC에서 Virtualbox Host-Only Network IP (192.168.56.1)을 통해 VM접속할 수 있음 왜냐하면 192.168.56.1이 vm의 내부ip로 연결되기 때문 --> 호스트 PC를 통해 외부 네트워크와 통신가능 그렇기에 공유기랑 상관이 없는 구조임 포트포워딩이 동반될 수 있음 자체 DHCP서버를 띄워 내부 네트워크 대역 할당 및 통신 공유기에 연결된 ..
랜카드(네트워크 인터페이스 카드, NIC) 컴퓨터를 네트워크에 연결하기 위한 하드웨어 장치이다. 노트북 또는 데스크톱인 경우, 랜카드가 온보드 형태로 기본 장착되어 있어서, 별도의 랜카드 설정이 필요 없다. 서버도 온보드 형태로 랜카드가 장착되지만 여러 네트워크에 동시에 연결하는 경우나, 더 높은 대역폭이 필요한 경우, 랜카드를 추가로 장착한다. 랜카드의 주요 역할 Serialization: 전기적 신호를 데이터 신호 형태로 또는 그 반대로 변환함 Mac Address: 받은 패킷의 도착지 주소가 자신의 MAC주소가 아니면 폐기하고, 맞으면 시스템 내부에서 처리함 Flow control: 데이터 유실 방지를 위하여 데이터를 받지 못할 때에는 상대방에게 통신 중지를 요청할 수 있음 케이블 신뢰도 높은 통신..
Ubuntu20.04에서는 ufw statusm ufw add, ufw enable과 같은 명령어 들을 썼는데 centos를 쓰다보니 명령어가 달라져서 정리하게 되었다 net-tools 설치 yum install net-tools 현재 open된 포트 확인 netstat -tulpn | grep LISTEN 포트 추가/삭제 firewall-cmd --permanent --zone=public --add-port=3306/tcp firewall-cmd --permanent --zone=public --remove-port=3306/tcp 방화벽 재시작 firewall-cmd --reload
환경확인 grep -Eoc '(vmx|svm)' /proc/cpuinfo 또는 apt install cpu-checker 그리고 kvm-ok 명령어를 쳤을때 INFO: /dev/kvm exists KVM acceleration can be used 가 나오면 정상적으로 virtualization을 이용가능하다. Ubuntu 20.04에서 KVM설치 sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager 외부접속을하려면 브릿지이용