IP

文章目录

IP

OSI七层模型

  • 应用层 message报文 FTP、DNS、Telnet、SMTP、HTTP
    针对特定应用的协议
  • 表示层 JPEG、MIDI
    设备固有数据格式和网络标准数据格式的转换,或者来自下一层数据转换为上一层能够处理的数据格式。主要负责数据格式的转换
  • 会话层 RPC、SQL
    通信管理,负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理
  • 传输层 segment报文段 TCP、UDP
    管理两个节点之间的数据传输
  • 网络层 datagram 数据报 IP、ARP、IPX
    地址选择和路由选择
  • 数据链路层 frame 帧 VLAN、HDLC
    互联设备的传送
  • 物理层 IEEE802.3
    01比特流与电压高低,灯的闪灭之间的互换。

面向有连接型与面向无连接型

  • 面向有连接型:互发送数据之前需要在收发主机之间连接一条通信线路
  • 面向无连接型:不要求建立和断开连接,发送端可以于任何时候接收数据。因此,在这种情况下,接收端需要时常确认是否收到了数据。不需要确认对端是否存在,即使没有对端也可以正常接收和发送数据

电路交换和分组交换

电路交换:某条线路在连接建立之后,可被用户一直使用直到连接被断开为止
分组交换:连接到通讯线路的计算机将要发送的数据分成多个数据包,按照一定的顺序排序之后分别发送。

单播:一对一
广播:一对多
多播:一对多,限定一组主机
任播:在特定多的主机中选出一台作为接收端

地址

MAC寻址:地址转发表
IP寻址:路由控制表

TCP/IP

TCP/IP协议是很多情况下是利用IP进行通讯时所需要用到的协议群的统称

互联网

互联网为The Internet,网际网 Internet(专门指代网络之间的连接)

在通信时候,每一层的首部都包含源地址、目标地址以及上一层协议

网络层

这一层主要由IP(Internet protocol)和ICMP(Internet control message protocol)两个协议组成
网络层主要是实现里两个终端节点之间的通信,数据链路层是在互联同一种数据链路中的节点之间进行包传递,网络层可以跨越多个链路层。

一般配有IP地址而不进行路由控制的称为主机,进行路由控制的称为路由器。节点是主机和路由器之间的统称。

数据链路提供直连两个设备之间的通信功能,网络层负责没有直连两个网络之间进行通信传输

路由控制:将分组数据发送到最终目标地址的功能。

一跳的范围:利用数据链路层以下分层功能传输数据帧的一个区间

为了将数据发给目标主机,所有主机都维护者一张路由控制表。该表记录着IP数据在下一步应该发给哪一个路由器。IP包根据这个路由表在各个数据链路进行转发。

IP的分片处理:将较大的IP包分成多个较小的IP包。分片的包到达对端目标地址以后会被再组合传给上一层。

IP面向无连接。在发包之前,不需要建立与对端目标地址之间的连接。上层如果遇到需要发给IP的数据,该数据会立即被压缩成IP包发送出去

  • 简化
  • 提速

IP地址

IPv4采用32位正整数来标识。一般将32位地址分为4组,每组8位,以’.’分隔,再将每组转换成十进制(即共采用4byte来存储地址)
所以每组最大为2^8 - 1 = 255(包含0)

IP地址由网络和主机两部分组成

相同段内相连的主机必须由相同的网络名,但是必须有不同的主机名
子网掩码进行区分

IP地址的分类

  • A类:0开头的地址,第一位到第8位是网络标识,其他是主机标识,即0.0.0.0 - 127.0.0.0
  • B类:10开头的地址,第1位到第16位是B类的网络标识,其他是主机标识,128.0 - 191.255
  • C类:110开头的地址,第1位到24位是网络标识,192.0 - 223.255.255
  • D类:1110开头的地址,第一位到32位都是网络标识。这个地址没有主机标识,常被用于多播

在分配IP的时候,主机标识不能全部为0或者全部为1,因为全部为0在地址不可获知的情况下使用,全部为1常用作广播地址

路由器不转发广播的包,但是转发多播的包

子网掩码:用1表示网络地址比特范围,用0表示主机地址范围。网络标识相同的计算机必须同属于一个链路

私有IP:
10.0 - 10.255, 172.16 - 172.31,192.168- 192.168.255

路由控制

  • 静态路由控制
  • 动态路由控制

路径MTU发现

分片机制,如果数据链路的MTU(最大传输单元)小于数据报的时候,会进行分片操作,路径MTU发现可以获得发送端主机到接收端主机之间不需要分片时最大的MTU大小。这样的可以避免在中途的路由器上进行分片处理。

过程:

  1. 首先发送端主机设置分片禁止标志为1.这个标识说明即使消息大小比MTU大,也不进行分片。
  2. 途中路由器将包丢弃,然后通过一个ICMP的不可达信息将数据链路上将MTU的值发送主机(对于TCP与UDP不同,TCP在下次重发的时候将报文段分隔成不被分片的大小,而UDP则在下一次发送数据的时候被IP层分片)
  3. 下次可以利用发送同一目标主机的IP数据包获得MTU值,直到最后。
  4. MTU值如果较多的时候,可以缓存10分钟

IPv6(128位,8个两字节)

  • IP地址的扩大与路由控制表的聚合(分配与其地址结构相适应的IP地址,避免路由器膨大)
  • 性能提升(简化首部结构,不再进行分片,通过MTU发现只由发送端主机进行分片处理)
  • 支持即插即用(可以不需要DHCP服务器自动分配IP)

ARP协议

通过ip找到mac地址的协议

  1. 首先广播,带上ip地址
  2. 该ip接收到广播返回一个相应包,包含主机的ip以及mac地址
  3. 将获得的mac地址缓存一段时间,超过期限,缓存的内容将被清除

ICMP协议

确认IP包是否成功送达目标地址,通知IP包被抛弃的原因,改善网络设置等等

ICMP目标不可达信息
ICMP重定向信息
ICMP超时信息,IP包中有一个字段(TTL TimeToLive),它的值每经过一次路由器就会减1,直到减到0的时候该IP包就会被抛弃。此时路由器将会发送一个ICMP超时信息(避免IP包在网络上无休止地被转发)、

DHCP

自动设置IP地址,统一管理IP地址分配

过程:

  1. 设置一台DHCP服务器,然后将DHCP所要分配的IP地址设置到服务器上。此外,还需要将相应的子网掩码、路由控制信息以及DNS服务器的地址等设置到服务器上。
  2. DHCP发现包:要求设置IP和子网掩码
  3. DHCP提供包:通知可以使用的网络设置
  4. DHCP请求包:通知想要使用在2通知中的设置
  5. DHCP提供包:允许3中的设置

一般DHCP设置会有一个时间限制,客户端可以在时间之前发送一个DHCP请求包延长这个时限

DHCP中继代理

NAT

Network Address Translator
提供从私有地址和全局地址之间的转换

NAT-PT

这个协议是将IPv6首部转换成IPv4首部

潜在问题:

  • 无法从NAT的外部向内部服务器建立连接
  • 转换表的生成和转换操作产生一定的开销
  • 通信过程中如果NAT遇到了异常需要重新启动时候,所有的TCP连接都将被重置

IP隧道

一般情况下,紧接着IP首部的是TCP后者UDP首部,然而,现在的应用中IP首部后面还是IP首部

分享到: