CS 26

[네트워크] TCP와 UDP

포트 번호 PC나 서버상에서 동작하는 애플리케이션을 식별하기 위한 정보 IP 주소로 지정한 컴퓨터에 전송된 데이터는 포트 번호로 지정된 애플리케이션에 다시 분배된다. 포트 번호 숫자의 범위에 따라 분류됨 잘 알려진 포트: 서버 애플리케이션을 식별하기 위해 사용 ex) 80(HTTP), 53(DNS) 등록된 포트: 자주 이용되는 애플리케이션 용 포트로 등록된 포트 번호 ex)8080 동적/개인적 포트: 클라이언트 애플리케이션을 식별하기 위한 것 애플리케이션에서 통신이 발생할 때마다 OS로부터 자동으로 할당되며 통신이 종료되면 할당이 해제 된다. => 포트 번호 할당은 고정적이지 않다. 애플리케이션이 포트 번호 기반으로 데이터를 수신할 때에는 TCP 또는 UDP라는 프로토콜을 이용한다. TCP(Transmi..

CS/네트워크 2022.12.11

[네트워크] DNS의 구조

DNS(Domain Name System) 호스트명(컴퓨터의 이름)과 IP 주소를 매핑해주는 시스템 이름 해석의 주요 시스템 중 하나 네트워크상에서 통신을 할 때 반드시 상대의 IP 주소를 지정해야 하는데 IP주소는 기억하기 어려워 호스트명으로 통신 상대를 지정한다. 이름 해석: 호스트명으로 IP주소를 나타내는 시스템 DNS 서버에 네임 쿼리를 송신해서 목적 호스트명의 매핑된 IP주소를 질의하는 과정 PC가 웹 서버에 접근할 때 자동으로 DNS 서버에 질의 구조 리소스 레코드: 호스트명과 IP주소의 매핑. DNS로 이름을 해석하기 위해 등록해야 함 도메인: 호스트명의 집합. 계층화하여 관리 존: DNS 서버에 등록된 리소스 레코드의 집합 동작 호스트명에 매핑할 IP 주소의 정보를 DNS 서버에 등록해두면..

CS/네트워크 2022.12.11

[네트워크] IP 주소란?

IP 주소 PC나 서버와 같이 TCP/IP로 통신하는 기기를 식별하기 위한 주소 호스트: TCP/IP로 통신하는 기기 ex)PC,서버,라우터 32비트로, 네트워크 ID와 호스트 ID로 구성 IP주소를 클래스로 나눠 어디까지가 네트워크ID이고 호스트 ID인지 판별할 수 있다. 이렇게 클래스에 기초한 IP주소를 클래스풀 주소라고 하는데, 이는 IP주소의 이용 효율이 나쁘기 때문에 서브넷 마스크를 사용한다. 서브넷 마스크: IP주소의 네트워크 ID와 호스트 ID가 구분되는 위치를 나타낸다. 네트워크 ID와 호스트ID를 구분하는 위치를 유연하게 설정할 수 있다. 공인 IP 인터넷상에서 중복되지 않은 IP 주소. 인터넷 통신을 하기 위해 필요하다. 인터넷에서 사용한다. 사설 IP 외부와 연결되지 않는 네트워크(홈..

CS/네트워크 2022.12.11

[네트워크] 네트워크의 종류, 형태, 구성

네트워크의 구성 요소 네트워크는 컴퓨터, 네트워크 장비, 전송 매체로 이루어져 있다. 컴퓨터: 데이터를 송수신하는 애플리케이션이 구동 PC나 서버 네트워크 장비: 데이터를 전송하기 위한 기기 라우터(네트워크를 서로 연결) 스위치(네트워크 내부의 데이터 전송) 전송 매체: 컴퓨터와 네트워크 장비를 연결 유선(케이블) 무선(전파) 홈 네트워크를 인터넷에 연결하려면 홈 네트워크를 인터넷에 연결하기 위해 ISP와 인터넷 공급 계약을 맺어야 함 홈 네트워크와 인터넷(계약을 맺은 ISP와의 사이)는 브로드밴드 라우터에 의해 연결되어 있음 ISP(Internet Service Provider): 인터넷 접속을 제공하는 기업 브로드밴드 라우터: 인터넷에 연결하는 기능을 가진 개인용 라우터 LAN LAN(Local Ar..

CS/네트워크 2022.12.11

[컴퓨터구조] 입출력장치

입출력장치 입출력장치는 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고 받음 장치 컨트롤러 CPU와 입출력장치 간의 통신 중개 오류 검출 데이터 버퍼링(전송률이 높은 장치와 낮은 장치에 주고받는 데이터를 버퍼에 저장해 전송률을 비슷하게 맞춤) 데이터 레지스터, 상태 레지스터, 제어 레지스터로 구성 장치 드라이버 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램 입출력 방법 프로그램 입출력 방식 프로그램 속 명령어로 입출력장치를 제어 메모리 맵 입출력: 메모리에 접근하는 명령어와 입출력 장치에 접근하는 명령어가 동일 고립형 입출력: 메모리에 접근하는 명령어와 다른 입출력 명령어를 사용 ​ 인터럽트 기반 입출력 장치 컨트롤러가 입출력 작업을 끝낸 뒤 CPU에게 인터럽트 요청 신호를 보내면..

CS/컴퓨터구조 2022.12.11

[자료구조] 인접 행렬, 인접 리스트 시간 복잡도 코드 구현

그래프를 인접 행렬과 인접 리스트로 표현했을 때 진입/진출 차수 계산, 엣지수를 계산할 때 각각의 시간 복잡도를 C언어 코드로 구현하였다. int matrixCalculateOutDegree(GraphType* g, int v) { int i, degree = 0; for (i = 0; in; i++) { if (g->adj_mat[v][i] != 0) degree++; } return degree; // 시간 복잡도는 O(n) } int matrixCalculateInDegree(GraphType* g, int v) { int i, degree = 0; for (i = 0; i n; i++) { if (g->adj_mat[i][v] != 0) degree++; } return degree; /..

CS/자료구조 2022.10.25

자료구조와 알고리즘, 추상 데이터타입 개념

자료구조와 알고리즘 자료구조의 필요성 컴퓨터에서 처리할 자료들을 효율적으로 관리하기 위해 구조화 자료의 특성에 따라 자료의 형태를 구성하고 처리하고 저장 자료구조란? 자료를 효율적으로 처리할 수 있도록 자료를 조직화하고 체계적으로 구조화하여 표현한 것이다. 프로그램 = 자료구조 + 알고리즘 알고리즘이란? 해야 할 일을 컴퓨터가 수행하여야 할 단계적인 절차를 자세히 기술하는 것 컴퓨터로 문제를 풀기 위한 단계적인 절차 문제와 컴퓨터가 주어진 상태에서 문제를 해결하는 방법을 정밀하게 장치가 이해할 수 있는 언어로 기술한 것 특정한 일을 수행하는 명령어들의 집합(명령어란 컴퓨터에서 수행되는 문장들) 알고리즘의 조건 입력 : 0개 이상의 입력이 존재하여야 한다. 출력 : 1개 이상의 출력이 존재하여야 한다. 명..

CS/자료구조 2022.10.19

[자료구조] 그래프(Graph) 개념, 구현

그래프 그래프의 개념 객체 사이의 연결 관계를 표현할 수 있는 자료구조 정점(vertex)과 간선(edge)으로 이루어진 자료구조 그래프와 관련된 용어 정점(vertex): 노드(node)라고도 불리며, 여러가지 특성을 가질 수 있는 객체 간선(edge): 링크(link)라고도 불리며, 정점을 연결하는 선 인접 정점(adjecent vertex): 간선에 의해 직접 연결된 정점 정점의 차수(degree): 무방향 그래프에서 하나의 정점에 인접한 정점의 수 진입 차수(in-degree): 방향 그래프에서 외부에서 오는 간선의 수 진출 차수(out-degree): 방향 그래프에서 외부로 향하는 간선의 수 경로 길이(path length): 경로를 구성하는 데 사용된 간선의 수 단순 경로(simple path..

CS/자료구조 2022.10.19

[자료구조] 우선순위 큐를 이용한 머신 스케줄링

머신 스케줄링 어떤 작업을 처리하는 동일한 기계가 m개 존재하고 처리해야 할 작업이 n개 있다고 하자. 이 기계를 풀가동하여 가장 최소의 시간에 작업들을 끝내고자 한다. 이것을 머신 스케줄링이라한다. 이 문제의 최적의 해를 찾는것은 어렵지만 LPT(longest processing time first) 방법을 통해 근사의 해를 찾을 수 있다. LPT(Longest Processing Time first) LPT는 가장 긴 작업을 우선적으로 가장 먼저 사용가능하게 되는 기계에 할당하는 것이다. 맨 위의 표는 각 작업의 기계 사용 시간이다. 미리 정렬되어 있다고 가정한다. 최소 힙은 모든 기계의 종료시간을 저장하고 있다. 초기의 모든 기계의 종료시간은 0이고, 힙에서 최소 종료시간을 가지는 기계를 삭제하여 ..

CS/자료구조 2022.10.18

[자료구조] 우선순위 큐(Priority Queue)와 힙(Heap)

우선순위 큐(Priority Queue) 1. 우선순위 큐란? 보통의 큐는 선입 선출(FIFO)의 원칙에 의하여 먼저 들어온 데이터가 먼저 나가게 된다. 그러나 우선순위 큐는 데이터들이 우선 순위를 가지고 있고 우선 순위가 높은 데이터가 먼저 나가게 된다. 우선순위 큐는 2가지로 구분할 수 있다. 최소 우선순위 큐는 가장 우선 순위가 낮은 요소를 먼저 삭제하고, 최대 우선순위 큐는 반대로 가장 우선 순위가 높은 요소가 먼저 삭제된다. 우선순위 큐는 대표적으로 시뮬레이션 시스템, 네트워크 트래픽 제어, 운영체제에서의 작업 스케쥬링, 수치 해석적인 계산 등 컴퓨터의 여러 분야에서 이용된다. 우선순위 큐는 배열, 연결 리스트, 힙으로 구현이 가능한데, 가장 효율적인 구조는 힙이다. 2. 우선순위 큐의 구현 방..

CS/자료구조 2022.10.18