(정보처리기사) 데이터 통신

<자동 반복 요청(ARQ,Automatic Repeat reQuest)>
*오류 발생시 수신측은 오류발생을 송신측에 통보하고, 송신측은 오류발생 블록을 재전송하는 모든 절차를 의미한다.
  1. 정지-대기 ARQ

  • Stop-and-Wait는 송신측에서 한 개의 블록을 전송한 후 수신측 으로 부터 응답을 기다리는 방식이다. 
  • 수신측의 응답이 긍정(ACK)이면 다음 블럭을 전송하고 ,부정응답(NAK)이면 앞서 송신했던 블록을 재전송한다.
  • 블록을 전송 할 때마다 수신측의 응답을 기다려야 하므로 전송효율이 가장 낮다.
  • 오류가 발생 한 경우 앞서 송신했던 블록만 재전송하면 되므로 구현방법이 가장 단순하다.
  2. 연속 ARQ: 연속(Continuous)ARQ는 정지-대기 ARQ가 갖는 오버헤드를 줄이기 위해 연속적으로 데잍 블록을 보내는 방식으로, 수신 측에서는 부정 응답(NAK)만을 송신한다.
  • Go-Back-N ARQ: 여러블록은 연속적으로 전송하고, 수신측에서는 부정 응답(NAK)을 보내 오면 송신 측이 오류가 발생한 블록이후의 모든 블록을 재전송한다. 전송오류가 발생하지 않으면 쉬지않고 연속적으로 송신이 가능하다. 오류가 발생한 부분부터 모두 재전송하므로 중복 전송의 단점이 있다.
  • 선택적 재전송(Selective Repeat)ARQ: 여러블록을 연속적으로 전송하고, 수신측에서 부정 응답(NAK)을 보내 오면 송신측이 오류가 발생한 블록만을 재전송한다. 수신측에서 데이터를 처리하기 전에 원래 순서대로 조립해야 하므로,더 복잡한 논리회로와 큰 용량의 버퍼가 필요하다.
3. 적응적 ARQ: 적응적(Adaptive) ARQ는 전송효율을 최대로 하기 위해 데이터 블록의 길이를 채널의 상태에 따라 그때그떄 동적으로 변경하는 방식이다.
  • 전송 효율이 제일 좋다.
  • 제어 회로가 매우 복잡하고 비용이 많이 들어 현재 거의 사용되지 않고 있다.

<직접전송과 간접전송>
직접전송: 현재 네트워크 상에 최종 목적지가 존재하여 해당 최종 목적지까지 직접 전송하는 것을 말하며
간접전송: 현재 네트워크 상에 최종 목적지가 존재하지 않아 최종 목적지가 존재하는 네트워크의 라우터 까지 전송하는 것을 말한다.

<HDLC 프레임의 구조>
  • 플래그(FLAG): 프레임의 시작과 끝을 나타내는 고유한 비트패턴(01111110)
  • 주소부(Address Field): 송.수신국을 식별하기 위해 사용.불특정 다수에게 전송하는 방송용(BroadCast) 은 '11111111', 시스템에 의해 임의로 수신국이 지정되는 시험용 (No Station) 은'00000000'을 사용
  • 제어부(Control Field): 프레임의 종류를 식별하기 위해 사용, 제어부의 첫번째 두번째 비트를 사용하여 식별함
  • 정보부(Information Field): 실제 정보 메시지가 들어 있는 부분으로, 송.수신측 간의 협의에 따라 길이와 구성이 정해짐
    ----정보,프레임(Information Frame): 제어부가 0으로 시작하는 프레임으로,사용자가 데이터를 전달하는 역할을 함
    -----감독 프레임(Supervisor Frame): 제어부가 10으로 시작하는 프레임으로,오류제어와 흐름제어를 위해 사용됨.
   -----비번호 프레임(Unnumbered Frame): 제어부가 11로 시작하는 프레임으로,링크의 동작모드 설정과 관리를 함
  • FCS(Frame Check Sequence Field,프레임 검사 순서 필드):프레임 내용에 대한 오류검출을 위해 사용되는 부분으로, 일반적으로 CRC코드가 사용됨.

