2024/07/24 5

11_Security

Kerckoff’s 원리암호 시스템의 안정성은 key의 안정성에만 의존해야 한다.암호 알고리즘은 공개되어도 괜찮음. key만 지키면 됨Passive AttackActive Attack 공격 모델 4가지Ciphertext Only Attack공격자가 중간에서 암호문 갈취하는 거암호 알고리즘 알아내거나 로그 분석, 정보 수집, 키 알아내기 등Known Plaintext Attackbob alice가 과거에 사용했던 text 쌍을 사용하는 것Chosen Plaintext Attack공격자가 plaintext를 선택해서 bob한테 보내고 ciphertext 얻어냄. plaintext를 마음대로 조작하는 것공격자가 원하는 평문을 선택할 수 있음,Chosen Ciphertext Attack공격자가 ciphertex..

CS/Network 2024.07.24

06_Multiplexing

selecthttps://develop-rock.tistory.com/32 03_TCP ConnectionsTCP connection overviewaccept()를 호출하면 새로운 connect 요청이 들어올 때까지 프로그램 실행이 block 됨recv를 호출하면 읽을 수 있는 새로운 데이터가 들어올 때까지 프로그램 실행이 block 됨 blocking의develop-rock.tistory.com epoll()select()는 관찰 대상에 대한 정보가 매번 전달되어야 함→ epoll()로 해결select()로 100개 이상의 소켓은 무리임(100개의 array를 OS에게 return 해야 하니까)전체 fd를 대상으로 하는 루프가 없어서 상태 변경을 확인하기 쉬움select()에 해당하는 epoll_wa..

CS/Network 2024.07.24

05_Thread

프로세스 vs 스레드프로세스: 운영체제로부터 자원을 할당받는 작업의 단위스레드: 프로세스에 할당된 자원을 사용하는 실행 흐름의 단위(하나의 프로세스 안에서 발생)Memory Space프로세스: 프로세스마다 독립된 메모리 공간을 가짐스레드: 부모 프로세스의 메모리 공간을 공유함Creation Overhead프로세스: 각 프로세스마다 고유한 메모리 공간과 자원을 할당하기 때문에 비용이 상대적으로 높음스레드: 프로세스의 자원을 공유해서 사용하기 때문에 비용이 상대적으로 낮음Resource Sharing프로세스: 프로세스 간 IPC 없이 자원 공유 불가능스레드: 메모리, 파일 디스크립터 등 프로세스의 자원을 다 같이 공유하여 사용 스레드프로세스 안에서 생성됨 프로세스의 메모리 할당 구조Code 영역: 프로그램 ..

CS/Network 2024.07.24

04_Multiprocess

Multi-connection Server서버는 connection 요청을 보내온 모든 client와 동시에 서비스 해야함Multiplexing-based server: 입출력 대상을 grouping하여 서비스Multiprocess-based server: 다중 프로세스로 서비스Multi-threading-based server: client 수만큼 스레드 만들어서 서비스 fork()#include pid_t fork()새로운 프로세스를 생성하는 함수fork()를 호출한 프로세스가 복사됨fork() 호출 이후로 각 프로세스는 독립적으로 실행리턴값성공 부모 프로세스라면: 자식 프로세스의 pid 자식 프로세스라면: 0실패: -1 자식 프로세스가 터지면? - wait()자식 프로세스가 terminate되면 부..

CS/Network 2024.07.24

03_TCP Connections

TCP connection overviewaccept()를 호출하면 새로운 connect 요청이 들어올 때까지 프로그램 실행이 block 됨recv를 호출하면 읽을 수 있는 새로운 데이터가 들어올 때까지 프로그램 실행이 block 됨 blocking의 문제점만약 여러 서버, 클라이언트가 통신하는 상황에서(서버 입장) recv()를 호출하여 새로운 데이터가 들어올 때까지 프로그램 실행이 block 된다면? → block 상태로 데이터 수신을 대기하는 동안 다른 client의 요청을 처리하지 못함(client 입장) 여러 탭에서 각각의 웹페이지를 병렬로 로드해야 하는데 block되면 동시에 여러 웹페이지, 이미지, 리소스 등을 화면에 띄우는 것이 불가능함—> 여러 connection을 동시에 처리할 수 있는..

CS/Network 2024.07.24