송신 호스트가 수신 호스트에 데이터를 전달하려면 두 가지 과정을 거쳐야 한다. (①)은 전달 경로가 둘 이상일 때 어느 방향으로 전달할지를 선택하는 기능이다. (②)은 특정한 물리 매체에 일대일로 직접 연결된 두 시스템 간의 신뢰성 있는 데이터 전송을 보장한다.
① 교환, ②, 전송
두 호스트 사이의 데이터 전송을 의미하는 (①) 방식은 컴퓨터 통신의 가장 기본적인 형식이다. 또 다른 방식으로는 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 (②), 프로토콜 자체에서 일대다 전송 기능을 구현하여 동작하는 (③)이 있다.
① 유니캐스팅, ② 브로드캐스팅, ③ 멀티캐스팅
응답 프레임의 종류에는 두 가지가 있는데, 데이터 프레임이 정상적으로 도착했을 때 회신하는 (①)프레임과 데이터 프레임이 깨졌을 때 회신하는 (②)프레임이 있다.
① 긍정응답, ② 부정응답
송신 호스트는 데이터 프레임을 전송한 후에 일정 시간 이내에 수신 호스트로부터 긍정 응답 프레임의 회신이 없으면 ( ) 기능을 동작시켜 데이터 프레임을 재전송한다.
타임아웃
수신 호스트가 중복 데이터 프레임인지 여부를 판단하여 가려내려면 프레임 내부에 ( )를 기록해야 한다.
순서번호
송신 호스트는 수신 호스트가 감당할 수 있을 정도의 전송 속도를 유지하면서 데이터 프레임을 전송해야 하는데, 이러한 기능을 ( )라 한다.
흐름 제어
데이터 링크 계층에서는 전송 데이터를 (①)이라는 작은 단위로 나누어 처리한다. 전송 (①)에는 상위 계층에서 보낸 전송 데이터의 오류 확인을 위한 (②), 송수신 호스트의 주소, 기타 프로토콜에서 사용하는 제어 코드 같은 정보가 포함된다.
① 프레임, ② 체크섬
프레임은 내부 정보를 표현하는 방식에 따라 두 가지로 구분된다. (①) 프레임은 프레임의 내용이 문자로 구성되므로 문자 데이터를 전송할 때 사용하고, (②) 프레임은 임의의 비트 패턴 데이터를 전송할 때 사용한다.
① 문자, ② 비트
비트 프레임에서 플래그 패턴과 동일한 형태의 패턴이 전송 데이터 발생하지 않도록 하는 기능을 (①)이라 한다. 수신 호스트는 송신 과정에서 추가된 (②)을 제거하여 원래의 데이터를 상위 계층에 전송해야 한다.
① 비트 스터핑, ② 0
(①)는 전송 과정에서 1비트 오류를 검출하기 위한 것으로 (①)를 포함해 1의 개수가 짝수나 홀수가 되어야 한다. 다수의 비트에서 오류가 발생할 때 오류를 검출하는 방법으로는 (②)가 있다. (②) 방식은 수평과 수직방향으로 (①)를 관리한다.
① 패리티 비트, ② 블록 검사
네트워크 전송 오류는 특정 위치에서 집중적으로 발생하는 버스 에러 형태인 경우가 많은데, ( ) 오류 검출 방식은 이런 환경에서 오류를 검출하는 확률이 높다.
다항 코드
전송과 교환에 대한 설명으로 올바른 것을 모두 고르시오.
① 송신 호스트가 수신 호스트에 데이터를 전달하려면 전송과 교환 과정을 거쳐야 한다.
② 교환에는 라우팅 개념이 포함되지만, 전송에는 포함되지 않는다.
③ 각 호스트를 일대일로 직접 연결해 목적지에만 데이터를 전송하는 것을 점대점 방식이라 한다.
④ 연결된 모든 호스트에 데이터를 전송하는 방식을 멀티캐스팅이라 한다.
⑤ 점대점 방식은 LAN 환경에서 주로 사용하고, 브로드캐스팅 방식은 WAN 환경에서 주로 사용한다.
-①, ②, ③
-④ (수정) 연결된 모든 호스트에 데이터를 전송하는 방식을 브로드캐스팅이라 한다.
-⑤ (수정) 점대점 방식은 WAN 환경에서 주로 사용하고, 브로드캐스팅 방식은 LAN 환경에서 주로 사용한다.
점대점 방식에 대한 설명으로 올바른 것을 모두 고르시오.
① 교환 호스트가 송수신 호스트의 중간에 위치하여 중개 기능을 수행한다.
② 스타형 구조는 하나의 중개 호스트 주위로 여러 호스트를 일대일로 연결하는 형태이다. 주변 호스트들은 중개 호스트의 도움 없이도 데이터를 송수신할 수 있다.
③ 스타형을 다단계로 확장하면 트리형 구조가 된다.
④ 링형 구조는 호스트가 순환 고리 형태로 연결되는 구조이며, 전송 데이터가 브로드캐스팅되는 특징이 있다.
⑤ 완전형은 네트워크에 존재하는 모든 호스트가 다른 모든 호스트와 일대일로 직접 연결되는 방식이며, 데이터 송수신 시 부분적인 교환 기능이 필요하다.
-①, ③, ④
-② (수정) 스타형 구조는 하나의 중개 호스트 주위로 여러 호스트를 일대일로 연결하는 형태이다. 따라서 데이터를 최종 목적지 호스트까지 올바르게 전달하려고 인접 호스트에 전송하는 과정을 단계적으로 반복한다.
-⑤ (수정) 완전형은 네트워크에 존재하는 모든 호스트가 다른 모든 호스트와 일대일로 직접 연결되는 방식이며, 데이터 송수신 시 부분적인 교환 기능이 필요없다.
브로드캐스팅 방식에 대한 설명으로 잘못된 것을 모두 고르시오.
① 특정 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전달된다.
② 데이터를 수신하도록 지정된 호스트는 해당 데이터를 수신하고 보관해야 하지만, 다른 호스트들은 수신한 데이터를 버려야 한다.
③ 링형 구조에서는 전송 데이터가 링 주위를 순환하면서 전송되기 때문에 데이터가 링을 한 바퀴 완전히 순환하는 경우는 없다.
④ 버스형 구조에서 둘 이상의 호스트가 데이터를 동시에 전송하면 충돌이 발생할 수 있다.
⑤ 충돌과 관련하여, 대표적인 공유 버스 방식인 이더넷에서는 충돌방지 방식을 사용한다.
-③, ⑤
-③ (수정) 링형 구조에서는 전송 데이터가 링 주위를 순환하면서 전송되기 때문에 데이터가 링을 한 바퀴 완전히 순환한다.
-⑤ (수정) 충돌과 관련하여, 대표적인 공유 버스 방식인 이더넷에서는 충돌 허용 방식을 사용한다.
멀티포인트 통신에 대한 설명으로 올바른 것을 모두 고르시오.
① 인터넷에서 제공되는 텔넷, FTP, 웹 검색 같은 대부분의 서비스는 유니캐스팅 방식을 지원한다.
② 송신 호스트를 기준으로, 수신 호스트 하나가 연결되면 유니포인트가 되고 다수의 수신 호스트와 연결되면 멀티포인트가 된다.
③ 유니캐스팅 방식을 이용해 일대다 통신을 하려면 멀티포인트 유니캐스팅 방식을 사용해야한다.
④ 브로드캐스팅 방식에서는 호스트 수가 많을수록 성능 향상을 보장한다.
⑤ 멀티캐스팅 방식에서는 데이터 전송 과정에 수신 호스트 수만큼 데이터를 반복해서 전송해야 한다.
-①, ②, ③
-④ (수정) 브로드캐스팅 방식에서는 호스트 수가 많을수록 트래픽이 많아진다.
-⑤ (수정) 멀티캐스팅 방식에서는 데이터 전송 과정에 전송 요구 한 번으로 모든 수신 호스트에 데이터 전달을 할 수 있다.
전송 오류 처리와 관련된 설명으로 올바른 것을 모두 고르시오.
① 데이터 프레임의 변형 오류를 확인한 수신 호스트는 응답 프레임을 전송하여 재전송을 요구할 수 있다.
② 수신 호스트에 데이터가 도착하지 못하는 프레임 분실 오류가 발생하면 부정 응답 프레임으로 오류 복구를 시작해야 한다.
③ 수신 호스트가 보낸 긍정 응답 프레임이 분실되면 데이터 중복 현상이 발생하기 때문에 순서 번호 기능이 반드시 필요하다.
④ 송신 호스트에서 전송한 프레임은 크게 세 가지 경우로 나뉘어 처리되는데, 프레임이 정상적으로 도착한 경우, 프레임이 변형되어 도착하는 경우, 프레임이 분실되는 경우로 나뉜다.
⑤ 프레임 분실 오류가 발생하면 타임아웃 기능에 의하여 송신 호스트의 재전송 기능이 이루어진다.
-①, ③, ④, ⑤
-② (수정) 수신 호스트에 데이터가 도착하지 못하는 프레임 분실 오류가 발생하면 타임아웃기능으로 오류 복구를 시작해야 한다.
흐름 제어 기능에 대한 설명으로 잘못된 것을 모두 고르시오.
① 오류 제어와 함께 데이터 링크 계층에서 제공하는 주요 기능은 전송 데이터의 속도 조절 기능이다.
② 흐름 제어는 송신 호스트가 수신 호스트보다 아주 늦게 데이터를 전송하는 경우에 필요하다.
③ 흐름 제어 기능을 제공하지 않으면 수신 호스트는 자신이 받은 데이터 프레임을 내부 버퍼에 보관할 여유를 갖지 못한다.
④ 흐름 제어 부재에 따른 프레임 분실은 재전송 방법에 의하여 복구될 수 있다.
⑤ 흐름 제어의 기본 원리는 수신 호스트가 다음에 수신할 프레임의 전송 시점을 송신 호스트에 통지하는 방식이다.
-②
-② (수정) 흐름 제어는 송신 호스트가 수신 호스트보다 아주 빠르게 데이터를 전송하는 경우에 필요하다.
프레임에 대한 설명으로 올바른 것을 모두 고르시오.
① 프레임을 전송받은 수신 호스트는 제일 먼저 체크섬을 확인해 전송 중에 프레임 변형 오류가 발생했는지 확인해야한다.
② 문자 프레임에서는 각 프레임의 시작 위치에 6문자(DLE, STX)를 추가하고, 끝나는 위치에 6문자(DLE, ETX)를 추가해 프레임의 다른 정보와 구분한다.
③ 문자 스터핑은 문자 프레임 전송 데이터 안에 DLE 문자가 포함되면서 발생하는 혼란을 예방하는 방법이다.
④ 비트 프레임 방식은 프레임의 시작과 끝 위치에 플래그라는 특수하게 정의된 비트 패턴(10000001)을 사용해 프레임 단위를 구분한다.
⑤ 수신 호스트가 수신한 데이터 프레임의 내용에서 플래그 패턴 외에는 어떤 경우에도 0이 연속해서 5개를 넘지 않는다.
-①, ③
-② (수정) 문자 프레임에서는 각 프레임의 시작 위치에 2문자(DLE, STX)를 추가하고, 끝나는 위치에 2문자(DLE, ETX)를 추가해 프레임의 다른 정보와 구분한다.
-④ (수정) 비트 프레임 방식은 프레임의 시작과 끝 위치에 플래그라는 특수하게 정의된 비트 패턴(01111110)을 사용해 프레임 단위를 구분한다.
-⑤ (수정) 수신 호스트가 수신한 데이터 프레임의 내용에서 플래그 패턴 외에는 어떤 경우에도 1이 연속해서 5개를 넘지 않는다.
오류 검출 코드에 대한 설명으로 잘못된 것을 모두 고르시오.
① 네트워크에서는 오류 복구 코드를 이용한 순방향 오류 복구 방식을 사용하지 않고, 역방향 오류 복구 방식을 사용한다.
② 1바이트 구조에서 패리티 비트는 7비트의 ASCII 코드를 제외한 나머지 1비트이다.
③ 다수의 비트에서 오류가 발생할 때 오류를 검출하는 방법으로는 홀수 패리티 방식을 개선한 짝수 패리티 방식이 있다.
④ 데이터 전송 시 송신 호스트가 짝수 패리티 방식을 사용하면 수신 호스트는 홀수 패리티 방식을 사용해야 한다.
⑤ 블록 검사 방식의 문제점은 수평과 수직 방향에서 모두 사각형 형태로 짝수 개의 데이터 오류가 발생하면 이를 검출하지 못한다는 것이다.
-③,④
-③ (수정) 다수의 비트에서 오류가 발생할 때 오류를 검출하는 방법으로는 블록검사 방식이 있다.
-④ (수정) 데이터 전송 시 송신 호스트가 짝수 패리티 방식을 사용하면 수신 호스트는 짝수 패리티 방식을 사용해야 한다.
오류 검출 방식인 다항 코드에 대한 설명으로 올바른 것을 모두 고르시오.
① CRC로 알려진 다항 코드 방식은 통신 프로토콜에서 가장 많이 사용하는 오류 검출 기법이다.
② 다항 코드 방식의 문제점은 버스트 에러의 검출률이 낮다는 점이다.
③ 송신 호스트는 전송 데이터를 생성 다항식으로 나누어 체크섬 정보를 얻는다.
④ 수신 호스트는 전송 오류가 발생했는지를 판단하기 위해 수신한 데이터 전체를 생성 다항식으로 나누는 연산을 하고, 나머지가 0이 아니면 전송 오류가 없는 것으로 판단한다.
⑤ 국제 표준으로 널리 사용되는 생성 다항식은 CRC-12,CRC-16,CRC-CCITT등이 있다
-①, ③, ⑤
-② (수정) 다항 코드 방식의 문제점은 버스트 에러의 검출률이 높다는 점이다.
-④ (수정) 수신 호스트는 전송 오류가 발생했는지를 판단하기 위해 수신한 데이터 전체를 생성 다항식으로 나누는 연산을 하고, 나머지가 0이면 전송 오류가 없는 것으로 판단한다.
전송과 교환의 개념을 설명하시오.
전송: 은 물리 매체에 의하여 일대일로 직접 연결된 두 시스템 간의 신뢰성 있는 데이터 전송을 보장하기 위한 것이다. 전송에는 라우팅 개념이 포함되지 않는다.
교환: 전달 경로가 둘 이상일 때 라우터에서 데이터를 어느 방향을 전달할지 선택하는 기능으로, 데이터를 올바른 경로로 전달할 수 있도록 해준다.
점대점 방식과 브로드캐스팅 방식을 차이점 위주로 비교하여 설명하시오.
점대점 방식: 교환 호스트가 송수신 호스트의 중간에 위치한다. 호스트는 전송 매체를 이용해 일대일로 직접 연결되므로, 모든 호스트가 점대점 연결을 통해 네트워크를 확장한다. 전체 연결 개수가 많아지면 성능 면에서 유리하지만 전 송 매체의 길이가 증가해 비용이 많이 는다. 반대로 연결 개수가 적어지면 전송 매체를 더 많이 공유해 네트워크 혼잡도가 증가한다.
브로드 캐스팅: 특정 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전달된다는 특징이 있다. LAN에서는 데이터를 목적지 호스트까지 얼마나 효율적으로 전달할 수 있는지가 중요한 잣대가 된다. 이를 지원하는 브로드캐스팅 방식은 네트워크의 모든 호스트를 하나의 전송 매체로 연결하므로, 중개 기능을 수행하는 교환 호스트가 필요 없다.
멀티포인트 유니캐스팅 방식과 멀티캐스팅 방식을 비교하여 설명하시오.
송신 호스트를 기준으로, 수신 호스트 하나와 연결되면 유니포인트(Unipoint)고, 다수의 수신 호스트와 연결되면 멀티포인트(Multipoint)가 된다. 송신 호스트가 한 번의 전송으로 수신 호스트 하나에만 데이터를 전송할 수 있으면 유니캐스팅(Unicasting)이고, 다수의 수신 호스트에 전송할 수 있으면 멀티캐스팅(Multicasting)이다.
데이터 링크 계층에서 전송 오류 문제를 해결하기 위해 필요한 응답 프레임, 타임아웃, 순서 번호 등의 기능을 설명하시오.
응답프레임: 수신 받은 프레임이 데이터가 정상적으로 도착했을 때, 데이터 프레임이 깨졌을 때에 따라 각각 긍정 응답 프레임, 부정 응답 프레임을 회신한다. 부정 응답 프레임 회신에 의해 송신 호스트는 재전송 기능을 사용한다.
타임아웃: 데이터 분실로 인해 일정 시간 이내에 수신 호스트로부터 긍정/부정 응답 프레임 회신이 없으면 타임아웃 기능을 동작시켜 송신호스트가 데이터 프레임을 재전송할 수 있도록 한다.
순서번호: 수신호스트의 긍정 응답 프레임이 분실된 경우 타임아웃에 의해 데이터가 재전송 되는데 이때 순서번호를 통해 재전송된 중복 데이터 프레임을 가려내기 위해 순서번호를 기록한다.
데이터 프레임이 전송되었을 때 발생 가능한 오류의 종류와 이를 해결하기 위한 방안을 설명하시오.
프레임 변형: 프레임 변형은 데이터 프레임이 수신 호스트에 도착했으나 전송 과정에서 프레임의 내용이 변형되는 오류가 발생한 경우다. 프레임 변형 오류를 인지한 수신 호스트는 송신 호스트에게 부정 응답 프레임을 전송함으로써, 원래의 데이터프레임을 재전송하는 오류 복구 과정이 진행된다. 앞서 언급한 것 처럼 부정 응답 프레임을 사용하지 않는 프로토콜에서는 송신 호스트의 타임아웃 기능에 따라 복구 과정을 시작한다. 재전송된 데이터 프레임은 올바르게 전송될 수도 있지만, 변형 오류가 발생할 수도 있다. 또한 긍정 응답 프레임이나 부정 응답 프레임도 전송 과정에서 변형이나 분실과 같은 오류가 발생할 수 있다. 따라서 데이터 링크 계층 프로토콜에서 다루는 전송 오류 문제의 원리는 매우 단순하지만, 프로토콜 설계시 세심한 주의가 필요하다.
프레임 분실: 데이터 링크 계층의 주요 기능 중 하나는 프레임을 전송한 송신 호스트가 동작하는 타임 아웃기능이다. 네트워크에서는 송신 호스트가 전송한 데이터 프레임이 전송 과정에서 사라지는 프레임 분실 오류가 발생할 수 있다. 수신 호스트는 송신 호스트로부터 어떠한 데이터 프레임도 전달받지 못했기 때문에 긍정 응답이나 부정 응답 프레임을 회신할 수 없다. 결과적으로 송신 호스트도 응답 프레임을 회신 받을 수 없어 응답 프레임을 무작정 기다려야 한다. 따라서 오류 복구는 송신 호스트 주도로 타임아웃(Timeout) 기능에 따라 처리된다. 즉, 송신 호스트는 데이터 프레임을 전송한 후에 특정 시간까지 수신 호스트의 긍정 응답 프레임이 도착하지 않으면 타임아웃 기능에 따라 원래의 프레임을 스스로 재전송한다.
데이터 프레임의 정보 중에서 순서 번호가 제공되지 않았을 때의 문제점을 순서 번호가 있는 경우와 비교해 설명하시오.
수신 호스트가 데이터를 수신했으나 긍정 응답 프레임이 분실된 경우, 순서번호가 없을 때: 송신 호스트가 타임아웃에 의해 데이터를 재전송한다. 수신 호스트는 이 데이터가 동일한 데이터 프레임인지, 서로 다른 두 개의 데이터 프레임인지 구분할 수 있는 방법이 없어 그대로 수신한다.
순서번호가 있을 때는 송신 호스트가 타임아웃에 의해 데이터를 재전송한다. 수신호스트는 순서 번호에 근거하여 동일한 데이터 프레임이 중복 도착했는지, 아니면 서로 다른 데이터 프레임이 도착했는지 판단할 수 있다.
문자 프레임에서 문자 스터핑의 필요성과 원리를 설명하시오.
문자 스터핑(Character Stuffing)은 문자 프레임의 전송 데이터 중 DLE 문자가 포함되면서 발생하는 혼란을 예방하는 방법이다. [그림]처럼 송신 호스트가 전송하는 데이터를 미리 변형함으로써 혼선의 여지를 없앨 수 있다. 즉, 전송 데이터가 DLE 문자를 포함하면 DLE 문자 다음에 DLE 문자를 강제로 추가한다. 수신 호스트는 프레임 내용에 DLE 문자가 연속해서 두 번 나타나면 두 번째 DLE는 송신 호스트가 임의로 추가한 문자라고 판단할 수 있다. 따라서 상위 계층인 네트워크 계층에 데이터를 전달하기 전에 둘 중 하나를 제거해야 한다. [그림(b)]는 이를 설명하고 있으며, 송신 호스트가 최초에 전송한 프레임인 [그림(b)]와 동일한 결과가 된다. 이와 같이 문자 프레임의 전송 과정에서 제어 문자를 추가하는 기능을 문자 스터핑이라고 한다.
비트 프레임에서 비트 스터핑의 필요성과 원리를 설명하시오.
비트 프레임 방식에서느 송신 호스트가 전송하고자 하는 데이터 내용 중에 값이 1인 패턴이 연속해서 5번 발생하면 강제로 0을 추가해 전송한다. 플래그에 1이 연속해서 6개이므로 원천적으로 데이터 내용에 플래그 패턴의 발생을 차단하기 위함이다. 수신 호스트가 수신한 데이터 프레임의 내용에서 플래그 패턴 외에는 어떤 경우에도 1이 5개보다 많이 연속하지 않는다. 다시 말해서 플래그 패턴과 동일한 형태의 패턴이 데이터 링크 계층이 전송 데이터에는 발생할 수 없다. 이와 같은 기능을 비트 스터핑(Bit Stuffing)이라 하며, 수신 호스트는 송신 과정에서 추가된 0을 제거하여 원래의 데이터를 상위 계층에 전달한다.
패리티 비트의 목적과 사용방법을 설명하시오.
패리티 비트는 전송과정에서 1비트 오류를 검출하기 위한 것으로, 패리티 비트를 포함해 1의 개수가 짝수나 홀수 개가 되도록 한다. 1바이트(8비트) 구조에서 패리티(Parity) 비트는 7비트 크기의 ASCII 코드를 제외한 나머지 1비트다.
예를 들어, 그림과 같이 1101001이라는 데이터를 짝수 패리티(Even Parity) 방식을 사용해 전송하려면 11010010의 형태로 만들어 전송한다. 즉, 짝수 패리티 방식에서는 데이터 끝에 0이라는 패리티 비트를 추가해 전체 1의 개수를 짝수로 만들어준다.데이터 전송과정에서 1비트 오류가 발생하면 1의 개수가 홀수 개로 바뀐다. 예를 들어, 위의 데이터 전송 과정에서 세 번째 비트가 0에서 1로 바뀌면 수신 호스트는 11110010을 받는다. 수신 호스트는 패리티 검사를 하여 1의 개수가 홀수로 변경된 사실을 알게 되어 데이터 전송 과정에서 1비트 오류가 발생했음을 확인할 수 있다. 홀수 패리티(Odd Parity) 방식은 짝수 패리티와 반대로, 1의 개수를 홀수로 만드는 것이다. 송신 호스트와 수신 호스트는 짝수 패리티나 홀수 패리티 중 동일한 한 가지 방식을 사용해야 한다.
생성 다항식 G(x)=x6+x3+x+1이 되고, 전송 데이터가 101101001인 경우의 체크섬 계산 과정은 다음과 같다.