美文网首页
2.tcp/ip header

2.tcp/ip header

作者: 摩V羯座 | 来源:发表于2019-03-04 10:23 被阅读0次

    tcp header

    一般header有20 bytes,每行4 bytes(32 bits),5行

    第一行:Source port + Destination port

    Source port:发送方端口号。16bits。

    Destination port:接收方端口号。16bits。

    因为port占2个字节,所以端口范围是0~65535

    第二行:Sequence number

    表示发送方的序列号。32bits。tcp是可靠传输,每个byte都有标号,需要追踪每个byte是否传输成功,每个byte的标号就是Sequence number。

    初始序列号一般是随机的。

    第三行:Acknowledge number

    表示接收方的ack序列号。32bits。ack number 和 seq number是配对使用的。只有当ack标志为1时,该序列号有效

    第四行:CWR 到 FIN 8个 bit标记位,用来标记当前TCP package的含义。

    第五行:Checksum + Urgent pointer

    checksum: 做完整性校验,由发送方计算,接收方校验

    urgent pointer: 为2个bytes偏移量,加上seq number用于标记某个范围内的bytes特殊用途


    ip header

    第一行:Version + Header length + Type of service + Total length

    version : 版本号。4bits。标志目前采用的ip协议版本号,IPv4(0100),IPv6(0110)

    header length:IP包头长度。4bits。这个字段的作用是为了描述IP包头的长度,因为在IP包头中有变长的可选部分。该部分占4个bit位,单位为32bit(4个字节),即本区域值= IP头部长度(单位为bit)/(8*4),因此,一个IP包头的长度最长为“1111”,即15*4=60个字节。IP包头最小长度为20字节。

    type of service:服务类型。8bits。

    PPP:定义包的优先级,取值越大数据越重要

       000 普通 (Routine)

       001 优先的 (Priority)

       010 立即的发送 (Immediate)

       011 闪电式的 (Flash)

       100 比闪电还闪电式的 (Flash Override)

       101 CRI/TIC/ECP(找不到这个词的翻译)

       110 网间控制 (Internetwork Control)

       111 网络控制 (Network Control)

    D 时延: 0:普通 1:延迟尽量小

    T 吞吐量: 0:普通 1:流量尽量大

    R 可靠性: 0:普通 1:可靠性尽量大

    M 传输成本: 0:普通 1:成本尽量小

    0 最后一位被保留,恒定为0

    total length:IP包总长。16bits。 以字节为单位计算的IP包的长度 (包括头部和数据),所以IP包最大长度65535字节。

    第二行:Identifier + Flags + Fragmented Offset

    Identifier:标识符。16bits。该字段与两外2个字段联合使用,对较大的上层数据包进行分段操作。路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分。

    Flags:标记。3bits。

    第一位不使用

    第二位DF(Don't Fragment)位,1表示路由器不能对该上层数据包分段,

    第三位MF(More Fragment)位,当路由器对一个上层数据包分段,则路由器会在除了最后一个分段的IP包的包头中将MF位设为1。

    Fragmented Offset:片偏移。13bits。表示该ip包在该组分片包中的位置,接收端靠该字段来还原IP包。

    第三行:Time to live(TTL) + Protocol + Header Checksum

    Time to live(TTL) :生存时间。8bits。当IP包进行传送时,对该字段赋值,当IP包经过每一个沿途的路由时,TTL减1,如果TTL为0,该IP包丢弃。可以防止由于路由环路IP包在网络中不停被转发。

    Protocol:协议。8bits。标志上层使用的协议。

        1    ICMP

        2    IGMP

        6    TCP

       17    UDP

       88    IGRP

       89    OSPF

    Header Checksum:头部校验。16bits。用来做IP Header 正确性检测。因为每个路由器要改变TTL的值,所以路由器会为每个通过的数据包重新计算这个值。

    第四行:Source Address

    起源地址。32bits。

    第五行:Destination  Address

    目标地址。32bits。

    除非使用NAT,否则整个传输过程中,这两个地址不会改变。

    相关文章

      网友评论

          本文标题:2.tcp/ip header

          本文链接:https://www.haomeiwen.com/subject/fxzryqtx.html