TCP/IP-卷1-笔记-第三章-IP:网际协议-上

3.1 引言

所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。IP提供的是不可靠、无连接的数据报传送服务。
不可靠:是它不能保证IP数据报能成功到达目的地,IP仅提供尽力而为的传输服务。如果发生某种错误,则直接把数据报丢弃,然后发生ICMP消息报给信源。
无连接:是IP并不维护任何关于后续数据报的状态信息。也说明IP数据报可以不按发送顺序接收。

3.2 IP首部

4位版本  4位首部长度     8位服务类型            16位总长度(字节数)      (0~31,有32位)
              16位标识                         3位标志              13位片偏移
8位生存时间(TTL)      8位协议                  16位首部检验和
                                        32位源IP地址
                                       32位目的IP地址  
                                             选项
                                             数据 

前5行为IP首部,占20字节。最高位左边,从0bit开始,最低位右边31bit。
4个字节的32bit,每次8bit的次序传输成为big endian字节序,或网络字节序。
4位版本:指协议版本,通常为IPV4
首部长度:指首部占32bit字的数目,是4比特字段,所以首部最长为60个字节。2的4次方*32/8=64
服务类型TOS:3bit优先权子字段,4bitTOS子字段,1bit未用位必须置0。4bitTOS代表:最小时延,最大吞吐量,最高可靠性和最小费用。4bit只能置其中一个为1。如果全0则为一般服务。telnet和rlogin两个交互应用要求最小的传输时延。FTP则要求有最大吞吐量。最高可靠性被指明给网络管理SNMP和路由选择协议。用户网络新闻是唯一要求最小费用的应用。
总长度字段:指整个IP数据报的长度,以字节为单位。利用总长度字段和首部长度字段就可以知道IP数据报中的数据内容的起始位置和长度。由于有16位长,所以IP数据报最长可以有65535字节,但通常链路层都会对其进行分片,而且主机要求不接受超过576字节的数据报。这样限制不影响TCP,但是虽然使用UDP的应用都限制用户数据报长度为512,但是实际上都允许超过8192字节的IP数据报。总长度字段很重要,以太网的最小帧长度要求为46字节,若IP数据报更短,则需要进行字节填充才能传输。
TTL:生存时间,初始值通常为32或64,一旦经过一个处理它的路由器,数值就减1。值为0则被丢弃,并发送ICMP报文通知源主机。
首部检验和字段:它不对首部后面的数据进行计算。原理:把检验和字段置0。然后把首部中每个16bit进行二进制反码求和,结果存在检验和字段中。接收方收到后,同样对首部进行反码求和,由于检验和字段的内容是其他首部内容的反码和,所以求和答案为全1,结果不是全1则为有错误。IP就丢弃数据报,但不产生差错报文,由上层去发现丢失的数据报进行重传。ICMP,IGMP,UDP和TCP都采用相同的检验和算法。

3.3 IP路由选择

算法很简单:若目的主机与源主机直接相连(如点对点)或同一个共享网络上(以太网),那么IP数据报直接送到目的主机,否则主机把数据报发送到默认路由上。
IP层既可以设置成路由器功能,也可以配置主机功能。本质区别在于从不把数据报从一个接口转发到另一个接口,而路由器则要转发数据报。
IP从TCP,UDP,ICMP,IGMP或从一个网络接口接收数据报并进行发送,IP层内存中有一个路由表,接收到数据报后对表进行搜索,IP是否为表中的某一IP地址或广播地址,如果有,则根据IP首部的协议字段送到该地址进行处理。如果没有则根据IP路由选择搜索相同的网络号,也没有则发送到默认路由,如果默认路由选错了,则下一跳路由器会发送ICMP重定向报文。注意,如果IP层没设置为路由器功能,则数据报会被丢弃,并返回一个“主机不可达”错误。

你可能感兴趣的:(IP,tcp,路由选择,IP首部)