반응형

Software Courses 113

네트워크 구성요소 : Network Core

본 내용은 한양대학교 이석복 교수님의 강의를 참고하여 정리하였습니다. 교재는 Pearson/Addison Wesley에서 출판한 Computer networking : a top-down approach입니다. Network Core - Network edges를 연결해주는 중간 역할 - 예시 : 라우터, 허브 전송 방식 1) Circuit Switching (회선 교환 방식) - 출발 종단 시스템에서 목적 종단 시스템까지 경로 상의 필요한 자원들을 모두 예약하는 방식 - 데이터를 일정 전송률로 보낼 수 있음 - 연결되어 있는 동안 다른 사용자는 그 회선을 쓸 수 없음 - 예시 : 전화 통화에서 A와 B가 통화를 할 때, C가 A에게 전화를 걸면 연결할 수 없음 2) Packet Switching (패킷..

네트워크 구성요소 : Network Edge

본 내용은 한양대학교 이석복 교수님의 강의를 참고하여 정리하였습니다. 교재는 Pearson/Addison Wesley에서 출판한 Computer networking : a top-down approach입니다. Network Edge - 네트워크의 가장자리에 있는 시스템 - 예시 : 지금 사용하는 컴퓨터, 핸드폰, 허브, 스위치 등 용어 표현 - 노드 * 네트워크 상에 있는 모든 장치 * 네트워크를 이용하기 위한 장치 : 호스트 * 네트워크 상에서 데이터를 교환해 주는 장치 : 모델, 허브, 스위치 등 - 호스트 * 네트워크를 이용하기 위해 네트워크에 연결된 컴퓨터 혹은 장치 * 예시 : 지금 사용하는 컴퓨터, 핸드폰, 구글 서버 - 서버 * 네트워크 상에서 요청에 응답할 수 있는 호스트 * 호스트와 서..

캡슐화

캡슐화 - 전송 데이터에 필요한 정보인 헤더를 붙여서 다음 계층에 보내는 기술 - 구체적으로, OSI 계층 모델에서 데이터가 각 계층을 지나면서, 자신의 계층 특성을 담은 제어정보(주소, 에러 제어 등)를 헤더화 시켜 붙이는(포장하는) 열련의 과정 용어 표현 - 헤더(header) : 각 계층에서 수행해야 할 일들의 정보 - 메세지(messege) : 네트워크 상에서 전달되는 데이터들 통칭 * 여러 프로토콜들로 캡슐화 * 구성 : 헤더(header) + 페이로드(또는 데이터) + 푸터(footer) - PDU(Protocol Data Unit) : 계층별 메세지(데이터) 이름 캡슐화 방법 - 상위 프로토콜(높은 계층)에 동일/하위 프로토콜을 붙임 디캡슐화 방법 - 메시지를 받아서, 프로토콜을 하나씩 확인..

네트워크 모델 : TCP/IP 4 layers, OSI 7 layers

1. TCP/IP 4 layers - 패킷 통신 방식은 인터넷 프로토콜인 IP와 전송 조절 프로토콜인 TCP로 이루어짐 - 네트워크를 상호 연결시켜 정보를 전송할 수 있도록 하는 역할 1) 네트워크 인터페이스 계층 - 네트워크에서 물리적인 데이터 전송/수신을 담당 - 전송 주소 : MAC (물리 주소) - 데이터 단위 : Frame - OSI 7 layers의 물리 계층 + 데이터 링크 계층에 해당 - 데이터를 전송하기 위해서 패킷에 MAC 주소를 붙여 프레임 형성 2) 인터넷 계층 - 네트워크에서 최종 목적지까지 연결성을 제공하기 위해서 출발지와 목적지의 논리적 주소(IP)를 할당 - 연결성 제공을 위해서 라우팅 기능으로 경로 설정 - 전송 주소 : IP - 데이터 단위 : Packet - OSI 7 ..

네트워크 통신 방식 : 유니 캐스트, 멀티 캐스트, 브로드 캐스트

1. 유니 캐스트 - 특정 대상과 1:1 통신 - 통신 방법 * 전송되는 프레임에 자신의 MAC Address IP와 목적지 MAC Address IP를 넣고 네트워크에 전송 * 네트워크 내 모든 시스템은 자신의 MAC Address IP와 프레임의 목적지 MAC Address IP를 비교 * 주소가 같다면 프레임을 받아서 처리, 아니면 프레임을 버림 - 특징 * 네트워크 상의 다른 컴퓨터의 CPU 성능을 저하시키지 않음. 이유는, 자신의 MAC address IP가 아니라고 판단하면 랜카드에서 해당 프레임을 버리기 때문에 CPU까지 도착하지 않음 2. 멀티 캐스트 - 특정 집단과 1:N 통신 - 통신 방법 * 그룹 주소 D Class IP 사용 * 그룹 주소를 갖는 멀티 캐스트 패킷을 네트워크에 전송 ..

