1、OSI网络分层模型
物理层(physical):为启动、维护及关闭物理链路定义了电气规范、机械规范、过程规范和功能规范。PDU传输单位是bit。
数据链路层(datalink):PDU传输单位是帧(frame),Ethernet(以太网)工作在此层,只负责一个链路的通信,不跨路由。MAC地址工作在此层。
网络层(network):PDU传输单位是数据包(packet),提供逻辑的IP地址。
传输层(transport):PDU传输单位是数据段(segment),TCP和UDP可靠与不可靠的传输,终端对终端的通讯,可以跨路由,路由会分成多个网段和链路。
会话层(session):
表示层(presention):
应用层(application):
会话层到应用层的PDU传输单位是message。
PDU: Protocol Data Unit,协议数据单元是指对等层次之间传递的数据单位。
对等通讯
数据传输过程
2、三种通讯模式
广播(broadcast):目标为多个设备
组播(multicast):目标为一个组里的多个设备
广播和组播一般在局域网中使用,不能跨路由
单播(unicast):目标是一个设备,但并不代表别人听不到,一般在广域网中使用,可以跨路由
3、网络线缆和接口
水晶头接口:RJ45
电话线水晶头:RJ11
非屏蔽式双绞线UTP
采用T568A/B标准,我国一般采用T568B标准
4、Ethernet Frame结构
下层为上层提供服务,要提供一个上层服务的类型,也就是type。
前八个字节的前导信息,6个字节的目标MAC地址和源MAC地址,FCS为校验位
帧结构的大小为72-1526个字节。
一个十六进制表示4位二进制
MAC地址是48位,由12个十六进制组成。
5、Hub和交换机
区别:Hub不可以隔断冲突域,是多端口中继器,并不记忆该信息包是由哪个MAC地址发出,哪个MAC地址在Hub的哪个端口,工作在物理层。
交换机可以隔断冲突域,监听数据帧中源MAC地址,学习MAC,建立MAC表,工作在数据链路层。不能隔断广播。
6、路由器
把一个数据包从一个设备发送到不同网络里的另一个设备上去。这些工作依靠路由器来完成。路由器只关心网络的状态和决定网络中的最佳路径。路由的实现依靠路由器中的路由表来完成
为了实现路由,路由器需要做下列事情:
分隔广播域
选择路由表中到达目标最好的路径
维护和检查路由信息
连接广域网
7、VLAN
连到同一个交换机的设备是在同一个网络,各设备之间可以互相访问,不安全,如果这个网络中有财务部,需要在交换机上做策略,在交换机上划分VLAN,就相当于加了一个路由器,可以将财务部划分到单独一个网络。这就是划分VLAN的作用。
8、TCP/IP 协议栈
Transmission Control Protocol
/Internet Protocol
传输控制协议/因特网互联协议
TCP/IP是一个Protocol Stack,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等许多协议。
和OSI参考模型的分层对应关系
9、TCP协议包头
端口号:22/tcp(ssh), 80/tcp(http), 443/tcp(https),21/tcp(FTP)
序号(seq):表示本报文段所发送数据的编号,由于序号由32位组成,所以每2^32个字节,就会出现序列号回绕,再次从0 开始
确认号(ack):表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送方:我希望你(指发送方)下次发送的数据的第一个字节数据的编号是这个确认号
ACK=1表示确认包
SYN=1表示请求包
FIN=1表示分手包
- TCP三次握手
- 四次挥手
- 有限状态机FSM:Finite State Machine
CLOSED 没有任何连接状态
LISTEN 侦听状态,等待来自远方TCP端口的连接请求
SYN-SENT 在发送连接请求后,等待对方确认
SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认
ESTABLISHED 代表传输连接建立,双方进入数据传送状态
FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认
FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求
TIME-WAIT 完成双向传输连接关闭,等待所有分组消失
CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认
LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失
CLOSING 双方同时尝试关闭传输连接,等待对方确认
9、UDP特性
工作在传输层
提供不可靠的网络访问,只管发,不管对方收没收到,就像邮局一样。
非面向连接协议
有限的错误检查
传输性能高
无数据恢复特性
UDP包头
10、Internet层
- ICMP协议
ping命令使用的就是ICMP协议,有请求包和回应包组成。
[root@centos6 ~]#tcpdump -nn icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
08:59:22.775914 IP 172.18.21.7 > 172.18.21.6: ICMP echo request, id 1197, seq 86, length 64
08:59:22.775930 IP 172.18.21.6 > 172.18.21.7: ICMP echo reply, id 1197, seq 86, length 64
08:59:23.775976 IP 172.18.21.7 > 172.18.21.6: ICMP echo request, id 1197, seq 87, length 64
08:59:23.776028 IP 172.18.21.6 > 172.18.21.7: ICMP echo reply, id 1197, seq 87, length 64
08:59:24.776160 IP 172.18.21.7 > 172.18.21.6: ICMP echo request, id 1197, seq 88, length 64
08:59:24.776193 IP 172.18.21.6 > 172.18.21.7: ICMP echo reply, id 1197, seq 88, length 64
- ARP
Address Resolution Protocol:地址解析协议,工作原理,知道对方的IP地址,但不知道MAC地址,通过ARP地址解析协议,发广播,对方收到后就会回个MAC地址,并将发送者的MAC地址和IP地址存到自己的ARP表里。如果对方和自己不在同一个网段,跨路由了,发广播对方也收不到,这时就发广播给路由器上的网关,得到网关的MAC地址,将对方主机的ip和网关的MAC地址存放到自己的ARP表里,路由器再发ARP广播得到对方主机的MAC地址,如果有多个路由器就一个个的传下去,先得到网关的MAC地址,最后得到主机的MAC地址,ARP表里存放的是曾经和主机通讯过的设备的IP地址和MAC地址的对应关系。如下命令可以查看ARP表
[root@centos6 ~]#ip neigh
192.168.25.254 dev eth2 lladdr 00:50:56:fa:67:5d STALE
172.18.252.32 dev eth3 lladdr 2c:4d:54:25:82:0b STALE
172.18.250.106 dev eth3 lladdr 40:c6:2a:20:9e:6c STALE
172.18.0.1 dev eth3 lladdr 84:2b:2b:43:d0:50 STALE
172.18.251.200 dev eth3 lladdr e0:a3:ac:74:f8:b0 STALE
192.168.25.1 dev eth2 lladdr 00:50:56:c0:00:01 REACHABLE
[root@centos6 ~]#arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.25.254 ether 00:50:56:fa:67:5d C eth2
172.18.252.32 ether 2c:4d:54:25:82:0b C eth3
172.18.250.106 ether 40:c6:2a:20:9e:6c C eth3
172.18.0.1 ether 84:2b:2b:43:d0:50 C eth3
172.18.251.200 ether e0:a3:ac:74:f8:b0 C eth3
192.168.25.1 ether 00:50:56:c0:00:01 C eth2
Reverse Address Resolution Protocol (RARP):反方向的ARP协议,将MAC地址解析成IP地址。