阿华代码,不是逆风,就是我疯
你们的点赞收藏是我前进最大的动力!!
希望本文内容能够帮助到你!!
目录
一:IP协议
1:4位版本
2:4位首部长度
3:8位服务类型(TOS)
4:16位总长度(字节数)
(1)拆包
(2)组包
5:8位生存时间(TTL)
(1)tracert命令
6:8位协议
7:16位首部校验和
8:32位源(目的)IP、地址
二:IP协议管理地址
1:动态分配IP地址
2:IP地址分类
(1)公私网IP/广局域网IP
(2)设定和限制
3:NAT机制
局域网访问服务器的三种情况
总结
三:IP地址
1:IPv6
2:IP地址在NAT下的分类
(1)私网IP
(2)公网IP
3:IP地址组成
(1)网络/主机号
(2)IP地址设置规则
(3)子网掩码
(4)网段划分(了解即可)
4:特殊的IP地址
(1)环回IP
(2)网段IP
(3)广播地址
5:IP地址管理
四:MAC地址体系
1:MAC地址
2:数据帧格式
五:DNS域名解析系统
现在只有两个版本IPv4(主流版本)IPv6(正逐步替换IPv4)
IP报头,单位为4个字节,4位 范围[0101-1111],换算为10进制,[5,15],所以报头最大为60字节,最小固定为20字节
type pf service——实际只有4位有效,这4位彼此冲突,其中一位为1,剩下三位就都为0
最小延时:可以类比TCP中的延时应答机制
最大吞吐量:最多携带多少数据量
最高可靠性:达不到TCP那么可靠,可以视情况调整,有点像MYSQL中的事务
最小成本:硬件设备开销
描述了一个IP数据报的长度(报头+载荷),这里不像TCP数据报的64KB的长度限制。
虽然IP数据报这里自身有长度限制,但是IP提供了拆包、组包这样的功能,此时载荷很大超过64KB,也没关系。
(1)拆包
在网络层可以拆分为多个IP数据报,每个IP数据报来携带一部分载荷
如下图:如果载荷是一个特别大的TCP数据报,就把它拆分成两部分(这个过程都是IP系统内核自动完成的,程序员无法通过软件代码干预)
(2)组包
16位标识:哪些IP数据报的载荷应该一起组装
3位标志:只有2位有效,其中1位表示这次的IP数据报是否拆包了,还有1位表示结束标记(如果要基于UDP手动实现应用层的数据包拆包,此时可以参考IP的拆包组包做法)
13位片偏移:描述了这些包之间的先后顺序
单位:次数,非时间。一般就是32/64这样的整数
一个IP数据报每经过一个路由器的转发,就-1。次数减到0,就丢包。
避免指定的IP地址是错误的,那这个IP数据报可能会无限的传输找下去
(1)tracert命令
查看当前网络通信路径,比如我们访问美国政府官网www.usa.gov
表示在传输层使用哪个协议
针对IP报头进行校验,载荷不管(因为载荷中的TCP/UDP都自带校验和)
发件人地址,收件人地址
引入:IP地址本质是一个32位整数(int),用点分十进制表示,3个点分成4各部分,每部分取值为0~255
不同设备之间都有一个不同的IP地址——32位大概能表示42亿左右的数量,但是IP地址已经面临不够用的处境了,下面给出了几个方案
因为全世界的设备并不是同一时刻,都在上网,所以动态分配,充分利用IP地址(治标不治本)
我们把IP地址分为两大类
(1)公私网IP/广局域网IP
IP地址以这三类开头都是私网IP
10.* 172.16-172.31.* 192.168.* ,剩下的就都是公网IP了
(2)设定和限制
要求公网的IP是唯一的,同一个局域网里的设备IP是唯一的,不同局域网中的设备IP可以重复
①公网设备访问公网设备 可以
②同一个局域网中的设备也可以互相访问
③不同的局域网中的设备 不可以访问
④局域网设备访问公网设备,需要进行地址转换
⑤公网设备访问局域网设备,不允许主动访问
NAT机制也称——网络地址映射机制
依据:局域网中的设备不可以被外部访问到
引入:路由器科普,路由器一般会有两个IP地址,路由器的核心就是将这两个局域网连接起来
LAN口IP,往往是一个局域网地址
WAN口IP,可能是局域网IP,也可能是公网IP
局域网访问服务器的三种情况
(1)不同设备访问不同服务器
(2)不同设备访问相同服务器(不同端口)
(3)不同设备访问相同服务器(同端口)
总结
NAT映射机制本质上也是在复用IP地址,提高了IP地址的利用率,没有从根本上解决地址数量的问题,但是比动态分配地址好得多
当前互联网就是——动态分配+NAT相结合的方案
我们知道IPv4使用4个字节表示IP地址,能表示的IP地址个数在2^8^4 ,大概在42亿左右
IPv6使用16个字节表示IP地址,能表示的IP地址个数在2^8^16 ,可以给地球上每一粒沙子都分配一个地址
(1)私网IP
(2)公网IP
除了上面的地址,剩下的都是公网IP
(1)网络/主机号
IP地址 = 网络号 + 主机号
注:家用宽带默认前三个字节为网络号,一个字节(256)表示主机号够用了
(2)IP地址设置规则
①一个局域网中,如果网络号和主机号都相同是无法上网的
②网络号和路由器的网络号不相同也是无法上网的
③两个相邻的局域网,网络号不能相同
(3)子网掩码
子网掩码是一个32位数字,网络部分全为1,主机部分全为0,子网掩码跟IP地址进行与运算,可以提取IP地址所属网络号
注:IP地址一般是由人为设置的,但是路由器有个DHCP功能,自动可以帮你把局域网这里设备的IP都分配好(避免IP地址冲突,概率很小),每次路由器重启,得到的IP可能是不同的
(4)网段划分(了解即可)
在互联网刚刚发展起来的时候,网段的划分方式是按照ABCD........类进行划分的
(1)环回IP
环回IP(loopback)127.0.0.1——表示自己的本机——多用于测试
127.*都是环回地址
(2)网段IP
一个IP的主机号全为0,表示“这个网段”——这个IP很特殊不能分配给某个主机
(3)广播地址
单播:一对一
组播:一对多(多有限制,是整体的一部分)
广播:一对多(整体的所有)
IP的主机号全为1(二进制)——比如:192.168.0.255
往广播地址上发消息,局域网中所有设备都能收到
我们知道在数据报中包含了“目的IP”字段,通过多个路由器的转发可以让数据包到达“目的IP”,这个传输的过程中,路由器会帮我们规划处一条合适的路径。
在路由器内部有一个数据结构——路由表,路由器会拿着这个“目的IP”区表里匹配,在进行转发(这个过程比较复杂,感兴趣的老铁可以深入研究一下)
在数据链路层,引入了例外一套地址体系,叫做“mac地址”,它是一个物理地址,通常以十六进制表示,字节与字节之间用 - 或者 : 来分割
MAC地址和设备的网卡绑死了,网卡在出厂的时候就已经确定了,作为一个身份标识符
IP地址侧重全局转发,MAC地址侧重于局部转发——相邻设备之间的转发(一个电脑上的路由器,这俩就是相邻设备)
①类型:标识载荷数据的含义
②数据:以太网数据帧的爱着部分,长度范围46~1500字节46是因为ARP是46字节;1500字节不到1.5kb(硬件限制:网口网线之类的,可以了解一下MTU)
③ARP:效果就是让路由器/交换机建立一个内部的结构(类似hash表)给一个IP地址能查到MAC地址(常用)
④RARP:同ARP类似,是给MAC地址能够查询到IP地址
使用IP地址来描述网络设备的位置,把域名自动转换为对应的IP地址
在之前,是引入一个hosts文件,里面的内容就是行文本,每一行都有IP和域名,每次访问某个域名就会进行查询,获取到对应的IP
C:WindowsSystem32driversetc
随着互联网发展,域名和服务器越来越多,此时维护hosts文件就非常麻烦了。
于是就建立了一组服务器,来提供域名解析服务,DNS域名解析服务器应运而生。
这里的DNS服务器并非只有一个,最开始的一套DNS服务器,叫“根域名服务器”(现在在美国人手里维护的有13个),各个国家根据域名服务器的内容搭建“镜像服务器”,我们上网就是在访问附近运营商搭建的“镜像服务器”,咱们国家之所以要升级“IPv6”就是要绕开DNS的制裁,希望国家越来越强大~~!!!!
感兴趣的老铁,可以看看B站上的一个介绍IPv6发展的视频,做的非常好,强推~~
电子监听、全国断网,棱镜门背后,中国如何从末路狂奔到世界之巅_哔哩哔哩_bilibili