沧小海读《图解TCP/IP》笔记——第四章 IP协议
总目录在这里~
https://blog.csdn.net/z123canghai/article/details/107855399
第四章 IP协议
4.1 IP协议概述
4.2 IP地址相关
4.3 IP路由控制
4.4 分包与组合
4.5 IPV4部首解析
这一章节主要是网络层内容的介绍。根据前面学习,知道本层有IP、ICMP和ARP等协议,本章主要阐述IP协议相关内容。
4.1 IP协议概述
网络层是TCP/IP的核心内容,IP(Internet Protocol)网际协议是关键所在,通过该协议实现了终端节点间的数据交换。
这里应该再强调一下,数据链路层是实现相邻两个节点之间的通信,若要跨越多种数据链路就需要网络层来实现,如下图。
我们可以通过坐火车、包裹邮寄等多种方式来类比学习。这里作者特意为我们区分了“主机”和“节点”的概念。主机的定义应该是指配有IP地址但不进行路由控制的设备,路由器既有IP地址也具有路由控制功能节点是主机和路由器的统称。
另外,IP地址不同于IP。IP地址是IP协议的一部分内容,IP是指网络层的一种协议。
IP大致分为三个部分,即IP寻址、路由、IP的分包与组包。
4.2 IP地址相关
这部分主要阐述IP地址的定义、分类以及应用。
IP地址如同链路层的MAC地址,是对节点设备的识别码,根据这个一信息可以实现网络各节点间的数据交换。
1、IP地址的定义
IP地址就是网络层的地址,是用来实现网络设备间数据交换的基石。IP地址是用一个32bit的数字来表示,并将这个数字分为“网络标识”和“主机标识”两个部分,网络标识要求保证网络中的每个网段地址不能重复,相同段内的主机必须拥有相同的网络地址。主机标识要求同一网段的主机必须不同,如下图。其中“/24”意思是从从头数到第几位是网络标识,“/24”就是前24bit是网络标志。
另外,我们还把IP地址分为了4类,分为A类、B类、C类和D类。其实还有E类,但未使用。每一类的网络标识和主机标识是不一样多的,目的是为了适应不同的网络大小。例如A类。网络标识范围是0.0.0.0~127.0.0.0,可以容纳128网段,主机标识就有2^24这么多,其他类也是这样
但并不是所有的主机标识都可以任意使用的,因为每个网段中还有广播地址一说。主机标识都是1就表示这是广播地址,任何网段内的主机均可接收。
广播还分为两种,本地广播和直接广播。本网络内的广播叫做本地广播,路由器会屏蔽盖IP地址的数据包,使其不能到达本网段之外。不同网段的广播叫做直广播,但这种功能是在路由器上进行的设置,一般是本地广播。
此外还有多播,实现将数据发送到本网段的特定主机,多播使用的是D类地址,如果从首位是“1110”就可以认为是多播。
2、子网掩码的诞生
将IP分为若干类的方法有个显著问题,就是造成资源浪费。例如B类,允许该网段内有6万多个主机,这个种网络结构实际是不存在的,所以,显著的IP是不受分类限制,而是采用了一种全新的识别方式。通过这种方式可以实现更小刻度的划分,这就是子网掩码。
引入子网掩码后,IP地址就有了两种识别码,分别是IP地址本身,另一个就是表示网络部分的子网掩码。其表示方式有两种,如下图所示,我们电脑一般采用第一种方式,子网掩码置一位表示为网络标识,第二种表示还是数位数。
3、全局地址和私有地址
起初,互联网中的任何一台主机或路由器必须配有一个唯一的IP,否则会发生冲突造成通信失败。然而IP地址已经不够分配了,为了解决这个问题,就有了私有地址和全局地址之分,但要注意的是,不是这样简单一分问题就解决了,还需配有NAT技术的配合。实现思路是全局IP保证整个互联网上保证唯一性,私有IP只需保证统一域内唯一即可。
私有IP分为三类,如下所示,除此之外的都称之为全局IP。
全局IP是由机构进行统一分配的,是谁不关心~
4.3 IP路由控制
一包数据的传递,就如同我们的快递,要越过千山万水,这过程中需要有设备识别这包数据要去哪,这个设备就是路由器,它实现的功能就是路由控制。每个路由器里面都会有一张表或者说清单,叫做路由控制表,如下图所示
可见,路由控制表中存着本网段内主机设备IP所对应的下一网段的IP,路由器根据这个表格选择发送路径。如果存在许多相同的网络地址的记录,就选择最吻合的一个,这就涉及更复杂的路由控制,后面章节表述。这张路由表的形成有两种方式,一是手动设置,叫做静态路由控制,二是与其他路由器进行信息交换时的自动学习,叫做动态路由设置。
路由方式也有三种,叫做默认路由、主机路由和回环路由。
路由器还有一个聚合功能。如果一个网段内有很多主机,都要通过路由器与其他网段进行数据交换,那这个在路由表中的寻址过程是漫长的且不易维护的。所以我们可以对本网段的所有主机的IP地址分类,形成新的小的子网段。这样的查找表就很好找了。
4.4 分包与组合
前面说了,一包数据到达接收端可能要翻过大山越过大河,这也就不可以避免的会经过不同的设备。之所以有不同的设备,是因为其使用目的是不同的,如果同一一种向下兼容,即会造成极大的资源浪费,也非常的不灵活。基于此,每种链路承载的最大数据长度是不同的,所组成的链路的最大传输单元叫MTU。一包数据要经过不同设备组成的链路,就要考虑这包数据长度是否超过了某链路的最大承载量。如下表是不同链路的MTU
一开始解决方案是到一路由器,判断下一路径允许的最大MUT,也就是走一步看一步。但这种方式容易丢包,于是又发明了“路径MUT发现”技术,也就是首先预判收发之间的路径所所允许的最大MUT,然后在发送端将数据分为小片段。
4.5 IPV4部首解析
如下图是IPV4的部首信息,接下来就逐个解析。
1、版本
4bit构成IP部首的版本号
2、部首长度(IHL:Internet HeaderLength)
部首长度也是由4bit构成,表示部首的长度,是以32bit为单位。例如IPV4的部首上长度是20byte,就要设置为5。
3、区分服务(TOS:Type Of Service)
由8bit构成,都不用。
4、总长度(Total Length)
表示IP首部与数据部分结合起来的总字节数。该字段长16bit.
5、标识(ID:Identification)
分片重组,同一分片的标志值相同,不同分片的标志值不同,当然,如果分片值相同IP地址不同也是不同的分片。每发送一个IP包,它的值也逐渐递增。
6、标志(Flags)
3bit构成,表示包被分片的相关信息。
7、片偏移(FO:Fragment Offset)
由13bit构成,用来标识被分片的每一个分段相对于原始数据的位置。
8、生存时间(TTL:Time To Live)
8bit构成,最初是以秒为单位表示当前包在网络上应该的生存期限。实际上指可以中转多少个路由器的意思,直到变成0则丢弃该包。这可以避免IP包在网络内无限传递的问题。
9、协议(Protocol)
由8bit构成,表示IP包传输层上的协议编号。
10、部首校验和(Header Checksum)
由16bit构成,也叫IP首部校验和。该字段只校验数据报的首部。不校验数据部分。确保IP数据报不被破坏。
11、源地址
发送端地址,32bit
12、目的地址
接收端地址,32bit
13、可选字段(Options)
长度可变,该字段包含如下信息,安全级别、源路径、路径记录和时间戳。
14、填充
补可选字段剩下的比特位。
这个部首的设计思路,也对我们进行程序设计时很有启发。
沧小海读《图解TCP/IP》笔记——第四章 IP协议相关推荐
- 《TCP/IP详解》笔记----第四章 ARP协议
第四章 ARP地址解析协议 1.概述 ARP地址解析协议为IP地址和物理地址之间提供动态的映射. 2.以太网中ARP请求包的具体格式 以太网目的地址:这里是ARP请求,这里填写FF:FF:FF:FF: ...
- 沧小海读《图解TCP/IP》笔记——第六章 TCP与UDP
总目录在这里~ https://blog.csdn.net/z123canghai/article/details/107855399 子目录 6.1 传输层的作用 6.2 UDP 6.3 TCP 6 ...
- 【沧小海笔记】之基于FPGA的以太网设计相关知识——第三章 xilinx 三速以太网IP核(TEMAC)的介绍
总目录在这里哦~ https://blog.csdn.net/z123canghai/article/details/114649502 Xilinx为我们提供了一个叫做"Tri-Mode ...
- 沧小海笔记之基于xilinx的三速以太网相关知识的学习与理解
目录 第一章 读<图解TCP/IP>笔记 第二章 互联网概述 第三章 物理层介绍(基于88E1111) 第四章 xilinx 三速以太网IP核(TEMAC)的介绍 第一章 读< ...
- 沧小海基于xilinx srio核的学习笔记之第二章 Rapidio技术概述
总的目录在这哦~ https://blog.csdn.net/z123canghai/article/details/114648658 目录 第二章 Rapidio技术概述 2.1 总体原则 2.2 ...
- 沧小海详解面试的必答题——I2C协议
目录 第一部分:I2C协议的概述 第二部分:I2C协议的阐述 第三部分:AT24C04简述 第四部分:基于verilog的程序设计(暂无) 对于大多从事FPGA行业的应届生来说,在面试过程中很可能会被 ...
- 沧小海笔记本之xilinx srio核的学习记录之目录
目录 第一章:互连问题 第二章 Rapidio技术概述 第三章 xilinx srio核结构 3.1 xilinx srio核的结构介绍 3.2 ilinx srio核的HELLO格式和流控 3.3 ...
- 沧小海笔记本之A7系列FPGA资源介绍
目录 第一部分:I / OBANK部分资源介绍 1.1 I/O BANK概述与ILOGIC资源概述 1.2 IDELAYE2.IDELAYCTRL和OLOGIC的资源介绍 1.3 OSERDES ...
- 计算机网络(第7版)谢希仁著 学习笔记 第四章网络层
计算机网络(第7版)谢希仁著 学习笔记 第四章网络层 第四章 网络层 4.3划分子网和构造超网 p134 4.3.1划分子网 4.3.2使用子网时分组的转发 4.3.3无分类编址CIDR(构建超网) ...
- 《Go语言圣经》学习笔记 第四章 复合数据类型
<Go语言圣经>学习笔记 第四章 复合数据类型 目录 数组 Slice Map 结构体 JSON 文本和HTML模板 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. ...
最新文章
- python监听文件最后修改人_Python持续监听文件变化代码实例
- Ruby中,:(ampersand colon)的用法
- [FlareOn2]very_success [FlareOn3]Challenge1
- eVC++就是eVC++啊
- php获取网页内容方法总结
- android 线程池 怎么用,android中的线程池 怎么用
- mysql 建表语句示例_MySQL Create Table语句和示例
- android 从媒体库去数据
- pandas小记:pandas汇总统计函数
- react 怎么获取表格_React之表格操作
- Linux 备份与恢复
- 解决通达OA2017版本手机端选择不到2021年的问题,手机端只能选择到2020年
- AutoCAD二次开发——引线标注
- Matlab 实现串口助手
- 别踩白块儿游戏代码html,别踩白块儿.html · 知足常乐大哥哥/not-step-on-white-block - Gitee.com...
- nvm安装使用及卸载
- 你不得不知道的HashMap面试连环炮
- 1-2 四轴飞行器基本原理
- VS2005的几个大版本简介
- 【软件测试从0到1】第三篇:用例篇