赞
踩
IP协议提供的一种统一的地址格式。它为互联网上的每一个网络和主机分配一个逻辑地址所以IP地址也叫逻辑地址,用来屏蔽物理地址的差异,MAC地址每一个机器都有一个编码。IP地址是32位二进制数据分为4段每一段8位0~255来表示。通常是10进制的方式表示。凡是基于TCP/IP协议的智能设备都可以被分配IP地址。在同一个局域网中/本地局域网IP地址是唯一的。IP协议只是是网络之间的互联的协议。互联网/物联网的所有计算机网络实现相互通信的一套规则。规定了计算机在网络中进行通信时应当遵守的规则。所有设备只要是遵守IP协议就可以在网络中互联互通。
IP在TCP/IP 参考模型中处于第三层,也就是网络层。网络层的主要作用是:实现主机与主机之间的通信,也叫点对点(end to end)通信。
其实很容易区分,在上⾯我们知道 IP 的作⽤是主机之间通信⽤的,而MAC 的作⽤则是实现直连的两个设备 之间通信,⽽ IP 则负责在没有直连的两个⽹络之间进⾏通信传输。源IP地址和⽬标IP地址在传输过程中是不会变化的,只有源 MAC 地址和⽬标 MAC ⼀直在变化。
在TCP/IP ⽹络通信时,为了保证能正常通信,每个设备都需要配置正确的 IP 地址,否则⽆法实现正常的通信。IP 地址(IPv4 地址)由 32 位正整数来表示,IP 地址在计算机是以⼆进制的⽅式处理的。而⼈类为了方便记忆采用了点分十进制的标记方法,也就是将 32 位 IP 地址以每 8 位为组,共分为4组,每组以.隔开,再将每组转换成⼗进制。
实际上,IP 地址并不是根据主机台数来配置的,而是网卡。像服务器、路由器等设备都是有 2 个以上的网卡,也 就是它们会有 2 个以上的 IP 地址。因此,让43亿台计算机全部连网其实是不可能的,更何况 IP 地址是由⽹络标识和主机标识这两个部分组 成的,所以实际能够连接到⽹络的计算机个数更是少了很多。
互联网诞生之初,IP 地址显得很充裕,于是计算机科学家们设计了分类地址。IP 地址分类成了 5 种类型,分别是 A 类、B 类、C 类、D 类、E 类。
其中对于 A、B、C 类主要分为两个部分,分别是⽹络号和主机号。
广播地址的作用?
⼴播地址⽤于在同⼀个链路中相互连接的主机之间发送数据包。⼴播地址可以分为本地地⼴播和直接⼴播两种:
多播地址用于什么?
而D类和E类地址是没有主机号的,所以不可⽤于主机IP,D 类常被⽤于多播,E 类是预留的分类,暂时未使用。多播⽤于将包发送给特定组内的所有主机。由于⼴播⽆法穿透路由,若想给其他⽹段发送同样的包,就可以使⽤可以穿透路由的多播。
IP地址的⽹络地址这⼀部分是⽤于进⾏路由控制。路由控制表中记录着⽹络地址与下⼀步应该发送⾄路由器的地址。在主机和路由器上都会有各⾃的路由器控制表。在发送 IP 包时,⾸先要确定 IP 包首部中的⽬标地址,再从路由控制表中找到与该地址具有相同⽹络地址的记录, 根据该记录将IP包转发给相应的下⼀个路由器。如果路由控制表中存在多条相同⽹络地址的记录,就选择相同位 数最多的⽹络地址,也就是最长匹配。
环回地址是不会流向⽹络
环回地址是在同⼀台计算机上的程序之间进⾏⽹络通信时所使⽤的⼀个默认地址。 计算机使⽤⼀个特殊的 IP 地址 127.0.0.1 作为环回地址。与该地址具有相同意义的是⼀个叫做 localhost 的主机 名。使⽤这个 IP 或主机名时,数据包不会流向⽹络。
每种数据链路的最⼤传输单元MTU都是不相同的,如 FDDI 数据链路 MTU4352、以太⽹的MTU是1500字节等。每种数据链路的 MTU 之所以不同,是因为每个不同类型的数据链路的使⽤⽬的不同。使⽤⽬的不同,可承载的 MTU 也就不同。其中,我们最常⻅数据链路是以太⽹,它的 MTU 是 1500 字节。那么当 IP 数据包⼤⼩⼤于 MTU 时, IP 数据包就会被分⽚。经过分⽚之后的 IP 数据报在被重组的时候,只能由⽬标主机进⾏,路由器是不会进⾏重组的。
假设发送⽅发送⼀个4000字节的⼤数据报,若要传输在以太网链路,则需要把数据报分⽚成 3 个小数据报进⾏传 输,再交由接收⽅重组成⼤数据报。
在分片传输中,⼀旦某个分片中丢失,则会造成整个IP数据报作废,所以 TCP 引⼊了 MSS 也就是在 TCP 层进⾏分⽚不由IP层分⽚,那么对于 UDP 我们尽量不要发送⼀个⼤于 MTU 的数据报文。
那么实现这⼀技术的就是 DNS 域名解析,DNS 可以将域名⽹址⾃动转换为具体的 IP 地址。DNS 中的域名都是⽤句点来分隔的,比如www.server.com ,这⾥的句点代表了不同层次之间的界限。在域名中,越靠右的位置表示其层级越⾼。 毕竟域名是外国⼈发明,所以思维和中国⼈相反,⽐如说⼀个城市地点的时候,外国喜欢从小到大的顺序说起 (如 XX 街道 XX 区 XX 市 XX 省),⽽中国则喜欢从⼤到⼩的顺序(如 XX 省 XX 市 XX 区 XX 街道)。 根域是在最顶层,它的下⼀层就是 com 顶级域,再下面是 server.com。
所以域名的层级关系类似⼀个树状结构: 根 DNS 服务器 顶级域 DNS 服务器(com) 权威 DNS 服务器(server.com)
根域的 DNS 服务器信息保存在互联⽹中所有的 DNS 服务器中。这样⼀来,任何 DNS 服务器就都可以找到并访问 根域 DNS 服务器了。因此,客户端只要能够找到任意⼀台 DNS 服务器,就可以通过它找到根域 DNS 服务器,然后再⼀路顺藤摸⽠找到 位于下层的某台⽬标 DNS 服务器。
浏览器⾸先看⼀下⾃⼰的缓存⾥有没有,如果没有就向操作系统的缓存要,还没有就检查本机域名解析⽂件 hosts ,如果还是没有,就会 DNS 服务器进⾏查询,查询的过程如下:
在传输⼀个IP数据报的时候,确定了源 IP 地址和⽬标 IP 地址后,就会通过主机「路由表」确定 IP 数据包下⼀ 跳。然⽽,⽹络层的下⼀层是数据链路层,所以我们还要知道「下⼀跳」的 MAC地址。由于主机的路由表中可以找到下⼀跳的 IP 地址,所以可以通过 ARP 协议,求得下⼀跳的 MAC 地址。
那么ARP又是如何知道对方的MAC地址的呢?
简单地说,ARP 是借助 ARP 请求与 ARP 响应两种类型的包确定 MAC 地址的。
操作系统通常会把第⼀次通过 ARP 获取的 MAC 地址缓存起来,以便下次直接从缓存中找到对应 IP 地址的 MAC 地址。 不过,MAC 地址的缓存是有⼀定期限的,超过这个期限,缓存的内容将被清除。
ARP 协议是已知 IP 地址求 MAC 地址,那 RARP 协议正好相反,它是已知 MAC 地址求 IP 地址。例如将打印机服 务器等⼩型嵌⼊式设备接⼊到⽹络时就经常会⽤得到。通常这需要架设⼀台 RARP 服务器,在这个服务器上注册设备的 MAC 地址及其 IP 地址。然后再将这个设备接 ⼊到⽹络,接着:
DHCP 在⽣活中我们是很常见的了,我们的电脑通常都是通过 DHCP 动态获取 IP 地址,大大的省去了配IP信息繁琐的过程。
这 4 个步骤:
客户端收到DHCP ACK 后,交互便完成了,并且客户端能够在租⽤期内使⽤ DHCP 服务器分配的 IP 地址。如果租约的 DHCP IP 地址快期后,客户端会向服务器发送 DHCP 请求报⽂:
可以发现,DHCP 交互中,全程都是使⽤ UDP ⼴播通信。那如果 DHCP 服务器和客户端不是在同⼀个局域⽹内,路由器⼜不会转发⼴播包,那不是每个⽹络 都要配⼀个 DHCP 服务器?所以,为了解决这⼀问题,就出现了 DHCP 中继代理。有了 DHCP 中继代理以后,对不同⽹段的 IP 地址分配也 可以由⼀个 DHCP 服务器统⼀进⾏管理。
因此,DHCP 服务器即使不在同⼀个链路上也可以实现统⼀分配和管理IP地址。
IPv4 的地址是⾮常紧缺的,在前⾯我们也提到可以通过⽆分类地址来减缓 IPv4 地址耗尽的速度,但是互联⽹的⽤ 户增速是⾮常惊⼈的,所以 IPv4 地址依然有被耗尽的危险。于是,提出了⼀种⽹络地址转换 NAT 的⽅法,再次缓解了 IPv4 地址耗尽的问题。 简单的来说 NAT 就是同个公司、家庭、教室内的主机对外部通信时,把私有 IP 地址转换成公有 IP 地址。
NAT当然有缺陷,肯定没有⼗全⼗美的⽅案。 由于 NAT/NAPT 都依赖于⾃⼰的转换表,因此会有以下的问题: 外部⽆法主动与 NAT 内部服务器建⽴连接,因为 NAPT转换表没有转换记录。 转换表的⽣成与转换操作都会产⽣性能开销。 通信过程中,如果NAT路由器重启了,所有的TCP连接都将被重置。
解决的⽅法主要有两种⽅法。
ICMP 全称是 Internet Control Message Protocol,也就是互联网控制报⽂协议。⽹络包在复杂的⽹络传输环境⾥,常常会遇到各种问题。当遇到问题的时候,总不能死个不明不⽩,没头没脑的作风不是计算机网络的风格。所以需要传出消息,报告遇到 了什么问题,这样才可以调整传输策略,以此来控制整个局⾯
ICMP 主要的功能包括:确认 IP 包是否成功送达⽬标地址、报告发送过程中 IP 包被废弃的原因和改善⽹络设置 等。 在 IP 通信中如果某个 IP 包因为某种原因未能达到⽬标地址,那么这个具体的原因将由 ICMP 负责通知。
如上图例⼦,主机 A 向主机 B 发送了数据包,由于某种原因,途中的路由器 2 未能发现主机 B 的存在, 这时,路由器 2 就会向主机 A 发送⼀个 ICMP ⽬标不可达数据包,说明发往主机 B 的包未能成功。 ICMP 的这种通知消息会使⽤ IP 进⾏发送 。 因此,从路由器 2 返回的 ICMP 包会按照往常的路由控制先经过路由器 1 再转发给主机 A 。收到该 ICMP 包的主机 A 则分解 ICMP 的⾸部和数据域以后得知具体发⽣问题的原因。
ICMP 跟 IGMP 是⼀点关系都没有的,就好像周杰与周杰伦的区别,⼤家不要混淆了。 在前⾯我们知道了组播地址,也就是 D 类地址,既然是组播,那就说明是只有⼀组的主机能收到数据包,不在⼀组 的主机不能收到数组包,怎么管理是否是在⼀组呢?那么,就需要 IGMP 协议了。
IGMP 是因特⽹组管理协议,⼯作在主机(组播成员)和最后⼀跳路由之间,如上图中的蓝⾊部分。
IGMP 工作作机制
常规查询与响应⼯作机制
离开组播组⼯作机制
离开组播组的情况⼆,⽹段中没有该组播组:
《小林图解网络》
地址类型 | IP地址号码 | 说明 |
网关地址 | 192.168.0.1/192.168.0.254 | 网关地址 |
广播地址 | 192.168.1.255 | |
子网掩码 | 255.255.0.0 | |
子网掩码 | 255.255.0.0 | |
子网掩码 | 255.255.255.0 | |
限制广播地址 | 255.255.255.255 | |
回环地址 | 127.0.0.1 | |
全部网段 | 0.0.0.0 | 表示任意一个地址 |
DNS地址 | 114.114.114.114 | |
DNS地址 | 233.5.5.5 | |
DNS地址 | 233.6.6.6 | |
DNS地址 | 1.2.4.8 | |
DNS地址 | 8.8.8.8 | |
DNS地址 | 202.106.0.20 | |
DHCP分配的地址 | 169.254.0.0 | 路由器假死(重启) |
组播地址 | 224.0.0.1 |
端口号 | 应用 | 说明 |
21 | FTP服务 | |
22 | SSH服务 | |
23 | Telent服务 | |
25 | SMTP服务 | 邮件协议 |
53 | DNS服务 | |
109 | POP2服务 | |
110 | POP3服务 | |
143 | IMAP服务 | |
465 | SMTPS服务 | SSL协议 |
995 | POP3S服务 | SSL协议 |
993 | IMAPS服务 | SSL协议 |
80 | HTTP服务 | |
443 | HTTPS服务 | |
3306 | MYSQL服务 | |
3389 | 远程桌面 | |
8080 | 代理服务(tomcat) | |
6379 | Redis服务端口 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。