충남대학교 컴퓨터공학과 김상하 교수님의 "데이터 통신" 강의를 필기한 내용입니다.
다소 잘못된 내용과 구어적 표현 이 포함되어 있을 수 있습니다.
Media Access Control(MAC)
- 두개 이상의 디바이스가 하나의 링클르 공유할 때, 충돌이 발생하지 않도록 하는 것?
Flow, Error Control
- Flow Control은 noiseless에서 ACK를 이용해 수신증을 날리는 개념이고
- Error Control은 이제 여기에 노이즈가 있는 환경까지 고려해 수신증을 날리는 거 뿐 아니라 프레임/ACK의 전송과정에서 오류가 날 수 있는것을 해결하기 위해 ARQ를 도입하는것을 말한다
Go Back N ARQ 프로토콜
- 얘는 이제 프레임을 연속적으로 보내다가 ACK가 들어오면 거기로 돌아가서 거기서부터 보내기 시작하는 방식으로 진행된다
- 프레임은 이제 윈도우라는 배열 비스무리한것에 저장이 되어 있다가 슬라이딩 단위로 0번부터 쭉쭉 송신하게 되는데 - 이때 슬라이딩은 한번에 몇개의 프레임을 보내냐 하는 것이라고 생각하면 된다. 즉, 슬라이드에 3개의 프레임을 할당하면 한번에 3개의 프레임이 날라가는 것
- 수신측에서 아직 다음 프레임이 안들어왔다거나 아니면 중간에 빼먹은 프레임이 있을 경우(1번 이후 3번이 들어와 2번 프레임이 없는 경우 등) 해당 번째의 프레임을 요청하는 ACK을 날리게 된다
- 그럼 이제 송신측에서는 그걸 보고 해당 번째의 프레임부터 다시 전송을 시작하게 된다 - 빼먹은놈만 전송하는게 아니고 ACK에 명시되어있는 프레임부터 전송을 시작하게 되는 것
- 다만 수신측에서는 중간에 빼먹은게 있을 때 그 뒤에 들어온 프레임은 전부 discard한다 - 즉, 1번 이후에 3번이 들어오면 ACK2를 날리고 3번은 폐기하게 되는 것
Selective Repeat ARQ
- 얘도 윈도우 슬라이딩방식으로 보내긴 하는데
- goBack이랑의 차이점은 얘는 중간에 송신 못한 프레임이 있을때 NAK이라는 것을 날리게 된다 - 다음꺼를 요청할때는 ACK, 못받은놈이 있을 때에는 NAK
- 그럼 이제 송신측에서는 거기서부터 송신을 시작하는게 아니라 누락된 프레임을 보내고, 그 다음에 아까 보내던거부터 이어서 보내게 되는 것
- 다만 이렇게 되면 수신측에서는 순서대로 수신받는게 아니기 때문에 프레임들을 순서에 따라 정렬하는 작업을 필수적으로 해줘야 한다
- 하지만 저렇게 폐기하고 다시받는거보다 이렇게 뒤죽받죽으로 받고 정렬하는 것이 더 효율적이도 시간도 더 적게 걸린댄다