네트워크란?

네트워크 - 시스템들이 데이터를 공유할 수 있게 하는 디지털 전기 통신망 인터넷 - 문서, 그림 등 여러가지 데이터를 공유하도록 구성된 전세계를 연결하는 네트워크 네트워크 분류 1) 크기에 따른 분류 (1) LAN (Local Area Network) : 가까운 지역을 하나로 묶는 네트워크 - WAN보다 빠름 (2) WAN (Wide Area Network) : 멀리 있는 지역을 하나로 묶는 네트워크 - LAN과 LAN을 묶는 네트워크 - LAN에 비해 느림 - 두 시스템을 연결하는 최단 거리 라우팅 알고리즘 필요 2) 연결 형태에 따른 분류 : 네트워크 토폴로지(topology) - 네트워크 토폴로지 : 네트워크 요소들이 물리적으로 연결된 상태 (1) Star network : 중앙 시스템에 모든 시스..

Topology sort (위상 정렬)

위상 정렬 - 순서가 있는 일을 순서대로 나열하는 정렬 - 의미 변환 * 그래프 이론에서, 순서 : 방향 그래프 * 그래프 이론에서, 일 : 노드 * 그래프 이론에서, 순서대로 나열 : 간선의 방향을 거스르지 않게 노드 나열 - 예시 * 대학교 강의에서 선행 과목을 고려해서 강의를 수강 * 스타크래프트 게임에서 높은 테크 건물을 짓기 위해서는 하위 테크 건물을 먼저 건설 동작 - 진입 차수가 0인 정점들을 선택하여 스택/큐에 삽입 - 스택/큐에서 정점을 하나 꺼내어 꺼낸 정점과 연결된 간선 제거(간선 수 감소) - 꺼낸 정점은 차례대로 나열 - 위 과정 반복 - 모든 정점이 선택/삭제되면 종료 - 예시 : 영상 ( 1:30부터 ) - 예시 : 전체 과정 구현 1 2 3 4 5 6 7 8 9 10 11 1..

Heap sort (힙 정렬)

힙 정렬 - 힙 알아보기 - 최대 힙/최소 힙을 구성하여 정렬 동작 - 정렬할 배열을 최대 힙으로 구성 - Root 노드를 힙의 마지막 노드와 교환 - 마지막 노드를 제외하고 다시 최대 힙 구성 - Root 노드를 힙의 두 번째 마지막 노드와 교체 - 위 과정 반복 - 예시 : 애니메이션 - 예시 : 전체 과정 * 초기 배열 * 최대 힙으로 구성 + 힙 삽입 방법과 거의 동일 * 교환과 힙 구성 반복 + 교환과 힙 구성은 힙 삭제 방법과 거의 동일 구현 - 오름차순 정렬을 위해서 최대 힙 이용 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43..

Quick sort (퀵 정렬)

퀵 정렬 - 분할 정복 알고리즘 - 배열의 요소들을 Pivot이라는 요소와 비교하여 비균등하게 2개의 배열로 분할해서 정렬 동작 - 정렬할 배열에서 첫 요소를 Pivot으로 선택 - i는 i가 가리키는 요소가 Pivot보다 크거나 같을 때까지 그리고 배열의 오른쪽 끝일 때까지 이동 - j는 j가 가리키는 요소가 Pivot보다 작거나 같을 때까지 그리고 배열의 왼쪽 끝+1일 때까지 이동 - i와 j가 멈추면, 두 요소를 교환 - i와 j가 엇갈릴 때까지 반복 - i와 j가 엇갈리면, Pivot과 j를 요소를 교환하고 Pivot을 제외한 2개의 배열에서 위 과정 반복 * Pivot이 j의 위치로 이동하고 2개의 배열이 생성 * Pivot을 기준으로 왼쪽은 Pivot보다 작은 값들이 모임 * Pivot을 기준..

Merge sort (병합 정렬)

병합 정렬 - 분할 정복 알고리즘으로 정렬하려는 배열을 균등하게 분할하여 정렬 동작 - 정렬할 배열을 균등하게 분할하고 - 분할된 부분 배열을 정렬하고 - 두 개의 정렬된 부분 배열을 병합하여 전체를 정렬 - 예시 : 애니메이션 - 예시 : 전체 과정 예시 - 예시 : 추가 배열이 필요한 이유 (마지막 정복 결합을 예시로) 구현 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 // 정렬과 병합하는 함수 void merge(int list[], int ..

반응형