赞
踩
TCP和UDP是传输层协议,关注的只是数据传输的可靠性和效率,真正负责数据在网络中的传输则是网络层和数据链路层。
我们再来回顾一下TCP/IP模型。
在网络中,数据的传输并不是直接从一方的传输层直接发送到另一方的传输层,而是需要将传输层的数据层层向下传递,经过网络层和链路层的层层封装,通过网络传输到另一方的链路层,再向上经过层层分用,最终传输层拿到数据,最后传给应用层。
那么网络层做的事情:
IP指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。
那么用这种方法,是不是就能解决UDP数据报的64KB长度大小限制呢?
答案是不可以
因为即使可以将UDP数据报拆分成几个分片
但在接收方还是要将他们组合在一起,组合成为一个数据报
在传输层要对UDP数据报进行解析,分析报头和拿到载荷
这里的拿到载荷需要根据UDP报头中的长度信息来拿到载荷,
此时你的载荷过长,而UDP报头中的长度信息表示范围有限,那么拿到的载荷就不完整
源IP和目的IP地址是32位,也就代表IP地址是存在着上限的。
0~42亿9千万
那么就引入了几种解决方案来解决这个问题
也就说当机器上网时,才分配IP地址,不上网就不分配
这种解决方案没有从根本上解决问题。
私网IP
公网IP
外网IP 必须不能重复
内网IP 在不同的局域网中,可以重复
使用16个字节,128位,;但是⽬前IPv6还没有普及。
同一个局域网的主机,按照一定的规则分配IP地址
将一个IP地址分为两部分
前半部分,网络号:标识局域网
后半部分,主机号:区分同一个局域网中的主机
但是,网络号相同,不一定在一个局域网中
局域网之间,网络号可以相同,但两个相同的局域网(同一个路由器,WAN口和LAN口处于两个不同的局域网)网络号不能相同。
这种规则现在已经不再使用,取而代之的是子网掩码,接下来会讲到。
这种规则规定了网络号和主机号的划分。
一个网络号下,例如在A类地址中,一个子网下可以拥有一千六百多万的主机,而在现实的情况下,根本没有那么多的主机在同一个子网下运行,这就造成了IP地址的大量浪费。
当要判断一个IP地址是属于哪一类时,只需要遍历IP地址的前五个比特位,第几个比特位最先出现0值,那么这个IP地址对应就属于A、B、C、D、E类地址。
为了减少IP地址大量浪费的这种情况,引入了新方案CIDR(Classless Interdomain Routing):
是一个32位的整数
左半部分都是1,右半部分都是0
不会0和1交替出现。
这里我们的IP地址是 101.7.142.67
子网掩码是 255.255.225.0
那么我们的网络号就是101.7.142
主机号就是67
在另一篇文章中有对子网掩码的详细解读
子网掩码是什么?有什么作用?
在网络中,一个主机通过网络向另一个主机传输数据,之间要经过很多的路由器(自己家中的路由器,通信厂商的地区局部路由器,总路由器等),每一个路由器在传输数据时,可能并不知道直接的路径是什么,它只知道与它相连的路由器的路径,在这些路径中会选择一个比较快(近)的来及进行传输。
在传输过程中,是选择性的寻找最优解来进行传输。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。