Back to ComputerTerms https://www.scotnpatti.com/unl/images/tcpheader.jpg '''TCP is a byte oriented protocol'''. This means that each byte of data has a sequence number, and the sequence number field contains the sequence number for the first byte of datacarried in theat segment. The acknowledgement and advertised window fields carry information about the flow of data going in the other direction. === Source Port === Gives the source port, the port used by the machine building the connection Range: 0 - 65535 === Destination Port === Gives the destination port, teh port used by the target machine of this connection Range: 0 - 65536 === Sequence Number === The sequence number of this packet === Acknowledgement === The sequence number you are acknowledging === Header Length === ??? ---- '''TCP provides a ''Reliable Byte Stream Abstraction''''' * '''Error Control''': Cumulative ACK -> Next Byte & retransmission When needed * '''Flow Control''': Receiver Window * '''Congestion Control''': Congestion windows size using a reactive method '''TCP Congestion control mechanisms''' * AIMD Additive Increase Multiplicative Decrease * SlowStart * TcpFastRetransmit * TcpFastRecovery {{{ MaxWindow = MIN(CongestionWindow, AdvertisedWindow) EffectiveWindow = MaxWindow - (LastByteSent - LastByteAcked) }}} ---- '''''Review of Information''''' This is also found on layer 2 '''Sender Windows Size''': The size of the buffer on the sender. So you don't send if your window is full! You would risk forgetting about a frame that may need to be resent. ''Invariant: LFS-LAR+1<=SWS'' Where LAR=Last Acknowledgement Received and LFS=Last Frame Sent '''Receiver Windows Size''': The size of the buffer on the receiver. You don't receive if your window is full. ''Invariant: LFA-NFE<=RWS'' Where NFE=Next Frame Expected and LFA=Last Frame Accepted. '''Sequence Number Space''' SWS <= (MaxSeqNum+1)/2, This is so the windows of the sender and receiver don't overlap. ---- Back to ComputerTerms