# collaborate_week10 **Repository Path**: autumnhui/collaborate_week10 ## Basic Information - **Project Name**: collaborate_week10 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-11-05 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TCPIP第4章 IP协议 ## 第4章 IP协议 主要负责将数据包发送给最终的目标计算机。 ### 4.1 IP即网际协议 #### 4.1.1 IP相当于OSI参考模型的第3层 * 网络层的主要作用是“实现终端节点之间的通信”。这种终端节点之间的通信也叫“点对点(end-to-end)通信”。 * 主机与节点 1. 主机的定义应该是指“配置有IP地址,但是不进行路由控制的设备”。 2. 配有IP地址又具有路由控制能力的设备叫做“路由器”,跟主机有所区别。 3. 节点则是主机和路由器的统称(这些都是IPv6的规范RFC2460中所使用的名词术语。 ### 4.2 IP基础知识 IP三大作用模块:IP寻址、路由、IP分包与组包。 #### 4.2.1 IP地址属于网络层地址 IP地址用于在“连接到网络中的所有主机中识别出进行通信的目标地址”。因此,在TCP/IP通信中所有主机或路由器必须设定自己的IP地址 #### 4.2.2 路由控制 1. 路由控制(Routing)是指将分组数据发送到最终目标地址的功能。... 因此,一个数据包之所以能够成功地到达最终的目标地址,全靠路由控制。 2. Hop译为中文叫“跳”。它是指网络中的一个区间。IP包正是在网络中一个个跳间被转发。因此IP路由也叫做多跳路由。 3. 多跳路由是指路由器或主机在转发IP数据包时只指定下一个路由器或主机,而不是将到最终目标地址为止的所有通路全都指定出来。 4. 一跳(1 Hop)是指利用数据链路层以下分层的功能传输数据帧的一个区间。 5. 路由控制表:为了将数据包发给目标主机,所有主机都维护着一张路由控制表(Routing Table)。该表记录IP数据在下一步应该发给哪个路由器。 #### 4.2.3 数据链路的抽象化 1. IP是实现多个数据链路之间通信的协议。数据链路根据种类的不同各有特点。对这些不同数据链路的相异特性进行抽象化也是IP的重要作用之一。 2. 不同数据链路有个不同的最大传输单位(MTU:Maximum Transmission Unit)。就像邮寄行李时有各自的大小限制。MTU的值在以太网中是1500字节,在FDDI中是4352字节,而ATM则为9180字节。 3. IP进行分片处理(IP Fragmentation)抽象化了数据链路层将较大的IP包分成多个较小的IP包。即从IP的上次层看,它完全可以忽略数据包在途中的各个数据链路上的MTU,而只需要按照源地址发送的长度接收数据包。 #### 4.2.4 IP属于面向无连接型 1. IP面向无连接。即在发包之前,不需要建立与对端目标地址之间的连接。 2. IP要采用面向无连接原因 简化:面向连接相对复杂,可靠性提高由上一层的TCP 提速:尽力服务(Best Effort),意指“为了把数据包发送到最终目标地址,尽最大努力。 3. 如果说IP只负责将数据发给目标主机,那么TCP则负责保证对端主机确实接收到数据。 4. 明确TCP与IP各自协议的最终目的,也有利于后续对这些协议进行扩展和性能上的优化。分层也简化了每个协议的具体实现。 ### 4.3 IP地址的基础知识 #### 4.3.1 IP地址的定义 IP地址(IPv4地址)由32位正整数来表示。 #### 4.3.2 网络和主机两部分标识组成 IP地址由“网络标识(网络地址)”和“主机标识(主机地址)”两部分组成(192.168.128.10/24中的“/24”表示从第1位开始到多少位属于网络标识。 图4.11 IP地址的主机标识 图4.12 IP地址的网络标识 #### 4.3.3 IP地址的分类 1. A类IP地址是首位以“0”开头的地址。用十进制表示的话,0.0.0.0~127.0.0.0是A类的网络地址。 2. B类IP地址是前两位为“10”的地址。用十进制表示的话,128.0.0.1~191.255.0.0是B类的网络地址。 3. C类IP地址是前三位为“110”的地址。用十进制表示的话,192.168.0.0~239.255.255.0是C类的网络地址。 4. D类地址没有主机标识,常被用于多播。 5. 不可以全部为0或全部为1。因为全部为只有0在表示对应的网络地址或IP地址不可获知的情况下才使用。而全部为1的主机地址通常作为广播地址。 #### 4.3.4 广播地址 #### 4.3.5 IP多播 #### 4.3.6 子网掩码 1. Masks 掩码 2. A类 255, 0, 0, 0 3. B类 255, 255, 0, 0 4. C类 255, 255, 255, 0 #### 4.3.7 CIDR与VLSM #### 4.3.8 全局地址与私有地址 1. 私有网络的IP地址范围 2. A类 10.0.0.0 - 10.255.255.255 (10/8) 3. B类 172.16.0.0 - 172.31.255.255 (172.16/12) 4. C类 192.168.0.0 - 192.168.255.255 (192.168/16) 5. 私有IP最早没有计划连接互联网,而只用于互联网之外的独立网络。然而,当一种能够互换私有IP与全局IP的NAT(更多细节请参考5.6节。)技术诞生以后...人们正在努力使用IPv4和NAT技术解决现有的问题。这也是互联网的现状之一。 #### 4.3.9 全局地址由谁决定 1. 在世界范围内,全局IP由ICANN(Internet Corporation for Assigned Names and Numbers,中文叫“互联网名称与数字地址分配机构”,负责管理全世界的IP地址和域名。)进行管理。 2. 框 WHOIS ### 4.4 路由控制 1. 仅仅有IP地址还不足以实现将数据包发送到对端目标地址,在数据发送过程中还需要类似于“指明路由器或主机”的信息,以便真正发往目标地址。保存这种信息的就是路由控制表(Routing Table)。 #### 两种控制表形成方式: 1. 静态路由控制:管理员手动设置 2. 动态路由控制:路由器与其他路由器相互交换信息时自动刷新 IP协议始终认为路由表是正确的。即IP没有制作路由控制表的机制。 #### 4.4.1 IP地址与路由控制 1. 默认路由 默认路由一般标记为0.0.0.0/0或default(表示子网掩码时,IP地址为0.0.0.0,子网掩码也是0.0.0.0。) 2. 主机路由 “IP地址/32”也被称为主机路由(Host Route)。例如,192.168.153.15/32(表示子网掩码时,若IP地址为192.168.153.15,其对应的子网掩码为255.255.255.255。)就是一种主机路由。 3. 环回地址 计算机使用一个特殊的IP地址127.0.0.1作为环回地址。与该地址具有相同意义的是一个叫做localhost的主机名。使用这个IP或主机名时,数据包不会流向网络。 #### 4.4.2 路由控制表的聚合 1. 利用网络地址的比特分布可以有效地进行分层配置。 2. 通过路由信息的聚合可以有效地减少路由表的条目(路由表的聚合也叫路由汇总(Aggregation)。) 3. 图4.23 路由控制表聚合的例子 ### 4.5 IP分割处理与再构成处理 ### 4.6 IPv6 IPv6(IP version 6)根本解决IPv4地址耗尽的问题。IPv4的地址长度为4个8位字节,即32比特。而IPv6的地址长度则是原来的4倍 #### 4.6.2 IPv6的特点 1. IP地址的扩大与路由控制表的聚合 2. 性能提升简化首部结构,减轻路由器负荷。 3. 支持即插即用功能,没有DHCP服务器实现自动分配IP地址 4. 采用认证与加密功能,防止线路窃听的功能(IPsec) 5. 多播和Mobile IP被定义为IPv6的扩展功能。 ### 4.7 IPv4首部 关于IP版本号:IPv4的下一个版本是IPv6。那么为什么要直接跳6呢?一向重视实践的互联网,在遇到好的提案时,不能只纸上谈兵,还需要反复实验。