网络协议基础(四):IP报文简单讲述

前面详细学习了传输层,了解了TCP头部的构成与各个组成部分的含义。那设计网络层的目可以简单的描述为IP 寻址、选路、封装打包、分片。

1. NAT与NAPT

(1) NAT(IP Network Address Translator)应用的前提

  • 内网中主要用于客户端访问互联网
  • 同一时间仅少量主机访问互联网
  • 内网中存在一个路由器负责访问外网

究其原因是因为对外配置有公网IP的路由器仅仅只替换转发报文的源IP,所以只能建立一对一的公网与私有IP的映射,大大限制了并发量。那如何解决这种情况哩,唯有借助改变源端口号来解决。
(2) NAPT 端口映射:Network Address Port Translation
如(1)中所述不止修改源IP,还会修改源Port.

2.IP 选路协议

传输 IP 报文的方式:

  • 直接传输
  • 本地网络间接传输
    内部选路协议 RIP, OSPF
  • 公网间接传输
    外部选路协议 BGP
3.IP 报文头部

ipheader如上图所示和TCP头部规定相同,IP头部也是20bytes的固定字节,剩余最多40bytes的选项。在固定20byets中有协议版本号,ip头部长度,整个IP分组的长度,分片标识符Identification,分片标记与偏移量,报文生存时间TTL与上层协议,头部校验和,源/目的ip地址这几个选项。它们具体作用也颇为简单,百度一下,你就拥有。下面还是基于Wireshark抓包来展示:
ipheaders基于以上的头部格式就可以解答为什么在ip报文有可能在传输过程中发生多次分片的情况下仍然可以有效组合的情况了! 盖因ip头部中有对应的分片标识符,对于同一个报文的不同分片会对应相同标识符与不同偏移量,基于此来实现也。

4.IP 协议的助手:ICMP 协议

ICMP 协议的本质是被IP报文封装的介于网络层与传输层之间的协议,其报文格式如下图所示:
icmp_message果然在好的一幅图不及一幅图来的详细。上面清楚的展示了ICMP报文的组织形式,然而具体问题具体分析,接下来就使用windows上的tracert命令远程一下baidu.com,并使用Wireshark抓icmp报文,捕获到的一个icmp报文格式如下:
example图片清楚的展示了ICMP的设计思想与tracet之所以可以跟踪路由的根本原因,此处不再过多阐述。

附:关于ipv4地址全 0 或者全 1 的特殊含义
网络号主机号A 类示例B 类示例C 类示例含义
网络号主机号77.91.215.5154.3.99.6227.82.157.160指定某个主机
网络号全 077.0.0.0154.3.0.0227.82.157.0指定某个网络
全 0主机号0.91.215.50.0.99.60.0.0.160指定当前所属网络下的某个主机
全 0全 00.0.0.00.0.0.00.0.0.0指定自己的默认 IP 地址
网络号全 177.255.255.255154.3.255.255227.82.157.255指定某个网络下的所有主机,用于广播
全 1全 1255.255.255.255255.255.255.255255.255.255.255所有主机
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值