IP的基本认识

IP在TCP/IP参考模型中处于第三层,也就是网络层

网络层的主要作用是:实现主机和主机之间的通信,也叫做点对点通信

问:网络层与运输层的关系

网络层(IP)提供点到点的服务,运输层(TCP/UDP)提供端到端的服务

问:网络层和数据链路层的关系

有的小伙伴分不清 IP(网络层) 和 MAC (数据链路层)之间的区别和关系。

其实很容易区分,在上面我们知道 IP 的作用是主机之间通信用的,而 MAC 的作用则是实现「直连」的两个设备之间通信,而 IP 则负责在「没有直连」的两个网络之间进行通信传输

举个生活的栗子,小林要去一个很远的地方旅行,制定了一个行程表,其间需先后乘坐飞机、地铁、公交车才能抵达目的地,为此小林需要买飞机票,地铁票等。

飞机票和地铁票都是去往特定的地点的,每张票只能够在某一限定区间内移动,此处的「区间内」就如同通信网络中数据链路。

在区间内移动相当于数据链路层,充当区间内两个节点传输的功能,区间内的出发点好比源 MAC 地址,目标地点好比目的 MAC 地址。

整个旅游行程表就相当于网络层,充当远程定位的功能,行程的开始好比源 IP,行程的终点好比目的IP 地址。


如果小林只有行程表而没有车票,就无法搭乘交通工具到达目的地。相反,如果除了车票而没有行程表,恐怕也很难到达目的地。

因为小林不知道该坐什么车,也不知道该在哪里换乘。因此,只有两者兼备,既有某个区间的车票又有整个旅行的行程表,才能保证到达目的地。与此类似,计算机网络中也需要「数据链路层」和「网络层」这个分层才能实现向最终目标地址的通信。

还有重要一点,旅行途中我们虽然不断变化了交通工具,但是旅行行程的起始地址和目的地址始终都没变。其实,在网络中数据包传输中也是如此,源IP地址和目标IP地址在传输过程中是不会变化的,只有源 MAC 地址和目标 MAC 一直在变化。

具体参考: 数据链路层VS网络层

IP基础

在TCP/IP网络通信时,为了保证能够正常通信,每个设备都需要配置正确的IP地址。否则无法实现正常的通信

  • 互联网上的每个接口必须有一个唯一的Internet地址(也叫做IP地址)
  • 多接口主机具有多个IP地址,其中每个接口都对应一个IP地址。
  • 由于互联网上的每个接口必须有一个唯一的IP地址,因此必须要有一个管理机构为接入互联网的网络分配IP地址。这个管理机构就是互联网网络信息中心,称作InterNIC(Internet Network Information Center)。InterNIC只分配网络号。主机号的分配由系统管理员来负责。
  • 有三类I P地址:单播地址(目的为单个主机)、广播地址(目的端为给定网络上的所有主机)以及多播地址(目的端为同一组内的所有主机)。

IP地址(ipv4)由32位二进制数来表示。

  • 因此IP地址的最大值是232=42949672962^32=4294967296232=4294967296,即最大允许 43 亿台计算机连接到网络。

  • 实际上,IP 地址并不是根据主机台数来配置的,而是以网卡。像服务器、路由器等设备都是有 2 个以上的网卡,也就是它们会有 2 个以上的 IP 地址。

  • 因此,让 43 亿台计算机全部连网其实是不可能的。

  • IP 地址是由「网络标识」和「主机标识」这两个部分组成的,所以实际能够连接到网络的计算机个数更是少了很多

  • 「网络标识」唯一标记一个局域网

  • 「主机标识」唯一标记局域网中的一台主机

  • 现在的网络设备早就超过了43 亿了,为了解决IP不足的问题,提出了NAT技术。 后来,又有了ipv6

为了方便记忆,我们采用了点分十进制的标记方式处理IP地址:将32位的IP地址以每8位为组,共分为 4
组,每组以「.」隔开,再将每组转换成十进制

IP地址的分类[了解即可,目前已经不用]

我们知道 IP 地址是由「网络标识」和「主机标识」这两个部分组成的,又根据「网络标识」和「主机标识」的位数,我们可以将IP地址大致分为:A类,B类、C类。实际上,IP地址一共分为5类:A类,B类、C类、D类、E类

