티스토리 뷰

공통 모듈 구현

결합도 (Coupling)

- 결합도 (Coupling)는 두 모듈 간의 상호작용, 또는 의존도 정도를 나타내는 것이다

- 모듈간의 결합도를 약하게 하면 모듈 독립성이 향상된다

- 결합도가 강할수록 품질이 낮으며, 시스템 구현 및 유지보수 작업이 어렵다

- 결합도는 낮을수록 Good = 독립적인 모듈

  • 결합도 종류 #내공외제스자 (강→약)
    • 내용 결합도 (Content Coupling)
      • 하나의 모듈이 직접적으로 다른 모듈의 내용을 참조할 때 두 모듈은 내용적으로 결합되어 있다고 한다
    • 공통 결합도 (Common Coupling)
      • 두 모듈이 동일한 전역 데이터를 접근한다면 공통결합 되어 있다 (전역 변수)
    • 외부 결합도 (External Coupling)
      • 어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도 (순차적)
    • 제어 결합도 (Control Coupling)
      • 어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어신호를 이용하여 통신하는 경우이며, 하위 모듈에서 상위 모듈로 제어신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도현상이 발생하게 되는 결합도
    • 스탬프 결합도 (Stamp Coupling)
      • 두 모듈이 매개변수로 자료를 전달할 때, 자료구조 형태로 전달되어 이용될 때 데이터가 결합되어 있다
    • 자료 결합도 (Data Coupling)
      • 어떤 모듈이 다른 모듈을 호출하면서 매개 변수(파라미터)나 인수로 데이터를 넘겨주고, 호출 받은 모듈은 받은 데이터에 대한 처리 결과를 다시 돌려주는 결합도
응집도 (Cohesion)

- 한 모듈 내에 있는 처리요소들 사이의 기능적인 연관 정도를 나타낸다

- 응집도는 낮을수록 Good = 독립적인 모듈

  • 응집도 종류 #기순통절시논우 (강→약)
    • 기능적 응집도 (Functional Cohesion)
      • 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우
    • 순차적 응집도 (Sequential Cohesion)
      • 모듈 내 하나의 활동으로부터 나온 출력 데이터(출력값)를 그다음 활동의 입력 데이터로 사용할 경우
    • 통신적 응집도 (Communication Cohesion)
      • 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우
    • 절차적 응집도 (Procedural Cohesion)
      • 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우
    • 시간적 응집도 (Temporal Cohesion)
      • 모듈 내 구성 요소들이 서로 다른 기능을 같은 시간대에 함께 실행하는 경우
    • 논리적 응집도 (Logical Cohesion)
      • 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우
    • 우연적 응집도 (Coincidental Cohesion)
      • 서로 간에 어떠한 의미 있는 연관관계도 지니지 않은 기능 요소로 구성되는 경우이며, 서로 다른 상위 모듈에 의해 호출되어 처리상의 연관성이 없는 서로 다른 기능을 수행하는 경우
프로세스 (Process)
  • 프로그램 카운터, 레지스터 같은 현재 사용되는 자원에 대한 정보를 가진다
  • 실행을 위한 메모리 영역, 프로세서 제어 블록 등의 지원을 할당받은 상태의 프로그램
  • 프로시저가 활동중인 것
  • 비동기적 행위를 일으키는 주체
  • 운영체제가 관리하는 실행 단위
  • 실행 중인 프로그램
  • PCB (Process Control Block)을 가진 프로그램
  • 실기억장치에 저장된 프로그램
  • 프로세서가 할당되는 실체로서, 디스패치가 가능한 단위
  • 프로세스의 상태 전이도

