tcpconntrack

package
v0.0.0-...-ab9d845 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 11, 2024 License: Apache-2.0, MIT Imports: 2 Imported by: 3

Documentation

Overview

Package tcpconntrack implements a TCP connection tracking object. It allows users with access to a segment stream to figure out when a connection is established, reset, and closed (and in the last case, who closed first).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Result

type Result int

Result is returned when the state of a TCB is updated in response to a segment.

const (
	// ResultDrop indicates that the segment should be dropped.
	ResultDrop Result = iota

	// ResultConnecting indicates that the connection remains in a
	// connecting state.
	ResultConnecting

	// ResultAlive indicates that the connection remains alive (connected).
	ResultAlive

	// ResultReset indicates that the connection was reset.
	ResultReset

	// ResultClosedByResponder indicates that the connection was gracefully
	// closed, and the reply stream was closed first.
	ResultClosedByResponder

	// ResultClosedByOriginator indicates that the connection was gracefully
	// closed, and the original stream was closed first.
	ResultClosedByOriginator
)

type TCB

type TCB struct {
	// contains filtered or unexported fields
}

TCB is a TCP Control Block. It holds state necessary to keep track of a TCP connection and inform the caller when the connection has been closed.

+stateify savable

func (*TCB) Init

func (t *TCB) Init(initialSyn header.TCP, dataLen int) Result

Init initializes the state of the TCB according to the initial SYN.

func (*TCB) IsAlive

func (t *TCB) IsAlive() bool

IsAlive returns true as long as the connection is established(Alive) or connecting state.

func (*TCB) IsEmpty

func (t *TCB) IsEmpty() bool

IsEmpty returns true if tcb is not initialized.

func (*TCB) OriginalSendSequenceNumber

func (t *TCB) OriginalSendSequenceNumber() seqnum.Value

OriginalSendSequenceNumber returns the snd.NXT for the original stream.

func (*TCB) ReplySendSequenceNumber

func (t *TCB) ReplySendSequenceNumber() seqnum.Value

ReplySendSequenceNumber returns the snd.NXT for the reply stream.

func (*TCB) State

func (t *TCB) State() Result

State returns the current state of the TCB.

func (*TCB) UpdateStateOriginal

func (t *TCB) UpdateStateOriginal(tcp header.TCP, dataLen int) Result

UpdateStateOriginal updates the state of the TCB based on the supplied original segment.

func (*TCB) UpdateStateReply

func (t *TCB) UpdateStateReply(tcp header.TCP, dataLen int) Result

UpdateStateReply updates the state of the TCB based on the supplied reply segment.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL