분류 전체보기 49

4. 0과 1로 문자를 표현하는 방법

0과 1로 문자를 표현하는 방법 문자 집합과 인코딩 문자 집합(character set): 컴퓨터가 이해할 수 있는 문자의 모음. 문자 집합에 속해 있지 않은 문자는 컴퓨터가 이해할 수 없다. 인코딩(encoding): 코드화하는 과정. 문자를 0과 1로 이루어진 문자 코드로 변환하는 과정. 사람의 언어를 컴퓨터 언어로. 디코딩(decoding): 코드를 해석하는 과정. 0과 1로 표현된 문자 코드로 문자를 변환하는 과정.컴퓨터 언어를 사람의 언어로. 아스키 코드 가장 대표적이고 대중적인 문자 집합 그리고 인코딩 방법 중 하나로 초창기 문자 집합 중 하나이다. 알파벳과 아라비아 숫자, 일부 특수문자와 제어문자 7비트로 하나의 아스키 문자를 표현할 수 있다. 실제로는 아스키 코드 문자 하나를 표현하는데 8..

3. 0과 1로 숫자를 표현하는 방법

0과 1로 숫자를 표현하는 방법 컴퓨터는 기본적으로 0과 1밖에는 이해하지 못한다. 그렇다면 1보다 큰 수를 어떻게 이해할 수가 있을까에 대한 이야기. 컴퓨터가 이해하는 정보 단위 컴퓨터가 이해하는 가장 작은 정보 단위를 비트라고 한다. 즉, 0과 1을 표현할 수 있는 가장 작은 정보 단위가 비트이다. n비트로 2의 n제곱 가지의 정보 표현이 가능하다. (1비트는 두 가지, 2비트는 네 가지, 3비트는 여덟 가지 …) 컴퓨터는 기본적으로 0과 1 밖에는 이해하지 못하기 때문에 모든 수많은 비트로 이루어져 있다. 웹 브라우저, 게임 포토샵 등 프로그램도 결국 수많은 비트 수많은 0과 1로 이루어져 있다. 다만 평소 파일의 크기를 이야기할 때 ‘비트’라는 단위를 흔히 사용하지는 않고 비트보다 더 큰 단위를 ..

2. 컴퓨터 구조의 큰 그림(2)

2강. 컴퓨터 구조의 큰 그림 메모리 메모리는 현재 실행되는 프로그램(프로세스)의 명령어와 데이터를 저장하는 부품이다. 바꿔 말하면 어떤 프로그램이 실행되기 위해서는 그 프로그램을 이루는 명령어와 데이터가 메모리 안에 있어야 한다. (나중에 운영체제에서 페이징이라고 하는 것을 배우면 굳이 실행되는 실행되는 프로그램의 모든 데이터와 명령어가 다 저장될 필요는 없겠다라는 걸 알게 될 것이지만 일단) 그렇다면 현재 실행되고 있지 않은 프로그램은? 메모리가 아니라 보조기억 장치에 저장되어 있다. 메모리에서 중요한 개념 주소. 위 그림의 한 칸 한 칸이 주소. 메모리에 저장할 수 있는 데이터와 명령어의 종류는 아주 많다. 그 많은 명령어와 데이터 중 원하는 명령어와 데이터가 지금 메모리 내에 어디에 저장되어 있는..

1. 컴퓨터 구조의 큰 그림(1)

2강. 컴퓨터 구조의 큰 그림 컴퓨터 구조 컴퓨터 구조는 크게 두 가지 컴퓨터가 이해하는 정보: 데이터와 명령어 컴퓨터의 네 가지 핵심 부품 컴퓨터가 이해하는 정보 컴퓨터가 이해하는 정보에는 크게 두 가지가 있다. 하나는 데이터 또 하나는 명령. 데이터: 데이터란 숫자 문자 이미지 동영상 같은 정적인 정보. 일상적으로 이 데이터라고 하는 용어를 사용할 때는 컴퓨터와 주고받는 정보 혹은 컴퓨터 내부에 저장된 정보를 가리켜서 그냥 편하게 데이터라고 지칭. 컴퓨터는 기본적으로 0과 1만 알기 때문에 어떻게 0과 1로 컴퓨터가 숫자를 이해하고 표현하는지 그리고 어떻게 문자를 이해하고 표현하는지 공부할 예정. 명령어: 컴퓨터는 명령어를 처리하는 기계. 그만큼 명령어라고 하는 정보는 컴퓨터를 실질적으로 움직이는 정..

7. 애플리케이션, 트랜스포트 그리고 네트워크 계층

네트워크 계층으로 내려가기 전 애플리케이션 레이어, 트랜스포트 레이어 간략 정리 What we’ve done 지금까지 해온 애플리케이션 레이어, 트랜스포트 레이어 관점에서 네트워크를 생각해 보면 기본적으로 네트워크라는 것은 복잡한 시스템이기 때문에 그 복잡한 시스템을 잘 디자인하고 관리하기 위해서 계층화한 것이다. 상위 계층으로 갈수록 개념적이고, 하위 계층으로 갈수록 디테일한 게 더 보이는 식으로 계층화해 놓은 것. 그래서 모양이 이렇게 생겨서 스택, 네트워크 프로토콜 스택이라고 불리기도 한다. 네트워크 프로토콜 스택이 클라이언트에도 있고 서버도 있는데 예를 들어 애플리케이션 레이어면 HTTP 프로토콜에서 클라이언트와 서버 사이에 단순히 request와 responce 주고 받는 걸로 생각했다. 그냥 ..

6. 트랜스포트 계층 2-2

컴퓨터 네트워크 전송계층2 TCP overview TCP는 point to point 통신. 프로세스와 프로세스 딱 한 쌍의 프로세스를 가진 통신을 책임진다. 더 엄격하게 얘기하면 하나의 소켓과 하나의 소켓 즉 소켓 소켓 한쌍끼리의 통신을 책임진다. 프로세스 하나의 소켓 여러 개 열 수 있기 때문에 엄밀히 말하면 소켓과 소켓 그렇기 때문에 point to point 통신. reliable, in-order byte stream. 하나도 유실되지 않고 가면서 순서대로 간다. pipelined. 파이프라인 방식 한꺼번에 쏟아 붙는다. 윈도우 크기만큼. send & receive buffers. sender에서 사용하는 윈도우 혹은 버퍼 sender buffer. 윈도우 자체가 버퍼라는 개념 이 윈도우 크기만..

5. 트랜스포트 계층 2-1

컴퓨터 네트워크 애플리케이션계층2 지난 강의 정리 각 레이어는 자기 자신의 상위 레이어에게 서비스를 제공해주고 하위 레이어로부터 서비스를 제공받는 관계에 있다. 트랜스포트 레이어에는 현재 두 개의 프로토콜이 대표적으로 자리를 잡고 있다. TCP와 UDP. 그런데 TCP든 UDP든 간에 트랜스포트 레이어 프로토콜로서 기본적으로 상위 레이어인 애플리케이션 레이어에게 서비스를 해 주는 기능이 있다. 기본적으로 이 두 가지는 ‘무조건’ 해줘야 한다. 바로 멀티플레이싱과 에러 체킹. 애플리케이션 프로세스와 애플리케이션 프로세스 간에 의사소통, 프로세스와의 통신인데 수많은 프로세스들이 존재할 거고 반대편 역시 많은 프로세스 존재한다. 전송된 메시지를 받아서 많은 프로세스 중 하나로 올려줘야 하는데, 멀티플렉싱 기능..

4. 트랜스포트 계층 1

컴퓨터 네트워크 애플리케이션계층1 트랜스포트 레이어 기본 기능 트랜스포트 레이어는 TCP든 UDP든 복잡한 기능들을 많이 제공해주는데 트랜스포트 레이어라면 기본적으로 제공해야 될 기능은 Multiplexing and demultiplexing Multiplexing: 컴퓨터 내부에 애플리케이션 네트워크 프로세스들이 많이 있는데 이들이 각자 소켓이 있을 거고, 이 소켓에서 트랜스포트 레이어로 메시지가 내려온다. 그럼 트랜스포트 레이어는 어디서 내려오든 메시지를 받아서 세그먼트를 생성한다. 그리고 다음 레이터로 또 보낸다. 내려오는 구멍(소켓)이 많은데 여기저기서 막 내려오는 거를 그냥 그때 그때마다 세그먼트를 만들어서 밑으로 내려보내준다는 의미에서 멀티플렉싱. demultiplexing: 세그먼트 형태로 ..

3. 애플리케이션 계층 1

컴퓨터 네트워크 애플리케이션계층1 What is a socker? OS에서 제공하는 API의 일종. 다양한 function들이 있다. 클라이언트 프로세스와 서버 프로세스 간의 통신을 할 때 우리는 사용자 혹은 개발자 입장이기 때문에 OS 내부는 모르고 OS에서 제공하는 어떤 서비스들만 사용할 뿐이다. 그런데 그 서비스를 사용하기 위해서는 OS가 제공하는 특수한 인터페이스를 사용해야 한다. 예를 들면 모니터 창에 뭔가 디스플레이 하고 싶다면 프로그램을 만들어서 ‘printf’라는 어떤 애플리케이션 인터페이스를 사용해서 메시지를 적어주면 이게 디스플레이 되는 것. 마찬가지로 네트워크 관점에서 다른 컴퓨터에 있는 프로세스에 우리가 어떤 정보를 보내고 싶으면 그에 맞는 어떤 인터페이스에 메시지를 적으면 보내진다..

2. 컴퓨터네트워크 기본2

컴퓨터 네트워크 기본2 지난 강의 요약 인터넷에서 제공하는 전송 서비스는 두 가지: TCP와 UDP. TCP는 신뢰성 있고 다양한 좋은 일들을 해주는 서비스이고 UDP는 아무것도 안 해주는 서비스. 현재 인터넷은 패킷 기반의 전송 방식을 사용 즉, 패킷은 비트들의 집합인데 패킷이라고 묶여진 이 비트들은 출발지에서부터 목적지까지 라우터를 거치면서 항상 한 묶음으로 같이 다닌다(사용자가 보내는 데이터가 패킷이라는 한 묶음 단위로 이동한다). 패킷 기반에 전송의 문제점: 라우터에서 패킷을 받아서 알맞은 방향으로 보내주는데 한꺼번에 많은 사용자가 동시에 이 라우터에 패킷을 보낼 경우에 즉, 라우터가 아웃고잉 엣지를 뿜어낼 수 있는 양보다 더 많은 패킷이 들어오게 되면 어쩔 수 없이 ‘큐’라는 공간에 패킷이 쌓이..