안녕하세요

데이터통신 10장 연습문제 본문

Study_exam/데이터 통신 연습문제

데이터통신 10장 연습문제

godxxy1229 2023. 12. 18. 10:23

01. 전송 에러 제어 방식에서 에러 제어용 코드 부가 방식이 아닌 것은? 

a. 패리티 검사

b. Stop-and-Wait ARQ
c. 블록 합 검사
d. 해밍코드

 

더보기

b. Stop-and-Wait ARQ

 


02. 송신기가 ASCII 코드를 짝수 패리티를 사용하여 전송할 때 틀린 것은?
a. 11100011

b. 00110011
c. 11000110
d. 00111111

 

더보기

c. 11000110

 


03. 이차원의 패리티 검사방법으로 가로와 세로로 두 번 검사함으로써 검출 능력을 증가 시킨 방법은?
a. 패리티 검사

b. 블록 합 검사
c. CRC
d. Checksum

 

더보기

a. 패리티 검사

 


04. ARQ 방식에서는 송신측이 데이터를 송신한 후 수신측의 응답을 확인하여 에러 발생 유무를 검사한다. 이때 긍정적인 확인 응답은?
a. NAK
b. ACK

c. SDH
d. QCK

 

더보기

b. ACK

 


05. 다음 중 에러를 검출하기 위한 방법이 아닌 것은?
a. 패리티 검사

b. CRC
c. Checksum
d. 해밍코드

 

더보기

d. 해밍코드

 


06. ASCII 문자 전송 시에 H를 전송하였는데 I를 수신하였다면 어떤 에러의 종류인가?
a. Single-bit error

b. Multi-bit error
c. Burst error
d. Random error

 

더보기

a. Single-bit error

 

07. Go-Back-N ARQ에서 7번 프레임까지 전송하였는데 수신측에서 4번 프레임에 에러 가 있다고 재전송 요청을 해 왔다. 재전송되는 프레임의 개수는?
a. 1

b. 2
c. 3
d. 4

 

더보기

d. 4

 


08. Go-Back-N ARQ에서 Sliding-Window를 갖고 있는 측은?
a. 송신측

b. 수신측
c. 송신측과 수신측 모두
d. 없다.

 

더보기

c. 송신측과 수신측 모두

 


09. 해밍코드를 이용하여 에러 복구를 수행하는데, 1이 있는 비트의 위치 값을 모두 Exclusive-OR한 결과가 (0010)이 나왔다. 에러가 발생한 비트는?
a. 2

b. 4
c. 5
d. 8

 

더보기

b. 4

 


10. 다음 중 에러 정정 기법이 아닌 것은?
a. 단일 비트 에러 정정
b. 해밍코드

c. CRC
d. 상승코드

 

더보기

c. CRC

 


11. 10011010의 데이터에 대하여 1의 보수를 취하면 어떻게 변화되는가?

 

더보기

01100101 (1의 보수 = 각 비트 반대로 바꾸기)

 


12. 짝수 패리티를 사용하는 송신측이 패리티 비트를 연산하려 한다. 다음 데이터의 패리 티 비트는?
(1) 1010011
(2) 0110110
(3) 1100100

 

더보기
  • (1) 1010011 -> 1 (1의 개수가 홀수이므로 짝수로 만들기 위해 1 추가)
  • (2) 0110110 -> 0 (1의 개수가 이미 짝수)
  • (3) 1100100 -> 1 (1의 개수가 홀수이므로 짝수로 만들기 위해 1 추가)

 


13. 송신될 데이터가 10010101이다. 이것을 생성 다항식으로 표현하라.

 

더보기

x^7 + x^5 + x^2 + 1

 


14. 짝수 패리티를 사용하는 블록 합 검사방식에서 다음과 같은 데이터 블록을 수신하였다. 몇 번째 비트에서 에러가 발생하였는가?

01001011        11011010        01101000        11011011

 

더보기

