쉽게 배우는 데이터 통신과 컴퓨터 네트워크를 정리한 내용입니다
전송 방식
1. 컴퓨터 네트워크의 효과
- 자원 공유 : 컴퓨터 하드웨어, 소프트웨어 등 모든 종류의 물리적,논리적 자원을 공유
- 병렬 처리에 의한 성능 향상 : 여러 컴퓨터를 네트워크로 연결해서 작업 처리. 네트워크 속도 제한에 의한 한계가 있지만, 네트워크 성능 개선으로 병렬 처리 가능
- 중복 저장에 따른 신뢰성 향상 : 시스템에서 보관하는 정보의 신뢰성을 향상시키기위해 사용. 중요한 정보를 클라우드 등에 저장 가능하므로 중복 저장이 됨 -> 로컬 장소에서 삭제돼도 복구가 유리함
2. 전송과 교환
송신호스트가 수신호스트에 데이터를 전달하기 위해 전송과 교환 과정을 거처야한다.
- 교환(컴퓨터 네트워크에서 라우팅) : 전달 경로가 둘일때 라우터에서 데이터를 어느 방향으로 전달할지 선택하는 기능
- 전송 : 특정한 물리 매체에 의해 일대일로 직접 연결된 두 시스템 간의 통신 => 라우팅이라는 개념이 배제됨!
1) 전송 방식의 종류
- 지리적 분포에 따른 분류 : LAN, MAN. WAN
- 데이터 전송, 라우팅 기술로 분류 : 점대점, 브로드캐스팅, 멀티캐스트(멀티포인트)
2) 점대점 방식(1대1)
호스트들이 물리적으로 1:1로 연결되어 있다. 통신하고자 하는 두 호스트가 직접 연결되어 있으면 별도의 라우팅 과정 없이 직접 데이터 전송할 수 있다. WAN같은 원거리 호스트 연결시 사용한다.
연결 개수가 많아지면 성능면에서 유리하지만, 비용이 많이든다 -> 반대로 연결개수가 적으면 전송 매체를 더 많이 공유해 특정구간에서 네트워크 혼잡도가 증가한다
- 스타형
중앙에 존재하는 하나의 중개 호스트(허브) 주위로 여러 호스트를 일대일로 연결. 반드시 중앙 호스트가 거쳐지는 구조.
중앙 호스트의 성능과 신뢰성이 중요. 스타형이 나아가 트리형의 모습을 할 수도 있다. - 링형
전송 호스트의 연결이 순환 구조인 링 형태. 데이터는 미리 정해진 시계/반시계 방향으로 전달하는데 현실적으로 한 방향으로 고정되어 처리과정을 단순화 한다.
데이터 충돌의 발생을 원천 차단하기위해 토큰이라는 제어 프레임을 사용하며, 호스트가 데이터 전송을 위해서는 반드시 미리 토큰을확보해야한다. 또한 전송 완료후 이 토큰은 반납된다
-> 링형의 경우 점대점 방식이지만 브로드캐스팅 방식의 기준에도 부합하는 구조이다. 네트워크 호스트가 일대일 연결구조 지원하는 점에서는 점대점 방식이지만 전송 데이터가 모슨 호스트에 전달된다는 점은 브로드 캐스팅 방식이다 - 완전형
네트워크에 존재하는 모든 호스트를 1:1로 연결하는 방식으로. 라우팅 기능이 불필요하다.
전송 매체의 개수가 늘어날 경우 비용적 측면에서 극단적으로 비효율적이라 특수한 목적을 위한 제한적 사용 외에는 잘 쓰이지 않는다 - 불규칙형
트래픽이 많은 지역은 연결의 수가 많지만, 트래픽이 적은 지역은 연결의 수가 적다
3) 브로드캐스팅(1대 All) <LAN에서 주로 사용>
특정 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에게 데이터를 전달하는 방식이다. LAN환경에서 주로 사용되고 있다.
- 버스형
공유 전송 매체인 버스에 모든 호스트를 연결해 연결된 모든 호스트가 데이터를 수신할 수 있다. 다만 데이터 내의 송수신 호스트를 구분하기위해 주소를 표시하는 기능이 필요하다.
둘 이상의 호스트가 데이터를 전송하면 충돌 발생할 수 있으므로 충돌에 다른 오류 문제를 해결해야 한다.
> 충돌 문제의 해결 방법
1. 사전 예방 : 전송 시간대를 다르게 하는 방법, 토큰 제어 방식이 있음
2. 사후 해결 : 충돌이 발생했을때 이를 해결하는 방식으로 충돌이 발생했을때 이를 감지하고 재전송하는 오류 복구 과정이 필요하다.
(이더넷에서 채택하는 방식이다) - 링형
링형의 경우 점대점 방식이지만 브로드캐스팅 방식의 기준에도 부합하는 구조이다. 네트워크 호스트가 일대일 연결구조 지원하는 점에서는 점대점 방식이지만 전송 데이터가 모슨 호스트에 전달된다는 점은 브로드 캐스팅 방식이다
4) 멀티포인트 통신
하나의 송신 호스트를 기준에 따라
- 유니포인트 : 수신 호스트 하나와 연결
- 멀티포인트 : 다수 수신 호스트와 연결
송신 호스트가 한번의 전송에 따라
- 유니캐스팅 : 두 호스트 사이에 데이터전송을 의미한다
- 멀티캐스팅 : 하나의 송신 호스트를 기준으로 다수의 수신 호스트와 연결되는 구조이다.
a. 멀티포인트 유니캐스팅
유니캐스팅 방식을 이용해 일대다 통신을 할때 이용되는 방식이다.
a가 다수(d,e,f)에게 하나의 문자를 보낸다고 가정하자.
1. 각 수신 호스트와 개별적으로 연결을 해야한다(3번의 연결설정)
2. 별도로 3번의 전송이 이루어진다
송수신 호스트 사이의 흐름 제어와 수신 호스트의 응답 기능 및 재전송 기능을 구현하기 좋다. 하지만 호스트 수가 많아지면 성능면에서 여러 문제가 나타날 수 있다
b. 브로드캐스팅
송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식을 브로드 캐스팅이라 한다. 수신된 데이터에 대한 처리를 전적으로 수신 호스트의 몫으로 남으며 이는 목적지 주소를 근거로 결정한다.
1. a가 보낸 데이터는 b,c,d,e에 모두 전달된다.
2. 데이터 여부는 각 수신 호스트가 판단한다
-> 데이터 내부에 기술된 수신 호스트 주소가 자신과 일치하지 않는 호스트는 이를 받아들이지 않는다.
멀티캐스팅은 오늘날 다수의 고객을 대상으로 하는 모든 형테의 데이터 서비스에 이용되고있다. ex) 뉴스서비스, 인터넷주식, 화상회의
멀티캐스팅을 구현하기위해서는 그룹을 생성후 관리하는 기능이 필요하다. 또한 멀티캐스트 트래픽에 대한 처리기능도 구현 되어야 한다.
오류 제어
전송 오류 문제는 물리 계층에서만 아니라 다른 계층에서도 발생할 수 있다. 하위계층에서 오류가 발생하면 상위 계층에서 이를 바로잡아야 한다.
1. 오류 복구를 위한 기본 기능
1) 수신 호스트의 응답 프레임
전송한 데이터 프레임의 일부가 깨지는 프레임 변형 오류를 확인한 수신 호스트는 송신 호스트에 응답프레임을 전송해 원래의 데이터 프레임을 재전송하도록 요구할 수 있다
- 긍정 응답 프레임 : 정상적으로 도착했을때 회신
- 부정 응답 프레임 : 프레임이 깨졌을때 회신 -> 이때 송신 호스트의 재전송 기능 작동
2) 송신 호스트의 타이머 기능
데이터 프레임이 수신 호스트에 도착하지 못하는 프레임 분실 오류가 발생할시 수신 호스틑 오류 발생 사실을 인지할 수 없다(오류복구가 송신 호스트 주도로 진행되어야 할 필요가 있음) 데이터 프레임을 전송한 후에 일정 시간 내에 수신 호스트로부터 긍정 응답 프레임 회신이 없으면 타임아웃 기능을 동작시켜 데이터 프레임을 재전송한다
3) 순서 번호 기능
수신 호스트가 보낸 긍정 응답이 분실되는 경우 송신 호스트는 인지할 수 없는데, 이때 타임아웃기능으로 프레임 재전송이 이루어져 중복 수신하는 결과가 일어날 수 있다. 이를 구별하기 위해 프레임 내부에 순서번호 기록해야 한다
4) 오류 검출 코드
데이터 프레임은 원래의 전송 데이터 외에 오류제어를 위한 코드 정보도 함께 제공된다.
2. 정상적인 전송
송신 호스트가 전송한 데이터 프레임이 문제없이 수신호스트에 도착했고, 수신호스트는 잘 받았다는 의미로 긍정 응답 프레임을 회신한다
만일 긍정 응답 프레임이 없다면 데이터 프레임에 오류가 발생했다는 뜻
3. 전송 오류의 유형
a. 프레임 변형 오류
데이터프레임이 수신되었으나 전송과정에서 프레임의 내용이 변형되는 오류가 발생
해당 오류를 인지한 수신 호스트가 송신 호스트에 부정 응답 프레임을 전송하고, 이를 받은 송신 호스트가 원래 데이터 프레임을 재전송한다
만약 부정 응답 프레임을 사용안한다면 타임아웃 기능에 따라 복구가 진행된다
b. 프레임 분실 오류
데이터 프레임 전송후 특정 시간까지 수신 호스트의 긍정 응답이 없으면 타임아웃 기능에 따라 원래의 프레임을 스스로 전송한다
4. 흐름 제어
데이터 링크 계층은 오류 제어 뿐만 아니라 데이터 프레임의 전송량을 조절하는 것이다.
송신 호스트는 수신 호스트가 감당할 수 있을 정도의 전송속도를 유지하며 전송해야하는데 이 기능이 제공되지 않으면 데이터 프레임을 버퍼에 보관하지 못하게되어 데이터의 손실, 재전송으로 이어지게 된다.
기본 원리는 다음에 수신할 프레임의 전송 시점을 송신 호스트에게 통지하는 방식이다.
프레임 구조
데이터 링크 계층은 전송데이터를 '프레임'단위로 나누어 처리한다.
프레임의 내용에 포함되는 정보는 프로토콜의 용도에 따라 다르다.
일반적으로 프레임은 내부 정보를 표현하는 방식에 따라 문자 프레임과 비트 프레임으로 구분된다
1. 문자 프레임
ASCII코드(또는 8비트 단위)를 기반으로 한 문자로만 구성된 프레임이다. 각 프레임의 앞뒤에 ASCII코드의 특수 문자를 이용한다.
시작에는 DLE,STX 끝에는 DLE,ETX를 추가해 단위를 구분하고 있다.
- 문자 스터핑 : 문자 프레임의 전송 과정에서 제어문자를 추가하는 기능을 의미 (ex:데이터에 DLE가 있으면 강제로 DLE 하나 더 추가하고 수신측에서는 두 개 의 DLE가 나오면 뒤에 있는 DLE 제거)
2. 비트 프레임
프레임의 시작과 끝 위치에 플래그라는 특수하게 정의된 비트 패턴(01111110)을 사용해 프레임의 단위를 구분한다. 데이터 전송전에 프레임 좌우에 플래그를 추가하고, 수신 호스트는 이 플래그를 제거해 내용을 확인한다.
- 비트 스터핑 : 비트 패턴에도 플래그랑 동일한 패턴이 프레임 내용에 포함되면 혼선이 발생해 이를 방지하기위해 송신 호스트는 1이 연속해서 5번 발생하면(11111) 강제로 0을 추가한다. 수신 호스트는 추가된 0을 제거한다
오류 검출 기법
프레임 전송 과정의 오류를 극복하는 방법은 크게 두가지다.
- 전송 프레임에 오류 검출 코드를 넣어 수신 호스트가 전송 과정의 오류를 검출하고 재전송을 통해 복구-> 패리티 비트, 다항 코드 방식(역방향 오류 복구)
- 전송 프레임에 오류 복구 코드를 넣어 수신 호스트가 오류 검출과 복구 기능을 모두 수행하도록 하는것 -> 순방향 오류 복구
일반적으로 순방향 오류 복구는 사용하지 않고 재전송 복구 방법을 이용한다.
1. 패리티 비트
정보의 전달 과정에서 오류가 생겼는지 검사하기위해 추가된 비트로 전송하고자 하는 데이터의 끝에 1비트를 더해 전송하는 방법이다.
패리티 비트에는 홀수 방식과 짝수 방식이 있다
2. 다항 코드
다항 코드 방식은 네트워크 프로토콜에서 가장 많이 사용하는 오류 검출 기법이다. 일반 네트워크에서 발생하는 오류는 특정 위치에서 집중적으로 발생하는 버스트 에러 형태인 경우가 많은데, 다항 코드 방식이 해당 오류를 검출해내는 확률이 높다고 한다.
'CS > 네트워크' 카테고리의 다른 글
6. 네트워크 계층의 기능 & 라우팅 프로토콜 (0) | 2022.09.15 |
---|---|
5. 데이터 링크 계층 (0) | 2022.09.15 |
3. 네트워크 기술 (0) | 2022.09.12 |
2. 네트워크 개념 (0) | 2022.09.08 |
1. 네트워크 기초 (0) | 2022.09.08 |