文章目录

  • IP协议
    • 一、什么是IP协议
      • 1、IPv4协议报文格式
        • 关于分片
      • 2、IP地址
      • 3、子网划分与CIDR
      • 4、特殊的IP地址
      • 5、公网IP和私网IP
      • 6、IP地址的分配(DHCP)
    • 二、NAT/NAPT技术
      • 1、接口与IP的关系
      • 2、路由器的LAN口与WAN口
      • 3、NAPT的基本工作原理
    • 三、IPv4与IPv6
    • 四、ICMP协议
      • 1、关于ping命令
      • 2、关于traceroute命令

IP协议

一、什么是IP协议

IP协议,即Internet Protocol,是TCP/IP协议簇的网络层协议,提供无连接、不可靠、尽力而为的服务。

1、IPv4协议报文格式

  • 4位版本:指定IP协议的版本,例如IPv4就是0100(4)。
  • 4位首部长度:指定报文首部(即**20字节固定内容+选项)的长度,以四字节为单位,因此实际长度是该字段 * 4**得到的。
  • 8位服务类型(TOS):用于规定本数据报的处理方式,大多数情况下网络并未对TOS进行处理
  • 16位总长度:报文首部+数据的总长度。
  • 16位标识:用来唯一地标识一个IP数据报。如果该报文被分片,那么每一片的标识id都是相同的。
  • 3位标志:最高位保留,暂无用处;中间位为1表示该数据报禁止分片最低位为1表示该报文是最后一个分片
  • 13位片偏移:分片相对于原始IP报文开始处的偏移量。以八字节为单位,实际偏移的字节数是这个值 * 8 得到的。因此,除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)。
  • 8位生存时间(TTL,Time To Live):表示该数据报还可以被路由器转发几次。每经过一个路由,TTL都会减一,如果减到0还没有到达,则数据报被丢弃。该字段主要用于防止路由器循环问题。
  • 8位协议:表示携带的载荷用到的协议。TCP为0x06,UDP为0x11。
  • 16位首部校验和:用来检验报文首部是否有损坏。
  • 源IP与目的IP:发送端IP和接收端IP。

关于分片

数据传输的大小受到MTU(最大传输单元,Maximum Transmission Unit)的限制。因此,对于过大的数据包,需要进行分片处理,每个片都是一个IP数据报。

但是分片发送数据会导致数据丢包的几率更大。

2、IP地址

IP地址的基本格式为xxx.xxx.xxx.xxx,由四段组成,每个字段是一个字节,总共4字节,每个字节有8位,最大值是255。

IP地址由两大部分组成:网络号(前三个字节)和主机号(最后一个字节),二者是主从关系。

  • 网络号:它标志主机(或路由器)所连接到的网络,网络地址表示其属于互联网的哪一个网络

  • 主机号:它标志该主机(或路由器)属于网络中的哪一台主机。

3、子网划分与CIDR

过去曾经提出一种划分网络号和主机号的方案,把所有IP地址分为五类:

一个IP的组成为:<网络号>.<主机号>

然而实际上,大多数组织会申请B类IP,因为A类IP的主机数过多,大多数情况下不会存在一个子网下有这么多主机,C类IP主机数又太少,所以导致大量的IP被浪费了。

针对此情况,又提出了一个新的子网划分的方式:CIDR

CIDR,即无分类域间路由选择(Classless Inter-Domain Routing)。它完全摒弃了传统的IP分类方式,而使用子网掩码区分一个IP的网络号和主机号,使得网段划分更加灵活。

子网掩码是32位整数,由高位的n个连续1和低位的32-n个连续0组成。将子网掩码同IP地址按位与,得到的就是网络号,其余的就是主机号,比如说:

IP : 141.14.72.11 子网掩码 : 255.255.255.0

两者按位与得到141.14.72.0,这就是网络号,而11是主机号。

因此,新的IP表达方式为:<网络号>.<主机号>/<网络号的位数>,所谓网络号的位数就是子网掩码前缀1的数目

利用这种方法,上述例子中的IP就是141.14.72.24/24

4、特殊的IP地址

  • 将IP地址中的主机地址全部设为0,就成为了网络号,代表这个局域网;

  • 将IP地址中的主机地址全部设为1,就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据包;

  • 127.*的IP地址用于本机环回(loop back)测试,通常使用127.0.0.1

5、公网IP和私网IP

公网IP:由Inter NIC(因特网信息中心)负责,用来分配给向Inter NIC提出申请的组织机构。

公有IP**全球唯一,通过它可以直接访问因特网(能直接上网**)。

