Checksum TCP: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 15: Zeile 15:
 
|-
 
|-
 
|colspan="32" style="width:100%;" style="background-color:salmon" |Source Address
 
|colspan="32" style="width:100%;" style="background-color:salmon" |Source Address
 +
|-
 +
|colspan="32" style="width:100%;" style="background-color:khaki" |Destination Address
 +
|-
 +
|colspan="1"|0
 +
|colspan="1"|0
 +
|colspan="1"|0
 +
|colspan="1"|0
 +
|colspan="1"|0
 +
|colspan="1"|0
 +
|colspan="1"|0
 +
|colspan="1"|0
 +
|colspan="8" style="width:25%;"|Proto
 +
|colspan="16" style="width:50%;"|TCP-Length
 +
|-
 +
!colspan="32" style="background-color:lightgreen"|TCP Header
 +
|-
 +
|colspan="16" style="width:50%;" |Source Port
 +
|colspan="16" style="width:50%;" |Destination Port
 +
|-
 +
|colspan="32"|Sequence Number
 +
|-
 +
|colspan="32"|Acknowledge Number
 +
|-
 +
|colspan="4"|Offset
 +
|colspan="6"|Reserved
 +
|colspan="6"|Flags
 +
|colspan="16"|Window
 +
|-
 +
|colspan="16"|Checksum = 0000000000000000
 +
|colspan="16"|Urgent Pointer
 +
|-
 +
|colspan="10"|Options
 +
|colspan="22"|Paddings
 +
|-
 +
|colspan="32" style="background-color:yellow"|Data
 +
|}
 +
=IPv6=
 +
{|class="wikitable" style="text-align:center;
 +
!colspan="32" style="background-color:lightblue" |Pseudo TCP header
 +
|-
 +
|colspan="32" style="width:100%;" style="background-color:salmon" |Source Address
 +
|-
 +
|colspan="32" style="width:100%;" style="background-color:salmon" |Source Address
 +
|-
 +
|colspan="32" style="width:100%;" style="background-color:salmon" |Source Address
 +
|-
 +
|colspan="32" style="width:100%;" style="background-color:salmon" |Source Address
 +
|-
 +
|colspan="32" style="width:100%;" style="background-color:khaki" |Destination Address
 +
|-
 +
|colspan="32" style="width:100%;" style="background-color:khaki" |Destination Address
 +
|-
 +
|colspan="32" style="width:100%;" style="background-color:khaki" |Destination Address
 
|-
 
|-
 
|colspan="32" style="width:100%;" style="background-color:khaki" |Destination Address
 
|colspan="32" style="width:100%;" style="background-color:khaki" |Destination Address

Version vom 31. Januar 2024, 07:34 Uhr

Absender

  • Man bildet aus den 16-Bit-Wörtern ein Einerkomplement.
  • Diese Wörter werden ohne Übertrag addiert.
  • Das Ergebnis wird wieder als Einerkomplement genommen.
  • Das resultierende Einerkomplement wird im Checksum-Feld eingetragen.

Empfänger

  • Die 16-Bit-Wörter werden ein Einerkomplement genommen.
  • Diese Wörter werden ohne Übertrag addiert.
  • Das Ergebnis wird wieder als Einerkomplement genommen.
  • Das resultierende Einerkomplement wird mit dem im Header empfangenen Checksum verglichen.
  • Wenn sie stimmen werden die Daten an die oberen Schichten ausgeliefert

IPv4

Pseudo TCP header
Source Address
Destination Address
0 0 0 0 0 0 0 0 Proto TCP-Length
TCP Header
Source Port Destination Port
Sequence Number
Acknowledge Number
Offset Reserved Flags Window
Checksum = 0000000000000000 Urgent Pointer
Options Paddings
Data

IPv6

Pseudo TCP header
Source Address
Source Address
Source Address
Source Address
Destination Address
Destination Address
Destination Address
Destination Address
0 0 0 0 0 0 0 0 Proto TCP-Length
TCP Header
Source Port Destination Port
Sequence Number
Acknowledge Number
Offset Reserved Flags Window
Checksum = 0000000000000000 Urgent Pointer
Options Paddings
Data