go - back - n (ARQ gbn완벽 구현 코드) 네트워크/데이터통신
- 최초 등록일
- 2010.11.23
- 최종 저작일
- 2010.11
- 9페이지/ 압축파일
- 가격 3,500원
소개글
go back n 구현 코드입니다. 코드 + 보고서까지 있습니다
- 프로그램 설명
이 프로그램은 cleint의 접속을 기다리다가 cleint가 접속하여 명령어(list, get, put)를 전송하면 그에 해당하는 내용을 client에게 전송해주는 server와 server에 접속한 뒤, 사용자의 입력에 따라 명령어를 server로 전송해주고 그에 해당하는 결과를 받아들이는 client로 구성되어져있다.
server와 client는 두 개의 채널로 연결되어져 있으며, server는 첫 번째 client의 접속(command channel)을 받고 새로운 port를 bind 하여 client의 두 번째 접속(data channel)을 받아서 두 개의 채널을 생성한다.
각 channel에서 전송하는 frame은 상이하며, command channel에서는 sequence number와 frame type, message length, more message, message content, crc error code으로 구성되어져 있으며, message의 길이는 20바이트로 제한하여 전송해야 할 message가 20바이트를 초과할 경우 분할하여 여러 개의 frame를 전송한다.
data channel의 frame 구성은 sequence number와 data, crc error code로 구성되어져 있다. data는 100바이트로 제한하며, 역시 100바이트를 초과하는 data를 전송할 시에는 여러 개의 frame으로 분할하여 전송한다.
각 channel에서 frame 전송 후, 올바르게 전송되었는지 확인하는 ack frame은 sequence number와 acknowledgment(0x60)으로 구성되어져 있다.
전송 프로토콜은 go back n 프로토콜 방식으로 sender는 window 크기를 설정하여 window 크기만큼 frame를 전송할 수 있다. recevier는 frame를 전송받으면 확인을 뜻하는 ack frame를 sender에게 전송하여 준다. ack frame를 전송받은 sender는 해당하는 number의 frame이 제대로 전송이 되었다고 인식하여 window의 위치를 한 숫자 올려 이동하여 준다. 이 때, 숫자가 불필요하게 무한히 커질 수 있으므로, 0~15까지의 숫자 내에서 크기가 8인 window를 순환적으로 이동시킨다.
컴파일 실행환경
C
압축파일 내 파일목록
client.c
GBNarq.hwp
server.c
참고 자료
없음