3번째 비트와 7번째 비트

더보기
def check_parity_of_blocks(blocks):
    """ Check the parity of each bit position across the blocks. """
    bit_errors = []
    for bit_position in range(8):  # 8 bits in each block
        bit_sum = sum(block[bit_position] == '1' for block in blocks)
        if bit_sum % 2 != 0:  # If the sum of bits is not even, there's an error
            bit_errors.append(bit_position + 1)  # 1-indexed position
    return bit_errors

# Data blocks received
blocks = ["01001011", "11011010", "01101000", "11011011"]
# Check for parity errors
parity_errors = check_parity_of_blocks(blocks)
parity_errors

 

15. 송신측으로부터 (11000110000)의 프레임이 수신되었다. 이 프레임엔 다음과 같은 위 치에 해밍코드가 삽입되었다고 가정한다.

(2^3, 2^2, 2^1 ,2^0)


수신된 위 프레임을 해밍코드(Exclusive-OR)를 이용하여 검사했을 때 에러가 있는 지 판단하고 있다면 몇 번째 비트에서 에러가 발생했는지 설명하라.

 

더보기

1번째 비트

더보기
def calculate_parity(bits, positions):
    """ Calculate parity for the given positions in the bits string. """
    parity = 0
    for pos in positions:
        parity ^= int(bits[pos - 1]) # Bit positions are 1-indexed
    return parity

def hamming_code_error_check(frame):
    """ Check for errors in the frame using Hamming Code. """
    # Define the positions covered by each parity bit
    parity_positions = {
        1: [1, 3, 5, 7, 9, 11],
        2: [2, 3, 6, 7, 10, 11],
        4: [4, 5, 6, 7],
        8: [8, 9, 10, 11]
    }

    # Calculate the error position
    error_position = 0
    for bit_pos, positions in parity_positions.items():
        if calculate_parity(frame, positions) != int(frame[bit_pos - 1]): # Bit positions are 1-indexed
            error_position += bit_pos

    return error_position

# Frame received
frame = "11000110000"
# Check for errors using Hamming Code
error_position = hamming_code_error_check(frame)
error_position


16. 상승코드를 사용하는 네트워크에서 송신측이 전송한 데이터는 (01110)이었다. 그러나 수신측이 수신한 데이터는 (01010)으로 상이했다. 이때, 해밍거리를 계산하라.

더보기

해밍거리 = 1

  • 첫 번째 비트: 같음 (0과 0)
  • 두 번째 비트: 같음 (1과 1)
  • 세 번째 비트: 다름 (1과 0)
  • 네 번째 비트: 같음 (1과 1)
  • 다섯 번째 비트: 같음 (0과 0)

 


17. Go-Back-N과 Selective Repeat에 대하여 비교·설명하라.

 

더보기
  • Go-Back-N: 오류가 감지된 프레임과 그 이후의 모든 프레임을 재전송한다. 이 방식은 구현이 간단하지만, 대역폭이 낭비될 수 있다.
  • Selective Repeat: 오류가 감지된 프레임만을 재전송한다. 이 방식은 효율적인 대역폭 사용을 가능하게 하지만, 구현이 더 복잡하다.

 


18. 연속적 ARQ 방식에서 에러가 발생한 프레임을 포함하여 그 이후에 전송한 프레임을 모두 재전송하는 방식은?

 

더보기

Go-Back-N ARQ

 


19. 다음과 같은 특징을 갖는 에러 제어 방법은 무엇인가?

• 수신측에서 에러를 정정할 수 있다.
• 재전송을 하지 않아 대역폭 관리에 효율적이다.
• 구현이 어렵다.
• 에러 정정코드의 삽입으로 원시프레임의 크기가 커진다.

 

더보기

FEC(Forward Error Correction)

 

20. Sliding-window에서 수신측이 송신측의 전송속도를 조절하기 위한 방법으로 사용 되는 것은?

 

더보기

흐름 제어 (Flow Control)