计算机网络协议
计算机网络协议教案
一、TCP/IP协议族的结构和协议
TCP/IP协议簇是Internet的根底,也是当今最流行的组网形式。TCP/IP是一组协议的代名词,包括许多别的协议,组成了. 2 5 2 . 1 3 . 6 3〕是子网1 4 0 . 2 5 2 . 1 3 . 3 2的播送地址〔见图3 - 1 2〕。
ICMP时间戳请求与应答
I C M P时间戳请求允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始计算的毫秒数,协调的统一时间〔
Coordinated Universal Time, UTC〕〔早期的参考手册认为
U T C是格林尼治时间〕。这种I C M P报文的好处是它提供了毫秒级的分辨率,而利用其他方法从别的主机获取的时间〔如某些 U n i x系统提供的r d a t e命令〕只能提供秒级的分辨率。由于返回的时间是从午夜开始计算的,因此调用者必须通过其他方法获知当时的日期,这是它的一个缺陷。
请求端填写发起时间戳,然后发送报文。应答系统收到请求报文时填写接收时间戳,在发送应答时填写发送时间戳。但是,实际上,大多数的实现把后面两个字段都设成相同的值
〔提供三个字段的原因是可以让发送方分别计算发送请求的时间和发送应答的时间〕。
〔二〕用户数据报协议
UDP协议
引言
U D P是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个 U D P
数据报,并组装成一份待发送的 I P数据报。
这与面向流字符的协议不同,如 T C P,应用程序产生的全体数据与真正发送的单个 I P数据报可能没有什么联系。
U D P数据报封装成一份 I P数据报的格式如图11 - 1所示。
RFC 768 [Postel 1980] 是U D P的正式标准。
U D P不提供可靠性:它把应用程序传给 I P层的数据发送出去,但是并不保证它们能到达
目的地。由于缺乏可靠性,我们似乎觉得要防止使用 U D P而使用一种可靠协议如 T C P。我们在第1 7章讨论完T C P后将再回到这个话题,看看什么样的应用程序可以使用 U D P。
应用程序必须关心 I P数据报的长度。如果它超过网络的 M T U〔2 . 8节〕,那么就要对I P数据报进行分片。如果需要,源端到目的端之间的每个网络都要进行分片,并不只是发送端主机连接第一个网络才这样做〔我们在 2 . 9节中已定义了路径 M T U的概念〕。在11 . 5节中,我们将讨论I P分片机制。
UDP首部
U D P首部的各字段如图11 - 2所示。
端口号表示发送进程和接收进程。在图 1 - 8中,我们画出了T C P和U D P用目的端口号来分用来自I P层的数据的过程。由于I P层已经把I P数据报分配给T C P或U D P〔根据I P首部中协议字段值〕,因此T C P端口号由T C P来查看,而U D P端口号由U D P来查看。T C P端口号与U D P端口
号是相互独立的。
U D P长度字段指的是U D P首部和U D P数据的字节长度。该字段的最小值为 8字节〔发送一份0字节的U D P数据报是O K〕。这个U D P长度是有冗余的。 I P数据报长度指的是数据报全长〔图3 - 1〕,因此U D P数据报长度是全长减去 I P首部的长度〔该值在首部长度字段中指定,如图3 - 1所示〕。
UDP检验和
U D P检验和覆盖U D P首部和U D P数据。回想I P首部的检验和,它只覆盖I P的首部 — 并不
覆盖I P数据报中的任何数据。
U D P和T C P在首部中都有覆盖它们首部和数据的检验和。 U D P的检验和是可选的,而T C P
的检验和是必需的。
尽管U D P检验和的根本计算方法与我们在 3 . 2节中描述的 I P首部检验和计算方法相类似
〔16 bit字的二进制反码和〕,但是它们之间存在不同的地方。首先, U D P数据报的长度可以为
奇数字节,但是检验和算法是把假设干个 16 bit字相加。解决方法是必要时在最后增加填充字节
0,这只是为了检验和的计算〔也就是说,可能增加的填充字节不被传送〕。
其次,U D P数据报和T C P段都包含一个1 2字节长的伪首部,它是为了计算检验和而设置的。伪首部包含 I P首部一些字段。其目的是让 U D P两次检查数据是否已经正确到达目的地〔例如,I P没有接受地址不是本主机的数据报,以及 I P没有把应传给另一高层的数据报传给U D P〕。U D P数
最新计算机网络协议 来自淘豆网m.daumloan.com转载请标明出处.