컴퓨터 프로그래밍 공부 58

IP(Internet Protocol) IPv4

IPv4 프레임의 데이터 필드에는 상위 계층에서 전달받거나상위 계층으로 전달해야 할 내용이 명시된다.따라서 IPv4 패킷은 프레임의 페이로드로 데이터 필드에 명시된다. IPv4 패킷은 다음과 같은 형식을 띈다. 1. 식별자 2. 플래그 3. 단편화 오프셋 4. TTL 5. 프로토콜 6. 송신지 IP 주소 7. 수신지 IP 주소 총 7개이다. 들어가기 앞서, 패킷이란?패킷(Packet)은 네트워크를 통해 전송되는 데이터의 형식화된 블록으로, 데이터 통신에서 사용되는 용어이다. 1. 식별자 식별자는 패킷에 할당된 번호이다.만일 메시지 전송 과정에서IPv4 패킷이 여러 조각으로 쪼개져서 전송되었다면,수신지에는 이들을 재조합해야 한다. 이때 잘게 쪼개져서 수신지에 도착한 IPv4 패킷들이 어떤 메시지에서쪼개졌..

그래프 순회 - BFS

그래프 구조를 이용해 문제를 해결하기 위해필요한 기본적이고 대표적인 그래프 알고리즘에서BFS,DFS를 빼놓고 논하기는 쉽지 않을 것이다.일단, 그래프 알고리즘을 말하기 전에 그래프에 대해서 말해보자. 그래프란? 그래프는 정점의 집합과 정점들을 서로 잇는 에지의 집합으로 구성된다.수학적으로 표현하면 그래프 G = 형태로 표현하고,여기서 V는 정점의 집합, E는 에지의 집합을 나타낸다. 그래프에는 크게 방향 그래프, 무방향 그래프, 가중 그래프, 비가중 그래프가 있다. 만약 에지가 특정 정점에서 다른 정점으로 향하는 방향있다면 방향 그래프라고 한다.특정 방향을 가리키지 않으면 무방향 그래프라고 한다.에지에 가중치가 있으면 가중 그래프,가중치가 없으면 비가중 그래프라고 한다. (추가적으로 그래프를 다룰 때 ..

DFS 구현 (재귀와 스택) 과 BFS(큐)

DFS 구현 재귀 호출 코드#include #include using namespace std;const int MAX_N = 10;int N, E;int Graph[MAX_N][MAX_N];bool Visited[MAX_N];void dfs(int node) { Visited[node] = true; cout > N >> E; // 배열 초기화 memset(Visited, 0, sizeof(Visited)); memset(Graph, 0, sizeof(Graph)); for (int i = 0; i > u >> v; Graph[u][v] = Graph[v][u] = 1; } dfs(0); return 0;}  스택 코드#include #include #include using namespace st..

윈도우 인스톨러

윈도우 인스톨러윈도우 인스톨러란, 윈도우의 소프트웨어 설치, 유지, 제거를 위한 엔진이다.이전에는 마이크로소프트 인스톨러라고 불렀다.설치 정보는 설치 꾸러미 안에 저장되며,기보노 파일 확장자 MSI 파일로도 알려져 있다.마이크로소프트는 서드 파티 제품들이 원도우 인스톨러를 기본 설치 프레임워크로 사용을 돕고 있다.롤백(되돌리기)과 버저닝(DLL hell = 윈도우 기반 프로그램에서 DLL을 사용할 경우 발생할 수 있는 복잡성을 나타내는 말이다.)과 같은중요한 기능은 실제 동작을 위한 일정한 내부 데이터베이스에 따라 달라질 수 있다.Windows Installer를 사용할 위치Windows Installer를 사용하면 Windows에서 실행되는 제품 및 애플리케이션을 효율적으로 설치하고 구성할 수 있다.설..

IP(Internet Protocol) 열기

으래 컴퓨터를 어려서부터 접한 세대이고,초딩 때 크아나, 바람의 시대 혹은 롤에서 키보드 배틀 좀 떠봤다 싶은 독자들이라면,나보다 나이 좀 많아 보이는 형아들이 너 IP따서 디도스 공격한다.라는 으름장에 맘을 졸여본 적이 있을 것이다.그렇다. 사실 필자의 얘기다. 필자는 막연하게 IP가 뭐냐고 형제에게 물어봤다.필자의 형제는 간단하게 말해서IP란, 인터넷에서 사용하는 가상의 주소라고 답해줬다.우리집에도 주소가 있듯, 컴퓨터에도 주소가 있다는 개념을 그 때 처음 알았다. 초딩 때 나를 발발 떨게했던 IP주소 딴다의 말의IP의 풀네임을 수십년이 흐른 지금에야 알게 되었다.인터넷 프로토콜 (Internet Protocaol)이다. 인터넷 프로토콜 네트워크 계층의 가장 핵심적인 프로토콜 하나를 꼽자면 단연 인터..

자기 전 누워서 정리하는 배열과 리스트

비선형 자료구조는 선형 자료구조를 기반으로 만들어진다.비선형 자료구조는 경우에 따라어떠한 선형 자료구조로 구현하느냐에 따라성능과 메모리 공간 차지에 영향을 미친다.따라서 선형 자료구조의 이해는 아주 중요한 기반지식이다.배열은 연속된 메모리 구조를 가지고 크기가 정해져있다.리스트는 노드와 노드로 연결된 메모리 구조를 가지고크기가 가변적이다.배열의 대표적인 stl은 벡터이다.배열은 연속된 메모리 구조를 가지기 때문에,캐시 공간적 지역성을 만족하여 주변 접근이 빠르다.또한 인덱스를 이용한 임의접근이 가능하여,데이터 접근 속도는 O(1)의 속도를 가진다.벡터는 원소 삽입 삭제 시 사이즈를 넘어선 경우,중간에 삽입 삭제가 일어나는 경우삭제되고 재할당 된다.이는 성능에 영향을 끼친다.때문에 속도면에서 리스트에 비해..

힙을 이용한 데이터 리스트 병합

유전자 관련 생명의학 응용 프로그램에서대용량 데이터셋을 처리하는 경우를 가정해보겠다.유사성을 계산하려면 정렬된 DNA 순위가 필요하다. 그러나 데이터셋이 너무 방대하기 때문에 단일 머신에서 처리할 수 없다.그러므로 분산 클러스터에서 데이터를 처리하고 저장하며,각각의 노드는 일련의 정렬된 값이 있다. 주 처리 엔진은 이들 데이터를 모아서 정렬된 단일 스트림으로 변환해야 한다.다수의 정렬된 배열을 합쳐 하나의 정렬된 배열을 만드는 기능을 벡터로 제작해보자. 각각의 리스트는 이미 정렬되어 있기 때문에각 리스트의 최소 원소는 맨 앞에 위치한다.힙에서 최소 원소를 가져온 후 이를 제거하고,최소 원소가 있던 리스트에서 그 다음으로 작은 원소를 선택해 힙에 추가한다. 힙의 노드는 이 원소를 어느 리스트에서 가져왔는지..

LAN을 넘어서는 네트워크 계층의 기능

LAN을 넘어서는 네트워크 계층 여태껏 포스팅한 네트워크의 범위는 일반적으로 LAN에 한정되어 설명하였다. 하지만 LAN을 넘어서 다른 네트워크와 통신하기 위해서는 네트워크 계층의 역할이 필수입니다. 네트워크 계층에서는 IP 주소를 이용해 송수신지 대상을 지정하고, 다른 네트워크에 이르는 경로를 결정하는 라우팅을 통해 다른 네트워크와 통신한다. LAN을 넘어 다른 네트워크와의 통신을 위한 네트워크 계층IP 주소를 통한 송수신지 대상을 지정라우팅을 통한 다른 네트워크와 통신 데이터 링크 계층의 한계물리 계층과 데이터 링크 계층만으로 LAN을 넘어서 통신하기 어려운 두 가지 이유 1. 다른 네트워크까지의 도달 경로를 파악하기 어려움 2. 모든 네트워크에 속한 모든 호스트의 위치를 특정하기 어려움 1. 물리 ..

스위치와 VLAN

전 포스팅 허브 요약  허브는 주소 개념이 없는 물리 계층 장비이다.전달바은 신호를 다른 모든 포트로 보내기만 할 뿐이다.그리고 반이중 모드로 통신하므로 허브에 연결된 모든 호스트가 충돌이 발생할 범위,즉 콜리전 도메인에 속한다.  CSMA/CD를 통해 충돌 문제를 어느 정도 완화할 수 있지만,사실 이보다 더 근본적인 해결 방법이 있다.전달밥은 신호를 수신지 호스트가 연결된 포트로만 보내고,전이중 모드로 통신하면 된다. 그러면 포트별로 콜리전 도메인이 나누어지기에 충돌 위험이 감소할 것이다.CSMA/CD를 이용할 필요도 없어진다.이러한 기능을 지원하는 네트워크 장비가 바로 데이터 링크 계층의 스위치이다.  스위치란? 즉, 스위치란스위치란 데이터 링크 계층의 네트워크 장비이다.2계층에서 사용한다 하여 L2..

허브

허브란?허브는 물리 계층 장비이다. 통신 매체를 통해 송수신되는 메시지는 다른 호스트에게 전달되는 과정에서 네트워크 장비를 거칠 수 있다. 대표적인 네트워크 장비로 물리 계층에는 허브가 있고, 데이터 링크 계층에는 스위치가 있다. 먼저 물리 계층에서 여러 대의 호스트를 연결하는 허브의 특징을 살펴보고, 이와 관련해 허브의 동작 방식인 반이중 모드 통신에 대해 알아보겠다. 아울러 이와 반대되는 개념인 전이중 모드 통신도 함께 학습해보자. 허브에서 발생하는 충돌이라는 문제와 이를 해결하기 위한 CSMA/CD도 학습해보자. 데이터 링크 계층에는 NIC와 스위치가 있다. 스위치는 전이중 통신과 VLAN이란 특징을 가진다. 물리 계층에는 트위스티드 페어 케이블, 광섬유 케이블, 허브 허브는 반이중 통신, CSMA..