CS
[Network] 네트워크 계층 : 인터넷 프로토콜(IP)
인터넷 네트워크 계층 패킷을 데이터그램이라고 부른다. IP의 사용에 대해 알아보기 전에 IP 데이터그램이 어떻게 이루어져 있는지 알아보자 IPv4 IPv4 데이터그램의 주요 필드는 다음과 같다. 버전 번호(4비트) : 데이터 그램의 IP 프로토콜 버전을 명시한다. 라우터는 IP의 버전 번호를 확인하여 데이터그램의 나머지 부분을 어떻게 해석할 지 결정한다. 다른 버전의 IP는 다른 데이터그램 형식을 사용한다. 헤더 길이(4비트) IPv4데이터그램은 헤더에 가변 길이의 옵션을 포함하므로 헤더길이 필드를 통해 IP 데이터그램에서 실제 페이로드(예를 들어 데이터그램에 캡슐화 된 트랜스포트 계층 세그먼트)가 시작하는 곳을 결정한다. 대부분 IPv4 데이터그램은 옵션을 포함하지 않으므로 대체로 IPv4 데이터그램 ..
[컴퓨터 구조] 산술 연산(덧셈, 곱셈)
덧셈 덧셈을 수행하는 하드웨어를 병렬 가산기라고 부른다. 병렬 가산기는 비트 수만큼의 전가산기들로 구성된다. 반가산기 1비트 2진수 2개를 더한 합과 올림수를 구하는 하드웨어 1 + 1 => 결과값 1과 올림수 1을 출력한다. 전가산기 1비트 2진수 2개와 이전 단게의 올림수 1개, 총 3개의 이진수를 더하여 합과 올림수를 구하는 하드웨어 이전에 올라온 비트 1 + (0 + 1) 현재 위치의 비트 => 결과값 1과 올림수 1을 출력한다. 전가산기는 올림수 비트를 전송하는 선에 의해 서로 연결된다. 따라서 많은 비트를 연산하기 위해서 같은 방법으로 전가산기들을 계속 연결해 구성할 수 있다. 병렬 가산기 상태 레지스터 V : 오버플로우(oVerflow) 비트 (1인경우 오버플로우가 발생했다는 뜻이다) Z :..
[컴퓨터 구조] 산술 연산 (Shift)
Logical shift(논리적 시프트) 논리적 시프트 연산은 레지스터 내의 데이터 비트들을 왼쪽, 오른쪽으로 한 칸씩 이동시키는 동작이다. 110011을 left shift 하면 100110이 된다. 101011을 right shift 하면 010101이 된다. 시프트되어 갈 곳을 잃은 비트는 버려지게 되고, 비어있는 비트는 0으로 채워진다. circular shift(순환 시프트) 최상위, 최하위 비트를 버리지 않고, 반대편 끝에 있는 비트 위치로 들어가게 한다. 1010을 circular left shift하면 0101이 된다. 1101을 circular right shift하면 1110이 된다. 논리적 시프트연산과 순환 시프트 연산을 이용하면, 두 레지스터들 간에 직렬 데이터 전송이 가능하다. 시..
[Network] 트랜스포트 계층 : TCP 혼잡제어 알고리즘(TCP Tahoe, TCP Reno, TCP NewReno)
TCP Tahoe Slow-Start + 혼잡 회피 동작 방식 TCP 연결 window size는 1에서 시작 window size 지수적으로 증가 loss 발생시, 현재 window size의 절반을 ssthresh 값으로 설정 후 window size는 1에서 다시 시작. ssthresh 값에 다시 도달하면, window size는 1씩 증가. TCP Tahoe의 특징 fast retransmit : 타임아웃이 발생하기 전이라도 세 개의 중복된 ACK를 받으면 위와 똑같은 혼잡제어 동작 방식을 적용한다. timeout과 fast retransmit의 특징 timeout은 시간내에 패킷응답이 아예 오지 않는 것이다. 하지만 fast retransmit은 타임 아웃 전에 중복 ACK가 세개가 온다는 뜻이..
[Network] 트랜스포트 계층 : 혼잡제어
'혼잡' 이란? 너무 많은 전송자가 너무 많은 데이터를 너무 빠르게 전송해서 네트워크가 감당하지 못하는 그런 현상 혼잡제어가 흐름제어와 다른점 흐름제어는 Sender와 Receiver간의 1:1 문제이다. 하지만 혼잡제어는 네트워크를 공유하고 있는 모든 node들이 서로 양보를 해야하는 문제이다. 양보를 해야 네트워크 트래픽 양이 줄어들면서 원활하게 문제를 해결할 수 있기 때문에 이것은 전체 노드가 관련 된 글로벌한 이슈에 해당된다. 혼잡제어에 대한 방식 1. network-assisted - 라우터가 관여해서 호스트들에게 '지금 혼잡하니 네트워크양을 얼마만큼 줄이세요'라고 정보를 알려주는 방식 - 여러 복잡한 문제가 있기 때문에 잘 사용하지 않는다고 한다. 2. end-to-end - 라우터가 전혀 관..
[DB] 쿼리문 연습하기 (LEFT JOIN, INNER JOIN, GROUP BY)
SQL Test Free Online SQL Test Tool sqltest.net 연습은 위 사이트에서 3, 4, 5번 문제만 올바르게 구할 수 있는 테이블 작성 CREATE TABLE Product ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, maker VARCHAR(30), model VARCHAR(30) ); CREATE TABLE PC ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, model VARCHAR(30), speed INT(6), price FLOAT(6) ); CREATE TABLE Labtop ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, model VARCH..
[컴퓨터 구조] 컴퓨터 시스템 개요
1. 컴퓨터의 기본 구조 컴퓨터는 프로그램 코드들을 정해진 순서대로 실행한다. 이 과정에서 데이터를 읽고(Read), 처리(Processing)하고, 저장(Store)한다. CPU 프로세서(Processor)라고 불리기도 하며, 컴퓨터의 두뇌이다. 컴퓨터의 성능은 CPU의 성능과 직결된다고 볼 수 있다. 32-bit, 64-bit 컴퓨터도 분류되는 이유도 CPU가 한 번에 처리할 수 있는 비트 수에 따라서 나눈것이다. 주기억장치(main-memory) 우리가 알고 있는 RAM과 ROM이 주기억장치에 속한다. 메인보드상에서 CPU와 가까이 위치하며 빠른 읽기, 빠른 쓰기 속도를 가진다. 하지만 가격이 비싸고 면적을 많이 차지하며 적은 저장 용량을 가진다는 단점이 있다. 따라서 CPU가 프로그램을 실행하기 ..
[디자인 패턴] Observer Pattern (behavioral)
용어 정리 Subject : 데이터(db) Observer : subject에 관심을 가지고 사용하는 클래스 또는 컴포넌트 사용 용도 및 상황 각각의 observer들이 subject에 대한 알림에 대응해 서로 다른 행동을 취해야 할 때 subject이 하나의 observer에 의해 변경되었을 때, 모든 observer들이 알림을 받아야 하고 그에 따른 업데이트를 진행해야 하는 경우 해결 방안 subject을 설계할 때 observer의 행동에 영향을 받지 않도록 설계해야한다. 모든 subject은 observers에 대해서 독립적이어야 한다. Observer Pattern의 구조 Subject와 Observer 클래스는 추상클래스로서 각각 ConcreteSubject와 ConcreteObserver의 ..
[Network] 무선 네트워크 : Wireless LAN(Wi-Fi)
Wi-Fi 802.11: 1999년경 발표된 802.11b부터 ~ 2014, 2016년에 발표된 802.11ac까지 802.11이라는 것이 전체적으로 와이파이 기술을 의미한다. 11a, 11b, 11g 기술은 한 채널에 약 20Mhz 범위를 가진다. 하지만 n부터는 한 채널에 약 40Mhz 범위를 가지게 된다. 802.15: WPAN(Wireless Personal Area Network) 즉, 블루투스 같이 전송범위는 넓지 않지만 전력을 적게 소모하는 기술이다. 2G, 3G, 4G 등등: 휴대폰과 관련된 기술이다. 그림의 각 BSS를 보면 2개의 안테나를 가진 공유기처럼 생긴 물체가 있다. 이를 BaseStation(이하 기지국)이라고 한다. 하지만 Wifi에서는 기지국이라고 잘 부르지 않고 AP(Ac..
[Network] 네트워크 계층 : DHCP(Dynaminc Host Config Protocol)
DHCP(Dynaminc Host Config Protocol) 호스트의 주소를 자동으로 설정해주는 프로토콜이다. 2-30년전 컴퓨터를 사용할 때는 직접 컴퓨터의 IP 주소를 설정하고 여러가지 세팅을 해야만 인터넷에 접속할 수 있었다. 그런데 요즘 컴퓨터들은 전원만 꽂으면 사용할 수 있는데 이것이 DHCP 라는 프로토콜 덕분이다. DHCP의 목적은 호스트가 자신의 IP주소를 네트워크에 있는 서버로부터 자동으로 얻는 것이다. 장점주소의 재사용이 가능하다 예를 들어 한 학과에 300명의 학생이 있다고 하자. 이 학생들이 학교에서 컴퓨터를 사용하기 위해서 인터넷에 접속하고 싶다면 300대의 컴퓨터 모두 IP주소가 할당되어야 할 것이다. 결국 300개의 IP주소가 필요하다는 것이다. 하지만 300명이 동..