<동기식 전송>
동기식 전송은 미리 정해진 수만큼의 문자열을 한 블록(프레임)으로 만들어 일시에 전송하는 방식이다. 
  • 송.수신 양쪽의 동기를 유지하기 위해서 타이밍신호(클럭)를 계속적으로 공급하거나 동기문자를 전송한다.
  • 비동기식 전송과는 다르게 시작비트와 종료비트가 필요없다.
  • 블록과 블록사이에 휴지시간(Idle Time)이 없다.
  • 프레임 단위로 전송하므로 전송 속도가 빠르다.
  • 시작/종료 비트로 인한 오버헤드가 없고,휴지 시간이 없으므로, 전송효율이 좋다.
  • 주로 원거리 전송에 사용한다.
  • 단말기는 반드시 버퍼 기억장치를 내장하여야 한다.
   --문자위주의 동기방식: SYN 등의 동기문자(전송제어문자)에 의해 동기를 맞추는 방식으로,BSC프로토콜에서 사용됨
  --비트 위주 동기방식: 데이터 블록의 처음과 끝에 8비트의 플래그비트를 표시하여 동기를 맞추는 방식으로 HDLC와 SDLC프로토콜에서 사용됨.

<패킷 교환 방식의 종류>
1. 가상 회선 방식: 
  • 단말기 상호간에 논리적인 가상 통신 회선을 미리 설정하여 송신지와 수신지 사이의 연결을 확립한 후에 설정된 경로를 따라 패킷들을 순서적으로 운반하는 방식
  • 정보 전송전에 제어 패킷에 의해 경로가 설정된다.
  • 통신이 이루어지는 컴퓨터 사이에 데이터 전송의 안정성과 신뢰성이 보장된다.
  • 모든 패킷은 같은 경로로 발생 순서대로 전송된다. 즉 패킷의 송.수신 순서가 같다.
2. 데이터그램 방식

  •  연결경로를 설정하지 않고 인접한 노드들의 트래픽(전송량)상황을 감안하여 각각의 패킷들을 순서에 상관없이 독립적으로 운반하는 방식.
  • 패킷마다 전송경로가 다르므로, 패킷은 목적지의 완전한 주소를 가져야 한다.
  • 네트워크의 상황에 따라 적절한 경로로 패킷을 전송하기 때문에 융통성이 좋다.
  • 순서에 상관없이 여러경로를 통해 도착한 패킷들은 수신측에서 순서를 재정리한다.
  • 소수의 패킷으로 구성된 짧은 데이터 전송에 적합하다.

<OSI 7계층>

1. 물리계층: 전송에 필요한 두 장치간의 실제 접속과 절단 등 기계적, 전기적,기능적,절차적 특성에 대한 규칙을 정의 한다. 물리적 전송매체와 전송신호 방식을 정의한다.

2. 데이터 링크 계층: 두개의 인접한 개방 시스템들 간에 신뢰성있고 효율적인 정보전송을 할 수 있도록 한다. 송신측과 수신측의 속도차이를 해결하기 위한 흐름 제어기능을 한다.
프레임의 시작과 끝을 구분하기 위한 프레임의 동기화 기능을 한다. 오류의 검출과 회복을 위한 오류제어기능을 한다. 프레임의 순서적전송을 위한 순서제어 기능을한다. 
HDLC, LAPB, LLC,LAPD, PPP등의 표준이있다.

3. 네트워크 계층: 개방시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계기능을 한다. 네트워크 연결을 설정,유지, 해제하는 기능을 한다.
경로설정(Routing), 데이터 교환 및 중계,트래픽 제어, 패킷정보 전송을 수행한다.

