anchor.diff:                                         seq ack
                                          (tcp-connection-window-size connection)
                                          data
  +                                       :cwr-p cwr-p
  +                                       :ece-p ece-p
  +                                       :urg-p urg-p
                                          :ack-p ack-p
                                          :psh-p psh-p
                                          :rst-p rst-p
  
positive.code:      length))
  
  (defun assemble-tcp4-packet (src-ip src-port dst-ip dst-port seq-num ack-num window payload
                               &key (ack-p t) psh-p rst-p syn-p fin-p)
    "Build a full TCP & IP header."
    (let* ((checksum 0)
           (payload-size (length payload))
  
negative.code:                                                                           (if syn-p +tcp4-flag-syn+ 0)
                                                                            (if rst-p +tcp4-flag-rst+ 0)
                                                                            (if psh-p +tcp4-flag-psh+ 0)
                                                                            (if ack-p +tcp4-flag-ack+ 0)
                                                                            (if urg-p +tcp4-flag-urg+ 0)
                                                                            (if ece-p +tcp4-flag-ece+ 0)
                                                                            (if cwr-p +tcp4-flag-cwr+ 0))
            ;; Window.
            (ub16ref/be header +tcp4-header-window-size+) window
            ;; Checksum.
  