Linux-网络架构
1.网线类型
2.交换机特点
- 在一个交换机的端口上所连接的所有终端设备,均在一个网段(局域网 LAN)上(称为一个广播域)
- 产生广播消耗设备CPU资源
- 终端用户的设备接入,连接交换机. 一般情况下交换机24口,48口,96口.
- 一个网段会有一个统一的网络标识,网段192.168.15.xxx
- 企业级交换机会有一些基本的安全功能,这种交换机叫网管功能的交换机.
- 一般来说交换机工作在OSI模型的第2层,也叫二层交换.(等我们说了OSI7层模型就理解.)
- 了解:广播域的隔离(创建VLAN 虚拟局域网)
- 了解:交换机可以隔离冲突域,每一个端口就是一个冲突域
3.路由器特点
- 路由协议的转发(路由选路,指路)
- 路由类似于现实生活中从A地去往B地可能需要先步行,在坐车,在做飞机才能到达B地,这样的整个过程在网络中对应数据的传递过程就称
- 为路由。因此一个数据信息跨越不同的网段传递到目的地址,就可以把传递数据的过程称为路由,也可以看做每条传递数据的路径。
- 数据转发,会维护一个路由表(相当于一个地图)
- 路由器会作为网关(数据的出入口,类似于大楼的大门),一般会在网络出口的位置摆放一台路由器
- 路由器用于连接广域网(公网)
4.通用网站网络架构
5.OSI7层模型
6.应用层
- 大部分软件,服务运行在应用层中.
- 详细含义: 暴露很多接口,提供给其他服务软件使用.主要就是提供应用程序可以接入网络的接口,并根据程序的不同对应不同的接口协议.
- 接口: 别人定义好的规范.usb接口一样,这里的接口指的是软件的接口,用于软件之间,服务之间相互使用
7.表示层
8.会话层
9.传输层
- 传输层用于管理或控制连接(端到端连接).
- 传输层控制了,连接或数据传输是否可靠.指定端口号.
- 如何指定数据传输是否可靠?根据代码书写的时候指定
- 可靠的连接. tcp
- 不可靠的连接. udp
- 通过端口与对方连接.(访问百度连接百度80或443端口)
10.网络层
- 负责将数据从源地址传输到目的地址
- 主要负责: 主要作用就是路由(指路)和寻址(根据ip地址找人)
- 提供ip地址(DHCP).
- 进行路由(问路,指路)(路由表.
- 设备: 3层路由器,3层交换.
11.数据链路层
- 数据链路层:把上层数据进行转换转换为帧(对数据进行处理与加工).
- 这一层加工数据的时候,增加了MAC地址. 网卡物理地址,网卡生产的时候设置.
- 数据可以在局域网传输(精确传输). 局域网传输的时候使用的是mac地址.
- mac地址: 网卡物理地址,世界上独一无二的地址.
12.物理层
- 通过设备的网卡把上面的数据转换为网络介质中可以传输的信号.
- 把数据转换为0101010内容,通过传输介质传递给对方
13.三次握手
- 客户端发出建立连接请求: SYN建立连接请求 . 发出seq的随机数(seq=100).
- 服务端收到客户端请求: ACK(确认),SYN(与客户端建立连接) , 发出ack=seq+1(101),seq=随机(666)
- 客户端收到服务端请求与确认: 发出ACK确认建立连接 , 发出 ack=seq+1(667) seq=ack(101)
- 到此,连接建立,开始传输数据.
14.四次挥手
- 客户端: 发出断开连接请求: (FIN) 断开连接请求,seq=1000 ack=668
- 服务端: 收到客户端请求,确认: (ACK) ,确认断开, seq=668 ack=seq+1(1001)
- 服务端: 向客户端发出断开连接请求,(FIN)断开连接请求, seq=668 ack=seq+1(1001)
- 客户端: 确认收到请求,断开连接, (ACK)确认收到请求, seq=1001 ack=seq+1(669)
- 连接断开
15.tcp和udp区别
16.tcp数据包结构
17.udp数据包结构
18.TCP11种状态
1)三次握手状态
TCP三次握手状态转换简单说明:
01. 准备 :首先,建立连接之前服务器和客户端的状态都为CLOSED。
02. 准备 :服务器创建socket后开始监听(启动服务),变为LISTEN状态。
03. 客户端:SYN请求 ,客户端请求建立连接,向服务器发送SYN报文,客户端的状态变为 SYN_SENT 。
04. 服务端: 服务器收到客户端的报文后向客户端发送ACK和SYN报文,此时服务器的状态变为 SYN_RCVD (收到了客户
端发送的SYN请求)。
05. 客户端 然后,客户端收到ACK、SYN,就向服务器发送ACK,客户端状态变为ESTABLISHED
06. 服务端 服务器收到客户端的ACK后也变为ESTABLISHED。
此时3次握手完成,连接建立!
2)四次挥手状态
01. 客户端 :客户端先向服务器发送FIN报文,请求断开连接,其状态变为FIN_WAIT1。
02. 服务端 :服务器收到FIN后向客户端发送ACK,服务器状态变为CLOSE_WAIT。
03. 客户端 :客户端收到ACK后就进入FIN_WAIT2状态。此时连接已经断开了一半了。如果服务器还有数据要发送给客户端,就会继
续发送。
04. 服务端 :直到发完了,就发送FIN报文,此时服务器进入LAST_ACK状态。
05. 客户端 :客户端收到服务器的FIN后,马上发送ACK给服务器,此时客户端进入TIME_WAIT状态,再过了2MSL长的时间后进入
CLOSED状态。
06. 服务端 :服务器收到客户端的ACK就进入CLOSED状态。
3)第11种状态
CLOSING状态表示:
客户端发了FIN,但客户端在FIN_WAIT1状态时没有收到服务器的ACK确认字段,却收到了服务器的FIN字段,这种情况发生在服务器发
送的ACK丢包的时候,因为网络传输有时会有意外。
4)
核心必会:
CLOSED , ESTABLISHED , LISTEN , TIME_WAIT . CLOSE_WAIT
逐渐掌握: FIN_WAIT1,FIN_WAIT2,CLOSING,SYN_SENT,LAST_ACK
5)
19.网络协议小结
20.DNS解析流程
21.网络管理命令
22.抓包小结