完整版协议分析 数据报格式_第1页
完整版协议分析 数据报格式_第2页
完整版协议分析 数据报格式_第3页
完整版协议分析 数据报格式_第4页
完整版协议分析 数据报格式_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、两种不同的MAC帧格式常用的以太网MAC帧格式有两种标准,一种是DIX Ethernet V2标准,另一 种是IEEE的802.3标准。如下图所示,为便于理解,图中假定网络层使用的是 IP协议。实际上使用其他的协议也是可以的。題镯鱷薜;:F =Li1 &长度漠席了段I.农厅妝度时字节弋.丄 - MAC WTTTi:;1 i .:这种802乜+加2,2匚: I厂二 dsap|ssaH 控制计冃的地匸源地址长度/类型IP數据眾k :U:i MLip层SSAP|控制43-M974I I-PCSMAC子层丿1 字节i6 246-15004 ;K?S I MAC 层的地址源地址蠶v 据bii胃”二 ;P

2、层IP数据报物理k以成网VMACtlJiT字节T字节-化10101010101010 . 10101010101010101011现在MAC帧最常用的是以太网V2的格式,它较为简单,由5个字段组 成。前两个字段分别为6字节长的目的地址和源地址字段。第三个字段是2字节的类型宇段,用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议。 施乐公司负责管理这个类型字段的代码 分配。例如,当类型字段的值是0x0800时,就表示上层使用的是IP数据报。 若类型字段的值为0x8137,则表示该帧是由Novell IPX发过来的。第四个字 段是数据字段,但它的正式名称是MAC客

3、户数据宇段,其长度在46到1500 字节之间。最后一个字段是 4字节的帧检验序列FCS。当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面加 入一个整数字节的填充字段,以保证以太网的MAC帧长不小于64字节。我 们应当注意到,MAC帧的首部并没有指出数据字段的长度是多少。在有填 充字段的情况下,接收端的MAC子层在剥去首部和尾部后就将数据字段和 填充字段一起交给上层协议。然而IEEE 802.3标准规定的MAC帧则较为复杂。它和以太网V2的MAC帧的区别是:(1)第三个字段是长度 /类型字段。根据长度 /类型字段的数值大小, 这个字 段可以表示 MAC 帧的数据字段长度 (请注意:

4、不是整个 MAC 帧的长度 ),也 可以等同于以太网 V2 的类型字段。具体地讲:若长度 /类型字段的数值小于 MAC 帧的数据字段的最大值 1500(字节 ), 这个字段就表示 MAC 帧的数据字段长度。若长度/类型字段的数值大于0x0600(相当于十进制的1536),那么这个数 值就不可能表示以太网有效的数据字段长度,因而这个字段就表示类型。当长度 /类型字段表示类型时, 802.3 的 MAC 帧和以太网 V2 的 MAC 帧 一样。当长度/类型字段表示长度时, MAC 帧就必须装入 8022标准定义的 LLC 子层的 LLC 帧。从图中可看出, 在传输媒体上实际传送的要比 MAC 帧还

5、多 8 个字节。这 是因为当一个站在刚开始接收 MAC 帧时,由于尚未与到达的比特流达成同 步,因此 MAC 帧的最前面的若干个比特就无法接收,结果使整个的 MAC 成为无用的帧。为了达到比特同步,从 MAC 子层向下传到物理层时还要在 帧的前面插入 8字节(由硬件生成 ),它由两个字段构成。第一个字段共 7个 字节,称为前同步码 (1 和 0 交替的码 )。前同步码的作用是使接收端在接收 MAC 帧时能够迅速实现比特同步。第二个字段是帧开始定界符,定义为 10101011,表示在这后面的信息就是 MAC 帧了。在 MAC 子层的 FCS 的检 验范围不包括前同步码和帧开始定界符。顺便指出,在

6、广域网点对点通讯中 使用同步传输的 HDLC 规程时则不需要用前同步码, 因为在同步传输时收发 双方的比特同步总是一直保持着的。802.3标准规定凡出现下列情况之一的即为无效的MAC 帧:(1)MAC 客户数据字段的长度与长度字段的值不一致;(2)帧的长度不是整数个字节;(3)用收到的帧检验序列FCS查出有差错;(4)收到的帧的 MAC 客户数据字段的长度不在 46 1 500字节之间。考虑 到MAC帧首部的长度是18字节,可以得出有效的MAC帧长度为641518 字节之间。对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。当 MAC 客户数据字段的长度小于 46字节时,则应

