【JavaEE精炼宝库】网络原理基础——网络层 | IP协议

网络层的作用主要有(1)路径规划(路由选择)。(2)地址管理。
在这里插入图片描述

在网络层中IP协议独自占了大壁江山。所以介绍网络层其实就是在介绍IP协议

基本概念:

  • 主机:配有 IP 地址,但是不进行路由控制的设备。

  • 路由器:即配有 IP 地址,又能进行路由控制。

  • 节点:主机和路由器的统称。

一、IP 协议的格式

下图为 IPv4 协议的格式。
在这里插入图片描述

  • 4 位版本号(version):指定 IP 协议的版本,对于 IPv4 来说,就是 4,对于 IPv6 来说,就是 6。

  • 4 位首部长度(header length):IP 头部的长度单位是 4 个字节,也就是length * 4 的字节数。4 bit 表示最大的数字是 15,因此 IP 头部最大长度是 60 字节,根据上图可知 IP 头部最短长度是 20 字节。

  • 8 位服务类型(Type Of Service):3 位优先权字段(已经弃用),4 位TOS字段,和 1 位保留字段(必须置为 0)。4 位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本这四者相互冲突,只能选择一个。 对于 ssh / telnet 这样的应用程序,最小延时比较重要,对于 ftp 这样的程序,最大吞吐量比较重要。

  • 16 位总长度(total length):IP 数据报整体占多少个字节。 总长度去掉 IP 首部长度,剩下的就是 TCP / UDP 数据包的总长度。如果是 TCP ,去掉 TCP 报头长度,剩下的就是载荷长度(TCP 报头中算不出载荷长度,所以要用这种方法)。

  • 16 位标识(id):唯一的标识主机发送的报文(用来区分哪些数据包要进行合并)。如果 IP 报文在数据链路层被分片了,那么每一个片里面的这个 id 都是相同的。

  • 3 位标志:第一位保留(保留的意思是现在不用,但是还没想好,说不定以后要用到)。第二位置为 1 表示禁止分片,这时候如果报文长度超过 MTU,IP 模块就会丢弃报文。第三位表示"更多分片",如果分片了的话,最后一个分片置为 1,其他是 0。类似于一个结束标记。

  • 13 位片偏移(framegament offset):是分片相对于原始 IP 报文开始处的偏移(确定若干个要拼接的数据包先后顺序)。其实就是在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值 * 8 得到的。因此,除了最后一个报文之外,其他报文的长度必须是 8 的整数倍(否则报文就不连续了)。

  • 8 位生存时间(Time To Live,TTL):数据报到达目的地的最大报文跳数。一般是 64。每次经过一个路由,TTL - 1,一直减到 0 还没到达,那么就丢弃了。这个字段主要是用来防止出现路由循环。

  • 8 位协议:表示上层协议的类型(载荷部分是 TCP 还是 UDP 还是其他的协议)。

  • 16 位首部校验和:使用 CRC 进行校验,来鉴别头部是否损坏。

  • 32 位源 IP 地址和 32 位目的 IP 地址:表示发送端和接收端。为了让我们方便观察,把 32 位的整数通常表示成 “点分十进制”的方式。例如 192.168.2.103。

  • 选项字段(不定长,

评论 72
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值