4. 전송계층: 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템(End-to-End)간에 투명한 데이터 전송을 가능하게 한다. OSI7계층 중 상위 3계층과 하위 3계층의 인터페이스를 담당. 종단시스템간의 전송연결설정, 데이터 전송,연결 해제 기능을 한다.
주소 설정, 다중화, 오류제어 흐름제어를 수행한다. TCP,UDP등이있다.

5. 세션계층: 송.수신측 간의 관련성을 유지하고 대화제어를 담당하는 계층이다. 대화 구성및 동기제어, 데이터 교환 관리 기능을 한다. 송.수신 측간의 대화(회화)동기를 위해 전송하는 정보의 일정한 부분에 체크점을 두어 정보의 수신상태를 체크하며 이떄의 체크점을 동기점이라고 한다. 동기점은 오류가 있는 데이터의 회복을 이해 사용하는 것으로, 종류에는 소동기점,대동기점이있다.

6. 표현계층: 응용계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로변환하고 세션계층에서 받은 데이터는 응용계층에 맞게 변환하는 기능을 한다.
서로 다른 데이터 표현형태를 갖는 시스템 간의 상호접속을 위해 필요한 계층이다.
코드 변환, 데이터 암호화, 데이터 압축, 구문검색, 정보형식(포맷)변환, 문맥관리 기능을 한다.

7. 응용계층: 사용자(응용프로그램)가 OSI환경에 접근할 수 있도록 서비스를 제공한다.
응용프로세스 간의 정보교환, 전자사서함,파일전송등의 서비스를 제공한다.



<라우팅 프로토콜>

IGP: 하나의 자율 시스템(AS)내의 라우팅에 사용되는 프로토콜

RIP: 현재 가장 널리 사용되는 프로토콜, 소규모의 동종의 네트워크(자율시스템,AS)내에서 효율적인 방법임, 최대 홉수를 15로 제항하므로, 15이상의 경우는 도달할수 없는 네트워크를 의미하며, 이것은 대규모네트워크에서 RIP를 사용 할 수 없음을 나타냄
라우팅 정보를 30초마다 마다 네트워크 내의 모든 라우터에 알리며, 180초이내에 새로운 라우팅 정보가 수신되지 않으면 해당경로를 이상상태로 간주함

OSPF: 경로수(HOP)의 제한이 없으므로 대규모 네트워크에서 많이 사용되는 라우팅 프로토콜, 라우팅 정보에 변화가 있을 때, 변화된 정보만 네트워크내의 모든 라우터에게 알림

EGP: 자율시스템(AS)간의 라우팅, 즉 게이트웨이 간의 라우팅에 사용되어지는 프로토콜

BGP: 자율시스템(AS)간의 라우팅 프로토콜,EGP의 단점을 보완하기 위해 만들어짐, 초기에 BGP라우터들이 연결될 떄에는 전체경로 제어표를 교환하고, 이후에는 변화된 정보만을 교환함


<핸드오프(Hand off)>

가입자가 서비스중인 기지국 영역을 벗어나 다른 기지국으로 이동할 때, 통화가 단절되지 않도록 통화 채널을 자동으로 전환하는 기능.

<주요 프로토콜>

  • ICMP: IP와 조합하여 통신 중에 발생하는 오류의 처리와 전송 경로 변경등을 위한 제어 메시지를 관리하는 역할을 함
  • IGMP: 인터넷 그룹관리 프로토콜이라 하며, 멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용됨.
  • RARP: 호스트의 물리주소를 이용하여 논리주소인 IP주소를 얻어오기 위해 사용되는 프로토콜
<ICMP 의 특징>
  • IP프로토콜에서는 오류보고와 수정을 위한 매커니즘이 없기 때문에 이를 보완하기 위해 설계되었다.
  • ICMP는 네트워크 계층 프로토콜이다.
  • ICMP메시지는 하위계층으로 가기전에 IP프로토콜 데이터 그램넹 캡슐화 된다.
  • 8바이트의 헤더로 구성된다,
