컴퓨터 네트워크) 데이터 통신
전송 모드
병렬 전송(Parallel Transfer)
- 여러 전송라인을 통해 여러 비트들을 동시에 전송
- 두 장치들간의 거리가 짧은 경우에 일반적으로 사용
- 예) PC에서 프린터로 전송하는 것
- 예) 컴퓨터와 주변 장치들간의 연결
- 긴 거리를 병렬 전송으로 전송하면 비용이 많이 들어서 효율적이지 않다.
직렬 전송(Serial Transfer)
- 하나의 전송라인을 사용하여 하나씩 모든 비트를 보낸다.
- 긴 거리를 전송할 때 병렬 전송에 비해 적은 비용이 들고 신뢰성 증가
- 하지만 비트를 하나씩 보내는 만큼 병렬 전송에 비해 느리다.
비동기식 전송
- 한 번에 한 문자씩 보내거나 받는 방식
- 문자는 7~8 비트로 구성되며, 문자의 앞에 시작비트(Start bit)를, 끝에는 정지비트(Stop bit)를 첨가해서 보냄
- 송신측과 수신측 사이에 동기를 맞추기 위한 클럭 신호를 사용하지 않음
- 시작비트는 수신측에 문자에 해당하는 비트가 따라올 것이라는 것을 알려주는 역할
- 문자 비트들을 모두 수신하면 정지비트가 뒤따른다.
- 키보드와 프린터 같이 느린 장치들을 위해 사용되며 높은 오버헤드를 가진다.
동기식 전송
- 정해진 수 만큼의 문자들을 하나의 그룹(프레임)으로 만들어서 일시에 전송하는 방법
- 일반적으로 비동기식 전송에 비해서 더 빠르다.
- 송신측과 수신측이 하나의 기준 클럭으로 동기신호를 맞추어 동작
- 동기화를 위한 클럭라인이 필요하다.
- 일반적으로 많이 사용하는 방식
바이트기반 전송(Byte-Oriented Transmission)
- 각 프레임을 바이트(문자)의 연속으로 간주하는 방식
- STX(Start of Text), ETX(End of Text), DLE(Data-Link Escape)로 프레임의 시작과 끝을 구분
- 예) BISYNC, PPP, DDCMP 등
비트기반 전송(Bit-Oriented Transmission)
- 일반적으로 많이 사용하는 방식
- 각 프레임을 비트의 연속으로 간주하는 방식
- 프레임의 시작과 끝을 알리기 위해 플래그(Flag)라고 하는 특수한 비트 패턴, “01111110”을 사용
- 예) 인터넷에서의 이더넷(Ethernet)과 HDLC(High-level Data Link Control) 등
비트 스터핑(Bit Stuffing)
- 비트기반 전송에서 프레임의 시작과 끝이 아닌 데이터 필드에 프레임의 시작과 끝을 알리는 플래그가 포함될 수 있다. 그러면 전송이 아직 끝나지 않았는데 수신측에서는 전송이 끝난 것으로 간주하고 데이터 받기를 중단할 것이다.
- 그래서 이걸 해결하기 위해 사용하는 기법이 비트 스터핑 기법이다.
비트 스터핑 방법
- 송신측 : 보낼 프레임의 데이터 필드에서 연속된 5개의 1을 발견하면 다섯 번째 1 뒤에 0을 추가함. 이렇게 하면 시작과 끝 부분 외에는 1이 연속해서 6개 위치하는 경우가 없어진다.
- 수신측 : 연속되는 5개의 1이 수신되고 나서 0이 수신되면 이 0은 비트 스터핑 된 것이라 간주하고 제거함
단방향, 반이중, 전이중
단방향(Simplex)
- 한 방향으로만 신호 전송이 가능한 형태
- 예) 공항 모니터, 프린터, TV 방송
반이중(Half duplex)
- 양쪽 방향에서 보내고 받을 수 있지만 교대로 전송만 가능
- 예) 무전기
전이중(Full duplex)
- 양쪽 호스트가 동시에 데이터전송 가능
- 예) 인터넷
교환 기술
- N개의 통신 장비를 각각 직접 연결하면 필요한 연결선의 갯수가 너무 많아진다.
- 이것에 대한 해결방안으로 각각의 장비들은 통신망에 연결한 뒤 통신망을 이용해 서로 데이터를 주고 받는데 이걸 좀 더 효과적으로 운영하기 위해 교환 기술(Switching Technology)을 사용한다.
회선 교환(Circuit Switching)
- 공중 전화 망에서 사용
- 데이터 전송 과정 : 회선 설정 - 데이터 전송 - 회선 해제
- 단점 : 회선을 설정하고 해제할 때까지 채널의 대역폭을 독점하기 때문에 다른 회선을 동시에 사용할 수 없다.
- 장점 : 단점의 이유로 신뢰성 있는 데이터 전송이 가능하며 일정한 데이터 전송률로 데이터를 전송한다.
- 회선 설정(call setup) 시간이 필요하며 링크 및 스위칭 장비가 성능에 영향을 미친다.
오류 검출과 교정기법
해밍코드(오류 교정 코드)
- N 비트의 데이터에 k개의 패리티 비트를 더하여 (n+k)비트의 코드워드(Codeword)를 생성
- 일종의 비트마스킹 기법으로 오류를 검출할 수 있다.
- N개의 비트를 사용해서 오류가 생긴 비트를 검출할 것이기 때문에 N 비트 데이터와 k개의 패리티 비트를 사용한다고 할 때
2^k >= n + k + 1
라는 수식이 성립해야 한다.(1을 더해주는 이유는 오류가 생기지 않는 경우도 표현하기 위해서) - 수신측은
XOR
연산을 통해 syndrome을 계산해서 syndrome을 10진수로 바꾼 값이 오류발생 위치(syndrome의 모든 비트가 0이면 오류가 없음)