본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. 목차 1. 개요 2. 라우팅 알고리즘 컨트롤러로 가는 중요한 메시지들은 다음과 같다. flow-removed(플로우 제거) : 컨트롤러에게 어떤 플로우 테이블 엔트리가 시간이 만료되었거나 상태 수정 메시지를 수신한 결과로 삭제되었음을 알린다. packet-in(패킷 전달): 패킷을 컨트롤러에 보낸다. port-status(포트 상태): 포트의 상태변화 알린다. 4. SDN 컨트롤러 시나리오
전체 글
개발 블로그 💻👩💻백준에는 잘 나오지 않는 부분 배열/부분 집합 DP 로직에 대해 정리해 보았다. 1차원 배열 A에서 생각해볼 수 있는 DP 접근을 다양하게 해볼 수 있다. 간단한 목차는 아래와 같다. 1. 배열 A의 부분 배열의 최댓값 (제한 X) 2. 배열 A의 k개의 연속한 부분 배열의 최댓값 (k개라는 제한이 존재한다) 3. 배열 A의 k개 이상 연속한 부분 배열의 최댓값 (k개 이상이라는 제한이 존재한다.) 4. 배열 A에서 부분집합의 합이 S인 부분집합이 존재하는가? (존재 여부, 제한 X) 5. 배열 A에서 k개의 부분집합의 합이 S인 부분집합이 존재하는가? (존재 여부, k개라는 제한이 존재한다)1. 배열 A의 부분 배열의 최댓값 (제한 X)배열 A가 주어졌을 때, 이 배열의 부분 배열 A의 최댓값을 구하라..
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. 목차 1. 네트워크 계층 개요 1) 포워딩과 라우팅 2) 네트워크 서비스 모델 3) connection, connection-less service 2. VC와 datagram networks 1) VC 2) datagram networks 3) VC vs datagram networks 3. 라우터 내부에는 무엇이 있을까? 1) 라우터 내부 알아보기 2) 입력포트 3) 스위칭 구조 4) 출력포트 4. 인터넷 프로토콜(IP): IPv4, 주소 지정, IPv6 등 1) IPv4 데이터그램 형식 2) IPv4 데이터그램 단편화 3) IPv4 주소체계 4) DHCP 5) 네트워크 주소 변환(NAT)..
본 내용은 Operating System Concepts 8th Edition 번역본 책을 읽고 공부한 내용입니다. 목차 1. 파일이란? 1) 파일에 대한 개념 2) 파일이 User에게 주는 효과 3) 파일 연산 4) 파일 접근 방식 5) file과 directory의 공통점과 차이점? 3. Organization of Files 1) 이전에 사용하던 방식 2) multilevel indexed allocation 3. Data Structures for File 1) UNIX FILE SYSTEM 2) 단일/이중/삼중 간접 인덱스 3) Directory 찾아가기 4. 디스크 1) Disk Head Scheduling 2) Redundant Array Of Inexpensive disk 1. 파일이란? ..
본 내용은 Operating System Concepts 8th Edition 번역본 책을 읽고 공부한 내용입니다. 목차 1. 메모리 관리의 개념 및 목표 1) Classifying information stored in memory 2) segments of a process 3) 주소의 할당 4) 논리 vs 물리 주소 공간 2. Swapping 3. Linking 4. Loading 5. Running the program 1) Static Memory Allocation 2) Dynamic Memory Allocation 6. Multiprogramming - Goals in Sharing the Memory Space 1) Static Relocation 2) Dynamic Relocation 7..
평소 ec2에 docker image를 올리는 과정에서 환경변수를 그대로 올리는 형태로 구현해왔다. 아래와 같이 docker image 속에 ec2 host, docker ID/password 등이 그대로 적혀 있게 되면 docker가 private이면 그나마 괜찮겠지만.. public이라면!!😱😱 이 image가 그대로 노출되어 버렸을 때 큰 불상사를 야기할 수 있다.!! 지갑을 지키자 이를 해결하는 효율적인 방법으로 ec2 server단에 환경변수를 저장하는 방법이 존재한다. ec2 ubuntu 환경에서 파일을 만드는 것이다. 아래 명령어를 통해 .env 파일을 만들 수 있다. vim .env ##파일이 없으면 생성, 있으면 수정 또는 추가 .env파일은 초기에 비어있다. 환경변수값은 applicat..
본 내용은 Operating System Concepts 8th Edition 번역본 책을 읽고 공부한 내용입니다. 목차 1. Deadlock 필요조건들 1) 상호배제(mutual exclusion) 2) 점유하며 대기(hold-and-wait) 3) 비선점(no preemption) 4) 순환대기(circular wait) 2. 자원 할당 그래프(Resource-Allocation Graph) 1) RAG 구성요소 2) RAG - 사이클 기본 3) RAG - 사이클 심화 4) RAG - 순환적 연결 knot 3. 교착상태 예방(Deadlock Prevention) 4가지 필요조건 중에서 최소한 하나가 성립하지 않도록 하는 방법들 4. 교착상태 회피(Deadlock Avoidance) 1) 자원당 인스턴..
본 내용은 Operating System Concepts 8th Edition 번역본 책을 읽고 공부한 내용입니다. 목차 1. CPU 스케줄링 1) 목표 2) CPU-I/O burst cycle 3) CPU 스케줄링을 위한 Decision Making - 선점/비선점 스케줄링 4) CPU 스케줄링을 위한 Decision Making - Dispatcher 2. 스케줄링 알고리즘 1) 스케줄링 기준 2) FCFS 3) SJF 4) Round-Robin Scheduling 5) SRT 6) Priority Scheduling 7) Multilevel Queue Scheduling 8) Multilevel Feedback Queue Scheduling 1. CPU 스케줄링 1. CPU 스케줄링의 목표 다중프로..
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. 목차 1. 혼잡제어의 원인과 비용 1) 시나리오1: 두 개의 송신자와 무한 버퍼를 가지는 하나의 라우터 2) 시나리오2: 두 개의 송신자, 유한 버퍼를 가지는 하나의 라우터 3) 시나리오 3: 네 개의 송신자와 유한 버퍼를 가지는 라우터, 그리고 멀티홉 경로 2. 혼잡제어에 대한 접근법 1) 종단간의 혼잡제어 2) 네트워크 지원 혼잡제어 3. 혼잡제어의 여러 사례 1) ATM ABR 2) RM 4. TCP 혼잡제어 1) TCP의 알고리즘 2) AIMD 3) Slow Start 4) TimeOut 5) Fast Recovery 5. TCP 공정성 1. 혼잡제어의 원인과 비용 1.1 시나리오1: ..
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. TCP/UDP에 이어 이번에는 RDT(reliable data transfer)에 대해 알아보자! 과정이 조금 복잡할 수 있다 목차 1. rdt의 원리 2. rdt 1.0: 오류 없는 채널에서의 신뢰적인 데이터 전송 1) 송신/수신 방법 - event, action 3. rdt 2.0: 비트 오류가 있는 채널상에서의 신뢰적 데이터 전송 1) 송신/수신 방법 - ACK, NAK 2) rdt 2.0의 치명적 결점 3) rdt 2.1: sequence number로 구분하여 전송 4) rdt 2.2: sequence number로 구분하여 전송+a NAK-free protocol 4. rdt 3.0..
오늘은 TCP와 UDP에 대해 알아보자! TCP UDP는 TCP/IP 프로토콜 모델에서 전송 계층에 해당한다. 전송(트랜스포트) 계층은 응용 프로그램과 네트워크 사이에서 중재하는 역할을 맡고 있으며, 애플리케이션 프로세스들 간의 논리적 통신(logical communication)을 제공한다. UDP(사용자 데이터그램 프로토콜) 비연결형, 신뢰성 없는 전송 프로토콜 UDP는 최소한의 오버헤드만 사용하는 매우 간단한 프로토콜이다. 작은 메시지를 보내거나 또한 신뢰성을 고려하지 않는 프로세스는 UDP를 사용할 수 있다. UDP를 사용하여 작은 메시지를 전송하는 것이 TCP를 사용하는 경우보다 송신자와 수신자 간의 상호 대화가 훨씬 적다. handshaking이 일어나지 않으며, congestion contr..
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. 1. P2P 1) P2P란? 2) P2P 파일 분배 3) P2P 구조의 확장성 4) 비트토렌토 5) 비트토렌토의 구조 및 소통방식 2. Video Streaming과 CDN(content distribution networks) 1) Multimedia: video 2) Streaming stored video 3) DASH 4) CDN 1. P2P 1.1 P2P란? 항상 켜져있는 기반 구조 서버들에 최소한으로 의존하는 구조이다. 누구나 서버/클라이언트가 될 수 있고, 자유롭게 데이터를 주고받는다. 1.2 P2P 파일분배 클라이언트-서버 파일분배에서, 서버는 파일 복사본을 각 피어들에게 보내야..
1. DNS 1) DNS란? 2) DNS가 제공하는 서비스 3) 분산 시스템 4) 계층적으로 IP주소를 찾는 과정 5) DNS 질의(name resolution) 6) DNS 캐싱 7) DNS 레코드 8) DNS 메시지 9) DNS 데이터베이스에 레코드 삽입 10) DNS 공격 1. DNS 1.1 DNS란? 사람은 주민등록번호로 개개인을 식별할 수 있다. 이와 비슷하게 호스트는 DNS를 통해서 식별할 수 있다. 호스트를 식별하는 다양한 방법이 있다. ex. hostname(cnn.com, www.yahoo.com), IP 주소 (121.7.106) (1) DNS 서버들의 계층구조로 구현된 분산 데이터베이스이고, (2) 호스트가 분산 데이터베이스로 질의하도록 허락하는 애플리케이션 계층 프로토콜이다. 1.2..
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. 목차 1. FTP 1) FTP란? 2) FTP와 HTTP 비교 3) FTP 명령어 - 참고 4) Active Mode vs Passive Mode 2. electronic mail 1) SMTP 2) POP3 3) IMAP 1. FTP 1.1 FTP란? FTP는 HTTP와 맥락이 비슷한 프로토콜이라고 생각하면 된다. 모두 인터넷에서 데이터를 전송하기 위한 규약이지만, FTP는 파일 전송을 위한 표준 프로토콜이다. 1.2 FTP와 HTTP 비교 1. 둘 모두 TCP에서 동작한다. 2. 응답 메시지가 존재한다(HTTP에서의 200, 404 응답). 하지만 형식은 다르다 1. FTP는 일반적으로 파..
상황 EC2 + docker 연결 후 보안그룹을 이리저리 만져보는 상황이었다. 그러다 갑자기 카페에 가서 docker에 image를 run시키려는 상황에 계속 이 에러가 뜨기 시작했다. 시도1 ec2를 ssh로 접근한 후 다음 url을 참고하여 아래 코드를 실행하였다. ubuntu@ubuntuserver:~$ sudo nano /etc/resolv.conf #add these lines on top and above one for home router… nameserver 8.8.8.8 nameserver 8.8.4.4 ..안됨🤦 시도 2 docker login이 계속 안되는 것 같아 ec2의 보안그룹을 계속 건드렸던 게 생각났다. 본래 ec2 보안그룹 아웃바운드 규칙은 default로 아래와 같이 세팅..
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. 목차 1. 네트워크 어플리케이션의 원리 1) P2P와 Client-Server 2) Socket 3) 애플리케이션이 이용가능한 트랜스포트 서비스 (4가지 요소) 2. 웹과 HTTP 1) HTTP 개요 2) 비연속 연결과 지속 연결 3) HTTP 메시지 포맷 4) 사용자와 서버 간의 상호작용 : 쿠키 5) 웹 캐싱 6) 조건부 GET 1. 네트워크 어플리케이션의 원리 1.1 Client-Server와 P2P 쉽게 예시로 설명하자면, Client-Server는 교수님과 우리의 관계, P2P는 팀플할 때 팀원 간 관계로 설명할 수 있다. 교수님은 우리의 질문을 항상 받을 준비를 하고 계신다. Cli..
본 내용은 Computer Networking: A Top-down Approach 를 읽고 공부한 내용입니다. 목차 1. 인터넷이란 무엇인가? 1) 구성요소로 본 인터넷 2) 서비스로 본 인터넷 3) 프로토콜이란 무엇인가? 2. 네트워크의 가장자리 1) 클라이언트와 서버 프로그램 2) 접속 네트워크 3) 물리 매체 3. 네트워크 코어 1) 회선 교환과 패킷 교환 2) Routing과 Forwarding 에필로그 저번에 카페에 갔다가 넘 귀여운 코알라를 발견했다! 귀여워.. 1. 인터넷이란 무엇인가? 인터넷은 한 문장으로 간결한 정의를 하기 쉽지 않다. 인터넷이 제공하는 서비스, 하드웨어, 소프트웨어 등 모든 요소에 이르기까지 인터넷은 너무나 복잡하다. 따라서 아래에서 두 가지 방법으로 설명한다. 1️⃣..
본 내용은 Operating System Concepts 8th Edition 번역본 책을 읽고 공부한 내용입니다. 목차 1. 동기화 문제 1) 생산자 소비자 문제 2) Too much milk 문제 3) 메모리 적재와 연산 도중의 문제 2. 동기화 문제의 해결책 1) 동기화 개념 4가지 2) 멀티스레드 동기화 기법 해결 방법 3) 메모리 적재와 연산 도중의 문제 3. 임계 영역 문제의 해결책 1) 싱글스레드 환경에서의 해결책 2) n개의 프로세스가 있는 멀티스레드 시스템에서 임계 영역 문제를 해결하기 위해 충족해야 하는 세 가지 요구조건 3) 메모리 적재와 연산 도중의 문제 4. 임계 영역에 대한 소프트웨어 기반 해결책, 알고리즘 1) 피터슨의 해결안(Peterson's solution) 5. 세마포 ..
목차 1. 문제 정리 2. 알고리즘 증명 및 설명 3. 코드 구현 2261번: 가장 가까운 두 점 첫째 줄에 자연수 n(2 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 줄에는 차례로 각 점의 x, y좌표가 주어진다. 각각의 좌표는 절댓값이 10,000을 넘지 않는 정수이다. 여러 점이 같은 좌표를 가질 수도 www.acmicpc.net 1. 문제정리 2차원 평면 위에 여러 점들이 콕콕 박혀 있다. 이 점들 사이 거리 중 가장 짧은 거리를 찾으려 한다. 2. 알고리즘 증명 및 설명 일단 일일이 다 해보는 전략에 따르면, 모든 가능한 점의 쌍 거리를 구하는 데 O(N^2), 정렬하는 데 O(N^2 logN)으로 총 O(N^2 logN)의 시간복잡도가 걸린다. 그럼 이 2차원 평면을 두 개로 쪼개서 해..
본 내용은 Operating System Concepts 8th Edition 번역본 책을 읽고 공부한 내용입니다. 목차 1. 다중 스레드 1) 배경 2) 개념 3) 장점 2. 사용자 레벨 스레드와 커널 레벨 스레드 3.Process 100개에 thread 한 개 있는 모델 vs Process 1개에 thread 100개 있는 모델 1) 메모리 영역의 차이 2) 각 방식의 장점과 단점 비교 3) PCB와 TCB 개수 비교 1. 다중 스레드 1. 배경 앞에서 우리는 다중프로그래밍에 대한 개념을 언급했다. 다중 프로그래밍은 쉽게 말해 아래 그림처럼 프로세스 중 아무도 놀지 못하도록 프로세스들을 조정한다는 개념이다. 하나의 응용 프로그램이 여러 개의 비슷한 작업들을 실행해야 하는 상황이 여럿 존재한다. 예를 ..