TCP와 관련된 수도코드입니다(자바프로그래밍 질문) <code>
일단 TCP 구현되는 수도코드는
NextSeqNum = InitialSeqNum
SendBase = InitialSeqNum
loop(forever){
switch(event)
event : data received from application above
create TCP segment with sequence number NextSeqNum
if(timer currently not running)
start timer
pass segment to IP
NextSeqNum = NextSeqNum + length(data)
event : timer timeout
retransmit not-yet-acknowledged segment with
smallest sequence number
start timer
event : ACK received, with ACK field value of y
if(y > SendBase){
SendBase = y
if(there are currently not-yet-acknowledged segments)
start timer
}
else { /* a duplicate ACK for already ACKed segment */
increment number of duplicate ACKs reveived for y
if(number of duplicate ACKs received for y==3) {
/* TCP fast retransmit */
resend segment with swquence number y
}
break;
}/* end of loop forever */
이거입니다.
이걸 설명해야되는데 프로그래밍초짜인 전 잘 모르겠습니다.
대충이라도 좋으니 이 수도코드 해석좀 도와주세요!ㅠㅠ
음...
이건 TCP를 이용한 일반 네트워크(application) 프로그래밍에 대한 code가 아니라 TCP stack 자체의 작동을 간결하게 설명해 놓은 pseudo code네요.
해석을 도와 줄 사람은 거의 없을 겁니다. 설명해 주기도 어렵고, 이해하기도 어렵고... 일단은 TCP stack에서 seq 필드 및 ack 필드의 역할을 우선 공부해 보세요. 그리고 나서 TCP stack의 구현을 위해 사용된 각정 알고리즘부터 공부하시길 바랍니다.
http://en.wikipedia.org/wiki/TCP_congestion_avoidance_algorithm
www.gilgil.net
댓글 달기