问:怎么判断是哪类IP地址

问:A、B、C 分类地址最大主机个数是如何计算的呢?

最大主机个数,就是要看主机号的位数,如 C 类地址的主机号占 8 位,那么 C 类地址的最大主机个数:

为什么要减 2 呢?
因为在 IP 地址中,有两个 IP 是特殊的,分别是主机号全为 1 和 全为 0 地址

  • 主机号全为 1 指定某个网络下的所有主机,用于广播
  • 主机号全为 0 为本地地址,表示本地网络或主机;

在分配过程中,应该去掉这两种情况。

从而,可以算出各类IP地址的最大主机数量

对于A,B,C类(A、B、C三类是给互联网用户使用的)

因为D类和E类地址是没有主机号的,所以不可用于主机IP, D类用来组播(就是多播)的,E类只是试用的。

广播地址用于什么?多播地址用于什么?

由于IP分类存在很多缺点

  • 同一网络下没有地址层次,比如一个公司里用了 B 类地址,但是可能需要根据生产环境、测试环境、开发环境来划分地址层次,而这种 IP 分类是没有地址层次划分的功能,所以这就缺少地址的灵活性。
  • A、B、C 类有个尴尬处境,就是不能很好的与现实网络匹配。
    • C 类地址能包含的最大主机数量实在太少了,只有 254 个,估计一个网吧都不够用。
    • 而 B 类地址能包含的最大主机数量又太多了,6 万多台机器放在一个网络下面,一般的企业基本达不到这个规模,闲着的地址就是浪费。

所以现在上面的分类方法已经不用了,为此我们引入了CIDR。

无类型域间选路CIDR

  • CIDR打破了原来设计原来设备的几类地址的做法,将32位的IP地址一分为二,前面是网络号,后面是主机号。
  • 从哪里分呢? 比如10.100.122.2/24,这个IP地址中有一个斜杠,斜杠后面有个数字24。这种地址就是CIDR。后面24的意义是,32位中,前24位是网络号,后8位是主机号

CIDR可以用来判断是不是本地人

IP地址 VS 域名系统 VS 端口号

  • 在一个互联网上,每个接口都使用IP地址来标识,尽管用户习惯使用主机名而不是 I P地址。
  • 域名系统为主机名和 I P地址之间提供动态的映射。
  • 端口号用来标识互相通信的应用程序。服务器使用知名端口号,而客户使用临时设定的端口号。

Linux下如何查看IP地址

两个命令:ifconfig、ip addr。

看个例子:

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:db:1a:7e brd ff:ff:ff:ff:ff:ffinet 192.168.0.28/24 brd 192.168.0.255 scope global noprefixroute dynamic ens33valid_lft 652806sec preferred_lft 652806secinet6 fe80::3c21:538a:3012:67c9/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:13:61:c6 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:13:61:c6 brd ff:ff:ff:ff:ff:ff