公网IP主要有A、B、C、D、E五类地址:

  • A类:地址范围 1.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,第一个字节以1110开头,用做广播地址

  • E类:地址范围240.0.0.0 ~ 255.255.255.255`,暂时保留

私网IP:属于非注册地址,专门为组织机构内部组建局域网使用,不能直接上网

私网IP主要有A、B、C三类:

  • A类:地址范围10.0.0.0 ~ 10.255.255.255。1个A类网络地址,共约1677万个IP地址。

  • B类:地址范围172.16.0.0 ~ 172.31.255.255。16个B类网络地址,共约104万个IP地址。

  • C类:地址范围192.168.0.0 ~ 191.168.255.255。256个C类网络地址,共约65536个IP地址

注:私网IP分别是公网IP中A、B、C三类地址中的一部分,只是被划分出来单独用作私网组建。

6、IP地址的分配(DHCP)

管理员可以通过手动的方式分配IP地址,也可以通过DHCP(动态主机配置协议)来完成。

通过配置,DHCP可以为想要入网的主机分配固定的IP地址,也可以分配临时的IP地址,每次网络连接时该地址可能是不同的。

除了地址分配,DHCP协议还会允许主机获得子网掩码、默认网关、DNS服务器等网络配置信息,使其能够顺利联网。

上述过程通过报文交互的方式完成。

二、NAT/NAPT技术

NAT,即网络地址转换(Network Address Translation),运行在路由设备上,是一种把私网IP转换为公网IP的技术,用于解决IPv4地址不足的问题

NAPT,即网络地址端口转换(Network Address Port Translation),在NAT的基础上又加入了端口映射。

1、接口与IP的关系

一台主机通常只有一条物理链路链接到网络,主机与物理链路之间的边界称为接口。而对于路由器,至少需要一条链路接收数据、另一条链路发送数据,因此路由器有多个接口(至少两个)。

每台主机与路由器都能发送和接收IP数据报,因而IP要求每台主机和路由器接口都拥有自己独立的IP地址。因此,从技术上讲,一个IP地址与一个接口相关联,而不是与包含该接口的主机或路由器相关联

2、路由器的LAN口与WAN口

WAN,即Wide Area Network,代表广域网,是路由器与运营商网线相连的接口,对应WAN口IP。

LAN,即Local Area Network,代表局域网,是计算机与路由器相连的接口,对应LAN口IP。

3、NAPT的基本工作原理

  1. 当局域网内的某台主机想要访问公网上的某台服务器时,它会将数据报发送到路由器LAN口,数据报中包含源IPTCP/UDP协议的源端口号目的IPTCP/UDP协议的目的端口号

  2. NAPT路由器内部维护一张NAPT转换表。NAPT路由器收到数据报后,会为其生成没有出现在NAPT转换表中的新端口号替换源端口号,并用WAN口IP替换源IP,从而形成(新的IP,端口号),将(新IP,端口号):(源IP,源端口号)的映射关系存储在表中。

  3. 数据报的传输可能会经过N跳路由器,每一跳都会经历上述IP和端口号替换的过程。

  4. 数据报到达服务器后,服务器会发送响应报文。报文每到达一个路由器,就通过查找NAPT转换表的方式找到源IP和源端口,直到到达目的主机。

注:NAT与NAPT的区别在于,NAT内部使用了不同的IP进行映射,而NAPT使用了一个WAN口IP和不同的端口号进行映射。

三、IPv4与IPv6

IPv4采用32位地址长度(4字节),约有43亿地址.

IPv6地址为128位(16字节),但通常写作8组,每组为四个十六进制数的形式。

例如:FE80:0000:0000:0000:AAAA:0000:00C2:0002

四、ICMP协议

ICMP协议,即控制报文协议(Internet Control Message Protocol),是网络层协议之一,起到辅助IP协议的作用。

  • ICMP的作用分为两类:错误通知和信息查询,可以用来确认IP包是否成功到达目标地址、通知在发送过程中IP包被丢弃的原因…
  • ICMP的报文是放在IP数据报里的,因此,ICMP是IP的上层协议,但是工作在网络层,而非传输层。
  • ICMP只能搭配IPv4使用,而IPv6需要使用ICMPv6

1、关于ping命令

ping命令基于ICMP协议,用来测试网络的连通性,其工作的基本过程为:

  1. ping命令会先发送一个ICMP Echo Request给对端;
  2. 对端接收到之后,返回一个ICMP Echo Reply。

基本使用格式:ping+主机名/IP地址,如:ping www.baidu.com

注:ping命令基于网络层协议,因此不存在端口一说。

2、关于traceroute命令

traceroute命令同样基于ICMP协议,用来检测发出数据包的主机到目标主机之间所经过的网关数量

基本使用格式:traceroute+主机名/IP地址,如:traceroute www.baidu.com

IP协议与NAT/NAPT技术相关推荐

  1. 使用TCP协议的NAT穿透技术 (转)

    其实很早我就已经实现了使用TCP协议穿透NAT了,但是苦于一直没有时间,所以没有写出来,现在终于放假有一点空闲,于是写出来共享之. 一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技术,基 ...

  2. SIP协议的NAT穿越技术

    作者: Diana Cionoiu 原文: http://freshmeat.net/articles/view/2079/ 翻译:Karl Ma NAT 指的是网络地址转换(Netword Addr ...

  3. 第五章 有关IP协议的技术

    目录 概述 重要提示 DNS  域名系统服务 DNS 的产生 域名结构 ARP 地址解析协议 ARP 何方神圣 ARP工作机制 ICMP 网络控制报文协议 辅助IP的 ICMP 主要的ICMP 消息 ...

  4. NAT/NAPT地址转换(内外网通信)技术详解【华为eNSP】

    一.前言 我们之前已经解决了,DHCP,VRRP,MSTP,OSPF的需求了,我们来解决一下内外网通信的需求: 11.思考当内网用户需要访问互联网时如何实现 先看一下我们现在的拓扑图: 现在的需求就是 ...

  5. TCP/IP协议族(第4版)

    链接:https://pan.baidu.com/s/1Pia2by1s83kiVXEyU-dPRg 密码:ruur <世界著名计算机教材精选·TCP/IP协议族(第4版)>可作为大学生和 ...

  6. NAT / NAPT

    目录 一.前言 二.网络地址转换(NAT) 2.1 NAT如何解决IP冲突 2.2 SNAT / DNAT 2.3 SNAT工作原理 2.3.1 案例1(NAT) 2.3.2 案例2(NAPT) 2. ...

  7. cisco 模拟器安装及交换机的基本配置实验心得_看完这份1113页的TCP/IP协议+路由与交换机,成功上岸字节跳动...

    TCP是一个巨复杂的协议,因为它要解决很多问题,而这些问题又带出了很多子问题和阴暗面.所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获. 之所以想写这篇文章,目的有三个: 一个 ...

  8. TCP/IP协议族(第四版)已出,不愧是世界计算机优秀畅销精选书籍

    序言 学习是一种基础性的能力.然而,"吾生也有涯,而知也无涯.",如果学习不注意方法,则会"以有涯随无涯,殆矣". 学习就像吃饭睡觉一样,是人的一种本能,人人都 ...

  9. 计算机网络 | IP协议相关技术与网络总结 :DNS、ICMP、DHCP、NAT/NAPT、通信流程

    IP协议相关技术与网络总结 DNS DNS与域名 域名服务器 域名的解析流程 ICMP ping NAT/NAPT NAT NAPT NAT的缺陷 代理服务 DHCP 通信流程 浏览器中输入url后, ...

最新文章

  1. 查看SqlServer的内存使用情况
  2. void slove C语言什么意思,菜鸟求助-如何用指针法将一串字符按单词的倒序输出?如:i love yo...
  3. data的值 如何初始化vue_vue 创建一个基础实例【02】
  4. Redis的Linux单机版安装
  5. Byteman –用于字节码操纵的瑞士军刀
  6. 饿了吗商品列表_仅仅一字之差,饿了么起诉饿了吗
  7. C++函数名的修饰规则
  8. vscode用作markdown入门1--环境创建
  9. windbg 修改内存和寄存器指令
  10. UVA 357 - Let Me Count The Ways
  11. Nginx+Tomcat搭建高性能负载均衡集群
  12. Python 爬虫 PhantomJs 获取JS动态数据
  13. Opencv3与Opencv2的区别,及opencv2项目移植到opencv3注意事项
  14. ADNI影像数据解析及下载
  15. 微星B450mMortar迫击炮+AMD速龙3000GE安装Windows7 SP1并使用UEFI+Nvme启动
  16. HTML设置格式化时间
  17. 深蓝学院-视觉SLAM理论与实践-第十二期-第3章作业
  18. ios支付宝支付--看我就够了
  19. 应广单片机定时器中断配置
  20. zTree插件 角色、部门、人员分类选择

热门文章

  1. mac python+selenium+阿布云
  2. 南京Uber优步司机奖励政策(1月25日~1月31日)
  3. 苹果联创入局区块链的意料之外与情理之中 |链捕手
  4. 景观风水十大原则 (转载)
  5. 找到有趣发现好玩的应用 一个木函
  6. MPC5748G开发笔记-----CAN通信
  7. mysql8.0 设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
  8. 360路由器刷openwrt、不死uboot、双系统 、wifi中继
  9. 红米k30至尊纪念版和华为nova7se哪个好
  10. 【软考总结】——正视自己的不足