IP报文格式

合集下载

ipip隧道协议报文格式

ipip隧道协议报文格式

ipip隧道协议报文格式摘要:一、IP 隧道协议概述二、IP 隧道协议报文格式1.报文头部1) 版本与协议类型2) 首部长度3) 服务类型4) 总长度5) 标识6) 标志7) 分段偏移量8) 生存时间9) 协议2.报文数据部分1) 源IP 地址2) 目标IP 地址3) 协议类型4) 序列号5) 确认号6) 数据偏移量7) 标志位8) 窗口缩放9) 紧急指针10) 选项字段正文:一、IP 隧道协议概述IP 隧道协议,又称为IP 封装协议,是一种在网络中传输数据包的协议。

通过使用IP 隧道协议,可以在一个网络中传输另一个网络中的数据包。

这种协议主要应用于虚拟专用网络(VPN)和IPSec 等场景,以实现数据在网络中的安全传输。

二、IP 隧道协议报文格式IP 隧道协议报文主要包括报文头部和报文数据部分。

1.报文头部报文头部包含以下字段:- 版本与协议类型:表示IP 协议的版本号和协议类型,例如IPv4 或IPv6。

- 首部长度:表示报文头部的长度,以4 字节为单位。

- 服务类型:表示数据包的服务质量,例如优先级、延迟等。

- 总长度:表示整个IP 数据包的长度,以4 字节为单位。

- 标识:用于标识数据包的唯一性。

- 标志:表示是否分段以及如何分段数据包。

- 分段偏移量:表示数据包在分段后的位置。

- 生存时间:表示数据包在网络中允许经过的最大路由器数量。

- 协议:表示数据包所使用的协议类型,例如ICMP、TCP 或UDP 等。

2.报文数据部分报文数据部分包含以下字段:- 源IP 地址:表示数据包的源IP 地址。

- 目标IP 地址:表示数据包的目标IP 地址。

- 协议类型:表示数据包所使用的协议类型,例如ICMP、TCP 或UDP 等。

- 序列号:表示数据包在传输过程中的顺序。

- 确认号:表示期望接收到的下一个数据包的序列号。

- 数据偏移量:表示数据包在传输过程中的位置。

- 标志位:表示数据包的传输方向和其他控制信息。

常见网络协议报文格式汇总

常见网络协议报文格式汇总

常见网络协议报文格式汇总网络协议是计算机网络通信中,用于规定通信双方传输数据的格式和规则的标准化。

协议中的报文是通信双方之间进行数据交换的载体。

下面我将简单介绍一些常见的网络协议报文格式。

1. HTTP(Hypertext Transfer Protocol)报文格式:-请求报文格式:```<Method> <Request-URI> <HTTP-Version><Headers><Entity-Body>```-响应报文格式:```<HTTP-Version> <Status-Code> <Reason-Phrase><Headers><Entity-Body>```2. TCP(Transmission Control Protocol)报文格式:-TCP报文格式如下:```Source Port Destination PortSequence Number Acknowledgment NumberData Offset Reserved Control BitsWindow Checksum Urgent PointerOptions (if any)Data```3. UDP(User Datagram Protocol)报文格式:-UDP报文格式如下:```Source Port Destination PortLength ChecksumData```4. IP(Internet Protocol)报文格式:-IPv4报文格式如下:```Version IHL Type of Service Total LengthIdentification Flags Fragment Offset Time to Live Protocol Header Checksum Source IP AddressDestination IP AddressOptions (if any)Padding (if necessary)Data```-IPv6报文格式如下:```Version Traffic Class Flow Label Payload Length Next HeaderHop LimitSource IPv6 AddressDestination IPv6 AddressOptions (if any)Padding (if necessary)Data```5. ICMP(Internet Control Message Protocol)报文格式:-ICMP报文格式如下:```Type Code ChecksumIdentifier Sequence NumberData (Optional)```6. Ethernet报文格式:- Ethernet报文格式如下:```Destination MAC AddressSource MAC AddressEthernet TypePayload```7. DNS(Domain Name System)报文格式:-DNS报文格式如下:```DNS Message HeaderDNS Message Question SectionDNS Message Answer SectionDNS Message Authority SectionDNS Message Additional Section```8. FTP(File Transfer Protocol)报文格式:-FTP报文格式如下:```Arguments```9. SMTP(Simple Mail Transfer Protocol)报文格式:-SMTP报文格式如下:```Arguments```这些是常见的网络协议的报文格式,它们用于在计算机网络中进行数据传输和通信。

