2.TCPIP协议族概述(二)

xiaoxiao2021-02-28  18

网络地址    

       互联网上的每个接口都有唯一的IP地址,IP地址长32bit,具有一定的结构,有5类IP地址。这个32位的地址通常用4个十进制整数来表示,每个整数对应一个字节,这种表示方法叫“点分十进制表示法”,如140.252.13.33。        区分各类地址的最简单的方法是看它的第一个十进制整数。网络号的分配由某个机构负责分配,主机号由系统管理员负责分配。       有三类IP地址:单播地址(目的为单个主机),广播地址(目的端为给定网络上的所有主机)和多播地址(目的端为同一组内的所有主机)。

域名系统(DNS)

      域名系统是一个分布式的数据库,由它来提供IP地址和主机名之间的映射信息。任何应用程序都可以调用一个标准的库函数来查看主机和IP地址之间的映射。

数据封装成以太网数据帧(封装)

       当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当做比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时候还要添加一些尾部信息)。

       TCP传给IP的数据单元叫做TCP报文段或TCP段(TCP segment)。IP传给链路层的数据单元叫做IP数据报(IP datagram)。通过以太网传输的比特流叫做帧(Frame)。        UDP传给IP的信息单元叫做UDP数据报(UDP datagram),而且UDP的首部长度为8字节。       更准确地说,IP和链路层之间传送的数据单元应该是分组(packet),分组既可以是IP数据报,也可以是IP数据报的一个片(fragment)。

      上图中帧头和帧尾下面所标注的数字是以太网首部的字节长度,以太网数据帧(去掉,首部和尾部)的物理特性是其长度必须在46~1500字节之间。       由于TCP,UDP,ICMP和IGMP都要向IP传送数据,所以IP必须在生成的IP首部中加入某个标识,以说明数据属于哪一层。因此,IP在首部当中有一个8bit的字段,叫做 协议域。1表示ICMP,2表示IGMP,6表TCP,17表示UDP。       许多程序都可以用TCP或UDP来传送数据,所以TCP或UDP报文在首部当中用一个16bit的 端口号来表示不同的应用程序。TCP和UDP把源端口号和目的端口号分别存入报文首部。       链路层分别要发送和接收IP,ARP和RARP数据,因此也需要在以太网的帧首部有一个16bit的 帧类型域。

以太网数据帧拆分为数据(分用)

       当目的主机接收到以太网数据帧时,数据帧就开始从协议栈的底部向上升,同时去掉各层协议加上的报文首部。每层协议都要去检查报文首部中的协议标识(包括IP首部的协议域,以太网帧首部的帧类型域等),以确定接收数据的上层协议。这个过程叫分用(Demultiplexing)。       为ICMP和IGMP定位时一件很棘手的事情,在之前的图中,把它们与IP协议放在同一层上是因为它们是IP协议的附属协议。在上图中,它们被放在IP层的上面,是因为ICMP和IGMP的报文都是被封装在IP数据报中的。       对于ARP和RARP,在上图中,它们被放在以太网设备驱动程序的上方,是因为它们和IP数据包一样都有各自的以太网数据帧类型。但之后,我们又把ARP作为设备驱动程序的一部分,放在IP协议的下面,其原因也是可以理解的(因为ARP所在的链路层就是在网络层下面)。

转载请注明原文地址: https://www.6miu.com/read-2800206.html

最新回复(0)