网络基础-------【网络层的协议】IP协议

网络向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
网络发送分组时不需要先建立连接。每一个分组(也就是IP数据报)独立的发送,与其前后的分组无关(不进行编号)。网络层不提供服务质量的承诺。也就是说所传送的分组可能出错、丢失、重复和失序(即不按序到达终点),当然也不保证分组交付的时限。
硬件:路由器,网关

网络协议IP

  • 地址解析协议ARP(Address Resolution Protocol)
  • 逆地址解析协议RARP(Reverse Address Resolution Protocol)
  • 网际控制报文协议ICMP(Intrenet Control Message Protocol)
  • 网际组管理协议IGMP(Internet Group Management Protocol)

    由于网际协议IP是用来使互连起来的许多计算机网络能够进行通信,因此TCP/IP体系中的网络层常常被称为网际层(Internet layer),或IP层。

将网路进行互相连接起来的使用的中间设备
1)物理层使用的中间设备叫做转发器
2)数据链路层使用的设备叫做网桥或桥接器(bridge)
3)网络层使用的中间设备叫做路由器(router)
4)在网络层以上使用的设备叫做网关(gateway)。用网关连接两个不兼容的系统需要在高层进行协议的转换

这里写图片描述

基本概念

主机:配有IP地址,但是不进行路由控制的设备
路由器:即配有IP地址,又能进行路由控制
节点:主机和路由器的统称;

协议头格式

这里写图片描述

  • 4位版本号(version):指定IP的协议版本号,对于IPV4来说就是4
  • 4位头部长度(header length):IP头部的长度是多少个32bit,也就是length*4的字节数,4bit表示最大的数字是15,因此IP头部的最大字节数是60。
  • 8位的服务类型(Type Of Server):3位优先权字段(已经弃用),4位TOS字段,和一位保留字段(必须置为0),4位TOS分别表示的是:最小延时、最大吞吐量、最高可靠性、最小成本。这四者相互冲突,只能选择一个。对于ssh/Telnet这样的应用程序,最小延时比较重要,对于ftp这样的程序,最大吞吐量比较重要。
  • 16位总长度(total length):IP数据报整体占多少个字节
  • 16位标识(id):唯一的标识主机发送的报文,如果IP报文在数据链路层被分片了,那么每一个片中的报文是一样的
  • 3位标志字段:第一位保留,第二位置为1,表示禁止分片,如果报文长度超过MTU,IP模块就会丢弃报文,第三位表示“更多分片”,如果分片了的话,最后一个分片置为1
  • 13位分片偏移(framegament offset):片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。片偏移一般以8个字节为偏移单位。每个分片长度一定是8字节的整数倍
  • 生存时间(Time To Live):数据报到达目的地的最大报文跳数,一般是64,每次经过一个路由TTL-=-1,直到减到0还没有到达,那么就丢弃。这个字段主要用来防止出现路由循环。
  • 8位协议:表示上次协议的类型

网段划分

IP地址分为两个部分,网络号和主机号

网络号:保证相互连接的两个网段具有不同的标识
主机号:同一网段内,主机之间具有相同的网络号,但是必须要有不同的主机号

这里写图片描述

  • 不同的子网其实就是将网络号相同的主机放在了一起
  • 如果子网中新增了一台主机,则这台主机的网络号和这个子网的网络号一样,但是主机号不能喝子网中的其他主机重复。

    如何进行管理子网内的IP?

有一种技术叫做DHCP(动态主机配置协议),能自动的给子网内新增主机节点分配IP地址,避免了手动管理IP的不便。
一般的路由器都带有DHCP功能,因此路由器也可以看做一个DHCP服务器。

IP地址划分为五类
这里写图片描述

  • A类:0.0.0.0到127.255.255.255
  • B类:128.0.0.0到191.255.255.255
  • C类:192.0.0.0到223.255.255.255
  • D类:224.0.0.0到239.255.255.255
  • E类:240.0.0.0到247.255.255.255

我们在大多数的情况下只是申请的B类的网络地址,这样造成其他类的浪费,针对于这种情况我们提出了新的划分方案CIDR(Classless Interdomain Routing)(无类别域间路由)

  • 引入一个额外的量子网掩码(subnet mask)来区分网络和主机号
  • 子网掩码是一个32位的正整数,通常用一串0来结尾
  • 将IP地址和子网掩码进行按位与操作,得到的结果就是网络号
  • 网络号和主机号的划分与这个IP地址是A类、B类、C类无关

特殊的IP地址

  • 将IP地址中的主机地址全设为0就变成了网络号,代表这个局域网
  • IP地址中的主机地址全设为1就变成了广播地址,用于给同一链路中相互连接的所有主机发送数据包。
  • 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1

IP地址的数量限制

我们知道IP地址(IPV4)是一个4字节32位正整数,那么总共有2的32次方,大概43亿左右,这意味着每一个主机都需要一个IP地址,
CIDR(无类域间路由)在一定的成都上缓解了IP地址不够用的问题,但是IP到底值的绝对上限并没有增加,这时候我们有提出了三种方式:

  • 动态分配IP地址:只给接入网络的设备分配IP地址,因此同意MAC地址的设备,每次接入互联网中得到的IP地址并不一定是相同的。
  • NAT技术
  • IPV6:IPV6并不是IPV4的简单的升级版,这是之间互不相干的两个协议,IPV6用16字节128位来表示一个IP地址,但是目前的IPV6还是没有普及的。

私有IP地址和公有IP地址

10.*前8位是网络号,共16777216个地址
172.16.到172.31.前12位为网络号,共1048576个地址
192.168.*前16位是网络号,共65536个地址,包含在这个范围中的都成为了私有IP地址,其余的则称为全局IP(或公网IP);

  • 一个路由器可以配置两个IP地址,一个是WAN口IP,一个是LAN口IP(子网IP)
  • 路由器LAN口连接的主机,都从属于当前这个路由器的子网中。
  • 不同的路由器,子网IP其实都是一样的(通常都是192.168.1.1),子网内的主机IP地址不能重复,但是子网之间的IP就可以进行重复了。
  • 每一个家用路由器,其实又作为运营商路由器 子网中的一个节点,这样的运营商路由器可能会有很多级,最外层的运营商路由器,WAN口IP就是一个公网IP了。
  • 子网内的主机需要和外网进行通信时,路由器将IP首部中的IP地址进行替换(替换成WAN口IP),这样逐级进行替换 ,最终数据包中的IP地址成为一个公网IP,这种技术叫做NAT技术。(Network Address Translation,网络地址转换)。
  • 如果希望我们自己实现的服务器程序,能够在公网上被访问到,就需要把程序部署在一台具有外网IP的服务器上,这样的服务器可以在阿里云/腾讯云上进行购买。

猜你喜欢

转载自blog.csdn.net/daboluo521/article/details/80736881
今日推荐