프로세스의 상태 전이도

  • 프로세스의 상태
    • 생성 (New)
    • 준비 (Ready)
    • 실행 (Running)
    • 대기 (Block)
    • 교착 (DeadLock)
    • 완료 (Exit, Terminated)
  • 프로세스의 상태 전환
    • 디스패치 (Dispatch) : 준비 → 실행
      • 프로세스가 준비 상태에서 프로세서가 배당되어 실행 상태로 변화하는 것이다
    • 할당시간초과 (Time Run Out) : 실행 -> 준비
    • 대기 (Block) : 실행 -> 대기
    • Wake Up : 대기 -> 준비
  • PCB (Process Control Block, 프로세스 제어 블록)
    • 프로세스 식별자, 프로세스 상태 등의 정보로 구성된다
    • 프로세스에 대한 정보를 저장해 놓은 곳
    • 운영체제가 그 프로세스를 관리하는데 필요한 모든 정보를 유지하는 자료구조 테이블
  • PCB가 갖고 있는 정보
    • 프로세스의 현재 상태 : 준비, 대기, 실행 등의 프로세스 상태
    • 프로세스의 고유 식별자
    • 스케줄링 및 프로세스의 우선순위 : 스케줄링 정보 및 프로세스가 실행될 우선순위
    • 프로그램 카운터
    • 레지스터 저장 영역
    • 계정 정보
    • 입출력 상태 정보
    • 메모리 관리 정보
  • 프로세스 적재 정책
    • 반복, 스택, 부프로그램은 시간 지역성 (Temporal Localilty)과 관련이 있다
    • 공간 지역성 (Spatial Locality)은 프로세스가 어떤 페이지를 참조했다면 이후 가상 주소 공간상 그 페이지와 인접한 페이지들을 참조할 가능성이 높음을 의미
    • 일반적으로 프로세스 수행에 보내는 시간보다 페이지 교환에 보내는 시간이 더 크면 스레싱 (Thrashing)이 발생
    • 스레싱 (Thrashing) 현상을 방지하기 위해서는 각 프로세스가 필요로 하는 프레임을 제공할 수 있어야 한다
스레드 (Thread)
  • 한 개의 프로세스는 여러 개의 스레드를 가질 수 있다
  • 커널 스레드의 경우 운영체제에 의해 스레드를 운용한다
  • 사용자 스레드의 경우 사용자가 만든 라이브러리를 사용하여 스레드를 운용한다
  • 스레드를 사용함으로써 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상할 수 있다
  • 스레드는 그들이 속한 프로세스의 자원과 메모리를 공유한다
  • 다중 프로세스 구조에서 각 스레드는 다른 프로세스에서 병렬로 실행될 수 있다
  • 스레드는 동일 프로세스 환경에서 서로 다른 독립적인 다중 수행이 가능하다
  • 프로세스의 실행단위
  • 프로세스 내에서의 작업 단위로서 시스템의 여러 자원을 할당받아 실행하는 단위
  • 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스라고도 한다
  • 커널 스레드 : 운영체제 커널에 의해 스레드 운용, 구현이 쉬우나 속도 느림
  • 사용자 스레드 : 사용자가 만든 라이브러리를 사용해 스레드 운용, 속도가 빠르나 구현 어렵다
문맥 교환 (Context Switching)
  • 이전 프로세스의 상태 레지스터 내용을 보관하고 다른 프로세스의 레지스터를 적재하는 과정이다
  • 현재 CPU를 사용하여 실행되고 있는 프로세스의 상태 정보를 저장하고 제어 권한을 ISR (Interrupt Service Routine)에게 넘기는 작업
  • 하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생된다
교착상태 (DeadLock)
  • 교착상태 4대 발생조건 #점비상환
    • 점유와 대기 (Hold and wait)
      • 프로세스가 수행되기 전에 필요한 모든 자원을 할당시켜 준다
      • 자원이 점유되지 않은 상태에서만 자원을 요구하도록 한다
    • 비선점 (Non-preemption)
    • 상호 배제 (Mutual exclusion)
    • 환형 대기 (Circular wait)
  • 교착상태의 해결 기법
    • Prevention (예방)
      • 교착상태의 필요조건(4개 조건)을 부정함으로써 교착상태가 발생하지 않도록 미리 예방하는 방법
      • 교착 상태의 원인이 되는 조건 중 하나를 제거
      • 일반적으로 자원의 낭비가 가장 심함
      • ex. 현황대기, 비선점, 점유와 대기, 상호배제 4가지 조건의 부정
    • Avoidance (회피)
      • 교착상태 가능성을 배제하지 않고 적절하게 피해나가는 방법
      • ex. 은행원 알고리즘 (Banker's Algorithm)
    • Detection (탐지)
      • 교착상태 발생을 허용하고 발생 시 원인을 규명하여 해결
      • ex. 자원할당 그래프
    • Recovery (복구)
      • 교착상태 발견 후 현황대기를 배제시키거나 자원을 중단하는 메모리 할당 기법
      • ex. 선점, 프로세스 중지(희생자 선택)
스케줄링
  • 선점 (Preemptive) 스케줄링
    • 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 선점할 수 있는 기법
    • 우선순위가 높은 프로세스 빠르게 처리 가능
    • 빠른 응답 시간을 요구하는 대화식 시분할 시스템(Time Sharing System)에 사용됨
    • 많은 오버헤드 발생
    • 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록 필요
    • # RR, SRT, MLQ(Multi-Level Queue), MFQ
  • RR (Round-Robin)
    • 시간 할당이 작아지면 프로세스-문맥 교환이 자주 일어난다
    • Time Sharing System을 위해 고안된 방식이다
    • 시간 할당이 커지면 FCFS 스케줄링과 같은 효과를 얻을 수 있다
  • SRT (Shortest Remaining Time)
    • SRT는 실행 시간을 추적해야 하므로, 오버헤드가 증가한다
  • 비선점 (Non-Preemptive) 스케줄링
    • 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 선점할 수 없는 기법
    • CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU 사용
    • 모든 프로세스에 대한 요구를 공정하게 처리 가능
    • 프로세스 응답 시간의 예측 용이
    • 일괄 처리 방식에 적합
    • 중요한 작업(짧은 작업)이 중요하지 않은 작업(긴 작업)을 기다리는 경우 발생 가뭄 현상
    • # FCFS (FIFO), SJF, HRN, 우선순위 (Priority), 기한부 (Deadline)
  • SJF (Shortest Job First)
    • 작업이 끝나기까지의 실행시간 추정치가 가장 작은 작업을 먼저 실행시킨다
  • HRN (Highest Response-ratio Next)
    • SJF 기법을 보완하기 위한 방식이다
    • 대기 시간이 긴 프로세스의 경우 우선순위가 높아진다
    • 긴 작업과 짧은 작업 간의 지나친 불평등을 해소할 수 있다
    • 우선순위를 계산하여 그 수치가 가장 높은 것부터 낮은 순으로 우선순위가 부여된다
    • HRN 우선순위 계산식 : (대기시간 + 서비스시간) / 서비스시간
메모리 관리
  • 배치 (Placement) 전략
    • 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에(Where) 위치시킬 것인지를 결정하는 전략
    • 최초 적합 (First Fit) : 빈 영역 중에서 첫 번째 분할 영역에 배치
    • 최적 적합 (Best Fit) : 빈 영역 중에서 단편화를 가정 작게 남기는 분할 영역에 배치
    • 최악 적합 (Worst Fit) : 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치
  • 교체(Replacement) 전략
    • 이미 사용되고 있는 영역 중에서 어느(Who) 영역을 교체할지 결정하는 전략
    • FIFO, LRU, LFU, NUR, OPT, SCR
    • 페이지 교체 알고리즘
      • FIFO(First In First Out) = FCFS(First Come First Serve)
      • 각 페이지가 주기억장치에 적재될 때마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법
  • LRU(Least Recently Used)
    • 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법
    • 가장 오래전에 사용된 페이지 교체
  • OPT(OPTimal replacement, 최적 교체)
    • 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
    • 벨레이디(Belady)가 제안한 것으로, 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘
  • LFU(Least Frequently Used)
    • 사용 빈도가 가장 적은 페이지를 교체하는 기법
  • NUR(Not Used Recently)
    • LRU와 비슷한 알고리즘으로, 최근에 사용하지 않은 페이지를 교체하는 기법
    • 각 페이지마다 두 개의 비트, 즉 참조 비트와 변형 비트 사용
가상기억장치
  • 페이징 (Paging) 기법
    • 프로그램을 고정된 크기의 일정한 블록으로 나누는 기법
    • 페이지 크기가 작아질수록 발생하는 현상
      • 기억장소 이용 효율이 증가한다
      • 입/출력 시간이 늘어난다
      • 내부 단편화가 감소한다
      • 페이지 맵 테이블의 크기가 증가한다
  • 세그먼테이션 (Segmentation) 기법
    • 가변적인 크기의 블록으로 나누는 기법
  • 페이지 부재 (Page Fault)
  • 스래싱 (Thrashing)
  • Working Set
    • 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
UNIX
  • 하나 이상의 작업에 대하여 백그라운드에서 수행 가능하다
  • 계층적 파일 시스템 : 계층 구조(트리 구조)의 파일 시스템을 갖는다
  • 유연성/이식성/호환성 : 이식성이 높으며 장치 간의 호환성이 높다
  • 멀티태스킹 : 다중 사용자 (Multi-User), 다중 작업 (Multi-tasking)을 지원한다
  • 대화식 운영체제 : 시분할 시스템 (Time Sharing System)을 위해 설계된 대화식 운영체제

→ 하드웨어 > 커널 (Kernel) > 쉘 (Shell) > 유틸리티 (Utility) > 사용자 (User)

  • UNIX 명령어
    • fork : UNIX에서 새로운 프로세스를 생성하는 명령어
    • uname : 운영체제 분석을 위해 리눅스에서 버전을 확인하고자 할 때 사용되는 명령어
  • 커널 (Kernel)
    • 프로세스, 기억장치, 입출력 관리를 수행한다
    • 프로세스 관리, 파일 시스템 관리, 입출력 관리, 기억장치 관리 등의 기능을 수행한다
  • 운영체제에서 커널의 기능
    • 프로세스 생성, 종료
    • 기억 장치 할당, 회수
    • 파일 시스템 관리
  • 쉘 (Shell)
    • 명령어 해석기이다
    • 시스템과 사용자 간의 인터페이스를 담당한다
    • 여러 종류의 쉘이 있다
    • 사용자의 명령어를 인식하여 프로그램을 호출한다
  • 쉘의 종류
    • Bourne 쉘
    • C 쉘
    • Korn 쉘
    • Tee-see 쉘
    • Z 쉘
    • Bourne-again 쉘
  • 쉘(Shell) 명령어
    • export
      • export가 매개 변수 없이 쓰일 경우 현재 설정된 환경변수들이 출력
      • 사용자가 생성하는 변수는 export 명령어 표시하지 않는 한 현재 쉘에 국한된다
      • 변수를 export 시키면 전역변수처럼 되어 끝까지 기억한다
    • printenv / env / setenv
      • 환경 변수 출력 명령어

프로그래밍 언어 활용

연산자
  • 산술연산자 (Arithmetic Operator)

산술연산자(Arithmetic Operator)

  • 관계 및 논리연산자

관계 및 논리연산자

  • 비트연산자 (Bitwise Operator)

비트연산자 (Bitwise Operator)

포인터
  • 배열 요소에 대한 주소를 지정할 때는 일반 변수와 동일하게 & 연산자를 사용
    • ex. int a[5], *b;
    • b = a → 배열의 대표명을 적었으므로 a 배열의 시작 주소인 a[0]의 주소를 b에 저장함
    • b = &a[0] → a 배열의 첫 번째 요소인 a[0]의 주소(&)를 b에 저장함
  • 포인터 변수
    • 포인터는 변수의 주소를 말하며, C언어에서는 주소를 제어할 수 있는 기능을 제공함
    • 포인터 변수는 변수의 주소를 저장할 때 사용하는 변수이다.
    • 포인터 변수는 필요에 의해 동적으로 할당되는 메모리 영역인 힙 영역에 접근하는 동적 변수다.
    • 포인터 변수를 선언할 때는 자료의 형을 먼저 쓰고 변수명 앞에 간접 연산자 *를 붙임
      → int *a;
    • 포인터 변수에 주소를 저장하기 위해 변수의 주소를 알아낼 때는 변수 앞에 번지 연산자 &를 붙임
      → a = &b;
    • 실행문에서 포인터 변수에 간접 연산자 *를 붙이면 해당 포인터 변수가 가리키는 곳의 값을 말함
      → c = *a;
C언어 구조체와 공용체
  • 구조체 (Stuct)
  • 공용체 (Union)
C언어 기억 부류
  • auto (자동 변수)
  • register (레지스터 변수)
  • static (정적 변수)
  • extern (외부 변수)
JAVA 클래스와 메소드
  • 접근자와 옵션
    • default : 패키지 내부에서만 상속과 참조 가능
    • public : 패키지 내부 및 외부에서 상속과 참조 가능
    • protected : 패키지 내부에서는 상속과 참조 가능, 외부에서는 상속만 가능
    • private : 같은 클래스 내에서 상속과 참조 가능
    • abstract : 객체를 생성할 수 없는 클래스
    • final : 서브 클래스를 가질 수 없는 클래스
    • static : 멤버 클래스 선언에 사용
  • 메소드 (Method)의 분류
    • 객체 메소드
    • 클래스 메소드
    • 종단 메소드
    • 추상 메소드 : 하나 이상의 추상 메소드를 포함한 클래스를 추상클래스라 한다
  • 메소드 오버로딩 (Overloading)
    • 이름은 같으나 매개 변수의 자료형과 개수가 서로 다른 메소드
  • 메소드 오버라이딩 (Overriding)
    • 이름, 매개 변수의 재료형 및 개수는 같으나 수행문이 다른 메소드
  • 추상 클래스와 추상 메소드
    • 추상 메소드와 추상 클래스는 반드시 abstract로 선언
    • 추상 메소드 : 추상적인 기능만 선언하고 그 내용은 기술하지 않은 메소드
    • 추상 클래스 : 클래스 내에 추상 메소드가 하나라도 있으면 추상 클래스
웹 저작 언어
  • JavaScript (자바스크립트)
    • 프로토타입 (Prototype)의 개념이 존재한다
    • Prototype Link와 Prototype Object를 활용할 수 있다
    • 객체지향 언어이다
  • ASP (Active Server Page)
    • 서버 측에서 동적으로 수행되는 페이지를 만들기 위한 언어, Microsoft 제작
    • Windows계열에서만 수행 가능
  • JSP (Java Server Page)
    • 서버용 스크립트 언어로 C, JAVA 등과 문법이 유사. LINUX, UNIX, Windows 운영체제에서 사용 가능
  • PHP (Professional Hypertext Preprocessor)
    • 서버용 스크립트 언어로 C, JAVA 등과 문법이 유사. LINUX, UNIX, Windows 운영체제에서 사용 가능
  • Ajax

네트워크 기초 활용

OSI 7계층 참조 모델  #아파서 티내다 피 (APSTNDP) / #응표세전내대물
  • 응용 계층 (Application Layer, 7계층)
    • 사용자와 네트워크 간 응용서비스 연결, 데이터 생성
    • HTTP, FTP, TELNET, SMTP, SNTP, DNS
  • 표현 계층 (Presentation Layer, 6계층)
    • 구문 검색, 코드 변환, 암/복호화, 데이터 압축, 문맥 관리 기능
    • JPEG, MPEG
  • 세션 계층 (Session Layer, 5계층)
    • 연결 접속(유지), 동기 제어, 동기점(대화)
    • RPC, Netbios, SSH, TLS
  • 전송 계층 (Transport Layer, 4계층)
    • 단말기 사이에 오류 수정과 흐름제어를 수행하여 신뢰성 있고 명확한 데이터를 전달하는 계층
    • 종단간 신뢰성 있고 효율적인 데이터를 전송하기 위해 오류 검출과 복구, 흐름 제어를 수행하는 계층
    • 종단간 (End to End) 신뢰성 있는 데이터 전송, 흐름 제어 (슬라이딩 윈도우), 오류 및 혼잡 제어
    • TCP / UDP
  • 네트워크 계층 (Network Layer, 3계층)
    • 패킷을 발신지로부터 최종 목적지까지 전달하는 책임을 진다
    • 패킷에 발신지와 목적지의 논리 주소를 추가한다
    • 라우터 또는 교환기는 패킷 전달을 위해 경로를 지정하거나 교환 기능을 제공한다
    • 단말기 간 데이터 전송을 위한 최적화된 경로(라우팅) 제공
    • IP, ICMP, ARP, RARP

※ 라우터 (Router) : 서로 다른 네트워크 대역에 있는 호스트들 상호간에 통신할 수 있도록 해주는 네트워크 장비

  • 데이터 링크 계층 (Data Link Layer, 2계층)
    • 물리적 연결을 이용해 신뢰성 있는 정보를 전송하려고 동기화, 오류제어, 흐름제어 등의 전송에러를 제어
    • 링크의 설정과 유지 및 종료를 담당하며, 노드 간의 오류제어와 흐름제어 기능을 수행
    • 한 노드로부터 다른 노드로 프레임을 전송하는 책임을 진다.
    • HDLC, PPP, LLC, MAC → 프레임 (Frame)

브리지 (Bridge) : LAN과 LAN을 연결하거나 LAN안에서의 컴퓨터 그룹을 연결한다

스위치 (Switch) : 브리지와 같이 LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만든다 (하드웨어 기반)

  • 물리 계층 (Physical Layer, 1계층)
    • 매체 간의 전기적, 기능적, 절차적 기능 정의
    • RS-232C, X.21 → 비트(Bit)

허브 (Hub) : 한 사무실이나 가까운 거리의 컴퓨터들을 연결하는 장치

리피터 (Repeater) : 신호가 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전송한다

TCP/IP 프로토콜
  • TCP/IP의 구조

TCP/IP의 구조

  • 응용 계층의 주요 프로토콜
    • HTTP (Hypertext Transfer Protocol) - HTML 문서를 송, 수신하기 위한 표준 프로토콜
    • FTP (File Transfer Protocol) - 파일을 주고받을 수 있는 원격 파일 전송 프로토콜
    • TELNET - 원격지 컴퓨터에 접속하여 자신의 컴퓨터처럼 사용할 수 있도록 해주는 서비
    • SMTP (Simple Mail Transfer Protocol) - 전자 우편을 교환하는 서비스
    • SNTP (Simple Network Management Protocol) - TCP/IP의 네트워크 관리 프로토콜
    • DNS (Domain Name System) - 도메인 네임을 IP 주소로 매핑하는 시스템
  • 전송 계층의 주요 프로토콜
    • TCP (Transmission Control Protocol)
      • OSI 7계층의 전송 계층(4계층)에 해당한다
      • 신뢰성이 있는 연결 지향형 전달 서비스이다
      • 전이중(Full Duplex) 방식의 양방향 가상회선을 제공한다
      • 기본 헤더 크기는 20byte이고, 60byte까지 확장 가능하다
      • 스트림 전송 기능을 제공한다
      • 전송 데이터와 응답 데이터를 함께 전송할 수 있다
      • 순서 제어, 오류 제어, 흐름 제어 기능을 제공한다
      • 흐름 제어(Flow Control)의 기능을 수행한다

※ Stop and Wait : 손실된 프레임 1개를 전송하고 수신자의 응답을 기다리는 방식으로 한 번에 프레임 1개만 전송할 수 있는 기법

  • UDP (User Datagram Protocol)
    • 비연결 지향 프로토콜
    • 송신 중에 링크를 유지관리하므로 신뢰성이 높다
    • 흐름제어나 순서제어가 없어 전송속도가 빠르다
    • 신뢰성보다는 속도가 중요시되는 네트워크에서 사용
    • 실시간 전송에 유리
  • 인터넷 계층의 주요 프로토콜
    • IP (Internet Protocol)
      • OSI 7계층의 네트워크 계층(3계층)에 해당한다.
      • 데이터 그램을 기반으로 하는 비연결형 서비스 제공
      • 패킷의 분해/조립, 주소 지정, 경로 선택 기능(Routing) 제공
    • ARP (Address Resolution Protocol)
      • TCP/IP에서 사용되는 논리주소를 물리주소로 변환시켜 주는 프로토콜
      • TCP/IP 네트워크에서 IP 주소를 MAC 주소로 변환하는 프로토콜
      • 네트워크에서 두 호스트가 성공적인 통신을 위하여 각 하드웨어의 물리적인 주소문제를 해결해 줄 수 있다
      • ARP캐시를 사용하므로 캐시에서 대상이 되는 IP주소의 MAC주소를 발견하면 이 MAC주소가 통신을 위해 사용된다
    • 네트워크 액세스 계층의 주요 프로토콜
      • Ethernet (IEEE 802.3) - CSMA/CD 방식의 LAN
      • IEEE 802.4 - Token Bus
      • IEEE 802.5 - Token Ring
      • IEEE 802 - LAN을 위한 표준 프로토콜
      • HDLC(HIGI-Ievel Data Link Control) - 비트 위주의 데이터 링크 제어 프로토콜
네트워크
  • CSMA/CA (충돌회피)
    • 무선 랜에서 데이터 전송 시, 매체가 비어 있음을 확인한 뒤 충돌을 회피하기 위해 임의 시간을 기다린 후 데이터를 전송하는 방법
    • 네트워크에 데이터 전송이 없는 경우라도 동시 전송에 의한 충돌에 대비하여 확인 신호를 전송
  • CSMA/CD (충돌감지)
IP
  • IP 주소(Internet Protocol Address)
    • 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소
    • IPv4, 숫자로 8비트씩 4구역으로 총 32비트로 구성
  • IP 주소 클래스
    • A Class : (0.0.0.0 ~127.255.255.255) (국가나 대형 통신망)
    • B Class : (128.0.0.0 ~191.255.255.255) (중대형 통신망)
    • C Class : (192.0.0.0 ~ 223.255.255.255) (소규모 통신망)
    • D Class : (224.0.0.0 ~ 239.255.255.255) (멀티캐스트용)
    • E Class : (240.0.0.0 ~ 255.255.255.255) (연구용. 실험적 주소이며 공용되지 않음)
  • 서브 네트워크
    • 할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나누어 사용하는 것
    • 서브넷 마스크(Subnet Mask) : 4바이트의 IP 주소 중 네트워크 주소와 호스트 주소를 구분하기 위한 비트로, 이를 변경해 네트워크 주소를 여러 개로 분할해 사용
  • IPv4 (Internet Protocol version 4)
    • 32비트 주소체계를 사용한다
    • 패킷 크기가 64Kbyte로 제한
  • IPv6 (Internet Protocol version 6)
    • IPv4보다 보안성이 강화되었다
    • 보안과 인증 확장 헤더를 사용함으로써 인터넷 계층의 보안기능을 강화하였다
    • IPv6 확장 헤더를 통해 네트워크 기능 확장이 용이하다
    • 애니캐스트(Anycast)는 하나의 호스트에서 그룹 내의 가장 가까운 곳에 있는 수신자에게 전달하는 방식이다
    • 128비트 주소체계를 사용한다
    • 멀티미디어의 실시간 처리가 가능하다
    • 자동으로 네트워크 환경구성이 가능하다
    • IPv6의 패킷 크기는 임의로 큰 크기의 패킷을 주고받을 수 있다
  • 주소체계
    • IPv4 : 유니캐스트, 멀티캐스트, 브로드캐스트
    • IPv6 : 유니캐스트, 멀티캐스트, 애니캐스트

 

    •  
댓글
최근에 올라온 글
TAG
more
글 보관함
«   2024/12   »
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