과거의 유산들/네트워크

데이터통신(L2오류제어, 흐름제어)

빈나 2023. 9. 22. 21:13
반응형

오류제어 기능 3가지

1. 수신호스트 응답 프레임(ACK)

두가지 응답 존재 : 긍정 응답 프레임(ACK), 부정 응답 프레임(NACK)

부정 응답 프레임 발생시 송신 호스트에서 재전송 기능 실행

복원이 아닌 재전송을 하는 이유는 재전송이 변형이 일어났다는 것만 발견하면 되니까 더 간단하게 오류 처리 가능

그러나 복원을 위해서는 변형 유무,어디서 일어났는지, 무엇이 일어났는지 모두 파악도 해야하니까 복잡함.

 

2. 송신호스트의 타이머 기능

타임아웃: 일정 시간 안에 긍정 응답 프레임 회신 없을 시 데이터 프레임 재전송

 

그러면 타임아웃 기능이 있는데 왜 굳이 NACK을 이용을 할까

일정 시간의 이점을 NACK을 통해 얻게 됨

 

3. 순서번호 기능

중복 프레임 구분 할 수 있도록 지원

프레임 내에 구분을 위해 일련번호 부여 -> 긍정 응답 프레임 분실시 재전송 기능으로 중복 프레임을 수신하게 됨

 

흐름제어 : 수신호스트가 감당 가능할 만큼 송신호스트 전송속도 유지 시키는 기능, 너무 빨리 전송시, 내부 버퍼에 보관을 못하고 분실하게 됨.

따라서 수신호스트가 송신 호스트에게 전송시점을 제어함

 

문자 프레임 구조 : 시작과 끝에 특수문자 사용, 시작:DLE/STX 끝:DLE/ETX 문자데이터 양 끝에

그러나 DATA안에 특수문자가 끼면서 데이터 혼선이 발생 가능성 있음  (DLE STX DATA DLE ETX DLE ETX)

이럴 때에는 데이터 속 DLE에 강제로 DLE를 하나 더 붙임 이러면서 수신호스트에서 데이터 확인하면서 DLE 2개 있는 것 중에 하나 제거하고 데이터 혼선을 피함 ->문자 stuffing

 

비트 프레임 구조 : 시작과 끝에 01111110 사용. 비트 데이터 양 끝에,

그러나 역시 비트에서 0111110이 나타날 수 있음 따라서 연속적인 1이 5개가 나타나는 지점에 0을 강제로 추가함.

역시나 수신호스트에서 연속된 11111뒤 0이 나타나면 삭제후 혼선을 피함 ->비트 stuffing

 

반응형