TCP와 관련된 수도코드입니다(자바프로그래밍 질문) <code>

zealdin의 이미지

일단 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 */

이거입니다.

이걸 설명해야되는데 프로그래밍초짜인 전 잘 모르겠습니다.

대충이라도 좋으니 이 수도코드 해석좀 도와주세요!ㅠㅠ

gilgil의 이미지

이건 TCP를 이용한 일반 네트워크(application) 프로그래밍에 대한 code가 아니라 TCP stack 자체의 작동을 간결하게 설명해 놓은 pseudo code네요.

해석을 도와 줄 사람은 거의 없을 겁니다. 설명해 주기도 어렵고, 이해하기도 어렵고... 일단은 TCP stack에서 seq 필드 및 ack 필드의 역할을 우선 공부해 보세요. 그리고 나서 TCP stack의 구현을 위해 사용된 각정 알고리즘부터 공부하시길 바랍니다.

http://en.wikipedia.org/wiki/TCP_congestion_avoidance_algorithm