4 데이터 전송의 기초 학습 목표 전송과 교환 시스템의 구조와 원리를 이해한다. 프레임 전송 과정에서 발생되는 오류의 유형을 살펴본다. 문자 프레임과 비트 프레임의 구조를 이해한다. 오류 검출 코드의 종류와 원리를 이해한다. 생성 다항식을 이용한 오류 검출 방식을 알아본다. 4 데이터 전송의 기초
1절. 데이터 전송 방식 컴퓨터 네트워크의 효과: 자원 공유, 성능 향상, 신뢰성 향상 자원 공유 병렬 처리에 의한 성능 향상 컴퓨터 하드웨어, 소프트웨어 등 모든 종류의 물리적, 논리적 자원을 공유 자원 활용의 극대화 병렬 처리에 의한 성능 향상 컴퓨터 시스템 내부의 공유 버스 구조에 다수 프로세서 장착 네트워크는 시스템 버스와 기능적으로 유사하게 동작 중복 저장으로 신뢰성 향상 중복 저장되므로 데이터 복구가 용이함 중복에 따른 일관성 문제는 자동으로 처리가 가능 신뢰성의 향상 정도만큼 시스템 성능은 저하됨
1절. 데이터 전송 방식 전송과 교환 전송과 교환 개요 [그림 4-1] 교환: 갈림길에서 데이터가 전송되어야 할 경로를 선택(3계층 기능) 전송: 물리적으로 1:1 연결된 시스템 사이의 데이터 전송(2계층 기능)
1절. 데이터 전송 방식 전송과 교환 전송 방식의 종류 점대점 방식 브로드캐스팅 방식 호스트들이 물리적으로 1:1 형식으로 연결 교환 기능이 필수적 주로 WAN 환경에서 사용 브로드캐스팅 방식 호스트들이 공유 전송 매체에 연결 교환 기능이 불필요 주로 LAN 환경에서 사용
1절. 데이터 전송 방식 점대점 방식 종류: 스타형, 링형, 완전 그물형, 불규칙형 [그림 4-2] 연결 수가 증가하면 성능적인 면은 유리하지만 비용이 증가됨
1절. 데이터 전송 방식 점대점 방식 스타형 중앙의 중개 호스트 주위로 여러 호스트를 1:1 연결 중앙 호스트의 성능과 신뢰성이 중요 트리형: 스타형을 다단계로 확장 [그림 4-3]
1절. 데이터 전송 방식 점대점 방식 완전 그물형 불규칙형 네트워크에 존재하는 모든 호스트를 1:1로 연결 교환 기능이 불필요 극단적으로 비효율적인 방식 불규칙형 트레픽이 많은 지역은 연결의 수가 많지만, 트레픽이 적은 지역은 연결의 수가 적음
1절. 데이터 전송 방식 브로드캐스팅 방식 네트워크에 연결된 모든 호스트에게 데이터를 전달하는 방식 주로 LAN 환경에서 사용 버스형과 링형이 존재 [그림 4-4]
1절. 데이터 전송 방식 브로드캐스팅 방식 버스형 공유 버스에 모든 호스트를 연결 둘 이상의 호스트가 데이터를 전송하면 충돌 발생 충돌 문제의 해결 방법 사전 예방: 전송 시간대를 다르게 하는 방법과 토큰 제어 방식이 가능 사후 해결: 충돌을 감지하는 기능이 필요 (예: 이더넷)
링형 호스트의 연결이 순환 구조를 이룸 모든 호스트가 전송과 교환 기능을 수행 토큰 데이터 전송 원리 데이터를 전송할 수 있는 권리 데이터 전송을 원하는 호스트는 미리 토큰을 확보해야 함 데이터 전송이 완료되면 호스트는 토큰을 반납해야 함 데이터 전송 원리 데이터를 링에 전송함 데이터는 링을 한 바퀴 순환한 후, 다시 송신 호스트에게 돌아옴 이 과정에서 링에 연결된 모든 호스트가 데이터를 수신함 단, 자신을 목적지로 하는 호스트만 데이터를 보관하고, 다른 호스트는 버림 마지막으로, 송신 호스트는 데이터를 회수한 후에 토큰을 링에 돌려줌
1절. 데이터 전송 방식 멀티포인트 통신 하나의 송신 호스트를 기준으로 송신 호스트가 한번의 전송으로 유니포인트: 하나의 수신 호스트와 연결 멀티포인트: 다수의 수신 호스트와 연결 송신 호스트가 한번의 전송으로 유니캐스팅: 하나의 수신 호스트에 데이터를 전송 멀티캐스팅: 다수의 수신 호스트에 데이터를 전송
1절. 데이터 전송 방식 멀티포인트 통신 멀티포인트 유니캐스팅 [그림 4-5] 유니캐스팅 방식을 이용하여 일대다 통신을 지원 호스트 a가 호스트 d, e, f에게 데이터를 전송하려면 3번의 송신 절차가 필요 수신 호스트의 수가 증가하면 성능에 문제점 발생
1절. 데이터 전송 방식 멀티포인트 통신 브로드캐스팅 [그림 4-6] 네트워크에 연결된 모든 호스트에게 데이터 전송 자신을 목적지로 하는 호스트만 데이터를 내부에 저장하고, 다른 호스트는 데이터를 무시함
1절. 데이터 전송 방식 멀티포인트 통신 멀티캐스팅 [그림 4-7] 1:다 전송 기능을 지원 송신 호스트는 한번의 데이터 전송으로 여러 호스트에게 데이터를 전송할 수 있음 예: 송신 호스트 a, 수신 호스트 d, e, f
2절. 오류 제어 전송 오류의 유형 수신 호스트의 응답 프레임 송신 호스트의 타이머 기능 순서 번호 기능 긍정 응답 프레임: 데이터가 정상적으로 도착했을 때, 수신 호스트가 송신 호스트에 게 회신 부정 응답 프레임: 데이터가 깨져서 도착했을 때, 수신 호스트가 송신 호스트에게 회신 부정 응답 프레임을 받은 송신 호스트는 재전송 기능으로 오류 복구 시도 송신 호스트의 타이머 기능 송신 호스트가 전송한 데이터가 네트워크에서 사라지는 문제를 해결 데이터 분실 시 수신 호스트로부터 어떠한 응답 프레임도 발생하지 않음 송신 호스트는 일정 시간 동안 응답 프레임이 없으면 타임아웃 기능으로 재전송 시도 순서 번호 기능 수신 호스트가 중복 프레임을 구분할 수 있도록 지원 데이터 프레임 내에 프레임 구분을 위한 일련 번호 부여
2절. 오류 제어 전송 오류의 유형 정상적인 전송 [그림 4-8] 송신 호스트가 전송한 데이터 프레임이 수신 호스트에 오류 없이 도착 수신 호스트는 송신 호스트에게 긍정 응답 프레임을 회신
2절. 오류 제어 전송 오류의 유형 프레임 변형 [그림 4-9] 송신 호스트가 전송한 데이터 프레임이 깨져서 도착 수신 호스트는 송신 호스트에게 부정 응답 프레임을 회신 송신 호스트는 원래의 데이터 프레임을 재전송하여 오류 복구
2절. 오류 제어 전송 오류의 유형 프레임 분실 [그림 4-10] 송신 호스트가 전송한 데이터 프레임이 네트워크에서 사라짐 수신 호스트는 어떠한 데이터도 받지 않았으므로 송신 호스트에게 응답하지 않음 송신 호스트는 타임아웃 기능으로 원래의 데이터 프레임을 재전송하여 오류 복구
2절. 오류 제어 순서 번호 순서 번호의 필요성 중복 수신 문제를 해결하기 위하여 데이터 프레임에게 부여되는 고유 번호 긍정 응답 프레임 분실에 따른 원래 데이터 재전송 [그림 4-11(a)] 수신 호스트는 동일한 데이터 프레임을 중복 수신 [수신 호스트는 그림 b와 구분 불가능]
2절. 오류 제어 순서 번호 순서 번호의 필요성 긍정 응답 프레임 처리에 따른 다음 데이터 전송 [그림 4-11(b)] 수신 호스트는 2개의 다른 데이터 프레임을 수신 (수신 호스트는 그림 a와 구분 불가능)
2절. 오류 제어 순서 번호 순서 번호에 의한 프레임 구분 긍정 응답 프레임 분실에 따른 원래 데이터 재전송 [그림 4-12(a)] 수신 호스트는 순서 번호를 보고 같은 프레임이라고 판단할 수 있음
2절. 오류 제어 순서 번호 순서 번호에 의한 프레임 구분 긍정 응답 프레임 처리에 따른 다음 데이터 전송 [그림 4-12(b)] 수신 호스트는 순서 번호를 보고 다른 프레임이라고 판단할 수 있음
2절. 오류 제어 흐름 제어 수신 호스트가 감당할 수 있는 속도로 송신 호스트가 데이터를 전송하도록 제어 너무 빨리 전송하는 경우 수신 호스트가 내부 버퍼에 보관하지 못할 수 있음 이는 프레임 분실과 동일한 효과를 야기함 기본 원리 수신 호스트가 송신 호스트의 전송 시점을 제어 대표적인 예: 슬라이딩 윈도우 프로토콜
3절. 프레임 문자 프레임 프레임의 구조 프레임의 내용이 문자로만 구성됨 프레임의 시작과 끝에 특수 문자 사용 [그림 4-13(a)] 시작: DLE / STX 끝: DLE / ETX 전송 데이터에 특수 문자가 포함되면 혼선이 발생 [그림 4-13(b)]
3절. 프레임 문자 프레임 문자 스터핑 송신 호스트: 데이터에 DLE 문자가 있으면 강제로 DLE 문자 추가 [그림 4-14(a)] 수신 호스트: 데이터에 DLE 문자가 두 번 연속 있으면 DLE 문자 삭제 [그림 4-14(b)]
3절. 프레임 비트 프레임 프레임의 구조 [그림 4-15] 프레임의 시작과 끝을 구분하기 위하여 플래그 (01111110) 사용 프레임의 구조 [그림 4-15]
3절. 프레임 비트 프레임 비트 스터핑 [그림 4-16] 전송 데이터에 플래그 패턴이 포함되면 혼선이 발생 송신 호스트: 데이터에 1이 연속해서 5번 발생하면 강제로 0을 추가 수신 호스트: 데이터에 1이 연속해서 5번 발생하면 이어진 0을 제거
4절. 다항 코드 순방향 오류 복구: 오류 복구 코드를 이용해 수신 호스트 스스로 오류를 복구 역방향 오류 복구: 오류 검출 코드를 이용해 수신 호스트가 송신 호스트에게 오류 를 통지 오류 검출 패리티 [그림 4-17] 1 바이트 = 7 비트 ASCII 코드 + 1 비트 패리티 짝수 패리티: 1의 개수가 짝수가 되도록 패리티를 지정 홀수 패리티: 1의 개수가 홀수가 되도록 패리티를 지정 송신 호스트와 수신 호스트는 동일한 패리티 방식을 사용해야 함
4절. 다항 코드 오류 검출 패리티 [그림 4-17] 전송 과정에서 홀수개의 비트가 깨지면 오류 검출 가능 전송 과정에서 짝수개의 비트가 깨지면 오류 검출 불가능
4절. 다항 코드 오류 검출 블록 검사 [그림 4-18] 짝수개의 비트가 깨지는 오류를 검출 수평, 수직 방향 모두에 패리티 비트를 지정
4절. 다항 코드 다항 코드 생성 다항식 다항코드 100101 = 생성 다항식 x5 + x2 + 1 전송 데이터: m 비트 크기의 M(x) 생성 다항식: n+1 비트 크기의 G(x) 체크섬 전송 데이터와 생성 다항식을 이용하여 계산 [그림 4-19] n 비트 크기 송신 호스트: “전송 데이터 + 체크섬”을 수신 호스트에게 전송 수신 호스트: “전송 데이터 + 체크섬”을 생성 다항식으로 나누어 결과를 확인 나머지가 0 이면 전송 오류가 없는 경우 나머지가 0 이 아니면 전송 오류가 있는 경우
4절. 다항 코드 다항 코드 생성 다항식 체크섬 계산 과정에서 뺄셈 연산 방법 모듈로-2 방식 모듈로-2 방식을 사용 두 수가 같으면 0 두 수가 다르면 1 모듈로-2 방식 덧셈의 자리 올림이나 뺄셈의 자리 빌림이 생략됨 덧셈과 뺄셈 모두 배타적 논리합 (Exclusive OR) 연산과 동일 100111101101 100111101101 -110001110110 +110001110110 ============ ============ 010110011011 010110011011
4절. 다항 코드 다항 코드 체크섬의 예 생성 다항식 G(x) = x5 + x2 + 1 전송 데이터: 101101001 체크섬: 00010
4절. 다항 코드 다항 코드 체크섬의 예 CRC-12: x12 + x11 + x3 + x2 + x1 + 1 CRC-CCITT: x16 + x12 + x5 + 1