C/S和B/S架构
C:client(客户端)、S:server(服务端),比如电脑上装的QQ、微信
B:browser(浏览器)、S:server(服务端),比如网页的淘宝、京东
B/S架构本质也是C/S架构
网络协议
网络:网络连接介质+网络协议(osi七层)
网络协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层
osi七层协议:应用层/表示层/会话层/传输层/网络层/数据链路层/物理层
五层协议:应用层/传输层/网络层/数据链路层/物理层
物理层
010101的电信号
物理层的功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0
数据链路层
数据链路层的功能:定义了电信号的分组方式,把物理层的电信号分组
以太网协议
以太网协议Ethernet
- 一组电信号叫一个数据报/数据帧
- 每一数据帧分为:报头head和数据data两部分
报头head包含:(固定18字节)
- 发送者/源地址:6个字节
- 接收者/目标地址:6个字节
- 数据类型:6个字节
数据data包含:(最短46字节,最长1500自己)
- 数据报的具体内容
Mac地址
发送者地址和接收者地址就是网卡地址,即Mac地址
Mac地址:每块网卡都有一个唯一的Mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
广播
同一个局域网内通信,但会出现广播风暴
网络层
网络成的功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址
IP协议
- 规定网络地址的协议叫IP协议,IP协议定义的地址称之为IP地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示
- 范围是0.0.0.0-255.255.255.255,范围是有限的,不能表示出所有的网络设备,于是出现了ipv6
- 一个ip地址通常写成四段十进制数:如172.0.0.1
ip地址分为两部分
- 网络部分:标识子网
- 主机部分:标识主机
注意:单纯的ip地址段只是标识了ip地址的种类,从网络部分或主机部分都无法辨识一个ip所处的子网
子网掩码
所谓“子网掩码”,就是标识子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0.
通过子网编码和ip地址可以判断两个ip是否处在同一个网段,方式是将两个ip地址与子网掩码做按位与运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
ARP协议
广播的方式发送数据报,获取目标主机的Mac地址
Mac地址学习:Mac地址和IP地址的映射表,第一次接收到就会在ip/mac映射表中添加一条数据。
传输层
传输层的功能:建立端口到端口的通信
tcp协议
三次握手,四次挥手
三次握手
四次挥手
tcp连接可靠,因为发送过程中需要回执
服务端如果看到大量的syn_rcvd状态,表示收到了dos和ddos攻击
dos攻击:拒绝服务攻击,ddos攻击:分布式的拒绝服务攻击
端口:端口范围0-65535,0-1023为系统占用端口
udp协议
不可靠连接,因为发送不需要响应
应用层
应用层的功能:规定应用数据的数据格式
上网流程分析
以www.baidu.com为例
- 在浏览器输入www.baidu.com
- 会取dns服务器通过域名解析成ip地址
- 向ip+端口号这个地址发送请求,就会访问到百度的服务器
socket
在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用,已实现进程在网络中通信