IP 프로토콜 - 비연결형 서비스를 제공 - 패킷으로 분할/병합하는 기능 수행 - 헤더에 대한 체크섬만 제공 - Best Effort 방식의 전송 기능(-> 100% 전송을 보장하지 않음) - 오류제어나 흐름제어는 제공하지 않음 - DS(Differentiated Services) - 차등 서비스 제공용 - ECN(Explicit Congestion Notification) - 명시적 혼잡 제어 통지용 패킷 분할 관련 필드 - Identification: 분할되지 않은 패킷은 값을 순차적으로 증가하고 분할된 패킷은 동일한 번호를 부여함 - DF(Don’t Fragment): 수신자가 패킷 병합 기능이 없을 때 사용 패킷 분할을 금지시킴 - MF(More Fragment): 분할된 패킷의 처음과 중간은 1..
최단 경로 라우팅 - 패킷이 중개 과정에서 거치는 라우터의 수가 최소화되도록 라우팅 ex) 호스트 a -> 호스트 d: 라우터 b or c 호스트 a -> 호스트 g: 라우터 c 최단 경로 프로토콜 - 일반적으로 간에 위치하는 라우터(홉, Hop)의 수 - 패킷의 전송 지연시간, 전송대역폭, 통신 비용 등도 거리 기준이 되기도 함 거리 벡터(distance vector) 프로토콜 - 라우터가 자신과 직접 연결된 라우터와 라우팅 정보를 주기적으로 교환 - 각 라우터에서 개별 네트워크까지 패킷을 전송하는데 걸리는 거리 정보를 교환 - 필수 정보: 링크 벡터/거리 벡터/다음 홉 벡터 - 대표 프로토콜: RIP(Routing Information Protocol) -> UDP 프로토콜을 사용하여 정보를 교환 1..
네트워크 계층 목적: 송수신 호스트 사이의 패킷 전달 경로를 선택 주요 기능: 라우팅, 혼잡 제어, 패킷의 분할과 병합 라우팅 - 패킷의 전송 경로를 지정 - 공평 원칙, 효율 원칙 정적 라우팅(Static Routing) - 패킷 전송이 이루어지기 전에 경로 정보를 라우터가 미리 저장하여 중개 - 경로 정보의 갱신이 어려움, 네트워크의 변화에 대한 대처 부족 동적 라우팅(Dynamic Routing) - 라우터의 경로 정보가 네트워크 상황에 따라 적절히 조절됨 - 경로 정보의 수집과 관리로 인한 성능 저하 라우팅 테이블 - 라우터가 패킷의 적절한 경로를 찾기 위한 기본적인 도구 - 필수 정보: 목적지 호스트(패킷의 최종 목적지가 되는 호스트 주소) 다음 홉(목적지 호스트까지 패킷을 전달하기 위한 이웃 ..
네트워크 계층 목적: 송수신 호스트 사이의 패킷 전달 경로를 선택 주요 기능: 라우팅, 혼잡 제어, 패킷의 분할과 병합 혼잡: 네트워크에 존재하는 패킷의 수가 급격히 증가하여 네트워크 성능이 급격히 악화되는 현상 혼잡 제어: 혼잡 문제를 해결하기 위한 방안 (흐름 제어: 송수신 호스트 사이의 전송 속도 문제 혼잡 제어: 네트워크내의 전송 능력 문제) 혼잡의 원인 1) 타임 아웃 시간이 작으면 재전송이 자주 발생하여 혼잡도 증가 2) 패킷의 도착 순서가 다른 패킷들을 버리면 재송신해야 하므로 혼잡도 증가(Go-Back N 방식) 3) 모든 패킷에 대한 개별적으로 수신 응답을 처리하면 혼잡도 증가 (-> 패킷을 여러 개 모아서 응답 or 피기 배킹을 이용) 4) 패킷 생존 시간(TTL)을 너무 작게 설정하면..
1) 비연결형 서비스(Connectionless Service) - 패킷이 서로 다른 경로로 전송되므로 도착 순서가 일정하지 않음 -> 상위 계층에서 순서를 재조정해야 함 - 패킷의 100% 도착을 보장하지 않음 -> 상위 계층에서 패킷 분실 오류를 복구 ex) IP(네트워크 계층), UDP(전송 계층) 2) 연결형 서비스(Connection-oriented Service) - 데이터 전송 전에 데이터의 전송 경로를 미리 결정 -> 도착 순서가 일정 - 상대적으로 신뢰성이 높음 ex) TCP(전송 계층)
스래드 동기화 동일한 프로세스 내부에 생성된 스래드들은 병행적으로 실행되며 자원(프로세스의 코드 영역과 데이터 영역)을 공유한다. 따라서, 임계 영역의 문제(결정성)를 해결하기 위한 동기화 기법이 필요하다. 스래드 동기화 기법 1) 스래드 뮤텍스(mutex): 공유 자원의 개수가 오직 하나일 경우에만 사용. 2) 스래드 세마포어(semaphore): 공유 자원의 개수가 하나거나 그 이상일 경우에도 사용 가능. * 표준 라이브러리가 아님으로 컴파일링시 “–lpthread”를 반드시 첨가해야 한다. (ex: $gcc thread.c –o thread –lpthread) 1) 스래드 뮤텍스(mutex): 뮤텍스(mutexes)는 “MUTual Exclusion locks”의 약자이다. 공유 자원에 대한 상호 ..
B : 데이터 페이지들의 수 R : 페이지 당 레코드들의 수 D : 디스크 페이지를 read/write하기 위한 평균시간 파일 스캔 동등 검색 범위 검색 삽입 삭제 힙 파일 BD 0.5BD BD 2D 검색 연산 + D 정렬 파일 BD Dlog2B D (log2B + match page 수) 검색 연산 + BD 검색 연산 + BD 군집 트리 인덱스 1.5BD DlogF1.5B D(logF1.5B + match page 수) 검색 연산 + D 검색 연산 + D 비군집 트리 인덱스 BD(R + 0.15) D(1 + logF0.15B) D(logF0.15B + matched Records수) D(3 + logF0.15B) D(3 + logF0.15B) 비군집 해시 인덱스 BD(R + 0.125) 2D BD 4D..
한 노드의 왼쪽 노드는 해당 노드보다 작은 값, 오른쪽 노드는 큰 값으로 정렬되어 있음. 내부 노드: 인덱스 엔트리. 키값과 방향 지시자로 구성. 리프 노드: 데이터 엔트리(검색 키 값으로 정렬됨) 검색 과정: 루트 노드(메인 메모리에 상주)에서 검색 시작 -> 검색 값에 따라 해당 자식 노드로 분기 -> Leaf 노드에 도달하여 탐색 레코드를 찾음. B+ 트리 (Balanced tree in height) - 루트 노드에서 리프 노드로 가는 모든 경로의 길이가 동일한 인덱스 구조 - 탐색 키 값에 관계없이 검색 시간이 거의 일정 - 검색을 위한 디스크 IO 횟수는 root로부터 leaf에 도달하는 경로의 길이 - 모든 리프 노드들은 double linked list로 연결됨 - 범위 검색에 유용 - 범..