7、加以填充 (内容不限 )。 这样,整个 MAC 帧(包含 14字节首部和 4字节尾部)的最小长度是 64字节, 或 5 1 2bit。MAC子层的标准还规定了帧间最小间隔为 9.6us,相当于96bit的发送时 间。这就是说,一个站在检测到总线开始空闲后,还要等待9.6us才能发送 数据。这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接 收下一帧的准备。1)IP分组格式分析IP数据报的格式能够说明IP协议都具有什么功能。在TCP/IP的标准中,各 种数据格式常常以32bit(即4字节)为单位来描述。下图是IP数据报的完整格式。丄Bl C 岸用D一个IP数据报由首部和数据两部分组成。

8、首部的前一部分是固定长度,共比特tt先级20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字 段,其长度是可变的。首部各字段的意义如下:(1)IP数据报首部的固定部分中的各字段a)版本 占4bit,指IP协议的版本。通信双方使用的IP协 议的版本必须一致。目前广泛使用的IP协议版本号为4(即 IPv4)。以前的3个版本目前已不使用。(2) 首部长度占4bit可表示的最大数值是15个单位(一个单位为4字节),因此IP的首部长度的最大值是60字节。当IP分 组的首部长度不是4字节的整数倍时,必须利用最后一个填充字 段加以填充。因此数据部分永远在4字节的整数倍时开始,这样 在实现

9、IP协议时较为方便。最常用的首部长度值就是20字节,即不使用任何选项。(3)服务类型占8bit,用来获得更好的服务,其意义见图的上面部分所示。a)前三个比特表示优先级,它可使数据报具有8个优先级中的 一个。b)第4个比特是D比特,表示要求有更低的时延。c)第5个比特是T比特,表示要求有更高的吞吐量。d)第6个比特是R比特,表示要求有更高的可靠性(即在数据 报传送的过程中,被路由器丢弃的概率要更小些 )。e)第7个比特是C比特,是新增加的,表示要求选择代价更小 的路由。f)最后一个比特目前尚未使用4) 总长度总长度指首部和数据之和的长度,单位为字节总长度字段为16bit,因此数据报的最大长度为

10、65 535字节(即 64KB)。在IP层下面的每一种数据链路层都有其自己的帧格式, 其中包括帧格式中的数据宇段的最大长度 MTU 。当一个 IP 数据 报封装成链路层帧时,此数据报的总长度 (即首部加上数据部分 ) 一定不能超过下面的数据链路层的 MTU 值.虽然使用尽可能长 的数据报会使传输效率提高, 但由于以太网的普遍应用, 所以实 际上 使用的数据报长度很少有超过 1500字节的,而有时数据 报长度还被限制在 576 字节。当数据报长度超过网络所容许的最 大传送单元 MTU 时,就必须将过长的数据报进行分片后才能在 网络上传送 (见后面的“片偏移”字段 )。这时,数据报首部中的 “总长

11、度”字段不是指未分片前的数据报长度, 而是指分片后每 片的首部长度与数据长度的总和。(5)标识(ide ntificatio n) 占16bit,它是一个计数器,用来产生数 据报的标识。但这里的“标识”并没有序号的意思,因为 IP 是 五连接服务,数据报不存在按序接收的问题。当 IP 协议发送数 据报时,它就将这个计数器的当前值复制到标识字段中。 当数据 报由于长度超过网络的 MTU 而必须分片时,这个标识字段的值 就被复制到所有的数据报片的标识字段中。 相同的标识字段的值 使分片后的各数据报片最后能正确地重装成为原来的数据报。( 6) 标志 (flag) 占 3bit 目前只有前两个比特有意

12、义。a)标志字段中的最低位记为 MF(More Fragment)。 MF=1 即表 示后面“还有分片的数据报。 MF=0 表示这已是若干数据 报片中的最后一个。b)标志字段中间的一位记为 DF(DontFragment),意思是“不能 分片”。只有当 DF=0 时才允许分片。( 7) 片偏移 较长的分组在分片后, 某片在原分组中的相对位置。 也就是说, 相对于用户数据字段的起点, 该片从何处开始。 片偏 移以 8 个字节为偏移单位。这就是说,每个分片的长度一定是 8 字节(64bit)的整数倍。例一数据报的数据部分为 3800字节长 (使用固定首部 ),需要分片为长度不 超 过 1420字节

13、的数据报片。因固定首部长度为 20 字节,因此每个数据报片的 数据部分长度不能超过 1400字节。于是分为 3 个数据报片,其数据部分的长度 分别为 1400, 1400和 1000 字节。原始数据报首部被复制为各数据报片的首部, 但必须修改有关字段的值。可能的分片按总长,标识, MF, DF ,片偏移顺序排列如下:原始数据报:3820,12345,0,0,0分片 1:1420,12345,1,0,0分片 2:1420,12345,1,0,175分片 3:1020,12345,0,0,350标识字段的值是任意给定的。具有相同标识的数据报片在目的站就可无误 地重装成原来的数据报。现在假定数据报片

14、 2 经过某个网络时还要再进行分片,即划分为数据报片 2-1(携带数据 800 字节)和数据报片 2-2(携带数据 600 字节)。那么这两个数据报 片的总长度、标识、 MF 、DF 和片偏移分别为: 820,12345,1,0,175;620, 12345,1,0,275。(8)生存时间生存时间字段记为 TTL(Time To Live) ,即数据报在网络中的寿命,其单位为秒。生存时间的建议值是 32 秒。 但也可设定为34秒,甚至255秒。例: tracert 命令的分析,利用 TTL 检测网络节点(9)协议占 8bit ,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的 I

15、P 层知道应将数据部分上交给哪个 处理过程。(10)首部检验和此字段只检验数据报的首部,不包括数据部分。这是因为数据报每经过一个结点, 结点处理机都要重新计算 一下首部检验和 (一些字段,如生存时间、标志、片偏移等都可 能发生变化 )。如将数据部分一起检验,计算的工作量就太大了。(11) 源地址占 4 字节。(12) 目的地址占 4 字节。(13)可变部分:取决于需要。2) TCP报文段的格式一个TCP报文段分为首部和数据两部分。应当指出, TCP的全部功能都体 现在它首部中各字段的作用。因此,只有弄清 TCP首部各字段的作用才能掌握 TCP的工作原理。TCP报文段首部的前20个字节是固定的,

16、后面有4N字节是根据需要而增加 的选项(N必须是整数)。因此TCP首部的最小长度是20字节。首部固定部分各字段的意义如下:(1) 源端口和目的端口各占2个字节。前面已讲过,端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。(2) 序号占4字节。TCP是面向数据流的。TCP传送的报文可看成为连续的数据流。TCP把在一个TCP连接中传送的数据流中的每一个字节都编上一个 序号。整个数据的起始序号在连接建立时设置。首部中的序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。例如,一报文段的序号字段的值是301,而携带的数据共有100字节。这就表明:本报文段的数据的最后

17、一个字节 的序号应当是400。我们还可看到,下一个报文段的数据序号应当从401开始,因而下一个报文段的序号字段值应为 401。(3) 确认号 占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号,也就是期望收到的下一个报文段首部的序号字段的值。例如,A正确收到了 B发送过来的一个报文段,其序号字段的值是501,而数据长度是200字节,这就表明A已正确收到了 B发送的序号在501至700之间的数据。因此, A期望收到B的下一个报文段的首部中的序号字段应为701,于是A在发送给B的响应报文段中将首部中的确认号置为701。由于序号字段有 32bit长,可对4GB(即4千兆字节)的数据进行编

18、号。这样就可保证当序号重复使用时,旧序号的数据早已在网络中消失了。(4) 数据偏移占4bit,它指出TCP报文段的数据起始处距离TCP报文段 的起始处有多远。这实际上就是 TCP 报文段首部的长度。由于首部长度不固定 (因 首部中还有长度不确定的选项字段 ),因此数据偏移字段是必要的。 但应注意,“数 据偏移”的单位不是字节而是 32bit 字 (即以 4 字节长的字为计算单位 )。由于 4bit 能够表示的最大十进制数字是 15,因此数据偏移的最大值是 60 字节,这也是 TCP 首部的最大长度。(5) 保留占 6bit ,保留为今后使用,但目前应置为 0。下面有 6 个比特是说明本报文段性