这个命令显示了这台机器上所有的网卡。大部分网卡都有一个IP地址,当然,这不是必须的。

  • 192.168.0.28就是网卡ens33的IP地址值
  • IP之后的scope
    • 对于ens33这张网卡来讲,是global,表示这张网卡是可以对外的,可以接收来自各个地方的包
    • 对于lo来讲,是host,表示这张网卡仅供本机相互通信
      • lo全程是loopback,又称为环回接口,往往会被分配到127.0.0.1这个地址。这个地址用于本机通信,经过内核处理后直接返回,不会在任何网络中出现
  • 在IP地址的上一行是link/ether 00:0c:29:db:1a:7e brd ff:ff:ff:ff:ff:ff,这个被称为MAC地址,是一个网卡的物理地址,用16进制,6个byte表示。
    • MAC地址是一个很容易让人误解的地址。因为MAC地址号称全局唯一,不会有两个网卡有相同的MAC地址,而且网卡自生产出来,就带着这个地址。很多人就会想,既然这样,整个互联网的通信,全部用MAC地址就好了,只要知道了对方的MAC地址,就可以把信息传过去
    • 这样当然是不行的,一个网络包要从一个地方传到另一个地方,除了要有确定的地址,还需要有定位功能。而有门牌号码属性的IP地址,才是有远程定位功能的。
    • 也就是说,IP地址相当于门牌号码,MAC地址相当于身份证。你问路的时候可以问【xxx路xxx号】怎么走,但是你不能问【身份证号码为xxx】的人在哪里
    • MAC地址像是身份证,是一个唯一的标识。它的唯一性设计时为了组网的时候,不同的网卡放在一个网络里面的时候,可以不用担心冲突。从硬件角度,保证不同的网卡有不同的标识
    • MAC地址是由一定定位功能的,只不过范围非常有限。你可以根据IP地址,找到杭州市xxx路xxx层ccc号,但是依然找不到人,这时候你就可以吼,身份证号xxx的是哪位?对方听到了,就会回应,是我。当然,如果你在上海叫,身份证号xxx的是哪位,是绝对找不到的
    • 也就是说,MAC地址的通信范围比较小,局限在一个子网里面。比如,从192.168.0.2/24访问192.168.0.3/24是可以用MAC地址的。一旦跨子网,比如从192.168.0.2/24访问192.168.1.3/24就只能用IP地址定位了
    • 现在很多工具都有可以更改本机的MAC地址,也就是网络上存在很多MAC地址被更改成一样,为什么没有出现通讯异常或者混乱? MAC地址是一个局域网冲突才会影响网络通信,局域网外是IP定位,所以不同局域网的网络设备MAC一样是不会有通讯问题的
  • 关于<BROADCAST,MULTICAST,UP,LOWER_UP>,这个叫做net_device_flags,网络设备的状态标识
    • UP表示网卡处于启动的状态
    • BROADCAST表示这个网卡有广播地址,可以发送广播包
    • MULTICAST表示网卡可以发送多播包
    • LOWER_UP表示L1是启动的,也即是网线插着呢
  • mtu 1500:最大传输单元MTU为1500,这是以太网的默认值
    • 网络包是层层封装的、MTU是二层MAC层的概念。
    • MAC层有MAC的头,以太网规定连MAC头带正文合起来,不允许超过1500个字节。正文里面有IP的头、TCP的头、HTTP的头。如果放不下,就需要分片来传输
  • `qdisc pfifo_fast``
    • qdisc ,queueing discipline,即排队规则。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的qdisc(排队规则)把数据加入队列
    • 最简单的qdiscpfifo,它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列
    • pfifo_fast稍微复杂一点。它的队列包括三个波段(band)。在每个波段里面,使用先入先出规则
      • 三个波段(band)的优先级页不相同。band 0 优先级最高、band 2的最低。如果biand 0里面有数据包,系统就不会处理band 1 里面的数据包,bind 1 和 bind 2 之间也是一样
      • 数据包是按照服务类型(Type of Service,TOS)被分配到三个波段(band)里面的。TOS是IP头里面的一个字段,代表了当前的包是高优先级的,还是低优先级的

网络:IP基础知识总结相关推荐

  1. tcp丢包率_网络编程 | TCP/IP基础知识

    在2017年10月深圳 Cocos 沙龙上,有幸结识了社区中大名顶顶的Colin,Shawn在论坛上第一次看到Colin的团队用CocosCreator制作的<热血暗黑>时就被深深地震撼到 ...

  2. IP 基础知识“全家桶”,45 张图一套带走!

    转载自: https://mp.weixin.qq.com/s/kPjFeefB1Xsbc2bHz_Or1Q 前言 前段时间,有读者希望我写一篇关于 IP 分类地址.子网划分等的文章,他反馈常常混淆, ...

  3. 网络服务器最基本的是文件,你可能想知道的15个网络常用基础知识

    原标题:你可能想知道的15个网络常用基础知识 网络是一个复杂的系统,涉及知识很多.现在腾正小超人给大家分享15个常用的网络基础知识: 1) 如何查看本机所开端口 用netstat -a -n命令查看! ...

  4. IP 基础知识“全家桶”,45 张图一套带走

    目录 前言 正文 前菜 -- IP 基本认识 网络层与数据链路层有什么关系呢? 主菜 -- IP 地址的基础知识 IP 地址的分类 无分类地址 CIDR 公有 IP 地址与私有 IP 地址 IP 地址 ...

  5. IP基础知识 —— “一篇盖全”

    这里写目录标题 序言 一.IP基础知识 网络层与数据链路层有什么关系呢? 二.IP 地址的基础知识 IP 地址的分类 什么是 A.B.C 类地址? A.B.C 分类地址最大主机个数是如何计算的呢? 广 ...

  6. IP 基础知识全家桶,45 张图一套带走

    转:图解IP 基础知识,非常用心的图解教程 感谢作者小林coding 版权 前言 图解关于 IP 分类地址.子网划分等的文章, IP 基础知识,作者分为三道菜: 首先是前菜 「 IP 基本认识 」 其 ...

  7. IP 基础知识“全家桶”

    转载自:https://mp.weixin.qq.com/s/qydIO7NDfFTYs4-ZZlfgRg 前言 前段时间,有读者希望我写一篇关于 IP 分类地址.子网划分等的文章,他反馈常常混淆,摸 ...

  8. Linux网络编程基础知识

    Linux网络编程基础知识 1. 协议的概念 1.1 什么是协议 1.2 典型协议 2 网络应用程序设计模式 2.1 C/S模式 2.2 B/S模式 2.3 优缺点 3 分层模型 3.1 OSI七层模 ...

  9. 网络技术入门(一):网络技术基础知识系统归结

    <网络技术入门>系列文章,分别从宏观硬件和微观数据传输角度说明网络传输过程.请期待后续系列文章. 自己写文章习惯性在每一个小节上做总结,有时候方便理解可以先看总结的内容. 本章主要是总结性 ...

  10. 深入学习网络布线基础知识及子网划分(入门级)

    深入学习网络布线基础知识及子网划分(入门级) 1.信号与传输介质 1.1信号 1.1.1信号的定义 信息:指音讯.消息.通讯系统传输和处理的队形,主要就是表示人类社会传播的一切内容,是一种普遍联系的形 ...

最新文章

  1. 原生JS修改html内容不影响绑定的点击事件 请认准insertAdjacentHTML、insertAdjacentText方法
  2. js基础——正则表达式
  3. 第三方登录如何给前台返回token_如何设计优雅的第三方账号登录?
  4. 如何使用Sublime Text 3作为Markdown编辑器
  5. Rochambeau POJ - 2912 (枚举和加权并查集+路径压缩)找唯一裁判
  6. Chap-4 Section 4.2.4 指令修正方式
  7. matlab画二维颜色深浅,matlab中如何为二维图形填充渐进的颜色
  8. 正确中断java线程
  9. c统计多线程总时间_SQL Server处理器性能指标–第2部分–处理器:%用户时间,处理器:%特权时间,总时间和线程指标
  10. Lesson 4 Part 1 Newton's method
  11. 服务器2003系统序列号,Windows Server 2003 R2 With Sp2 序列号
  12. android带杜比音效的播放器,杜比音乐播放器(杜比音效)
  13. 中国移动边缘计算技术体系与实践
  14. Faraway(枚举 去绝对值)
  15. Cannot find name ‘console‘. Do you need to change your target library?ging the ‘lib‘ compiler option
  16. 【MATLAB数字图像处理】伪彩色增强
  17. Freemarker模板---引擎学习
  18. 高德地图只显示部分区域
  19. python 语言与numpy库
  20. cuteftp连接ubuntu虚拟机

热门文章

  1. 厦门大学2019年数学分析考研试题参考解答
  2. PostgreSQL 磁盘空间清理
  3. Flutter跑马灯Marquee
  4. js颜色RGB转十六进制
  5. 内部收益率计算公式用计算机,使用EXCEL函数公式计算内部收益率,请请人解决,非常感谢! ! !...
  6. (17)全民小视频引流脚本模块化开发11-关注用户的粉丝By飞云脚本学院
  7. CDN加速解决VSCode下载速度慢的问题
  8. 自动发送企业微信通知,让我来教你真的超简单
  9. 三阶魔方大中小魔公式_七步玩转三阶魔方还原公式及非公式步骤图解【新手适用超详细】...
  10. cwRsync-windows下的rsync工具