anchor.diff:           (if (zerop data-length)
                (when (= seq (tcp-connection-r-next connection))
                  (cond ((logtest flags +tcp4-flag-fin+)
  +                      ;; Remote have sended FIN and waiting for ACK
                         (setf (tcp-connection-state connection) :close-wait
                               (tcp-connection-r-next connection)
                               (logand (+ (tcp-connection-r-next connection) 1)
  
positive.code:                       (setf (tcp-connection-state connection) :closed)
                        (detach-tcp-connection connection))
                       ((logtest flags +tcp4-flag-fin+)
                        (tcp4-send-packet connection
                                          (tcp-connection-s-next connection)
                                          (tcp-connection-r-next connection)
  
negative.code:          (cond ((and (logtest flags +tcp4-flag-ack+)
                       (logtest flags +tcp4-flag-syn+)
                       (eql ack (tcp-connection-s-next connection)))
                  ;; Remote have sended SYN+ACK and waiting for ACK
                  (setf (tcp-connection-state connection) :established
                        (tcp-connection-r-next connection) (logand (1+ seq) #xFFFFFFFF))
                  (tcp4-send-packet connection ack (tcp-connection-r-next connection) nil))
                 ((logtest flags +tcp4-flag-syn+)
                  ;; Simultaneous open
                  (setf (tcp-connection-state connection) :syn-received
                        (tcp-connection-r-next connection) (logand (1+ seq) #xFFFFFFFF))
                  (tcp4-send-packet connection ack (tcp-connection-r-next connection) nil
  