IP数据报格式和IP地址路由

IP数据报格式和IP地址路由

IP数据报格式和IP地址路由⼀、IP数据报格式IP数据报格式如下:注:需要注意的是⽹络数据包以⼤端字节序传输,当然头部也得是⼤端字节序,也就是说:The most significant bit is numbered 0 at the left, and the least significant bit of a 32-bit value is numbered 31 on the right.The 4 bytes in the 32-bit value are transmitted in the order: bits 0-7 first, then bits 8-15, then 16-23, and bits 24-31 last. This is called big endian byte ordering, which is the byte ordering requiredfor all binary integers in the TCP/IP headers as they traverse a network. This is called the network byte order. Machines that store binary integers in other formats, such as the little endian format,must convert the header values into the network byte order before transmitting the data.版本IP协议版本号,长度为4位,IPv4此字段值为4,IPv6此字段值为6⾸部长度以32位的字为单位,该字段长度为4位,最⼩值为5,即不带任何选项的IP⾸部20个字节;最⼤值为15,所以⾸部长度最⼤为60个字节服务类型(TOS)长度为8位。

以太网帧格式、IP报文格式、TCPUDP报文格式

以太网帧格式、IP报文格式、TCPUDP报文格式

以太⽹帧格式、IP报⽂格式、TCPUDP报⽂格式1、ISO开放系统有以下⼏层:7应⽤层6表⽰层5会话层4传输层3⽹络层2数据链路层1物理层2、TCP/IP ⽹络协议栈分为应⽤层(Application)、传输层(Transport)、⽹络层(Network)和链路层(Link)四层。

通信过程中,每层协议都要加上⼀个数据⾸部(header),称为封装(Encapsulation),如下图所⽰不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在⽹络层叫做数据报(datagram),在链路层叫做帧(frame)。

数据封装成帧后发到传输介质上,到达⽬的主机后每层协议再剥掉相应的⾸部,最后将应⽤层数据交给应⽤程序处理。

其实在链路层之下还有物理层,指的是电信号的传递⽅式,⽐如现在以太⽹通⽤的⽹线(双绞线)、早期以太⽹采⽤的的同轴电缆(现在主要⽤于有线电视)、光纤等都属于物理层的概念。

3、集线器(Hub)是⼯作在物理层的⽹络设备,⽤于双绞线的连接和信号中继(将已衰减的信号再次放⼤使之传得更远)。

交换机是⼯作在链路层的⽹络设备,可以在不同的链路层⽹络之间转发数据帧(⽐如⼗兆以太⽹和百兆以太⽹之间、以太⽹和令牌环⽹之间),由于不同链路层的帧格式不同,交换机要将进来的数据包拆掉链路层⾸部重新封装之后再转发。

路由器是⼯作在第三层的⽹络设备,同时兼有交换机的功能,可以在不同的链路层接⼝之间转发数据包,因此路由器需要将进来的数据包拆掉⽹络层和链路层两层⾸部并重新封装。

4、⽹络层的IP 协议是构成Internet 的基础。

IP 协议不保证传输的可靠性,数据包在传输过程中可能丢失,可靠性可以在上层协议或应⽤程序中提供⽀持。

传输层可选择TCP 或UDP 协议。

TCP 是⼀种⾯向连接的、可靠的协议,有点像打电话,双⽅拿起电话互通⾝份之后就建⽴了连接,然后说话就⾏了,这边说的话那边保证听得到,并且是按说话的顺序听到的,说完话挂机断开连接。

ipv4报文格式解析

ipv4报文格式解析

ipv4报文格式解析IPv4报文格式如下:1. 版本号(Version):占4位,表示IP协议的版本。

