目录
地址管理:IP地址
路由选择:数据传输的路径规划
IP协议报头结构:
1.4位版本:实际上只有两个取值:IPv4(主流),IPv6
2.4位首部长度:0->15,实际报头长度*4, 长度15,报头就是60
3.8位服务类型(TOS):
4.3位优先权字段(已经弃⽤), 4位TOS字段, 和1位保留字段(必须置为0). 4位TOS分别表⽰: 最⼩延时, 最⼤吞吐量, 最⾼可靠性, 最⼩成本. 这四者相互冲突, 只能选择⼀个
5.16位总长度字节数:IP数据报的长度,UDP也是16位(2个字节)
虽然IP数据报最大是2字节,64KB,但是IP协议内置了拆包组包机制,IP协议会把大的数据包拆分成多个IP数据报传输,在接收方拼接。
如何拼接?
被拆分成的多个IP数据报来携带,多个IP数据报的16位标识 都是一样的,保证是同一个数据拆分出来的。
7.13位偏移量:决定组包的时候每个报的位置。
8.3位标志位 :只有两个有效(剩下一个保留位以后待用),其中一个表示包是否需要组包(是否是拆包的一部分)。另一个表示 当前包 是否是组包中的最后一位。
9.8位生存时间:一个数据包在网络中最多的存活时间。
为什么会有这个,因为一个IP数据报,目的IP写错了,就会让数据报无线传输会消耗很多网络资源。TTL约定了传输时间上限,数据报就会被丢弃掉。
TTL单位是“次数”,不是秒。
发送一个IP数据报就会有一个初始TTL值(32,64,128...),每经过路由器转发一次TTL就会减少一次。减少到0就丢弃。
这里访问B站的IP数据报为例。
10.8位协议
表示:这里IP数据报中携带的荷载,是哪种传输层协议的数据报。
通过不同的数值 感知到接下来把数据 交给 TCP 还是 UDP 还是其他的协议解析。
11.16位首部检验和
验证数据在传输中是否出错。只针对首部Ip报头,荷载部分交给TCP/UDP自己的校验和
12.
表示数据报从哪里来,到哪里去。
32位整数可以表示很大数字,但是我们看到的地址都是点分十进制表示
通过三个原点分开,每个部分是一个字节。范围是0-255
IP地址用来表示网络上的设备,期望中Ip地址是唯一的,但是当今IP地址表示的地址完全不够用。
解决IP不够用的问题
方案一:动态分配IP地址。
一个设备不上网就不给他分配地址,但这不能从根本上解决。
方案二:NAT 网络地址转换,使用一个IP设备表示 一大波设备。
把IP地址分为两大类:
1.内网IP / 私网IP 。内网一般以10.* 172.16*-172.31.* 192.168.*这个几个开头
2.外网IP / 公网IP
要求 外网IP 必须是唯一的,但是私网IP是可以重复的(不同局域网中可以重复)
NAT网络地址转换
一个设备进行上网时,IP数据报中的IP地址就会被NAT设备转换(一般是路由器)自动修改。
什么时候转换?
1.同一个局域网内,主机A访问主机B,不会涉及NAT
2.公网设备A,访问公网设备B,不会涉及NAT
3.局域网中的主机A,访问另一个局域网中的B 这是NAT不允许的,访问不了。回显服务器中学生访问老师的服务器是不行的,因为在不同的局域网。
4.局域网中的设备A访问 公网的B,NAT机制主要就是针对这个情况生效。
日常中一个路由器会为一片区域的上万个设备服务。
凡是搭建服务器给别人使用都是要用公网的
NAT不仅能替换IP,也可以替换端口。替换IP时会记录映射关系。如果两个设备的端口号相同,NAT自动修改其中一个的端口,防止服务器返回IP数据报的时候 传输到错误的设备。
端口号本来是区分同一主机 不同应用程序的,在NAT中 也可以区分不同设备上不同的应用程序
NAT缺点:
网络环境复杂,替换的过程中,每一层映射关系都要维护。每次转发数据都要查询映射关系。
方案三:解决IP地址不够用 IPv6
IPv4 32位,4字节表示IP地址
IPv6 128位,16字节表示IP地址。非常巨大的数字,充分解决地址不够问题。
IP地址组成结构,
子码掩网方案:左边都是1,右边都是0
前三个点与数字:172.20.10 表示网络号
最后:2 表示主机号
特殊的IP地址:
1.主机号全为0(二进制),这个ip表示当前网段(相当于网络号)
因此给某个设备分配IP地址的时候 不能把主机号全设为0.
2.主机号全为1(二进制)
比如子码掩网是192.168.0.255
这是广播IP,往这个IP上发数据 相当于给整个局域网所有设备都发了一次数据包。
广播IP主要用于 投屏。在对应广播IP上发送一个UDP,具有投屏功能的设备就会响应。
3.127.* (环回IP)
自发自收,给这个Ip发数据,设备就会从这个IP上再收到同一数据。
网络中规定:同一个局域网中,网络号必须相同,主机号必须不同。两个相邻的局域网,网络号必须不同。
举例:在下面这个局域网中,某一个设备的网络号不相同的情况,无法上网
某个设备的网络号相同,主机号和别的设备重复,也不能上网。
还有 ABCDE五类网络方案,现在已经不用了,这种浪费IP地址
日常开发主要是应用层,传输层就已经很少了,至于到数据链路层就已经用的非常少了。
以太网
类型:描述了载荷是啥样的数据
目的地址,源地址统称为:mac地址/物理地址
帧协议类型字段有三种值,分别对应IP、ARP、RARP;
其中上面两种类型是不传输任何业务数据的。是为转发功能提供辅助的措施。
最大载荷长度相当于1.5KB。
帧尾是校验和。
MTU相当于发快递时对包裹尺⼨的限制. 这个限制是不同的数据链路对应的物理层, 产⽣的限制
IP协议能拆包组包,实际上更多是应对MTU的限制。
mac地址 与 IP地址的区别
1.mac地址使用6字节表示。IP地址4字节表示。
空间范围比IP大很多6w多倍,mac地址可以给当前每个设备分配地址一个网卡出厂时已经被设置好了。mac地址可以作为身份标识。
2.mac地址使用在数据链路层,实现两个设备数据转发----微观
IP地址使用网络层,立足于整个流程转发,进行路径规划。-----宏观
以太网数据帧的mac地址 随着转发时刻发生改变。
APR,ARP协议可以视为 让当前设备获取周围设备IP地址 和 mac地址之间的映射关系。
DNS应用层协议
将域名解析为网址。
一个域名可以对应 一个IP,一个IP也可以对应多个域名。
这个就是域名
前面是 域名 后面是 IP地址。