IP协议(网络层)

IP协议—网络层

数据链路层的主要作用是在互联同一种数据链路的节点之间进行包传递。而一旦跨越多种数据链路,就需要网络层,网络层可以跨越不同的数据链路,及时在不同的数据链路上也能实现两端节点之间的数据包传输。IP是实现多个数据链路之间通信的协议,数据链路的地址可以被抽象成IP地址。

IP的基础知识

IP分为3部分:IP寻址,路由,IP分包与组包
IP是实现多个数据链路之间通信的协议,数据链路的地址可以被抽象成IP地址。
路由控制是指将分组数据发送到最终目标地址的功能。

IP地址的组成:网络地址+主机地址
IP具有唯一性:

网络地址:在网络中的IP地址不能随意分配,随意分配很容易IP地址冲突,因此IP地址需要合理的管理。一个路由器可以组建一个局域网,这时候路由器向局域网中的主机分配IP地址的时候,就必须带有自己网络的标识–网络号,这时候只要将每个网络的网络号规范起来就可以避免IP地址冲突。

主机地址:在一个局域网中,路由器向主机分配IP地址,还要能够在局域网中标识这个主机,这个标识叫主机地址,主机地址在同一网段内不允许重复出现。

面向无连接型

IP协议是面向无连接的协议,无连接是指在发包之前,不需要建立和对端目标地址之间的连接。上层如果有数据要发送给IP,就会被直接压缩成IP包发送出去。

面向连接是指:在发送数据之前,必须建立连接,如果对端主机关机或不存在,就无法建立连接,也就不能发送数据。

而面向无连接是不管有没有建立连接数据都会被发送,但是对于一台主机来说,他会何时从哪里接收到数据也是不能知道的,所以通常要进行网络监控,让主机只接收发给自己的数据包,这种连接形式有可能会错失一些数据。

为什么IP要采用面向无连接型?

  1. 为了简化
  2. 为了提速

面向连接的处理过程非常复杂,因为每一次发送数据都要建立连接,降低了速度。如果需要建立连接,可以委托上一层TCP建立连接,TCP采用面向有连接型。

IP地址的定义

ip地址由32位整数表示,在计算机里用二进制计算,但是人用不了这种计算方式,所以将32位整数划分为4组,每组8位,中间以‘.’分割,再将每组换算为十进制数:

10101100 00010100 00000001 00000001
10101100 . 00010100 . 00000001 . 00000001
172 . 20 . 1 . 1

每台电脑都要有ip地址才能连接进网络,所以一共可以有2^32次方台电脑,也就是43亿台电脑,但是实际上并不是给主机设置ip地址,而是每一块网卡上都要有ip地址,一个路由器通常会配备2块网卡,所以实际上是不可能有这么多电脑同时连网的。

那么,ip地址从哪几位开始是网络标识,从哪几位开始是主机标识呢。
在这里插入图片描述

IP地址的分类

IP地址分为A,B,C,D,E类(E类还未使用)

A类:

第一位为0,1到8位是网络标识,后24位是主机标识,用十进制表示A类的网络地址的话就是0.0.0.0~127.0.0.0;一个网段内可容纳的主机地址为一千六百多万;

B类:

前两位为10,1到16位是网络标识位,后16位是主机标识,用十进制表示B类的网络地址的话就是128.0.0.0~191.255.0.0;一个网段内可容纳的主机地址为65534个;

C类:

前三位为110,1到24位是网络标识位,后8位是主机标识,用十进制表示C类的网络地址的话就是192.0.0.0~223.255.255.0;一个网段内可容纳的主机地址为254个;

D类:

前两位为1110,1到32位是网络标识位,没有主机标识,用十进制表示D类的网络地址的话就是224.0.0.0~239.255.255.255;常被用于多播;

分配IP地址的注意事项:
在用比特位分配IP地址时不能全为0或全为1
主机号全为0的IP地址----网络号,用于标识一个网络
主机号全为1的IP地址----udp的广播地址
127.0.0.1—本机虚拟回环网卡地址—用于本机的网络测试

子网与子网掩码

直接使用网络地址会造成地址的浪费,所以出现了子网和子网掩码。
实际上就是将原来的A,B,C类等分类中的主机地址部分用作子网地址,可以将原来的网络分为多个物理网络的机制。
子网掩码用二进制表示也是一个32位的数字:
他对应IP地址网络标识部分全为1,对应主机标识部分全为0;
子网掩码必须是IP地址的首位开始连续的1.

子网掩码标识方式:

  1. 将IP地址和子网掩码分开表示;

IP地址:172.20.100.52
子网掩码:255.255.255.192

  1. 用后缀表示法表示子网掩码:在每个IP地址的后面追加网络地址的位数,用‘/’分隔;

IP地址:172.20.100.52/26

IPv4首部
* 4位协议版本:IPv4/IPv6
* 4位头部长度:IP报文头最大长度60个字节,最小长度20字节(以4字节位单位的)
* 8位服务类型:4位TOS字段(最小延迟/最大吞吐量/最高可靠习性/最小成本),1位保留位
* 16位报文长度:限制一个IP报文最大长度64k,udp数据最大长度:64k-20-8
* 16位标识:udp数据有可能在网络层进行数据分片,这个标识则可以指定当前片属于哪个udp数据包
* 13位片偏移:用于指定udp数据分片相对于udp数据包起始位置的偏移量(分片在数据中的位置)
    * 偏移量是以8字节为单位,每个分片都是8的整数倍长度(除最后一个分片)

* 8位ttl:报文生命周期,最大经过的路由器跳数
* 8位上层协议:用于数据分用时,决定由上层哪个协议进行解析
* 16位校验和:校验数据一致性
* 32位源
* 目的IP地址:标识数据从哪来到哪去
* 40字节选项数据:可有可无
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值