<연습문제>
1. 세션 계층의 주요 기능인 동기 기능은 통신 양단에서 서로 동의하는 논리적인 공통의 처리시점, 즉 동기점을 지정하기 위해 사용한다. 동기점을 설정하는 이유는 메시지 전송 과정에서 발생할 수 있는 오류를 복구하기 위해서이다. 메시지 전송 과정을 의미하는 대화 단계에서 오류가 발생하면 이전에 설정한 동기점 까지는 복구할 수 있다.
2. 세션 계층에서는 두 응용 프로그램의 대화를 관리하기 위하여 토큰이라는 특수 메시지를 사용한다. 이를 보유했다는 것은 해당 토큰에 부여된 특정 권리를 배타적으로 소유한다는 의미이다.
3. 전송 과정에서 오류가 발생하면 특정 동기점으로 돌아가 복구하는 기능이 실행되는데 이와 같은 일련의 복구 과정을 재동기라 한다.
4. 세션 연결 구조와 관련하여 단일 세션을 지원하는 서버 환경에서는 클라이언트가 최초 연결 설정 과정에서 대표 서버와 연결을 시도한다. 일반적으로 대표 서버의 포트 주소는 Well-know 포트로 할당되어 그 주소를 쉽게 알 수 있다.
5. 각 컴퓨터에서 사용하는 데이터 표현 규칙인 추상 문법으로 표현된 의미를 올바르게 송수신하려면 메시지를 전송하기 전에 변환하는 과정이 필요하다. 즉, 특정 컴퓨터에서 독립적이면서 네트워크 전체에서 일관성을 지니는 새로운 표현 규칙인 전송 문법으로 변환하여 전송한다.
6. ISO에서는 분산 환경에서 표현되는 데이터를 정의하기 위한 일반적인 추상 문법으로 ASN.1 을 정의하였다. 이 규격은 응용 계층에서 문법 규칙뿐 아니라, PDU의 구조도 정의한다.
7. 전송 데이터의 양이 많으면 원래의 의미를 유지하는 범위 내에서 크기를 줄이는 것은 효율적인데, 이와 같은 압축 기능은 표현 계층에서 다룬다. 데이터를 송수신하는 과정에서 제 3자에게 부당하게 정보가 유출되거나 왜곡되는 현상을 방지하기 위한 암호화 기능도 표현계층에서 처리한다.
8. 압축 데이터를 이용해 원래 데이터를 얻는 과정을 압축 해제라 한다. 반대의 과정인 데이터를 압축하는 방식에는 크게 두 가지가 있다. 압축 해제를 통하여 얻는 데이터가 압축 이전의 데이터와 100% 동일하면 비손실 압축이라 하고, 동일하지 않으면 손실 압축이라 한다.
9. 동시성은 임의의 동작이 외형상 동시에 진행되는 것처럼 보이는 것이다. 동시성 제어는 여러 동작의 선후 진행 속도에 상관없이, 동시에 실행되어도 각 실행 결과가 항상 같은 결과를 제공하도록 해준다. 즉, 독립적으로 실행되는 프로그램의 실행 순서가 결과에 영향을 주지 않는다.
10. 세션 계층의 기능에 대한 설명으로 올바른 것을 모두 고르시오. 1, 2, 3, 5
- 세션 계층의 기능은 제한적이라 다른 계층 보다 상대적으로 간단한 계층에 속한다.
- 상위 계층에 제공하는 기능에는 세션 연결의 설정과 해제, 세션 메시지 전송 등이 있다.
- 동기점이 설정된 시점 이전까지는 통신 양단이 서로 완벽하게 처리를 완료했음을 합의했다는 의미이다. 따라서 오류가 발생했을 때 동기점 이전 과정은 복구할 필요가 없다.
- 가장 마지막에 설정된 주동기점 이후의 처리 과정에 대해서는 송수신자의 관점이 일치하지 않으므로 복구 절차가 필요 없다. v
- 현재 진행 중인 대화를 의도적으로 일시 정지시키고 동기점을 부여하면 나중에 해당 지점에서 작업을 이어서 진행할 수 있다.
11. 토큰에 대한 설명으로 올바른 것을 모두 고르시오. 1, 3, 4, 5
- 데이터 토큰은 데이터를 전송할 수 있는 권리를 제공한다.
- 해제 토큰은 데이터를 전송할 수 있는 권리를 해제하는 용도로 사용한다. v
- 동기 토큰은 세션 연결을 사용하는 과정에서 동기 처리가 필요한 시점에 사용한다.
- 큰 파일을 전송할 때는 중간 중간에 동기점을 부여함으로써, 송수신자가 해당 위치까지는 데이터 전송이 완료되었음을 합의할 수 있다.
- 하나의 특정 대화 단위를 구분하기 위해서는 주동기 토큰을 사용하고, 대화 단위에서 다시 작은 부분으로 나누어 처리하기 위하여 부동기 토큰을 사용한다.
12. 재동기에 대한 설명으로 잘못된 것을 모두 고르시오. 2, 5
- 동기점을 이용한 일련의 복구 과정을 재동기라 한다.
- 주동기점 간의 전송 단위는 세션으로 정의되는데, 두 세션 사용자 사이의 교환되는 세션의 한 단위가 완료되는 지점에서 이루어진다. v
- 부동기점에서는 복구에 필요한 백업 정보의 처리량을 주동기점보다 적게 조정하여 복구에 소요되는 부담을 최소화한다.
- 이전 부동기점에서 복구가 불가능한 경우에는 바로 앞의 부동기점으로 다시 이동하는 과정을 반복하면서 복구 과정이 진행된다.
- 부동기점에 복구가 반복적으로 진행되어도 복구가 이루어지지 않으면 이전 주동기점을 넘어 그 앞의 부동기점으로 계속 복구 과정을 시도한다. v
13. 세션 연결에 대한 설명으로 올바른 것을 모두 고르시오. 1, 2, 3, 5
- 다중 세션을 지원하는 클라이언트 - 서버 환경은 서버가 제공하는 서비스 시간이 짧은 응용 환경에서 유용하다.
- 단일 세션 연결 방식에성는 여러 클라이언트를 지원하려면 하위 서버 프로세스를 여러 개 만드는 기능이 필요하다.
- 단일 세션 연결 방식의 단점은 하위 프로세스를 생성하기 때문에 초기 서비스 환경 구축에 따른 오버헤드가 증가한다는 점이다.
- 단일 세션 연결 방식은 서비스 시간이 짧은 응용 환경에서도 다중 세션 방식보다 유리한다. v
- 일반적으로 텔넷, FTP 등과 같이 인터넷에서 많이 사용하는 TCP/ IP 서비스는 단일 세션 연결 방식을 주로 사용한다.
14. ASN.1에 대한 설명으로 올바른 것을 모두 고르시오. 1, 2, 3, 4, 5
- ASN.1의 기본 목적은 변수 선언과 관련된 데이터형의 정의이다.
- UNIVERSAL 클래스는 일반 데이터형을 정의한다.
- UNIVERSAL 기본형은 BOOLEAN, INTEGER 등의 단위형과 단위형의 연속적인 배열 형태인 문자열 유형 등으로 구성된다.
- CONTEXT - SPECIFIC 클래스는 특정 컨텍스트와 관련된 유형을 정의한다.
- APPLICATION 클래스는 응용 개체의 공통 유형을 정의한다.
15. 표현 계층의 데이터 표현에 대한 설명으로 올바른 것을 모두 고르시오. 1, 3, 4, 5
- 표현 계층은 응용 프로세스 사이에 전송되는 메시지의 표현 방법을 다룬다.
- 일반적으로 응용 환경에서 데이터를 표현하는 방법은 모든 컴퓨터에서 동일하다. v
- 각 컴퓨터에서 사용하는 데이터의 표현 규칙을 추상 문법이라 한다.
- 특정 컴퓨터에 독릭접이면서 네트워크 전체에서 일관성을 지니는 새로운 표현 규칙을 전송 문법이라한다.
- 추상 문법으로 표현된 메시지를 전송하기 전에 전송 문법으로 변환하여 전송하며, 받은 쪽에서는 반대의 변환 과정이 필요하다.
16. 데이터 압축에 대한 설명으로 올바른 것을 모두 고르시오. 1, 4
- 대용량 데이터들은 압축하여 크기를 줄인 후 전송하면 전송 속도 면에서 유리한다.
- 연속 문자 압축 방식은 특정 문자가 연속해서 몇 번 반복되는지를 표시하면서 압축하는 방식으로 손실 압축 방식의 간단한 예이다. v
- 연속 문자 압축 방식은 원 문서에 동일한 문자가 여러 번 반복되는 경우가 적더라도 압축 문서가 원 문서보다 커지는 경우는 발생하지 않는다. v
- 비손실 압축 방식은 압축 과정에서 원래 데이터의 내용을 잃어버리지 않는다. 즉 압축 해제를 통해 원래 데이터의 100% 얻을 수 있다.
- 손실 압축을 하면 압축 해제한 데이터가 원래 데이터와 동일하지 않을 수 있다. 손실 압축을 하는 이유는 압축 효율을 높이기 위해서이다. v
17. 상태 정보에 대한 설명으로 잘못된 것을 모두 고르시오. 3, 4
- 연결형 서비스는 클라이언트와 서버 사이에 연결이 존재하기 때문에 구조적으로 상태 정보가 존재한다.
- 한쪽 시스템이 다운되는 등의 현상에 의해 상태 정보를 잃어버리면, 다운되기 직전의 상테로 해당 시스템을 복구해야 하는 문제가 생신다.
- 상태 정보가 존재하는 근본적인 이유는 논리적으로 하나의 단위로 처리해야 하는 동작을 한순간에 처리하지 못하고 여러 단계로 나누어 처리하기 때문이다. v
- 원격 파일 서비스를 제공하는 파일 서버는 비상태 서비스로 구현되는 것이 일반적이다. 그러나 시스템이 다운되었을 때, 클라이언트와 서버 사이의 복구 절차가 복잡하다는 단점이 있다. -> 비상태 서비스는 상태가 없으므로 복구 과정이 간단하다.
- 원격 파일 서비스를 상태 서비스로 구현하는 경우는 이전 절차에서 수신한 정보를 서버가 내부적으로 보관하는 경우이다.
18. 세션 계층에서 토큰의 종류와 역할을 설명하시오.
세션 계층에서 제공하는 토큰의 종류는 데이터 토큰, 해제 토큰, 동기 토큰, 액티비티 토큰 네 가지다.
• 데이터 토큰(Data Token) : 데이터를 전송할 수 있는 권리를 제공한다. 따라서 세션 사용자가 데이터를 전송하려면 반드시 데이터 토큰을 먼저 획득해야 한다. 데이터 토큰을 하나만 사용하면 통신 양단 중 한쪽에서만 데이터를 전송할 수 있다. 그러므로 데이터 토큰은 응용 프로그램 간의 반이중 전송을 지원하는 목적으로 이용할 수 있다.
• 해제 토큰(Release Token) : 통신 양단 간의 연결 해제 과정을 제어하기 위해 사용한 다. 임의의 사용자가 연결을 해제하려면 해제 토큰을 획득해야 한다.
• 동기 토큰(Synchronization Token) : 세션 연결을 사용하는 과정에서 동기 처리가 필요한 시점에 사용한다.
• 액티비티 토큰(Activity Token) : 액티비티는 세션 사용자들 사이에 논리적으로 설정되는 단위로, 내용이 상호 독립적이라는 특징이 있다. 예를 들어, 파일 여러 개를 전송할 때 각 파일은 하나의 액티비티로 처리되며, 각 액티비티를 처리하는 과정에서 주동기점과 부동 기점이 부여될 수 있다. 액티비티 단위의 시작과 끝 표시는 주동기점의 설정과 동일한 효과를 나타낸다.
19. 동기점과 재동기를 설명하시오.
• 동기점: 큰 파일을 통째로 전송하는 것보다 작은 단위로 나누어 전송하는 것이 전송 오류에 쉽게 대처할 수 있다. 큰 파일 전체를 하나의 단위로 전송하면 오류가 발생하였을 때 전체 파일을 처음부터 다시 전송해야 한다. 그러나 논리적으로 작은 단위로 나누어서 전송 하면 전송 오류가 발생한 부분만 재전송하면 된다. 큰 파일을 작은 단위로 나누는 과정은 동기점(Synchronization Point)을 부여하는 과정이라고 볼 수 있다. 파일을 전송하는 중간 중간에 동기점을 부여함으로써, 송수신자가 해당 위치까지는 데이터 전송이 완료되었음에 합의할 수 있다. 따라서 전송 과정에서 오류가 발생해도 전체 파일을 재전송하지 않고, 가장 가까운 시점에 설정한 동기점 이후에 전송 한 데이터만 오류 복구를 하면 된다.
• 재동기: 동기점은 데이터 전송 과정에서 임의의 시점에, 특정 지점에서 복구할 수 있도록 통신 양단 간의 합의로 지정된다. 세션 계층의 상위에는 적절한 구간으로 나누어진 지점에 동기점을 부여하고, 오류가 발생하면 해당 지점으로 돌아가 복구하는 기능이 구현되어 야 한다. 이 때 동기점을 이용한 일련의 복구 과정을 재동기(Resynchronization)라고 한다. 동기점은 주동기점과 부동기점으로 나누어지고, 주동기점 간의 전송 단위를 대화로 정의한다. 주동기점은 두 세션 사용자 사이에 교환되는 대화의 한 단위가 완료되는 지점에서 이루어진다. 부동기점은 대화 단위 내의 작은 부분에서 설정될 수 있다.
20. 클라이언트와 서버 사이에 설정되는 세션 연결을 다중 세션과 단일 세션 관점에 서 비교하여 설명하시오.
<다중 세션>
-다중 세션을 지원하는 서버에서는 임의의 네트워크 서비스를 제공하는 서버 프로세스가 다수의 클라이언트 프로세스에 동시에 여러 세션 연결을 설정할 수 있다. 각 클라이언트 프로세스와 설정된 세션은 논리적으로 연관이 없는 서로 독립적인 연결이다. 다중 세션을 지원하는 클라이언트-서버 환경은 서버가 제공하는 서비스 시간이 짧은 응용 환경에서 유용하다. 만일 각 클라이언트와 서버 사이의 서비스 이용 시간 이 길어지면 특정 클라이언트와의 세션 연결이 길게 유지되므로 다른 클라이언트의 대기시간이 무한정 증가되는 단점이 있다.
<단일 세션>
-단일 세션을 지원하는 서버에서는 각각의 하위 서버 프로세스가 하나의 세션 연결을 사용해 클라이언트와 통신한다. 클라이언트 프로세스는 하위 서버 프로세스와 연결하기 위해 최초의 연결 설정 과정에서 대표 서버와 연결을 시도한다. 이는 기술적으로 대표 서버의 포트 주소가 Well-known 포트로 할당되므로 클라이언트에서 연결 주소를 알 수 있지만, 하위 서버의 포트 번호를Well-known 포트로 지정하기는 현실적으로 불가능하기 때문이다. 대표 서버는 하위 서버 프로세스를 새로 실행시키고, 연결을 요청한 클라이언트와 세션 연결을 시켜주는 역할을 한다. 단일 세션을 지원하는 서버 방식의 단점은 클라이언트의 개별 요구마다 하위 프로세스를 생성하기 때문에 초기 서비스 환경 구축에 따른 오버헤드가 증가한다는 점이다. 즉, 프로세스를 새로 생성하고 실행 상태로 만들어 주는데 걸리는 시간이 길어 서비스 시간이 짧은 응용 환경에서는 사용하지 않는다. 대신 각 클라이언트가 서비스를 받으려고 무한정 기다리는 현상은 발생하지 않는다. 일반적으로 텔넷, FTP 등과 같이 인터넷 환경에서 많이 사용하는 TCP/IP 서비스는 단일 세션 연결 방식을 사용하며, 대표 서버의 주소는Well-known 포트로 설정되어야 한다.
21. 표현계층에서 추상문법과 전송문법이 구분되는 이유를 설명하시오.
-일반적으로 응용 환경에서 데이터를 표현하는 방법은 컴퓨터마다 달라, 문자 하나를 표현 하는 방법이 ASCII 코드를 사용하는 컴퓨터와 EBCDIC 코드를 사용하는 컴퓨터가 있을 수 있으므로, 이들이 통신하려면 문자 코드를 변환하는 과정이 필요하기 때문이다. 각 컴퓨터에서 사용하는 데이터 표현 규칙(추상 문법, Abstract Syntax)으로 표현하는 특정 의미를 올바르게 송수신하려면 메시지를 전송하기 전에 변환하는 과정이 필요하다. 즉, 특정 컴퓨터에 독립적이면서 네트워크 전체에서 일관성을 지니는 새로운 표현 규칙(전송 문법, Transfer Syntax)으로 변환하여 전송한다. 이렇게 함으로써 전송 선로를 통해 교환되는 데이터는 공통 표현 규칙인 전송 문법으로 표현된다. 반대로 네트워크에서 데이터를 수신 할때는 전송 문법의 데이터를 자신의 컴퓨터에서 이해하는 추상 문법 형태로 변환하는 과정이 필요하다.
22. 데이터 압축방식 중에서 연속 문자 압축을 예를 들어 설명하시오.
T라는 문자를 모자이크 형태로 형상화한 정지 영상 데이터다. 가로 18, 세로 10바이트의 도화지에 X와 O 문자를 사용해 T 문자를 그림 형식으로 표현하였다. 이 데이터를 압축 없이 전송하면 단순한 산술 계산으로도 18×10 = 180바이트의 데이터를 전송해야 한다. 하지만 그림을 보면 X와 O 문자가 특정 위치에서 중복되고 있다. 특정 문자가 몇 번 반복된다는 표현 기법을 사용하여 압축하면, 원래 의미를 유지하면서 데이터 크기를 줄일 수 있다.
첫 번째 행부터 마지막행까지 왼쪽에서 오른쪽으로 임의의 패턴이 몇 번 반복하는지를 순서대로 기록한 것이다. 압축 데이터의 크기는 send_data 구조체의 크기인 3바이트 정보가 19행으로 표시되었다.
따라서 크기는 3×19 = 57바이트고, 원래 데이터보다 180-57 = 123바이트 줄었다. 한편 압축 데이터 내용 중에는 {O, 2, X, 16}의 내용이 여러 번 반복되는데, 이 내용은 다시 적절한 알고리즘을 사용해 추가로 압축할 수 있다.
23. 손실 압축과 비손실 압축을 비교하여 설명하시오.
비손실 압축(Lossless Compression)은 압축 과정에서 원래 데이터의 내용을 분실하지 않는다. 즉, 압축 해제를 통해 얻은 데이터가 압축 이전의 데이터와 완전히 동일하다. 비손실 압축 알고리즘을 사용해 압축한 데이터를 해제하면 원래 데이터를 복원할 수 있다.
손실 압축(Lossy Compression)은 압축 해제한 데이터가 원래 데이터와 동일하지 않다. 데이터 손실 정도는 응용 환경에 따라 허용 범위가 다를 수 있다. 예를 들어, 화상 정보나 음성 정보처럼 사람들이 감각적으로 느끼는 정보는 사용자 환경에 따라 손실 범위를 조 절할 수 있다. 원래 데이터의 손실을 허용하면서 압축을 하는 이유는 압축 효율을 높이기 위함이다. 손실 압축 과정을 거친 압축 데이터는 압축 해제가 되었을 때, 원래 데이터를 완전히 복원할 수 없다.
24. 클라이언트-서버 모델을 설명하시오.
하나의 서버 프로그램이 다수의 클라이언트에 응용 서비스를 제공하는, 인터넷 응용 환경에서 가장 보편화된 연결 설정 방식이다. 클라이언트와 서버는 비교적 간단한 절차로 동작한다. 둘 사이의 연결 설정 과정에서 반드시 서버가 먼저 통신 대기 상태에 있어야 한다. 일반적으로 서버 프로세스는 클라이언트보다 먼저 실행되어 대기 상태에 있기 때문에 클라이언트의 연결 요청에 항상 응답할 준비가 되어 있다. 서버 프로세스는 일단 시작하면 영원히 종료되지 않고 실행되며, 다수의 클라이언트의 요청을 반복적으로 수행해준다. 클라이언트와 서버 사이의 네트워크 연결은 전송 계층의 포트 연결로 구현된다.
25. 동시성 제어를 설명하시오.
동시성(Concurrency)은 임의의 동작이 외형상 동시에 진행되는 것처럼 보이는 것이다. 예를 들어, 일반 컴퓨터 시스템은 CPU가 하나므로 특정 시간에는 프로그램 하나만 실행할 수 있다. 그러나 운영체제에서 지원하는 시분할(Time Sharing) 방식은 여러 프로그램을 번갈아 가면서 빠르게 스위칭하여 실행하기 때문에, 사용자는 여러 프로그램이 동시에 실행 된다고 착각한다. 동시성 제어는 여러 동작의 선후 진행 속도에 상관없이, 동시에 실행되어도 각 실행 결과 가 항상 같은 결과를 제공한다. 즉, 독립적으로 실행되는 프로그램의 실행 순서가 결과에 영향을 주지 않는다. 클라이언트-서버 환경에서 동시성은 서버 하나가 여러 클라이언트에 동시에 서비스하는 경우를 의미하기도 한다. 즉, 임의의 클라이언트가 서버와 연결하여 서비스를 받는 동안 다른 클라이언트의 요청을 서버가 지원하면 동시성을 지원한다고 볼 수 있다.
출처: [네이버 지식백과] 데이터 압축 (데이터 통신과 컴퓨터 네트워크, 2013. 9. 10., 박기현)
'Network > 쉽게 배우는 데이터 통신과 컴퓨터 네트워크(개정판)' 카테고리의 다른 글
쉽게 배우는 데이터 통신과 컴퓨터 네트워크(개정판) 13장 연습문제 (1) | 2022.12.14 |
---|---|
쉽게 배우는 데이터 통신과 컴퓨터 네트워크(개정판) 12장 연습문제 (2) | 2022.12.14 |
쉽게 배우는 데이터 통신과 컴퓨터 네트워크(개정판) 10장 연습문제 (3) | 2022.12.07 |
쉽게 배우는 데이터 통신과 컴퓨터 네트워크(개정판) 9장 연습문제 (2) | 2022.12.05 |
쉽게 배우는 데이터 통신과 컴퓨터 네트워크(개정판) 8장 연습문제 (0) | 2022.12.05 |