데이터 전송 방식
컴퓨터 네트워크 효과
자원 공유
- 컴퓨터 하드웨어, 소프트웨어 등 모든 종류의 물리적, 논리적 자원을 공유
- 자원 활용의 극대화
- 자원공유 목표: 모든 프로그램과 통신장치, 특히 데이터를 이용하는 사용자나 물리적인 장소에 관계없이 네트워크에 있는 모든 사람이 자원을 사용하는 것
병렬 처리에 의한 성능 향상
- 하나의 공유 시스템 버스에 다수의 메인 프로세서를 장착
- I/O 장치의 처리 속도를 향상시키기 위해 I/O 전용 프로세서를 설치
- 다수의 연산장치나 프로세서, 기억장치를 상호 결합하여, 고속성·신뢰성 및 확장성의 향상을 꾀하는 것을 주목적으로 한 처리방식
- 병렬처리 트랜드: 범용 컴퓨터의 고속화가, 논리 구성 방식이나 하드웨어 기술(디바이스 기술이나 실장기술)의 개선에서는 점점 곤란해지고, 병렬처리에 의한 고속화 가속
- 고속처리를 필요로 하는 응용분야
- 유체역학, 원자물리학, 일기예보, 구조해석, 자원탐사, VLSI회로 시뮬레이션 등의 과학기술 계산분야, 화상처리·도형처리·신호처리 등의 실시간 처리나 인간기계 대화, 처리분야, 패턴 인식, 자연언어 이해, 추론이라고 하는 인공지능 응용분야 등
- 1980년대에는 VLSI 시대를 맞고, 또 인공지능 등의 다양한 응용이 보급됨에 따라, 파이프 라인 제어방식 이외의 병렬처리 시스템의 개발연구·상용화가 진행
- 병렬처리 방식 구분: 명령(instruction, I)류와 데이터(data, D)류가 단일(single, S)인가 복수(multiple, M)인가에 따라 컴퓨터의 방식을 크게 4개의 형태로 분류
- ① SISD
- 한 개의 처리 장치(프로세서)에서, 단일의 데이터에 대한 처리를 하나의 명령으로 실행시키는 방식
- 단일 명령-단일 데이터 처리(SISD)는 순차적 제어 방식이며 노이만형 컴퓨터 방식
- ② SIMD
- 하나의 명령어로 여러 개의 값을 동시에 계산하는 방식
- 응용분야
- 벡터 프로세서에서 많이 사용되는 방식으로, 비디오 게임 콘솔이나 그래픽 카드와 같은 멀티미디어 분야에 자주 사용
- CPU에서는 인텔의 MMX, 스트리밍 SIMD 확장(SSE)과 AMD(미국 직접회로 제조회사)의 3D 등의 기술에서 이를 적용
- ③ MISD
- 동일한 데이터를 다수의 명령에 의해 동시에 각기 다른 처리를 하는 병렬 처리 방식
- 명령과 데이터의 흐름에 착안하여 분류한 컴퓨터 제어 방식으로 파이프라인(pipeline) 제어 방식의 컴퓨터가 이에 속함
- ④ MIMD
- 전산에서 병렬화의 한 기법
- MIMD를 사용하는 기계는 비동기적이면서 독립적으로 동작하는 여러 개의 프로세서를 가짐
- 장점: 언제든지 각각의 다른 프로세서들은 각기 다른 데이터를 이용하는 여러 명령어들이 실행할 수 있음
중복 저장으로 신뢰성 향상
- 중복 저장되므로 데이터 복구가 용이함
- 신뢰성의 향상 정도만큼 시스템 성능은 저하됨
전송과 교환
- 교환(Switching): 라우터에서 데이터를 어느 방향으로 전달할지를 선택하는 기능
- 전송(Transmission): 일대일(1:1)로 직접 연결된 두 시스템간의 신뢰성 있는 데이터 전송을 보장
- 전송과 교환 예시: 호스트 a에서 호스트 d로 데이터를 전달
- ① 호스트 a와 호스트 c 간의 직접 연결에 의한 전송
- ② 호스트 c에서의 올바른 경로 선택을 의미하는 교환
- ③ 호스트 c와 호스트 d 간의 직접 연결에 의한 전송
전송 방식의 종류
- ① 지리적 분포에 따른 분류 방식
- LAN, Local Area Network (근거리 통신망)
- MAN, Metropolitan Area Network (도시규모의 통신망)
- WAN, Wide Area Network (원거리 통신망) 등
- ② 데이터 전송 .교환 기술의 분류 방식
- 점대점(Point-to-Point) 방식
- 브로드캐스팅(Broadcasting) 방식
점대점 방식
- 호스트가 중개 호스트와 일대일로 연결
- 원거리에 있는 시스템 사이의 통신 방식
- WAN 환경에서 주로 사용
- 교환 호스트가 송수신 호스트의 중간에 위치
- 종류: 스타형, 링형, 완전형, 불규칙형
- 장/단점
- 연결 개수가 많아지면 성능은 유리하나 비용이 많이 소요
- 연결 개수가 적어지면 전송 매체를 많이 공유해 네트워크 혼잡도 증가
- 가장 단순한 방법이지만 두 장치는 채널의 전체 용량을 사용하여 송수신할 수 있음
스타(Star) 형
- 하나의 중개 호스트 주위로 여러 호스트를 일대일로 연결하는 형태
- 중앙 호스트의 신뢰성과 성능이 네트워크에 영향 줌
트리(Tree) 형
- 중앙에 있는 스타 구조 주변에 위치한 호스트들을 중심으로 새로운 스타 구조가 확장되는 형
- 중개 과정이 간단하나 중앙 호스트에 문제발생시 전체 네트워크의 동작에 영향을 줌
링(Ring) 형
- 호스트의 연결이 순환 고리 구조
- 모든 호스트가 데이터 전송과 교환 기능을 동시에 수행
- 토큰(Token): 호스트 사이의 데이터 송신 시점을 제어하는 기능
- 데이터의 전송 권한을 의미하는 토큰을 확보
- 데이터 전송이 완료되면 토큰을 다시 링 네트워크에 돌려줌
- 단점: 한 호스트가 고장 나면 전체 네트워크가 동작하지 않을 수 있음
완전형
- 모든 호스트가 다른 모든 호스트와 일대일로 직접 연결하는 방식
- 단점: 전송 매체가 증가하면 비용 측면이 비효율적임
불규칙형
- 연결 구조를 특정 패턴으로 분류할 수 없는 방식
- 일반 네트워크
브로드캐스팅 방식
- 네트워크에 연결된 모든 호스트에 데이터가 전송
- 별도의 교환 기능이 불필요
- LAN처럼 지리적으로 가까운 호스트 사이의 통신에서 주로 사용
- 특정 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전달
- LAN 환경에서 사용(교환 호스트 불필요)
- 종류: 버스형, 링형
버스(Bus) 형
- 전송 데이터를 모든 호스트에서 수신할 수 있음
- 충돌(Collision): 둘 이상의 호스트에서 데이터를 동시에 전송할 때 충돌 발생
- 충돌 해결 방법
- 호스트의 전송 권한을 제한함
- 사전에 전송 권한을 확보하는 방법
- 시간대를 다르게 지정하는 방법
- 토큰으로 전송 권한을 순환적으로 이용하는 방법
- 사전에 전송 권한을 확보하는 방법
- 충돌 허용
- 둘 이상의 호스트가 데이터를 동시에 전송할 수 있도록 허용, 충돌 발생 시에 해결 과정 필요
- 예: 이더넷Ethernet
- 호스트의 전송 권한을 제한함
링(Ring) 형
- 호스트를 순환 구조로 연결
- 송신 호스트가 전송한 데이터는 링을 한 바퀴 순환한 후 송신 호스트에 되돌아옴
- 중간의 호스트 중에서 수신 호스트로 지정된 호스트만 데이터를 내부에 저장
- 데이터를 전송하기 위해서는 토큰 확보가 필수
멀티포인트 통신
유니캐스팅 (Unicasting)
- 두 호스트 사이의 데이터 전송 (텔넷, FTP, 웹 검색)
- 규범: 미확정
- 메시지의 수신 주소를 1개만 지정하는 1:1 통신 형태
- 네트워크 내의 모든 주소에 동일 메시지를 보내는 것 = 브로드캐스트
- 지정한 복수의 수신 주소에 동일 메세지를 보내는 것 = 멀티캐스트
- IP 주소의 클래스 A, 클래스 B 및 클래스 C는 유니캐스트 주소임
- 수신 호스트 하나에만 데이터 전송 = 유니캐스팅(Unicasting)
멀티포인트 (Multipoint)
- 일대다(1:n)
- 다대다(n:n) 형식 (화상 회의, 원격 교육, 인터넷 채팅)
- 하나의 송신 호스트 기준
- 수신 호스트 하나와 연결: 유니포인트(Unipoint)
- 다수의 수신 호스트와 연결: 멀티포인트(Multipoint)
멀티포인트 유니캐스팅
- Multipoint Unicasting
- 일대다 통신을 위해 멀티포인트 유니캐스팅 방식을 사용
오류 제어
전송 오류의 유형
- 오류 복구 기능
수신 호스트의 응답 프레임
- 송신 호스트에 응답 프레임을 전송 원래의 데이터 프레임을 재전송하도록 요구
- 긍정 응답 프레임(PACK)
- 부정 응답 프레임(NACK)
- 송신 호스트의 재전송 기능 작동
송신 호스트의 타이머 기능
- 타임아웃(Timeout): 데이터 프레임을 전송한 후에 일정 시간 이내에 수신 호스트로부터 긍정 응답 프레임 회신이 없으면 데이터 프레임을 재전송
순서 번호 기능
- 수신 호스트가 중복 프레임을 구분할 수 있도록 지원
- 데이터 프레임 내에 프레임 구분을 위한 일련 번호 부여
정상적인 전송
- 송신 호스트가 전송한 데이터 프레임이 수신 호스트에 오류 없이 도착
- 수신 호스트는 송신 호스트에게 긍정 응답 프레임을 회신
프레임 변형 및 분실
- 프레임 변형 오류를 인지한 수신 호스트는 송신 호스트에 부정 응답 프레임을 전송
- 원래의 데이터 프레임을 재전송
- 부정 응답 프레임을 사용하지 않는 프로토콜에서는 송신 호스트의 타임아웃 기능에 따라 복구 과정을 시작
- 프레임 분실
- 송신 호스트는 데이터 프레임을 전송한 후에 특정 시간까지 수신 호스트의 긍정 응답 프레임이 도착하지 않으면 타임아웃 기능에 따라 원래의 프레임을 스스로 재전송
순서 번호
- 중복 수신 문제를 해결하기 위해 데이터 프레임에게 부여되는 고유 번호
- 순서 번호의 필요성
- 긍정 응답 프레임이 사라지는 오류 발생 시 송신 호스트의 타임아웃 기능에 따라 재전송 과정이 진행됨
- 동일한 프레임 중복 수신
[데이터 분실에 대한 재전송 과정]
- 수신 호스트가 두 경우를 구분할 수 있도록 데이터 프레임별로 고유의 순서 번호를 부여하는 방식이 필요함
[PACK 응답에 대한 데이터 전송 과정]
- 순서 번호에 의한 프레임 구분
- 순서 번호에 근거하여 동일한 데이터 프레임이 중복 도착여부를 확인 가능
[서로 다른 데이터 프레임이 도착]
[긍정응답 도착: 순차번호가 있는 경우]
흐름 제어
- Flow Control
- 수신 호스트가 감당할 수 있을 정도의 전송 속도를 유지하면서 데이터 프레임을 전송
- 너무 빨리 전송하는 경우 수신 호스트가 내부 버퍼에 보관하지 못할 수 있음
- 이는 프레임 분실과 동일한 효과를 야기함
- 데이터 패킷(data packet)을 전송할 때 수신 한도를 넘는 과잉 패킷의 입력으로 패킷 분실이나 록 업(lock up)이 일어나지 않도록 패킷의 흐름량을 조절
예시
- (수신측) 윈도 방식의 흐름 제어에서는 수신측의 완충의 크기에 따라 연속하여 수신되는 최대의 패킷 수를 결정함
- 이러한 이유로는 각 수신장치는 버퍼라 불리는 메모리 블록을 가지고 있어 들어오는 데이터를 처리 및 저장
- 만약 버퍼가 가득 차기 시작하면 수신기는 송신기에게 다시 수신할 수 있을 때까지 전송을 멈추도록 요구
- (송신측) 응답을 받기 전에 송신하는 데이터 패킷 수를 그 이하로 억제하도록 제어함
기본 원리
- 수신 호스트가 송신 호스트의 전송 시점을 제어
- 대표적인 예: 슬라이딩 윈도우 프로토콜
[대표적인 슬라이딩 윈도우 알고리즘]