<IPV4를 IPV6로 전환하는 전략>
  • 듀얼스택(Dual Stack): 호스트에서 IPV4와 IPV6을 모두 처리 할 수 있도록 두개의 스택을 구성하는 것
  • 터널링(Tunneling): IPV6망에서 인접한 IPV4망을 거쳐 다른 IPV6망으로 통신 할 때 IPV4망에 터널을 만들어 IPv6패킷이 통과할 수 있도록 하는 것
  • IPv4/IPv6 변환: 
  1. * 헤더변환: IP계층(네트워크 계층)에서 IPv6패킷 헤더를 IPv4해킷헤더나 그 반대로 변환하는 방식,,,,
  2. *전송계층 릴레이방식: 전송계층에서 IPv6패킷헤더를 IPv4패킷 헤더나 그 반대로 변환하는 방식
  3. 응용계층 릴레이방식: 응용계층에서 IPv6패킷 헤더를 IPv4패킷 헤더나 그 반대로 변환하는 방식
 <RTCP(Real-Time Control Protoco)>
  • Session의 모든 참여자에게 컨트롤 패킷을 주기적으로 전송한다.
  • RTCP패킷은 항상 32비트로 구성된다.
  • 하위 프로토콜은 데이터 패킷과 컨트롤 패킷의 멀티 플렉싱을 제공한다.
  • 데이터 전송을 모니터링하고 최소한의 제어와 인증기능을 제공한다
<명령어 형식>

  • 3-주소 명령어: Operand부가 3개로 구성되는 명령어 형식으로 여러 개의 범용레지스터(GPR)를 가진 컴퓨터에서 사용하며,연산의 결과는 Operand1에 기록됨
  • 2-주소 명령어: Operand 부가 2개로 구성되는, 가장 일반적으로 사용되는 명령어형식으로 여러개의 범용레지스 (GPR)을 가진 컴퓨터에서 사용함
  • 1-주소 명령어: Operand 부가 1개로 구성되어 있으며, 1-주소 명령어 형식의 컴퓨터는 누산기(AC,Accumulator)를 이용하여 명령어를 처리함
  • 0-주소 명령어: Operand부 없이 OP-Code부만으로 구성되어 있으면, 모든 연산은 Stack을 사용함

<펄스 코드 변조(PCM)>:아날로그 데이터를 디지털 신호로 변환하는 변조 방식

  • 펄스 코드 변조 순서: 송신측(표본화->양자화->부호화)->수신측(복호화->여파화)
  • 1. 표본화(Sampling): 음성,영상등의 연속적인 신호 파형을 일정 시간 간격으로 검출하는 과정
  • 2. 양자화(Quantizing): 표본화된 PAM신호를 유한개의 부호에 대한 대표값으로 조정하는 과정
  • 3. 부호화(Encoding): 양자화된 PCM펄스의 진폭 크기를 2진수(1과0으로)표시하는 과정
  • 4. 복호화(Decoding): 수신된 디지털 신호,즉 PCM 신호를 PAM신호로되돌리는 과정
  • 5. 여파화(Filtering): PAM신호를 원래의 입력 신호인 아날로그 데이터로 복원하는 과정
<전송 제어 문자>
  • SYN(Synchronous idle): 문자동기
  • SOH(Start Of Heading): 헤딩의 시작
  • STX(Start of Text): 본문의 시작 및 헤딩의 종료
  • ETX(End of Text): 본문의 종료
  • ETB(End of Transmission Block): 블록의 종료
  • EOT(End of Transmission):전송종료 및 데이터 링크의 해제
  • ENQ(ENQuiry):상대편에 데이터 링크 설정 및 응답을 요구
  • DLE(Data Link Escape): 전송 제어 문자 앞에 삽입하여 전송 제어 문자임을 알림
<HDLC의 동작모드>
  • 표준(정규)응답 모드(NRM,Normal Response Mode): 반이중을 하는 포인트 투 포인트 또는 멀티포인트 불균형 링크 구성에 사용한다. 종국은 주국의 허가(Poll)가 있을 때만 송신한다.
  • 비동기 응답 모드(ARM,Asynchronous Response Mode): 전이중 통신을 하는 포인트 투 포인트 불균형 링크 구성에 사용한다. 종국은 주국의 허가(Poll)없이도 송신이 가능하지만, 링크설정이나 오류복구등의 제어기능은 주국만 한다.
  • 비동기 균형(평형)모드(ABM,Asynchronous Balanced Mode): 포인트 투 포인트 균형 링크에서만 사용한다. 혼합국끼리 허가 없이 언제나 전송할 수 있도록 설정한다.
<데이터 링크 계층에서 제공하는 LLC과 MAC>
1. 논리 링크 제어(LLC)
  • 상위 계층인 네트워크 계층 LAN의 MAC계층을 연결해주는 인터페이스 인터페이스를 제공한다.
  • 에러 제어와 흐름제어를 담당한다.
2. 매체 접근제어(MAC)
  • 하위 계층인 물리 계층에 대한 접근 제어를 담당한다.
  • 두 개이상의 호스트가 데이터를 동시에 보내지 않도록 데이터를 보낼 노드를 결정하는 역할을 한다.


<폴링/셀렉션(Polling/Selection)>
  • 주 컴퓨터에서 송.수신 제어권을 가지고 있는 방식이다.
  • 트래픽이 많은 멀티포인트방식으로 연결된 회선에서 사용한다.
  • 폴링(Polling): 주 컴퓨터에서 단말기에게 전송할 데이터가 있는지를 물어 전송할 데이터가 있다면 전송을 허가하는 방식으로, 단말기에서 주 컴퓨터로 보낼 데이터가 있는 경우에 사용한다.
  • 셀렉션(Selection): 주 컴퓨터가 단말기로 전송할 데이터가 있는 경우 그 단말기가 받을 준비가 되있는가를 묻고, 준비가 되어 있다면 주 컴퓨터에서 단말기로 데이터를 전송하는 방식
<대역폭(BandWidth),전송률>

  • 대역폭은 메모리로 부터 또는 메모리까지 1초동안 전송되는 최대한의 전송량으로 기억장치의 자료 처리 속도를 나타내는 단위이다.
  • 대역폭은 물리적으로 버스의 크기에 영향을 받는다.
<파이프라인 기법의 장.단점>
  • 일단 파이프라인이 차고나면 연속적으로 결과를 얻을 수 있으므로 연산속도가 빠르다
  • 같은 연산이 여러번 반복되어 사용되면 효율적이지만, 그렇지 않는 경우는 구조가 복잡하고 시간이 오래걸린다
<패리티 검사코드>

  • 코드의 오류를 검사하기 위해서 데이터 비트외에 1비트의 패리티 체크 비트를 추가 하는 것으로 1비트의 오류만 검출 할 수 있다.
  • Odd Parity: 코드에서 1인 비트의 수가 홀수가 되도록 0이나 1을 추가함
  • Even Parity: 코드에서 1인 비트의 수가 짝수가 되도록 0이나 1을 추가함
<해밍코드>
  • 오류를 스스로 검출하여 교정이 가능한 코드이다.
  • 1비트의 오류만 교정할 수 있다
  • 데이터 비트외에 에러 검출 및 교정을 위한 잉여비트가 많이 필요하다.
  • 해밍코드 중 1,2,4,8,16....2^n비트는 오류 검출을 위한 패리티 비트이다.
<프로토콜의 구성요소>
  • 구문(Syntax): 전송하고자 하는 데이터 형식, 부호화, 신호레벨등을 규정
  • 의미(Semantic): 두 기기간의 효율적이고 정확한 정보 전송을 이한 협조 사항과 오류 관리를 위한 제어정보를 규정
  • 시간(Timing): 두 기기간의 통신속도, 메시지의 순서 제어등을 규정

댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기