趣谈网络协议笔记2
第五讲:
-
Hub是集线器:完全工作在物理层的一层设备,他会将自己收到的每一个字节都复制到每一个端口上(广播的方式)
-
数据链路层,也即MAC层(Medium Access Control媒体访问控制)就是解决先发后发顺序防止错乱
crc:循环冗余检测
-
交换机就是二层设备,更加智能一点,他会把MAC头拿下来,检查目标MAC地址,只会转发给指定的MAC地址的pc。一开始也是通用广播,但交换机会学习,记住广播过的端口的MAC地址,生成转发表
-
ARP广播时,交换机会将一个端口收到的包转发到其它所有的端口上。
比如数据包经过交换机A到达交换机B,交换机B又将包复制为多份广播出去。
如果整个局域网存在一个环路,使得数据包又重新回到了最开始的交换机A,这个包又会被A再次复制
多份广播出去。
如此循环,数据包会不停得转发,而且越来越多,最终占满带宽,或者使解析协议的硬件过载,形成
广播风暴。
第六讲:
-
多个交换机连接,形成拓扑结构
-
STP协议旋转树协议,利用最小生成树来破环环
-
为了安全性有两种隔离方式物理隔离和虚拟隔离
- 虚拟隔离即VLAN虚拟局域网
会在二层头加一个TAG,里面有个VLAN ID,一个12位,可以分4096个VLAN。交换机会把二层头取下来,识别VLAN ID,只有相同VLAN ID的包,才会相互转发,不同VLAN的包是看不到的,这样来解决广播问题和安全问题。对于交换机的每个口可以设置成不同VLAN
-
交换机之间的连接时通过TRUNK口,他可以转发任何VLAN的口
第七讲:
- ping是工作在应用层,基于ICMP协议(Internet Control Message Protocol 互联网控制报文协议),本身非常简单,充当侦察兵
-
- ICMP是封装在IP包里的
- 类型常用的有主动请求为8(ping就是8),主动请求的应答为0
- 标识符是标识身份,序号是标识编号
- 差错报文类型有终点不可达3,源抑制4(速度放慢),超时11,重定向5(换个路由路径)
3
第八讲:
- 路由器是一台设
备,它有五个网口或者网卡,相当于有五只手,分别连着五个局域网。每只手的IP地址都和局域网的IP地址相同的网段,每只手都是它握住的那个局域网的网关。 也就是说路由器的每个网口等于一个网关,包都是先到达网关,拿下MAC头和IP头根据路由算法转发到另一个网关,再装上MAC头和IP头 - 静态路由:就是在路由器配置一条条规则,就是配置每个口对应出去访问哪个网段。你要访问哪个网段需要先发到哪个规定好的网段
- MAC地址是一个局域网内才有效的地址。因而, MAC地址只要过网关,就必定会改变,
因为已经换了局域网。两者主要的区别在于IP地址是否改变。不改变IP地址的网关,我们称为转发网关; 改变IP地址的网关,我们称为NAT网关 - IP地址会变成为NAT(Network Address Translation ),就两个pc在各自局域网内的地址一样都为192.168.1.100,需要通过NAT来换一个ip
- 经过路由器之后MAC头要变(网关的MAC地址?),如果IP不变,相当于不换护照的欧洲旅游(一个ip走天下),如果IP变,相当于换护照
的玄奘西行 (需要通过NAT换ip)
第九讲:
- 静态路由协议:
- 路由表里配置三项信息(根据目的IP地址来配置路由 ):目标ip,出口ip,下一跳网关IP
- 策略路由(根据多个参数来配置路由):多路由表/多路径 ,可以配置多个路由表,可以根据源IP地址、入口设备、 TOS等选择路由表,然后在路由表中查找路由。
这样可以使得来自不同来源的包走不同的路由。
- 动态路由协议:求最短路径常用的有两种方法,一种是Bellman-Ford算法,一种是Dijkstra算法。
- 距离矢量路由算法:(基于Bellman-Ford算法)
- 通过邻居与目标的距离+自己与目标的距离
- 问题一:有一个路由器挂了,得所以路径走不通才知道它挂了
- 问题二:每次发送都要发送q全局路由表,每个路由器需要维持到每个路由器的路由表,只使用小型网络
- BGP外网路由协议(Border Gateway
Protocol,简称BGP) ,用于国家之间
- 链路状态路由算法:(基于Dijkstra算法)
- 每个路由器知道某一节点和它邻居的状态,每个路由器本地构建完整的图
- 更新的话,只需广播更新的或者改变的网络拓扑
- OSPF (open Shortest Path First, 开放式最短路径优先 ),主要用于数据中心内部,时内部网关协议
- 距离矢量路由算法:(基于Bellman-Ford算法)
第十讲:
-
所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,
用这样的数据结构来保证所谓的面向连接的特性 。也就是说连接时为了维持状态 -
TCP是面向字节流的,没头没尾,是靠自己来切分。而UDP继承IP的特性,基于数据报,一个个发一个个收。
TCP有拥塞控制,而UDP则是无脑发
-
UDP报文头:
只有源端口和目标端口
-
QUIC(全称Quick UDP Internet Connections, 快速UDP互联网连接) 是Google提出的一种基
于UDP改进的通信协议,其目的是降低网络通信的延迟,提供更好的用户互动体验,是在应用层,实现快速连接建立,自适应拥塞控制,减少重传时延 -
UDP在视频直播、实时游戏、物联网方面有着应用