19、质的控制比特。(6) 紧急比特 URG(URGent) 当 URG=1 时,表明紧急指针字段有效。它告 诉系统此报文段中有紧急数据,应尽快传送 (相当于高优先级的数据 ),而不要按 原来的排队顺序来传送。 例如,已经发送了很长的一个程序要在远地的主机上运 行。但后来发现了一些问题, 需要取消该程序的运行。 因此用户从键盘发出中断 命令(Control+C)。如果不使用紧急数据,那么这两个字符将存储在接收TCP缓存的末尾。只有在所有的数据被处理完毕后这两个字符才交付到接收应用进程。 这样做就浪费了许多时间。当使用紧急比特并将URG置1时,发送应用进程就告诉发送 TCP这两个字 符是紧急数据。于是

20、发送 TCP 就将这两个字符插入到报文段的数据的最前面, 其余的数据都是普通数据。这时要与首部中第5个32bit字中的一半“紧急指针” (Urgent Pointer)字段配 合使用。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。 紧急指 针使接收方知道紧急数据共有多少个字节。 紧急数据到达接收端后, 当所有紧急 数据都被处理完时, TCP 就告诉应用程序恢复到正常操作。 值得注意的是, 即使 窗口为零时也可发送紧急数据。(7) 确认比特 ACK只有当 ACK=1 时确认号字段才有效。当 ACK=0 时,确认号无效。(8) 推送比特 PSH(PuSH) 当两个应用进程进行交互式的通信

21、时,有时在一 端的应用进程希望在键入一个命令后立即就能够收到对方的响应。在这种情况下,TCP就可以使用推送(push臊作。这时,发送端TCP将推送比特PSH置1, 并立即创建一个报文段发送出去。接收 TCP 收到推送比特置 1 的报文段,就尽 快地 (即“推送”向前 )交付给接收应用进程,而不再等到整个缓存都填满了后再 向上交付。 PSH 比特也可叫做急迫比特。虽然应用程序可以选择推送操作,但推送操作还是往往不被人们使用。 TCP 可以选择或不选择这个操作。(9) 复位比特 RST(ReSeT)当 RST=1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因 ),必须释放连接,然

22、后再重新建立运输连接。复位 比特还用来拒绝一个非法的报文段或拒绝打开一个连接。 复位比特也可称为重建比特或重置比特(10) 同步比特 SYN在连接建立时用来同步序号。当 SYN=1 而 ACK=0时,表明这是一个连接请求报文段。 对方若同意建立连接, 则应在响应的报文段 中使 SYN=1 和 ACK=1 。因此,同步比特 SYN 置为 1,就表示这是一个连接请 求或连接接受报文。(11) 终止比特 FIN(FINal)用来释放一个连接。 当 FIN=1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。(12) 窗口占 2 字节。窗口字段用来控制对方发送的数据量, 单位为字节。计算

23、机网络经常是用接收端的接收能力的大小来控制发送端的数据发送量。 TCP 也是这样。 TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小, 然后通知对方以确定对方的发送窗口的上限。将 TCP 连接的两端分别记为 A 和 Bo若A确定自己的接收窗口为 WIN,则A发送给B的TCP报文段的窗口字段 中写入WIN的数值。这就是告诉B的TCP,“你(b)在未收到我(a)的确认时所能 够发送的数据量的上限就是从本首部中的确认号开始的WIN个字节。”所以A所设定的WIN既是A的接收窗口,同时也就是B的发送窗口的上限值。例如, A 在发送给 B 的报文段的首部中将窗口字段的值 WIN 置为 500

24、,将确认号置为 201。这就是告诉B :“你(b)在未收到确认的情况下,最多可向我(a)发送序号从 201开始到700共500字节的数据”。B在收到此报文段后,就用此窗口数值500 作为B的发送窗口的上限值。但应注意,B向A发送的报文段的首部也有一个 窗口字段,但这是根据B的接收能力来确定A的发送窗口上限,一定不要弄混。(13) 检验和占2字节。检验和字段检验的范围包括首部和数据这两部分。和UDP用户数据报一样,在计算检验和时,要在TCP报文段的前面加上12 字节的伪首部。伪首部的格式与 UDP用户数据报的伪首部一样。但应将伪首部 第 4 个字段中的 17 改为 6(TCP 的协议号是 6),

25、将第 5 字段中的 UDP 长度改为 TCP长度。接收端收到此报文段后,仍要加上这个伪首部来计算检验和。(14) 选项长度可变。TCP只规定了一种选项,即最大报文段长度MSS(Maximum Segment Size)。MSS告诉对方TCP: “我的缓存所能接收的报文 段的数据字段的最大长度是 MSS个字节。”当没有使用选项时,TCP的首部长度 是 20 字节。MSS 的选择并不太简单。若选择较小的 MSS 长度,网络的利用率就降低。 设想在极端的情况下,当 TCP 报文段只含有 1 字节的数据时,在 IP 层传输的数 据报的开销至少有 40 字节(包括 TCP 报文段的首部和 IP 数据报的

26、首部 )。这样, 对网络的利用率就不会超过 141。到了数据链路层还要加上一些开销。但反过 来,若 TCP 报文段非常长,那么在 IP 层传输时就有可能要分解成多个短数据报 片。在目的站要将收到的各个短数据报片装配成原来的 TCP 报文段。当传输出 错时还要进行重传。这些也都会使开销增大。一般认为, MSS 应尽可能大些, 只要在 IP 层传输时不需要再分片就行。在连接建立的过程中,双方都将自己能 够支持的 MSS 写入这一字段。在以后的数据传送阶段, MSS 取双方提出的较小 的那个数值。若主机未填写这项,则 MSS 的默认值是 536字节长。因此,所有 在因特网上的主机都应能接受的报文段长

27、度是 536+20=556 字节。3)TCP 的数据编号与确认TCP 协议是面向字节的。 TCP 将所要传送的整个报文 (这可能包括许多个报 文段)看成是一个个字节组成的数据流,并使每一个字节对应于一个序号。在连 接建立时, 双方要商定初始序号。 TCP 每次发送的报文段的首部中的序号字段数 值表示该报文段中的数据部分的第一个字节的序号。TCP 的确认是对接收到的数据的最高序号 (即收到的数据流中的最后一个序 号 )表示确认。但接收端返回的确认号是已收到的数据的最高序号加1。也就是说,确认号表示接收端期望下次收到的数据中的第一个数据字节的序号。TCP 传输的可靠是由于使用了序号和确认。当 TC

28、P 发送一报文段时,它同 时也在自己的重传队列中存放一个副本。 若收到确认, 则删除此副本。 若在计时 器时间到之前没有收到确认, 则重传此报文段的副本。 TCP 的确认并不保证数据 已由应用层交付给了端用户,而只是表明在接收端的 TCP 收到了对方所发送的 报文段。由于TCP连接能提供全双工通信,因此通信中的每一方都不必专门发送确认 报文段,而可以在传送数据时顺便把确认信息捎带传送。 这样做可以提高传输效 率。TCP 有三种基本机制来控制报文段的发送。第一种机制是 TCP 维持一个变 量,它等于最大报文段长度 MSS。只要发送缓存从发送进程得到的数据达到 MSS 字节时,就组装成一个 CP

29、报文段,然后发送出去。第二种机制是发送端的应用 进程指明要求发送报文段,即TCP支持的推送(push)操作。第三种机制是发送端 的一个计时器时间到了,这时就把当前已有的缓存数据装入报文段发送出去。但是,如何控制 TCP 发送报文段的时机仍然是一个较为复杂的问题。例如, 一个交互式用户使用一条 TELNET 连接(运输层为 TCP 协议)。设用户只发一个 字符。加上20字节的首部后,得到21字节长的TCP报文段。再加上20字节的 IP 首部,形成 41 字节长的 IP 数据报。在接收端 TCP 立即发出确认,构成的数 据报是 40 字节长(假定没有数据发送 )。若用户要求远地主机回送这一字符,则

30、 又要发回41字节长的IP数据报和40字节长的确认IP数据报。这样,用户仅发 一个字符时线路上就需传送总长度为 162字节共 4 个报文段。当线路带宽并不富 裕时,这种传送方法的效率的确不高。 因此应适当推迟发回确认报文, 并尽量使 用捎带确认的方法。若发送方在规定的设置时间内没有收到确认,就要将未被确认的报文段重新 发送。接收方若收到有差错的报文段,则丢弃此报文段 (不发送否认信息)。若收 到重复的报文段,也要将其丢弃,但要发回(或捎带发问)确认信息。这与数据链 路层的情况相似。若收到的报文段无差错,只是未按序号,那么应如何处理 ?TCP对此未作明 确规定,而是让TCP的实现者自行确定。或者

31、将不按序的报文段丢弃,或者先 将其暂存于接收缓存内,待所缺序号的报文段收齐后再一起上交应用层。如有可 能,采用后一种策略对网络的性能会更好些。4)流量/拥塞控制与滑动窗口为了提高报文段的传输效率,TCP采用大小可变的滑动窗口进行流量控制。 窗口大小的单位是字节。在 TCP报文段首部的窗口字段写入的数值就是当前给 对方设置的发送窗口数值的上限。发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己 的资源情况,随时动态地调整对方的发送窗口上限值 (可增大或减小)。这种由接 收端控制发送端的做法,在计算机网络中经常使用。下面通过图示说明利用可变窗口大小进行流量控制。设主机A向主机B发送

32、数据。双方确定的窗口值是400。再设每一个报文段 为100字节长,序号的初始值为1(见图中第一个箭头上的SEQ=1。图中右边的 注释可帮助理解整个的过程)。我们应注意到,主机B进行了三次流量控制。第 一次将窗口减小为300字节,第二次又减为200字节,最后一次减至零,即不允 许对方再发送数据了。这种暂停状态将持续到主机B重新发出一个新的窗口值为止。主肌ASEQ- ISEQ= 101A还能发送200 7节盂机BSEQ = 4OJSEiQ = 20)I:ACK-50L WtN = 200 r*ACK = 601,WTN-0,允诃A再规送300字节(序号201至500 人还能发送200字节(序号扣I

33、 500)几还能发送!00字节(序号401至50U)A趙时富发*怛不能旋送序号500以后的数据 允许A再发送药0字节(序号501 .700)A还能坡送100字节(序号50】至700斗允许a戢迭【到序号妣的數拥滞收到了)发送端利用发送窗口(这个窗口取决于对方的接收窗口 )调节向网络注入分组的速率不仅仅是为了使接收端来得及接收,而且还是为了对网络进行拥塞控制我们知道,拥塞发生在通过网络传输的分组数量开始接近网络对分组的处理能力 时。从这个角度看,拥塞控制的目标就是将网络中的分组数量维持在一定的水平 之下。若网络中的分组数量超过这个水平, 网络的性能就会急剧恶化。拥塞控制 也是运输层必须解决的一个非

34、常复杂的问题。5)TCP的运输连接管理(1)运输连接的三个阶段TCP是面向连接的协议。运输连接是用来传送TCP报文的。TCP的运输连接的建立和释放是每一次面向连接的通信中必不可少的过程。因此,运输连接就有三个阶段,即:连接建立、数据传送和连接释放。运输连接的管理就是使运输 连接的建立和释放都能正常地进行。在连接建立过程中要解决以下三个问题:(1)要使每一方能够确知对方的存在。(2)要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务 质量等)。(3)能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。TCP的连接和建立都是采用客户服务器方式。主动发起连接建立的应用进程 叫做客户

35、(client),而被动等待连接建立的应用进程叫做服务器 (server)。k机A主机B a主动打开连接溝求SYN, SEQ = x被动打开SYN, ACK. SEQ = y, ACK= x+ 1“ 确认确认ACK, = x + 】,ACK 二 y + 1设主机B中运行一个服务器进程,它先发出一个被动打开(passive open命令, 告诉它的TCP要准备接受客户进程的连接请求。然后服务器进程就处于“听” (liste n)的状态,不断检测是否有客户进程要发起连接请求。如有,即作出响应。设客户进程运行在主机 A中。它先向其TCP发出主动打开(active open命令, 表明要向某个IP地址

36、的某个端口建立运输连接。主机A的TCP向主机B的TCP发出连接请求报文段,其首部中的同步比特 SYN应置1,同时选择一个序号x,表明在后面传送数据时的第一个数据字节的 序号是x+l。主机B的TCP收到连接请求报文段后,如同意,贝U发问确认。在确认报文 段中应将SYN和ACK都置1,确认号应为x+1,同时也为自己选择一个序号y。主机A的TCP收到B的确认后,要向B给出确认,其ACK置1,确认号为y+1, 而自己的序号为x+1。TCP的标准规定,SYN置1的报文段要消耗掉1个序号。运行客户进程的主机 A的TCP通知上层应用进程,连接已经建立。当主机 A向B发送第一个数据报文段时,其序号仍为x+1,因为前一个确认报文段并不 消耗序号。当运行服务器进程的主机 B的TCP收到主机A的确认后,也通知其上层应 用进程,连接已经建立。连接建立采用的这种过程叫做三次握手(three-w

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论