目前广泛使用的是IPv4,其版本号为0100。

2. 首部长度(Header Length):占4位,表示IP首部的长度。

首部长度单位为32位字长(4字节),4位二进制表示最大的十进制数值为15,因此,当首部长度为1111时(即十进制的15),首部长度达到最大长度60字节。

通常情况下,首部长度为20字节。

3. 区分服务(Type of Service):占8位,用于表示数据包的服务质量,如延迟、吞吐量、可靠性和成本等。

现在通常使用3位优先级字段和5位TOS字段。

4. 总长度(Total Length):占16位,表示整个IP数据包的长度,包括首部和数据部分。

范围为0-65535字节。

5. 标识(Identification):占16位,用于标识数据包。

当原始报文超过最大传输单元(MTU)时,需要进行分片,每个分片打上相同的标识符,以便接收端识别为同一个报文的分片。

6. 标记(Flags):占3位,用于表示数据包是否分片以及分片顺序。

其中,第一位未使用;第二位表示“不允许分片”(Don't Fragment,DF),第三位表示“更多分片”(More Fragments,MF)。

7. 分片偏移量(Fragment Offset):占13位,用于标记分片在分组中的位置。

8. 生存时间(Time to Live,TTL):占8位,表示数据包可以在网络中传输的最大跳数。

9. 协议(Protocol):占8位,表示传输层使用的协议类型,如ICMP、IGMP、TCP、UDP等。

10. 头部校验和(Header Checksum):用于校验IP报头的正确性,仅校验头部,数据部分由传输层协议负责校验。

11. 源IP地址(Source IP Address):占32位,表示数据包的源IP 地址。

12. 目的IP地址(Destination IP Address):占32位,表示数据包的目的IP地址。

ipip隧道协议报文格式

ipip隧道协议报文格式

ipip隧道协议报文格式【原创版】目录一、IP 隧道协议概述二、IP 隧道协议报文格式1.控制消息的传输2.ICMP 报文格式3.DEVICENET 转 ETHERCAT 网关连接 CANopen 协议报文解析实例正文一、IP 隧道协议概述IP 隧道协议是一种在网络通信中实现数据包传输的技术,它可以将一个网络协议的数据包封装到另一个网络协议的数据包中,从而实现在不同网络协议之间进行通信。

隧道协议主要应用于 VPN(虚拟专用网络)技术中,通过在公共网络上建立一个虚拟的专用网络,实现对数据的加密和安全传输。

二、IP 隧道协议报文格式(1)控制消息的传输在 IP 隧道协议中,控制消息主要用于传输控制信息,例如:数据包的传输方向、数据包的传输速度等。

这些控制消息虽然并不传输用户数据,但对于用户数据的传递起着重要的作用。

(2)ICMP 报文格式ICMP(Internet Control Message Protocol,互联网控制消息协议)是 IP 隧道协议中常用的一种协议,用于传输控制消息。

ICMP 的报文格式如下:- 类型(Type):用于表示报文类型的整数值,例如:0 表示终点不可达,1 表示源站抑制,2 表示终点抑制等。

- 代码(Code):用于表示报文类型的具体值,例如:0 表示正常传输,1 表示传输超时等。

- 标识(Identification):用于标识数据包的唯一性,该字段的值越大,表示数据包越新。

- 标志(Flags):用于表示是否分段以及如何分段,该字段的值为 3 位二进制数。

- 分段偏移量(Fragment Offset):用于表示数据包在分段后的位置,该字段的值为 13 位二进制数。

- 生存时间(Time to Live):用于表示数据包在网络中的最大传输时间,该字段的值为 8 位二进制数。

- 协议(Protocol):用于表示数据包所使用的协议类型,例如:1 表示 ICMP,2 表示 IGMP 等。

数据包报文格式(IP包TCP报头UDP报头)

数据包报文格式(IP包TCP报头UDP报头)

数据包报文格式(IP包TCP报头UDP报头)一、IP包格式IP数据包是一种可变长分组,它由首部和数据负载两部分组成。

首部长度一般为20-60字节(Byte),其中后40字节是可选的,长度不固定,前20字节格式为固定。

数据负载部分的长度一般可变,整个IP数据包的最大长度为65535B。

1、版本号(Version)长度为4位(bit),IP v4的值为0100,IP v6的值为0110。

2、首部长度指的是IP包头长度,用4位(bit)表示,十进制值就是[0,15],一个IP包前20个字节是必有的,后40个字节根据情况可能有可能没有。

如果IP包头是20个字节,则该位应是20/4=53、服务类型(Type of Service TOS)长度为8位(bit),其组成:前3位为优先级(Precedence),后4位标志位,最后1位保留未用。

优先级主要用于QoS,表示从0(普通级别)到7(网络控制分组)的优先级。

标志位可分别表示D(Delay更低的时延)、T(Throughput 更高的吞吐量)、R(Reliability更高的可靠性)、C(Cost 更低费用的路由)。

TOS只表示用户的请求,不具有强制性,实际应用中很少用,路由器通常忽略TOS字段。

4、总长度(Total Length)指IP包总长度,用16位(bit)表示,即IP包最大长度可以达216=65535字节。

在以太网中允许的最大包长为1500B,当超过网络允许的最大长度时需将过长的数据包分片。

5、标识符(Identifier)长度为16位,用于数据包在分段重组时标识其序列号。

将数据分段后,打包成IP 包,IP包因走的路由上不同,会产生不同的到达目地的时间,到达目地的后再根据标识符进行重新组装还原。

该字段要与标志、段偏移一起使用的才能达到分段组装的目标。

6、标志(Flags)长度为3位,三位从左到右分别是MF、DF、未用。

MF=1表示后面还有分段的数据包,MF=0表示没有更多分片(即最后一个分片)。

ipip隧道协议报文格式

ipip隧道协议报文格式

ipip隧道协议报文格式本文将为大家介绍ipip隧道协议报文格式。

隧道协议指的是一种在网络层进行连接的协议,其目的是为了在不同网络之间建立通信的链路。

ipip隧道协议报文格式主要包括源IP地址、目的IP地址、协议类型、报文长度和数据部分。

下面将逐一介绍每个字段的含义和格式。

1. 源IP地址:该字段用来指示报文的来源IP地址,通常以32位的二进制形式表示,如192.168.1.1。

源IP地址的作用是用来标识报文的发送方。

2. 目的IP地址:该字段用来指示报文的目的IP地址,也以32位的二进制形式表示。

目的IP地址的作用是用来标识报文的接收方。

3. 协议类型:该字段用来指示报文所使用的协议类型,如TCP、UDP等。

协议类型通常以数字形式表示,例如TCP对应的协议类型为6,UDP对应的协议类型为17。

4. 报文长度:该字段用来指示报文的总长度,以字节为单位。

报文长度的值应包括报头和数据部分的长度。

5. 数据部分:该字段包含了报文的实际数据内容,可以根据具体的需求进行定义。

数据部分可以包含任意长度的信息,根据使用的协议类型和应用场景的不同,数据部分的格式和内容也会有所不同。

在ipip隧道协议中,报文的格式通常采用固定长度的报头和可变长度的数据部分。

报文的长度和字段的顺序是固定的,这样接收方可以根据报文格式来正确解析和处理报文。

总结一下,ipip隧道协议报文格式包括源IP地址、目的IP地址、协议类型、报文长度和数据部分。

通过这些字段的组合,可以实现网络间的通信和数据传输。

在实际应用中,可以根据具体的需求和协议类型来定义报文的格式和内容,以满足不同的业务需求。

希望本文对大家理解ipip隧道协议报文格式有所帮助。

如果还有其他疑问或需求,请随时在评论区留言。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TCP/IP数据报格式分析IP 数据包格式(1)版本占4位,指IP协议的版本。

通信双方使用的IP协议版本必须一致。

目前广泛使用的IP协议版本号为4(即IPv4)。

关于IPv6,目前还处于草案阶段。

(2)首部长度占4位,可表示的最大十进制数值是15。

请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。

当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。

因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。

首部长度限制为60字节的缺点是有时可能不够用。

但这样做是希望用户尽量减少开销。

最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。

(3)区分服务占8位,用来获得更好的服务。

这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。

1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。

只有在使用区分服务时,这个字段才起作用。

(4)总长度总长度指首部和数据之和的长度,单位为字节。

总长度字段为16位,因此数据报的最大长度为216-1=6553 5字节。

在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元M TU(Maximum Transfer Unit)。

当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。

(5)标识(identification)占16位。

IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。

但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。

当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。

相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

(6)标志(flag)占3位,但目前只有2位有意义。

●标志字段中的最低位记为MF(More Fragment)。

MF=1即表示后面“还有分片”的数据报。

MF=0表示这已是若干数据报片中的最后一个。

●标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。

只有当DF=0时才允许分片。

(7)片偏移占13位。

片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。

也就是说,相对用户数据字段的起点,该片从何处开始。

片偏移以8个字节为偏移单位。

这就是说,每个分片的长度一定是8字节(64位)的整数倍。

(8)生存时间占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。

由发出数据报的源点设置这个字段。

其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。

最初的设计是以秒作为TTL的单位。

每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。

若数据报在路由器消耗的时间小于1秒,就把TTL值减1。

当TTL值为0时,就丢弃这个数据报。

(9)协议占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。

(10)首部检验和占16位。

这个字段只检验数据报的首部,但不包括数据部分。

这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。

不检验数据部分可减少计算的工作量。

(11)源地址占32位。

(12)目的地址占32位。

∙源端口号(16 位):它(连同源主机IP 地址)标识源主机的一个应用进程。

∙目的端口号(16 位):它(连同目的主机IP 地址)标识目的主机的一个应用进程。

这两个值加上IP 报头中的源主机IP 地址和目的主机IP 地址唯一确定一个TCP 连接。

∙顺序号(32 位):用来标识从TCP 源端向TCP 目的端发送的数据字节流,它表示在这个报文段中的第一个数据字节的顺序号。

如果将字节流看作在两个应用程序间的单向流动,则TCP 用顺序号对每个字节进行计数。

序号是32bit 的无符号数,序号到达 2 32 - 1 后又从0开始。

当建立一个新的连接时,SYN 标志变 1 ,顺序号字段包含由这个主机选择的该连接的初始顺序号ISN (Initial Sequence Number )。

∙确认号(32 位):包含发送确认的一端所期望收到的下一个顺序号。

因此,确认序号应当是上次已成功收到数据字节顺序号加 1 。

只有ACK 标志为 1 时确认序号字段才有效。

TCP 为应用层提供全双工服务,这意味数据能在两个方向上独立地进行传输。

因此,连接的每一端必须保持每个方向上的传输数据顺序号。

∙TCP 报头长度( 4 位):给出报头中32bit 字的数目,它实际上指明数据从哪里开始。

需要这个值是因为任选字段的长度是可变的。

这个字段占4bit ,因此TCP 最多有60 字节的首部。

然而,没有任选字段,正常的长度是20 字节。

∙保留位( 6 位):保留给将来使用,目前必须置为0 。

∙控制位(control flags , 6 位):在TCP 报头中有 6 个标志比特,它们中的多个可同时被设置为 1 。

依次为:∙URG :为 1 表示紧急指针有效,为0 则忽略紧急指针值。

∙ACK :为 1 表示确认号有效,为0 表示报文中不包含确认信息,忽略确认号字段。

∙PSH :为 1 表示是带有PUSH 标志的数据,指示接收方应该尽快将这个报文段交给应用层而不用等待缓冲区装满。

∙RST :用于复位由于主机崩溃或其他原因而出现错误的连接。

它还可以用于拒绝非法的报文段和拒绝连接请求。

一般情况下,如果收到一个RST 为 1 的报文,那么一定发生了某些问题。

∙SYN :同步序号,为 1 表示连接请求,用于建立连接和使顺序号同步(synchronize )。

∙FIN :用于释放连接,为 1 表示发送方已经没有数据发送了,即关闭本方数据流。

∙窗口大小(16 位):数据字节数,表示从确认号开始,本报文的源方可以接收的字节数,即源方接收窗口大小。

窗口大小是一个16bit 字段,因而窗口大小最大为65535∙.. 字节。

∙校验和(16 位):此校验和是对整个的TCP 报文段,包括TCP 头部和TCP 数据,以16 位字进行计算所得。

这是一个强制性的字段,一定是由发送端计算和存储,并由接收端进行验证。

∙紧急指针(16 位):只有当URG 标志置 1 时紧急指针才有效。

紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号。

TCP 的紧急方式是发送端向另一端发送紧急数据的一种方式。

∙选项:最常见的可选字段是最长报文大小,又称为MSS(Maximum Segment Size) 。

每个连接方通常都在通信的第一个报文段(为建立连接而设置SYN 标志的那个段)中指明这个选项,它指明本端所能接收的最大长度的报文段。

选项长度不一定是32 位字的整数倍,所以要加填充位,使得报头长度成为整字数。

∙数据:TCP 报文段中的数据部分是可选的。

在一个连接建立和一个连接终止时,双方交换的报文段仅有TCP 首部。

如果一方没有数据要发送,也使用没有任何数据的首部来确认收到的数据。

在处理超时的许多情况中,也会发送不带任何数据的报文段。

请求端(通常称为客户)发送一个SYN 报文段(SYN 为 1 )指明客户打算连接的服务器的端口,以及初始顺序号(ISN )。

∙服务器发回包含服务器的初始顺序号(ISN )的SYN 报文段(SYN 为 1 )作为应答。

同时,将确认号设置为客户的ISN 加 1 以对客户的SYN 报文段进行确认(ACK 也为 1 )。

∙客户必须将确认号设置为服务器的ISN 加 1 以对服务器的SYN 报文段进行确认(ACK 为 1 ),该报文通知目的主机双方已完成连接建立。

三次握手协议可以完成两个重要功能:它确保连接双方做好传输准备,并使双方统一了初始顺序号。

初始顺序号是在握手期间传输顺序号并获得确认:当一端为建立连接而发送它的 SYN 时,它为连接选择一个初始顺序号;每个报文段都包括了顺序号字段和确认号字段,这使得两台机器仅仅使用三个握手报文就能协商好各自的数据流的顺序号。

一般来说, ISN 随时间而变化,因此每个连接都将具有不同的 ISN 。

TCP 采用一种名为“带重传功能的肯定确认( positive acknowledge with retransmission )”的技术作为提供可靠数据传输服务的基础。

这项技术要求接收方收到数据之后向源站回送确认信息 ACK 。

发送方对发出的每个分组都保存一份记录,在发送下一个分组之前等待确认信息。

发送方还在送出分组的同时启动一个定时器,并在定时器的定时期满而确认信息还没有到达的情况下,重发刚才发出的分组。

图 3-5 表示带重传功能的肯定确认协议传输数据的情况,图 3-6 表示分组丢失引起超时和重传。

为了避免由于网络延迟引起迟到的确认和重复的确认,协议规定在确认信息中稍带一个分组的序号,使接收方能正确将分组与确认关联起来。

从图3-5 可以看出,虽然网络具有同时进行双向通信的能力,但由于在接到前一个分组的确认信息之前必须推迟下一个分组的发送,简单的肯定确认协议浪费了大量宝贵的网络带宽。

为此,TCP 使用滑动窗口的机制来提高网络吞吐量,同时解决端到端的流量控制。

滑动窗口技术是简单的带重传的肯定确认机制的一个更复杂的变形,它允许发送方在等待一个确认信息之前可以发送多个分组。

如图 3-7 所示,发送方要发送一个分组序列,滑动窗口协议在分组序列中放置一个固定长度的窗口,然后将窗口内的所有分组都发送出去;当发送方收到对窗口内第一个分组的确认信息时,它可以向后滑动并发送下一个分组;随着确认的不断到达,窗口也在不断的向后滑动。

Tcp数据包格式。

相关文档
最新文档