⽹络:IP 基础知识总结
IP 的基本认识
IP在TCP/IP参考模型中处于第三层,也就是⽹络层
⽹络层的主要作⽤是:实现主机和主机之间的通信,也叫做点对点通信
问:⽹络层和数据链路层的关系
2021新年文案短句有的⼩伙伴分不清 IP(⽹络层) 和 MAC (数据链路层)之间的区别和关系。
其实很容易区分,在上⾯我们知道 IP 的作⽤是主机之间通信⽤的,⽽ MAC 的作⽤则是实现「直连」的两个设备之间通信,⽽ IP 则负责在「没有直连」的两个⽹络之间进⾏通信传输。
举个⽣活的栗⼦,⼩林要去⼀个很远的地⽅旅⾏,制定了⼀个⾏程表,其间需先后乘坐飞机、地铁、公交车才能抵达⽬的地,为此⼩林需要买飞机票,地铁票等。
飞机票和地铁票都是去往特定的地点的,每张票只能够在某⼀限定区间内移动,此处的「区间内」就如同通信⽹络中数据链路。
在区间内移动相当于数据链路层,充当区间内两个节点传输的功能,区间内的出发点好⽐源 MAC 地址,⽬标地点好⽐⽬的 MAC 地址。
整个旅游⾏程表就相当于⽹络层,充当远程定位的功能,⾏程的开始好⽐源 IP,⾏程的终点好⽐⽬的IP 地址。
如果⼩林只有⾏程表⽽没有车票,就⽆法搭乘交通⼯具到达⽬的地。相反,如果除了车票⽽没有⾏程表,恐怕也很难到达⽬的地。
因为⼩林不知道该坐什么车,也不知道该在哪⾥换乘。因此,只有两者兼备,既有某个区间的车票⼜有整个旅⾏的⾏程表,才能保证到达⽬的地。与此类似,计算机⽹络中也需要「数据链路层」和「⽹络层」这个分层才能实现向最终⽬标地址的通信。
还有重要⼀点,旅⾏途中我们虽然不断变化了交通⼯具,但是旅⾏⾏程的起始地址和⽬的地址始终都没变。其实,在⽹络中数据包传输中也是如此,源IP地址和⽬标IP地址在传输过程中是不会变化的,只有源 MAC 地址和⽬标 MAC ⼀直在变化。
具体参考:
IP 基础
在TCP/IP⽹络通信时,为了保证能够正常通信,每个设备都需要配置正确的IP地址。否则⽆法实现正常的通信IP地址(ipv4)由32位⼆进制数来表⽰。
因此IP地址的最⼤值是,即最⼤允许 43 亿台计算机连接到⽹络。
实际上,IP 地址并不是根据主机台数来配置的,⽽是以⽹卡。像服务器、路由器等设备都是有 2 个以上的⽹卡,也就是它们会有 2 个以上的 IP 地址。因此,让 43 亿台计算机全部连⽹其实是不可能的。IP 地址是由「⽹络标识」和「主机标识」这两个部分组成的,所以实际能够连接到⽹络的计算机个数更是少了很多「⽹络标识」唯⼀标记⼀个局域⽹「主机标识」唯⼀标记局域⽹中的⼀台主机现在的⽹络设备早就超过了43 亿了,为了解决IP不⾜的问题,提出了NAT 技术。 后来,⼜有了ipv6
为了⽅便记忆,我们采⽤了点分⼗进制的标记⽅式处理IP地址:将32位的IP地址以每8位为组,共分为 4组,每组以「.
」隔开,再将每组转换成⼗进制
IP 地址的分类[了解即可,⽬前已经不⽤]
22=34294967296
我们知道 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类只是试⽤的。
拼多多提现800元最后0.01需要多少人⼴播地址⽤于什么?多播地址⽤于什么?
由于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可以⽤来判断是不是本地⼈
Linux下如何查看IP地址
两个命令:ifconfig、ip addr。
看个例⼦:
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever折纸粽子
inet6 ::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 1000
link/ether 00:0c:29:db:1a:7e brd ff:ff:ff:ff:ff:ff
inet 192.168.0.28/24 brd 192.168.0.255 scope global noprefixroute dynamic ens33
valid_lft 652806sec preferred_lft 652806sec
inet6 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 1000 link/ether 52:54:00:13:61:c6 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN gro
up default qlen 1000 link/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(排队规则)把数据加⼊队列陈维聪
最简单的qdisc是pfifo,它不对进⼊的数据包做任何的处理,数据包采⽤先⼊先出的⽅式通过队列
pfifo_fast稍微复杂⼀点。它的队列包括三个波段(band)。在每个波段⾥⾯,使⽤先⼊先出规则
三个波段(band)的优先级页不相同。band 0 优先级最⾼、band 2的最低。如果biand 0⾥⾯有数据包,系统就不会处理
band 1 ⾥⾯的数据包,bind 1 和 bind 2 之间也是⼀样
数据包是按照服务类型(Type of Service,TOS)被分配到三个波段(band)⾥⾯的。TOS是IP头⾥⾯的⼀个字段,代表了当前的包是⾼优先级的,还是低优先级的
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论