计算机网络note_IP协议

1、IP协议在网络层中的位置


2、IP数据报的格式

  • IP协议版本号:4bit;

                                IPv4网络这个值是0100;

  • 头部长度:4bit,以4字节为单位;

                        没有option时是20个字节所以一般为20/4=5=0x101;

  • type of service服务类型:8bit,有优先权、低延迟、高吞吐量、高可靠位;

                        在实际中已经不用了,因为大家都想把自己优先级设最高、最低延迟、高吞吐量、高可靠嘛;

  • length:整个IP数据报的长度(报头+数据区),以字节为单位;
  • 16位标识、flags、fragment offset:分片/重组使用,后面介绍;
  • TTL:每经过一个路由器,减1;
  • upper layer:IP协议可以承载各种上层协议;

  • Internet checksum:头部的校验和;(校验方式同UDP)
  • 32位源IP;32位目标IP;

2.1、IP分片和重组(fragment&reassembly)

网络中,不同的链路有MTU(最大传输单元)之分;

大的IP数据报如果通过另一种链路来转发,就要分成若干小的IP数据报,最后在目标主机处进行重组;

  • 具有相同的16bit ID;
  • 不同的偏移量,以8字节为单位;
  • 最后一个分片标记为0,代表分片的总数;

 一个具体的分组例子:如何将一个4000字节的IP数据报 转成 3个1500字节的IP数据报;

 


3、IP地址

3.1、什么是IP地址?

IP地址:32位,对主机或路由器的接口编址

  • 路由器通常有多个接口;
  • 主机通常一个接口,也可能有多个接口;

3.2、什么是子网(Subnets)?

IP地址高位部分相同,低位不同,这些节点构成的网络叫做子网;

在子网内部,无需路由器介入,各主机可一跳到达; 


3.3、IP地址的分类


3.4、内网专用IP地址

只在局部网络中有意义,以区分不同的设备;

专用地址不会被当做公用地址,因此路由器不会对目标地址是专用地址的分组进行转发

专用地址范围

class A:10.0.0.0~10.255.255.255,mask 255.0.0.0

class B:172.16.0.0~172.31.255.255,mask 255.255.0.0

class C:192.168.0.0~192.168.255.255,mask 255.255.255.0


3.5、如何获得一个IP地址?

上网要配置4个信息,IP地址、子网掩码、默认网关、DNS服务器

  • 由系统管理员分配;
  • 使用DHCP,从DHCP服务器中动态获取IP地址;

可以看到启动了DHCP,DHCP的服务器地址和默认网关的地址是一样的,也就是说我连接的路由设备兼具了默认网关和DHCP的功能;

DHCP给我分配了IP地址,时限是2小时;


 3.6、DHCP(Dynamic Host Configuration Protocol)

3.6.1、DHCP提供的服务:

  • 让加入网络的主机拥有一个IP地址;
  • 动态IP是有限时的,可以更新限时;
  • 重启时,允许重新使用以前的IP;
  • 支持移动用户加入到网络(短期在网)

3.6.2、DHCP是如何工作的?

  • 主机:广播 “DHCP discover” 报文;
  • DHCP服务器:“DHCP offer” 响应报文;
  • 主机:请求IP地址,发送“DHCP request”报文;
  • DHCP服务器:回复“DHCP ack”报文;

4、路由转发

4.1、IP编址:CIDR(Classless InterDomain Routing)无类域间路由

  • 子网部分可以在任意位置
  • 地址格式:a.b.c.d/x,x是子网号的长度; 


4.2、转发表和转发算法

首先,获取IP数据报中目标IP地址;

然后,将目标IP地址&子网掩码,与第一列网络号匹配,从最后一列Interface转发出去;

第一行:目标IP地址为202.38.73.00xx xxxx 与&子网掩码255.255.255.192,得到202.38.73.0;

第二行:目标IP地址为202.38.64.00xx xxxx 与&子网掩码255.255.255.192,得到202.38.64.0;


4.3、层次编址:路由聚集(route aggregation) 

支持不完全的聚集,匹配最长子网掩码;


5、NAT(Network Address Translation)

5.1、什么是NAT?

本地网络只有一个IP地址,通过NAT技术可以让一个IP为局域网多设备使用;

NAT只有一个IP地址,但是端口号是16位(65536)的,用端口号来区分局域网内不同的主机;


5.2、实现:(NAT转换表,记录对应关系)

  • 发送数据报:源地址→NAT的IP地址、源端口号→新端口号;
  • 接收接收报:NAT的IP地址→源地址、新端口号→源端口号;


 5.3、NAT 穿越问题

客户端如何主动访问NAT局域网内的服务器?

方案1:静态配置NAT

  • 138.76.29.7,port 2500就对应着服务器10.0.0.1 port 2500;

方案2:Universal Plug and Play(UPnP)Internet Gateway Device(IGD)协议

  • 在服务器部署之前,查询NAT路由器存在的端口映射,加一个新的端口来租用;

方案3:使用中继,客户端和服务器使用中继交换信息;


 

6、IPv6(128bit IP地址)

6.1、为什么有IPv6?

  • IPv4的32bit地址空间用完了;
  • 提升QoS服务质量:不分片、去掉checksum、

6.2、IPv6数据报格式

固定的40字节头部;

传输过程中不允许分片,如果数据报过大返回ICMP信息给源主机;

 

  • ver:版本号,0110;
  • pri:优先级;
  • flow label:没有严格定义,标识哪些数据报在一个flow;(比如同一个IP发的数据报)
  • payload len:载荷数据长度,除了头部40字节之后的部分,图中就后面data的字节数;
  • next header:标识上层协议,或扩展头部;
  • hop limit:相当于原来的TTL;

6.3、IPv4到IPv6的过渡

使用隧道(Tunneling),在IPv4路由器之间传输携带IPv6数据报的IPv4; 

参考链接:

IP数据报格式详解_believe209的博客-优快云博客_ip数据报的格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值