Computer Science 41

[CN] 2장: The Domain Name System, DNS

The Domain Name System, DNSDNS 개요1IP Address일반적인 IP 주소(IPv4)는 32비트,0~255 사이의 4개 숫자로 표시 됨IP 주소는 기억하기 어렵지만,google.com과 같은 호스트 이름은 기억하기 쉬움DNS (Domain Name System)DNS 서버들의 계층 구조로 구현된 분산 데이터베이스애플리케이션 계층 프로토콜로 구현된 핵심 인터넷 기능호스트가 분산 DB로 질의 허용UDP 상에서 수행되고, 포트번호는 53번사용자가 웹 서버의 호스트 이름을 입력하여, 웹 서버의 IP 주소를 얻는 절차유저 컴퓨터에 DNS 클라이언트가 계속 돌고있음URL로부터 호스트 이름을 DNS 클라이언트에 보냄DNS 클라이언트가 DNS 서버에 호스트 이름을 포함한 쿼리 보냄DNS 클라이언..

[CN] 2장: E-mail, SMTP, IMAP

E-mail, SMTP, IMAP전자메일 (E-mail)3개의 주요 구성요소사용자 에이전트메일 메세지 작성, 편집, 읽기메일 서버메일 큐에 메일 메세지들 담고 있음SMTP (Simple Mail Transfer Protocol)클라이언트: 보내는 메일 서버둘 다 서버를 갖고 있음서버: 받는 메일 서버메일 서버 간의 이메일 메세지 전송 규율SMTPTCP를 사용하여 이메일 메세지를 클라이언트에서 서버로 전송포트번호 25 사용3가지의 단계를 따름SMTP handshaking = 연결SMTP tansfer of message = 메세지 전송SMTP closure = 종료HTTP와 유사하게, 아스키 코드를 사용함응답 또한, 상태코드 사용SMTP 동작SMTP를 통해 엘리스 메일 서버에 도착메일 서버의 메세지 큐에 ..

[CN] 2장: Web and HTTP

Web and HTTP웹 Web객체들로 구성됨웹 페이지는 여러 참조 객체를 포함하는 base HTML 파일각 객체는 URL로 주소 지정 가능HTTP 개요Stateless, 과거에 대한 정보 XHTTP Message는 Request | Response 2가지 종류ASCII 코드 형식이다.포트번호 80 사용HTTP 1.0 (비지속 연결)클라이언트가 TCP 연결 요청서버가 TCP 연결 승인클라이언트가 메세지 요청서버가 메세지 응답HTTP 서버 닫음클라이언트가 응답 받고 데이터 얻음비 지속 연결의 경우, 총 10개의 이미지면 11번의 연결과 해제가 필요함RTT (Round - Trip - Time)서버한테 패킷을 보내고 돌아오는 시간비 지속 연결의 경우HTTP 응답시간 = 2RTT + 파일전송시간HTTP 1.1..

[CN] 2장: Principles of network applications

Principles of network applications프로토콜 아키텍처Client - Server클라이언트IP 주소는 바뀜클라이언트끼리 직접 통신 X간헐적으로 통신 (맨날 켜진 상태 X)서버항상 동작함IP 주소가 고정적임데이터 센터에 있음Peer - To - Peer클라이언트끼리 직접 통신자기확장성항상 동작하는 서버 XIP 주소가 변경될 수 있음각 호스트마다 클라이언트, 서버 프로세스 2개를 지님동일한 호스트 (하나의 컴퓨터)에서는 프로세스 간 통신 = 운영체제가 해줌다른 호스트와 통신할 때는 메세지를 교환하여 통신애플리케이션은 어떤 트랜스포트 서비스가 필요 ?신뢰적 데이터 전송일부 손실 허용시간 보장처리율보안TCP | UDPTCP믿을 수 있는 트랜스포트흐름 제어혼잡 제어연결 지향형시간보장, 처리..

[CN] 1장: 프로토콜 계층, 서비스 모델 & 보안

프로토콜 계층, 서비스 모델계층화장점모듈화로 유지보수 용이시스템 업데이트 용이단점각 계층마다 중복된 기능 포함다른 계층에만 존재하는 정보가 필요할 수도 있음스위치는 2개 계층라우터는 3개 계층보안인터넷은 원래 보안을 고려하지 않고 설계됨Malware자기복제바이러스웜스파이웨어사적인 정보를 수집하여 특정 사이트에 업로드패킷 스니퍼공유 채널에서 문제 발생IP 스푸핑패킷에 가짜 출발지 주소 삽입헤더파일을 바꿈디도스공격자가 가짜 트래픽으로 리소스를 제한함방어 방법인증기밀성무결성 확인접근 제한방화벽

[CN] 1장: Performance: Loss, Delay, Throughput

Performance: Loss, Delay, Throughput라우터 버퍼 안의 큐가 꽉 차면 ?패킷 손실이 발생한다.4가지 지연처리 지연, proc비트 오류 검사어느 패킷으로 보낼지 결정큐잉 지연, queue라우터의 큐에서 전송을 기다리는 시간라우터 혼잡에 의존적전송 지연, trans패킷의 모든 비트를 링크로 전송하는 시간패킷 길이: L링크 전송률: RL/R전파 지연, prop물리적 링크 길이: d전파 속도: sd/s전송 vs 전파 비교자동차 = bit, 자동차 대열 = 패킷, 요금 계산소 = 라우터차량 속도 = 100km/hr요금 계산소에서 차량 한 대가 통과하는 시간: 12초전송시간자동차 대열을 요금 계산소에 통과12 * 10 = 120초 = 2분전파시간마지막 차량이 첫 번째 요금소에서 두 번째 ..

[OS] Cuncurrency: 동시성 개요

스레드 개념이 도입됨Thread 개념 및 관리하나의 프로세스 내에 독립된 실행 흐름 (독자적 PC와 레지스터 보유)프로세스 주소 공간 공유 → 데이터 공유 가능여기서 병행성 문제가 발생함Concurrency Control (병행성 제어)공유 변수에 하나의 프로세스만 접근→ 동기화된 방식으로 데이터를 접근하도록 강제하는 방법스레드 관리하나의 프로세스 주소 공간 내 여러 개의 스택 스택 = 스레드 지역 저장소독립된 실행 흐름 상태 전이: 프로세스 상태와 동일함 (Running, Ready, Blocked) 하나의 CPU에서는 한 번에 하나의 스레드씩 실행함 → PC 및 레지스터를 독자적으로 유지 (별도의 Context) → TCB (Thread Control Block)에 관리 정..

[CN] 1장: Network core: Packet/Circuit switching, Internet Structure

Network core: Packet/Circuit switching, Internet Structure라우터들의 그물망패킷 교환 방식호스트는 앱 계층의 메세지를 패킷으로 분할→ 링크를 통해 다음 라우터로 패킷을 전달→ 요구할 때만 전송 링크를 사용라우팅 알고리즘에 의해 경로 설정 및 이동이 됨Local 행동 (Forwarding)라우터의 입력 링크에 도착하는 패킷을 적절한 라우터로 전달Global 행동출발지부터 목적지까지 경로를 결정반드시 전체 패킷이 라우터에 도착해야 다음 링크로 보냄R bps의 링크에 L패킷 = L/R초 걸림N개인 경우 N*L/R문제L = 10 Kbits, R = 100Mbps전송지연 시간 = L/R = 0.1msec큐잉서비스할 수 있는 속도보다 빨리 도착할 때 발생함라우터가 패킷에..

[OS] 멀티 프로세서 스케줄링

멀티 프로세서: 한 시스템 내에 여러 개의 프로세서 (CPU)멀티 코어: 하나의 칩 내에 여러 개의 코어 (CPU)CPU가 하나일 때는 적합하지 않음병렬 프로그래밍, 멀티 스레딩.. 등 영역을 나누어 수행 후 결과를 합치는 방식으로 이용멀티 프로세서 구조에 따른 문제 + 캐시 일관성캐시가 접근이 가장 빠르므로, 캐시 접근을 주로 다룸싱글 CPU의 경우, 캐시와 데이터 일관성 문제가 없다.멀티 프로세서 구조에서 캐시 ?캐시 일관성 문제가 발생함CPU 0이 메모리에서 데이터를 읽어와 캐시에 적재 후 내용을 바꿈→ 이러면 메모리에도 다시 내용을 바꿔줘야 하는데 CPU 1이 메모리에 접근 중임→ 그러면 CPU 0과 CPU 1이 갖는 데이터가 다르게 됨캐시 일관성 주요 해결 방법💡 버스 ..

[OS] Proportional Share (비례 배분)

반응 시간과 반환시간만 중요하냐 ?내 몫의 CPU 시간은 잘 쓰이고 있는가 ?각 프로세스 지분(Share)에 따라 CPU 시간을 배분한다.Lottery 스케줄링티켓 이라는 개념이 도입됨프로세스가 받아야 할 자원의 지분을 표시보유한 추첨권 75/25에 따라 CPU 사용권을 확률로 추첨받음추첨권을 다루는 기법추첨권 화폐 (Ticket Currency)각 사용자는 자신의 화폐 가치로, 각 작업에 추첨권을 할당시스템이 전역 화폐 가치로 변환됨추첨권 양도 (Ticket Transfer)일시적으로 다른 작업에게 추첨권을 양도함클라이언트-서버 환경에서 유리한 작업추첨권 팽창 (Ticket Inflaction)자신이 소유한 추첨권 수를 늘리거나 줄일 수 있음💡 priority inversion ..