1. 一些零散的知识记录
- OSI 七层模型:应表会传网数物
- TCP/IP 五层模型:应传网数物
- TCP/IP 四层模型:应传网+网络接口
- 特定格式,在常用五层模型里面
- 物 -> 电信号(Bits,比特流,有一些类似时钟信号的数据流传输);
- 数据链路 -> MAC地址(Frames,帧);PPP(路由器之间)协议,CSMA/CD(hub,设备间)协议;
- 网络 -> IP,ICMP(Packets,包);
- 传输 -> 端口(Segments,段);
- (应+表+会) -> 共同组成用户数据(报文,用户数据 PDU);
- 每一层的主要协议
- 应->http,https,DNS,TELNET,FTP..;
- 传->TCP,UDP..;
- 网->IP,ARP;
- 数据->IEEE802.11,以太网;
- 物->电信号,光纤信号,比特流,时钟一类..;
- 常用端口号:
- HTTP 80 TCP
- DNS 53 TCP UDP
- HTTPS 443 TCP
- SMB 445 TCP
- TELNET 23 TCP
- FTP 20/21 TCP
- 端口:服务器和客户端之间数据交换的窗口。
- 访问服务器资源:
http://IP address: port number/project/subproject
http://ip 地址:端口号/资源路径
http://127.0.0.1:8080/资源路径 -> 127.0.0.1 主机本身
http://localhost:8080/资源路径 -> localhost 主机本身
Cisco Packet Tracer
,计算机网络仿真软件
2. ARP协议
- ARP:
- 通信靠IP是因为好记,但是还需要mac地址来保证通信是正确的。
- 在两个设备第一次连接的时候其实只知道对方IP,不知道对方的MAC地址,这时候就需要ARP协议来广播,让同一个网段中的所有设备都回复自己是不是请求的目的ip。目的ip就会回复它自己的mac地址了。
- ARP广播包的时候会看到的目标MAC地址是 FFFF.FFFF.FFFF,代表谁都能接收,那就是一个广播。
- ARP连接成功之后,以后就不会再广播来获取mac地址了(mac地址已经被记住了,不会再继续使用ARP协议),开始使用ICMP或者IP通信了。
- 如图,一次完整的ARP需要经历三个包:计算机0广播(组包),计算机1回复(请求连接),计算机0响应。
3. Hub和Hub机制
- Hub没有存储,存不了IP和mac
- 如下过程:第一次计算机0发送ARP广播给下挂的所有计算机,过hub时会把消息同时给到计算机1和2计算机1因为查找的不是它所以拒绝了;第二次计算机2回复时过了hubhub因为其特性又把给消息同时给了计算机1和计算机0计算机1因为不匹配再次拒绝。所以整个过程出现了很多ARP包而且计算机1拒绝了2次。
- 因为hub没有筛选,只能无脑群发,所以就算是已知了ip和mac的ICMP协议和PDU也会再次转发给计算机1,然后计算机1拒绝。
- 集线器的特性可以用来查找网络里面一共有多少个设备的mac地址。
- 集线器设备越多,效率就会越低。
4. 网桥Bridge
- 相比于hub,网桥可以通过自学习得知每个接口(左侧,右侧)侧的mac 地址。
- 网桥有一个mac表,在已经记录下的mac地址中(学习的过程就逐步的记录mac地址,增加效率),可以排除不在同一侧的mac地址,增加效率。
- 网桥在记录的很完整的前提下,可以隔离网桥左边和右边接口的冲突域,实现隔离干扰。
- 网桥的缺点就是接口太少,而且冲突域内部的问题解决不了。
5. 交换机
- 交换机是具有更多接口的网桥
- 交换机全双工通信
- 二层交换机没有IP层,只能在同一个网段之间转发数据。现在市面上已经由三层交换机了。
- 如图,如果交换机把每个接口的mac地址都学习完了,那么就可以端到端通信了。
- 在局域网内,交换机就是数据交换的最终解决方案。
- 交换机不会把数据包群发给其他不必要的设备,就没有被其他设备抓包的风险,这一点就比hub安全很多。
- 交换机的缺点:交换机的要求是所有设备在同一网段,局域网可以满足。如果在互联网上,IP地址则会显得不够用。另外一方面互联上设备太多,如果全球广播则是灾难,同一时间的全球广播更会造成不可避免的堵塞。
6. 路由器
- 在不同网段之间转发数据
- 隔离广播域,路由器会把第一次ARP的包给隔离了(但是路由器上的网关会通过ARP协议)。
- 交换机+路由器:把同一网段的设备搞一起,不同网段的域由路由器连。
- 主机发数据之前,首先会判断目标主机的IP地址是否和它在同一个网段;如果在同一个网络->ARP(ARP只能在同一个网段中传播);如果不在同一个网段->需要通过网关(路由器提供)->路由器通过跨网段功能传给目标。
- 通信的两边,路由器一进一出需要两个网关,一个网关负责一边的网段。在路由器内部进行转换。
7. 路由器配置
- 网关 1(fa0/0)配置左边的ip段,约定俗成 ip为.1 结尾。子网掩码255.255.255.0
- 网关 2(fa1/0)配置右边的ip段,约定俗成 ip为.1 结尾。子网掩码255.255.255.0
- ARP 的广播域过不了路由器
- 为什么要把路由器的网关IP配置在设备的默认网关上?因为第一次连接的时候,不配置的话设备根本不认识目标网关的ip是哪个。
- 虽然路由器不能过广播域,但是第一次连接的时候,设备还是广播给路由器,
为的是获取默认网关的mac地址
。同一网段内的网关本身就是在同一网段内的一个设备,设备和网关之间通信还是需要ip+mac。 - 路由器网关把自己变成了局域网中的一个设备。路由器处理两个网关之间的数据交互。
- 生活中没有手动配置网关是因为用到了
DHCP
。
8. MAC地址
- 在 ipconfig 里面,MAC地址又可以叫做物理地址(Physical Address)
- 如果目标MAC地址不是按照正常格式,而是 ffff.ffff.ffff, 这表示一个广播地址。
- 虽然MAC地址是全球唯一的,网卡硬件不可更改,但是可以在电脑里模拟一个假的的MAC地址骗过协议,更改方法如下图:
- 当我们不知道对方MAC地址的时候,可以通过ARP广播来获取。
- ARP广播获取mac地址的过程属于动态缓存,存储时间较短,过期了缓存就没有了,需要重新获取
- arp -a [主机地址] 查询arp缓存
- arp -d [主机地址] 删除arp缓存
- arp -s [主机地址] [MAC地址] 增加一条arp静态缓存,存储时间比默认的动态缓存长很多。
9. IP地址(IPv4),子网掩码,网段,主机ID
- IP 地址有两部分组成:网络标识(网段)(192.168.x.)、主机标识(.x)
网段的计算(将子网掩码和 IP 按位与运算):
如
192.168.1.10 -> 1100 0000.1010 1000.0000 0001.000 1010
255.255.255.0 -> 1111 1111.1111 1111.1111 1111.0000 0000
按位&操作:
-> 1100 0000.1010 1000.0000 0001.0000 0000
-> 192.168.1.0
子网掩码的作用就是和ip做按位与运算,以得出网段
。- 一般子网掩码 255.255.255.0,因为最低位是0,所以按位与之后得出来的网段一般是IP地位的前三部分。但是如果子网掩码不是255.255.255.0,那么结果就不一样了。
- 计算技巧:一般子网掩码是 255.255.255.0,那么主机 ID 一般是(256-2)个 / 子网掩码是 255.255.0.0,那么主机 ID 一般是(256*256)-2,长度增加很多倍。(减 2 是因为主机 ID 0 一般不用,255 一般不用)/ 子网掩码 255 所占部分一般理解为网段 ID 占用部分,0 占用部分一般理解为主机 ID 占用部分。
- 计算机通信之前,首先就会根据 IP 和子网掩码计算出目标主机和自己在不在一个网段,如果在则不需要路由器转发。如果不在就交给路由器转发。
- 127 是保留网段,不随便用,其中 127.0.0.1 叫做
本地环回地址
(Loopback),仅代表本机地址。 子网掩码的 CIDR 表示方法
:如 192.168.1.100/24,代表子网掩码有24 个 1,就是 255.255.255.0;如 192.168.1.100/16,代表子网掩码有 16 个 1,就是 255.255.0.0
10. 子网,超网
- 首先判断网段的类型,是 A 类网络,B 类网络,C 类型网络?
- 默认情况:A 类子网掩码位数是 8,B 类子网掩码位数是 16,C 类子网掩码位数是 24。
- 然后如果该网段的子网掩码位数比默认的子网掩码位数多,就叫做子网;该段的子网掩码位数比默认的子网掩码位数少,就叫做超网。
11. 路由
- 在不同网段之间转发数据需要路由器。
- 默认情况下路由器只知道和他直连的网段(下图中计算机 0 可以ping 通计算机 1),非直连的网段(路由器 0 到路由器 1)需要通过静态路由,动态路由告诉他,不然通不了。路由器和路由器之间连接的 port 口叫做 Serial 口,买路由器的时候可以选支持几个 Serial 口的路由器,和设备或者交换机连的叫 Ethernet 口。
- 静态路由:管理员手动添加,告诉路由器怎么连。
- 动态路由,路由器通过 RIP/ASPF 等路由选择协议自动获取路由信息。
- 静态路由的操作原理:路由器两端相互告诉对方自己直连的网段有哪些,用
路由表
表达。 - 路由器之间想要联通,路由器和路由器连接端口的 ip 必须设置,而且他们
需要在同一个网段
。
- 路由器配置网络(路由器要跳进去的目标网段),掩码,
下一跳
(表示当前路由器要进入的下一个路由器端口的 IP,只需要 IP 不需要子网掩码是因为路由器连接之间的 ip 必须是同一网段) - 下图里面 4 个网段,都想要连通就都要配。
- 路由表长什么样,(C 表示和路由器直接连接在一起的设备,直连的所以往往没有下一跳)S 表示静态(static,是人为配置的静态路由)。
- 路由表的写法:子网掩码是 255.255.255 相当于把 IP 写死;255.255.255.0 留了一个主机 ID 段出来;0.0.0.0 默认路由,哪个网段都能接收。
- 路由表就是在查找下一跳,直接跳到对应的路由器端口去。
12. 数据包的传输数据流
- 在上图中,目的是项从计算机 A 把数据传到计算机 F。途中MA/M0/M1/M2/M3/MF 是网卡的 mac 地址。
- 源 IP 是 192.168.1.10,目标 IP 是 192.168.3.10 没有问题,但是目标MAC 是 M0,原因是路由器隔离了广播,ARP 只能到对应路由端口侧mac 地址,到不了 MF。
- Mac 的跳转需要发生好几次变化。
13. 网络
- LAN,局域网,局域网中用到的广泛网络技术叫做以太网(Ethernet)
- WLAN,无线局域网(wireless LAN)
- WAN, 广域网,通常这个程度需要需要租用网络服务供应商(ISP)的服务器了。
- 猫是调制解调器,电话拨号上网叫做 ADSL。
- 光猫是光调制解调器,光纤(光信号)取代了电话线(模拟信号)。非对称的概念就是上行带宽和下行带宽可以不一致。
- 网线直接入户
- 公网 IP(因特网,ISP 服务器用到):只能到达公网的路由表,没有到达私网的路由表。
- 私网 IP 地址(局域网用到):A 类 10.0.0.0/8 B 类:172.168.0.0/16 ~ 172.31.0.0/16 C 类:192.168.0.0/24 ~ 192.168.255.0/24
- 公网 IP 一定是唯一的,私网 IP 是可以重复和随意使用的。
14. NAT转换
- Network address translation,私网 IP 可以通过 NAT 转换变为公网 IP。
- NAT 转换可以隐藏真实的 IP,但是真要查还是可以从 ISP 那里查到真实 IP。
- 简单理解,可以用 NAT 来跨网段。