1.IP地址
网络通信,一个重要参数是IP地址。
IP地址(拿IPv4举例)是给因特网上的每一个网络设备的每一个接口分配一个在全球唯一的32位的标识符。IP地址的结构使我们在因特网上很方便进行寻址。
2.IPV4 & IPV6
IPV4网际协议版本4,它是互联网的核心,也是使用最广泛的网际协议版本,由32位二进制数组成,一般用点分十进制表示,只有大约43亿个地址,到2011年,IANA IPv4位址完全用尽时。IPV4是由网络部分和主机部分组成
IPV6(Internet Protocol Version 6)地址长128位,一般用冒号隔开,十六进制表示。它的优势就在于它大大地扩展了地址的可用空间。如果地球表面都覆盖计算机,那么IPv6允许每平方米拥有7*1023个IP地址。IPV6分为公有网络地址和私有网络地址。
3.IP地址分类
将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成,即IP地址=网络号+主机号。其中,
网络号:标志主机/路由器所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。
主机号:标志该主机/路由器。一个主机号在它前面的网络号所指明的网络范围内必须是唯一的。
两个号段在各自范围内地址唯一,这样,一个IP地址在整个因特网范围内是唯一的。
从IP地址的结构来看,IP 地址并不仅仅指明一个主机,而是还指明了主机所连接到的网络。
把IP地址划分为A类、B类和C类是为了更好地满足不同用户的要求。当某个单位申请到一个IP 地址时,实际上是获得了具有同样网络号的一块地址。
访问互联网需要公网IP作为身份的标识,而私网IP则用于局域网,在公网上是不能使用私网IP地址来实现互联网访问的。
IP地址范围 | 公有IP地址段 | 私有IP地址段 | 公有IP地址段 | ||
0.0.0.0~127.255.255.255 | 0.x.x.x | 1.0.0.0~9.255.255.255 | 10.0.0.0~ 10.255.255.255 | 11.0.0.0~126.255.255.255 | 127.x.x.x |
128.0.0.0~191.255.255.255 | 128.0.0.0 ~ 172. 15.255.255 | 172.16.0.0~172. 31.255.255 | 172.32.0.0~191.255.255.255 | ||
192.0.0.0~223.255.255.255 | 192.0.0.0 ~ 192.167.255.255 | 192.168.0.0~192.168.255.255 | 192.169.0.0~223.255.255.255 | ||
224.0.0.0~239.255.255.255 | 用于多点广播(Multicast):D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。 | ||||
240.0.0.0~255.255.255.255 | 全零(0.0.0.0)对应当前主机。全1(255.255.255.255)是当前子网的广播地址 |
常见的是C类,也就是192,这个网段大部分家用路由器都使用这个网段。最多可以支持254个设备,大部分家庭都够用了,A类,B类通常用于大众型企业。像智能家居的项目,手机和开发版都是连接的路由器,是一个局域网的环境,在外面就没法直接控制了;如果想在外面也能控制,就需要一个具有公有地址的服务器进行中转,我们可以自己搭服务器实现中转,也可以使用现有的网络服务器解决方案,如阿里云就有支持MQCT协议的服务器,可实现中转。
5.端口
一个网络设备可以通过IP地址找到另外一个网络设备,这个网络设备里面有很多网络相关的服务。问题怎么能找到所需要的应用?
这就引入了端口,使用端口来区分不同的应用程序,端口号的范围是0~65535,其中0~1023是系统保留的,比如网页服务的端口是80端口,远程登录的端口是22端口。我们定义新端口时应该避免1024以下的端口,IP地址+端口号就共同组成了这个设备通信的地址基础。
6.TCP&UDP
当两个网络设备各自具有IP地址后,接下来怎么进行数据传输?有两个网络传输协议,TCP和UDP。
1.TCP协议变相有连接的,双方需要先三次握手建立连接。就像我们打电话一样,先要拨通,确认对方在才开始通话。UDP不需要提前的链接直接把数据扔过去,不管对方是否接收到。
2.TCP有服务器和客户端之间的区分,而udp就没有。
3.TCP经过三次握手等操作,确保了数据的可靠性,通信只能一对一。Udp的话更多的是注重速度,优先支持多对多。
4.TCP用于要求可靠的传输场景,比如文件传输,避免有一点数据不对,整个文件就不能使用了。udp用于实时性要求高的场景,比如直播,适当的丢一点点数据,不影响整体的感受,反而如果要求每个数据都准确,就可能导致卡顿。
[参考:百问网(www.100ask.net)]