TCP/IP 1.3网络层IP
IP介绍
IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP、IGMP数据都以IP数据报格式传输IP提供不可靠、无连接的数据报传送服务不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地。IP仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端。任何要求的可靠性必须由上层来提供(如TCP)无连接(connectionless)这个术语的意思是IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是A,然后B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。介绍两个有用的命令:ifconfig和netstat
IP首部
4位版本 4位首部长度 8位服务类型 16位总长度(字节数)--死亡ping,创造一个大于65535字节的报,98系统,崩溃死机16位标识 3位标志 13位片偏移8位生存时间(TTL)--防环 8位协议 16位首部检验和32位源IP地址32位目的IP地址选项(如果有)数据
首部字段分析
4个字节的32bit值以下面的次序传输:首先是0~7bit,其次8~15bit,然后16~23bit,最后是24~31bit这种传输次序称作big endian字节序。由于TCP/IP首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序目前的协议版本号是4,因此IP有时候也称作IPv4首部长度指的是首部占32bit字的数目,包括任何选项。由于它是一个4比特字段,因此首部最长为60字节服务类型(TOS)字段包括一个3bit的优先权子字段(现已被忽略),4bit的TOS子字段和1bit未用位但必须置0(DSCP)4bit的TOS分别代表:最小延时。最大吞吐量、最高可靠性和最小费用。4bit中只能置其中1bit,如果所有4bit均为0,那么久意味着是一般服务
IP路由选择
对于这个例子需要指出一些关键点:1)该例子中的所有主机和路由都使用了默认路由。事实上,大多数主机和一些路由器可以用默认路由来处理任何目的,除非它在本地局域网上2)数据报中的目的IP地址始终不发生任何变化(只有使用源路由选项时,目的IP地址才有可能被修改,但是这种情况很少出现)。所有的路由选择决策都是基于这个目的IP地址3)每个链路层可能具有不同的数据帧首部,而且链路层的目的地址(如果有的话)始终指的是下一站的链路层地址。以太网一般是通过ARP获得
特殊的IP地址
IP地址 可以为 描述网络号 子网号 主机号 源端 目的端 0 DHCP 0 OK 不可能 网络上的主机0 主机号 OK 不可能 网络上的特定主机127 任意值 OK OK 回环地址-1 -1 不可能 OK 受限的广播netid 10.255.255.255 -1 不可能 OK 以网络为目的向netid广播netid subnetid -1 不可能 OK 以子网为目的向netid,subnetid广播netid -1 -1 不可能 OK 以所有子网为目的向netid广播0表示所有的比特位全为0;-1表示所有的比特位全为1:netid、subnetid和hostid分别为表示不全为0或全1的对应字段。子网号栏为空表示该地址没有进行子网划分表的头两项是特殊的源地址,中间项是特殊的回环地址,最后四项是广播地址表中的头两项,网络号为0,如主机使用BOOTP协议确定本机IP地址时只能作为初始化过程中的源地址出现
10.1.1.1/24的路由器会广播255.255.255.255和10.1.1.255,其他10.1.255.255和10.255.255.255都会当普通包处理
PC(win7 10.1.1.254/24)会认为255.255.255.255是一个地址
10.255.255.255和10.1.255.25会出现传输故障 10.1.1.255会广播出去(与掩码匹配) windows会当成主机解析DNS,最后导致无法解析 路由器可以ping通 ping10.1.255.255
路由器会发现不是直连,走默认网关,发现去不了,报不可达信息 能ping10.1.1.255
TCP/IP 1.3网络层IP
IP介绍
IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP、IGMP数据都以IP数据报格式传输IP提供不可靠、无连接的数据报传送服务不可靠(unreliable)的意思是它不能保证IP数据报能成功地到达目的地。IP仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端。任何要求的可靠性必须由上层来提供(如TCP)无连接(connectionless)这个术语的意思是IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是A,然后B),每个数据报都是独立地进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。介绍两个有用的命令:ifconfig和netstat
IP首部
4位版本 4位首部长度 8位服务类型 16位总长度(字节数)--死亡ping,创造一个大于65535字节的报,98系统,崩溃死机16位标识 3位标志 13位片偏移8位生存时间(TTL)--防环 8位协议 16位首部检验和32位源IP地址32位目的IP地址选项(如果有)数据
首部字段分析
4个字节的32bit值以下面的次序传输:首先是0~7bit,其次8~15bit,然后16~23bit,最后是24~31bit这种传输次序称作big endian字节序。由于TCP/IP首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序目前的协议版本号是4,因此IP有时候也称作IPv4首部长度指的是首部占32bit字的数目,包括任何选项。由于它是一个4比特字段,因此首部最长为60字节服务类型(TOS)字段包括一个3bit的优先权子字段(现已被忽略),4bit的TOS子字段和1bit未用位但必须置0(DSCP)4bit的TOS分别代表:最小延时。最大吞吐量、最高可靠性和最小费用。4bit中只能置其中1bit,如果所有4bit均为0,那么久意味着是一般服务
IP路由选择
对于这个例子需要指出一些关键点:1)该例子中的所有主机和路由都使用了默认路由。事实上,大多数主机和一些路由器可以用默认路由来处理任何目的,除非它在本地局域网上2)数据报中的目的IP地址始终不发生任何变化(只有使用源路由选项时,目的IP地址才有可能被修改,但是这种情况很少出现)。所有的路由选择决策都是基于这个目的IP地址3)每个链路层可能具有不同的数据帧首部,而且链路层的目的地址(如果有的话)始终指的是下一站的链路层地址。以太网一般是通过ARP获得
特殊的IP地址
IP地址 可以为 描述网络号 子网号 主机号 源端 目的端 0 DHCP 0 OK 不可能 网络上的主机0 主机号 OK 不可能 网络上的特定主机127 任意值 OK OK 回环地址-1 -1 不可能 OK 受限的广播netid 10.255.255.255 -1 不可能 OK 以网络为目的向netid广播netid subnetid -1 不可能 OK 以子网为目的向netid,subnetid广播netid -1 -1 不可能 OK 以所有子网为目的向netid广播0表示所有的比特位全为0;-1表示所有的比特位全为1:netid、subnetid和hostid分别为表示不全为0或全1的对应字段。子网号栏为空表示该地址没有进行子网划分表的头两项是特殊的源地址,中间项是特殊的回环地址,最后四项是广播地址表中的头两项,网络号为0,如主机使用BOOTP协议确定本机IP地址时只能作为初始化过程中的源地址出现
10.1.1.1/24的路由器会广播255.255.255.255和10.1.1.255,其他10.1.255.255和10.255.255.255都会当普通包处理
PC(win7 10.1.1.254/24)会认为255.255.255.255是一个地址
10.255.255.255和10.1.255.25会出现传输故障 10.1.1.255会广播出去(与掩码匹配) windows会当成主机解析DNS,最后导致无法解析 路由器可以ping通 ping10.1.255.255
路由器会发现不是直连,走默认网关,发现去不了,报不可达信息 能ping10.1.1.255