总目录在这里~

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协议相关推荐

  1. 《TCP/IP详解》笔记----第四章 ARP协议

    第四章 ARP地址解析协议 1.概述 ARP地址解析协议为IP地址和物理地址之间提供动态的映射. 2.以太网中ARP请求包的具体格式 以太网目的地址:这里是ARP请求,这里填写FF:FF:FF:FF: ...

  2. 沧小海读《图解TCP/IP》笔记——第六章 TCP与UDP

    总目录在这里~ https://blog.csdn.net/z123canghai/article/details/107855399 子目录 6.1 传输层的作用 6.2 UDP 6.3 TCP 6 ...

  3. 【沧小海笔记】之基于FPGA的以太网设计相关知识——第三章 xilinx 三速以太网IP核(TEMAC)的介绍

    总目录在这里哦~ https://blog.csdn.net/z123canghai/article/details/114649502 Xilinx为我们提供了一个叫做"Tri-Mode ...

  4. 沧小海笔记之基于xilinx的三速以太网相关知识的学习与理解

    目录 第一章 读<图解TCP/IP>笔记 第二章  互联网概述 第三章  物理层介绍(基于88E1111) 第四章  xilinx 三速以太网IP核(TEMAC)的介绍 第一章 读< ...

  5. 沧小海基于xilinx srio核的学习笔记之第二章 Rapidio技术概述

    总的目录在这哦~ https://blog.csdn.net/z123canghai/article/details/114648658 目录 第二章 Rapidio技术概述 2.1 总体原则 2.2 ...

  6. 沧小海详解面试的必答题——I2C协议

    目录 第一部分:I2C协议的概述 第二部分:I2C协议的阐述 第三部分:AT24C04简述 第四部分:基于verilog的程序设计(暂无) 对于大多从事FPGA行业的应届生来说,在面试过程中很可能会被 ...

  7. 沧小海笔记本之xilinx srio核的学习记录之目录

    目录 第一章:互连问题 第二章 Rapidio技术概述 第三章 xilinx srio核结构 3.1 xilinx srio核的结构介绍 3.2 ilinx srio核的HELLO格式和流控 3.3  ...

  8. 沧小海笔记本之A7系列FPGA资源介绍

    目录 第一部分:I / OBANK部分资源介绍 1.1  I/O BANK概述与ILOGIC资源概述 1.2  IDELAYE2.IDELAYCTRL和OLOGIC的资源介绍 1.3  OSERDES ...

  9. 计算机网络(第7版)谢希仁著 学习笔记 第四章网络层

    计算机网络(第7版)谢希仁著 学习笔记 第四章网络层 第四章 网络层 4.3划分子网和构造超网 p134 4.3.1划分子网 4.3.2使用子网时分组的转发 4.3.3无分类编址CIDR(构建超网) ...

  10. 《Go语言圣经》学习笔记 第四章 复合数据类型

    <Go语言圣经>学习笔记 第四章 复合数据类型 目录 数组 Slice Map 结构体 JSON 文本和HTML模板 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. ...

最新文章

  1. python监听文件最后修改人_Python持续监听文件变化代码实例
  2. Ruby中,:(ampersand colon)的用法
  3. [FlareOn2]very_success [FlareOn3]Challenge1
  4. eVC++就是eVC++啊
  5. php获取网页内容方法总结
  6. android 线程池 怎么用,android中的线程池 怎么用
  7. mysql 建表语句示例_MySQL Create Table语句和示例
  8. android 从媒体库去数据
  9. pandas小记:pandas汇总统计函数
  10. react 怎么获取表格_React之表格操作
  11. Linux 备份与恢复
  12. 解决通达OA2017版本手机端选择不到2021年的问题,手机端只能选择到2020年
  13. AutoCAD二次开发——引线标注
  14. Matlab 实现串口助手
  15. 别踩白块儿游戏代码html,别踩白块儿.html · 知足常乐大哥哥/not-step-on-white-block - Gitee.com...
  16. nvm安装使用及卸载
  17. 你不得不知道的HashMap面试连环炮
  18. 1-2 四轴飞行器基本原理
  19. VS2005的几个大版本简介
  20. 【软件测试从0到1】第三篇:用例篇

热门文章

  1. 【NOIP 费用流】JZOJ_3029 观光公交
  2. 蓝牙规范-Vol 6:低功耗控制器 Part B 链路层规范 章节1 概述
  3. 我们软件开发常用的协作工具
  4. APISIX网关在雪球生产实践
  5. 三菱FX5U系列PLC中的DSZR机械原点回归指令(带DOG搜索)的详细分析
  6. 海洋cms播放器html,海洋cms升级新播放器后播放不了如何解决?
  7. 越狱iOS访问限制忘记密码
  8. 【SAP Abap】记录一次完整的BDC录屏开发
  9. 3月16日----3月20日二年级课程表
  10. 【技术思路】极客时间-左耳听风-开篇词1