Updated:

조건

client(이하 C) (seq: 3000)
server(이하 S) (seq: 4000)
특수문자와 띄어쓰기는 일반문자 취급
종료는 servert 가 client에게 요청함

문제

C -> S hello
C <- S hi
C -> S bye
C <- S bye

풀이

연결

  • 3-way handshaking

방향 신호 C 상태변화 S 상태변화
C -> S sequence(3000) syn_sent  
C <- S syn(4000) ack(3001)   syn_received
C -> S ack(4001) establish establish

전송

방향 데이터 신호 비고
C -> S hello push(3001) ack(4001)  
C <- S   ack(3007) 3001 -> 3007 6이 늘어난 이후는 hello는 5글자이며 자동으로 증가하는 일련번호때문에 5+1 = 6
C <- S hi ack(4001) ack(3007)  
C -> S   ack(4004)  
C -> S bye push(3007) ack(4004)  
C <- S   ack(3011)  
C <- S bye push(4004) ack(3011)  
C -> S   ack(408)  

연결해제

  • 4-way handshaking

방향 데이터 C 상태변화 S 상태변화
C <- S fin(4008) ack(3011) closed_wait fin_wait1
C -> S ack(4009)   fin_wait2
C -> S fin(3011) ack(4009) last_ack  
C <- S ack(3012)   time_wait
    time_wait가 되면 closed  
      기다리다가 closed

댓글 쓰기