网络
OSI七层模型
物理层 ——> 数据链路层——>网络层——>传输层——>会话层——>表示层——>应用层
TCP协议
TCP协议是传输控制协议(Transmission Control Protocol)的缩写,是⼀种⾯向连接的、可靠的、基于字节流的
传输层协议。
TCP协议通过序列号和确认机制,保证数据传输的可靠性。
TCP协议和UDP协议的区别:TCP协议提供可靠传输,⽽UDP协议不提供;TCP协议需要建⽴连接,⽽UDP协议不
需要。
# TCP的三次握手(确认客户端和服务端的收发和发送能力)
TCP连接的建⽴需要经过三次握⼿:客户端发送SYN报⽂,服务端回复SYN+ACK报⽂,客户端再回复ACK报⽂。
SYN、ACK和FIN等TCP报⽂段的含义:
SYN表示发起连接请求;
ACK表示确认连接请求或确认数据;
FIN表示连接释放请求或数据传输结束。
为什么需要三次握⼿:防⽌已失效的连接请求报⽂段再次传到服务端,导致服务端产⽣错误。
# 四次握手(谁主动断开链接谁会产生time_wait)
1.客户端向服务端发起断开链接FIN+ACK报文 (断开链接请求)
2.服务端向客户端发送ACK报文 (发送剩余的数据)
3.服务端等待所有数据传输完毕后再次向客户端发送FIN报文 (剩余数据发送完后,发起断开链接确认)
4.客户端向服务端发送ACK报文 (确认断开链接)
# TCP 的控制位
URG : 表示紧急指针字段有效,出现这个标志位时,表示数据报中有紧急数据。
ACK: 确认序列号有效,表示接收方已成功接收到数据。
PSH: 表示接收方应该尽快将数据传送给上层应用,而不是缓冲起来。
RST: 复位连接,表示连接存在问题,需要立即终止。
SYN: 同步序列号,主要用于连接的建立。
FIN: 表示发送方完成数据发送,请求终止连接。
# TCP协议的可靠性机制
TCP协议的确认ACK和重传机制:接收⽅确认每个成功接收的数据段,并重传没有确认的数据段。
TCP协议的滑动窗⼝机制:发送⽅根据接收⽅反馈的窗⼝⼤⼩控制⾃⼰的发送速度。
TCP协议的流量控制机制:发送⽅根据接收⽅反馈的接收窗⼝⼤⼩动态调整⾃⼰的发送窗⼝。
# TCP重传机制
TCP是⼀种可靠传输协议,其重传机制是TCP协议中的⼀部分。TCP协议通过以下步骤来实现重传机制:
1. 发送⽅将数据分割成多个数据段,并为每个数据段分配⼀个序列号。
2. 发送⽅将数据段发送到接收⽅,并等待接收⽅的确认消息。
3. 如果发送⽅在⼀定时间内未收到确认消息,就认为数据段丢失或出错,发送⽅会重新发送该数据段。
4. 接收⽅收到数据段后,会给发送⽅发送确认消息,确认收到了哪些数据段。
5. 如果发送⽅在⼀定时间内未收到确认消息,就会重新发送数据段。
UDP协议
⽤户数据报协议(英语:User Datagram Protocol,缩写:UDP;⼜称⽤户数据包协议)是⼀个简单的⾯向数据报
的通信协议,位于OSI模型的传输层。
UDP是⼀种⽆连接、不可靠的传输协议。
UDP协议头包含源端⼝号、⽬的端⼝号、⻓度和校验和等字段。
UDP协议适⽤于对数据传输可靠性要求不⾼的应⽤,如实时⾳视频传输、DNS查询等。
UDP协议的优点和缺点:
优点:⽆连接、传输速度快、协议头⼩、⽀持⼴播和多播等。
缺点:不可靠、没有流量控制、容易受到攻击和⼲扰、不能保证数据的可靠性和顺序性等。
UDP协议与TCP协议的区别
TCP是⾯向连接的协议,UDP是⽆连接的协议。
TCP提供可靠的传输服务,UDP提供不可靠的传输服务。
TCP使⽤流量控制和拥塞控制机制,UDP没有这些机制。
TCP协议头较⼤,UDP协议头较⼩。
UDP的应⽤场景:
实时⾳视频传输:如IP电话、视频会议、直播等。
DNS查询:域名系统使⽤UDP协议进⾏域名解析。
游戏应⽤:UDP协议传输速度快,适合于实时性要求⾼的游戏应⽤。
SNMP(简单⽹络管理协议)等。
UDP协议的安全性和优化
UDP协议容易受到攻击和⼲扰,可以通过加密和身份验证等⼿段提⾼安全性。
优化UDP协议可以通过改进重传策略、提⾼传输效率、增加错误校验等⽅式实现。
DNS协议
DNS是什么
DNS,全称是 Domain Name System,翻译成中⽂是域名系统,也称为域名解析系统、域名服务器系统等,
是互联⽹的基础设施之⼀。它主要通过将域名转化为IP地址来完成Internet上的各种通信和服务访问。
DNS的作⽤
DNS的作⽤是提供域名到IP地址的解析服务,以便⽤户能够通过域名访问 Internet 上的各种⽹站和⽹络服务。
DNS的分类:
DNS还可以按照服务对象、服务功能、服务规模等维度进⾏分类,主要有以下⼏种分类⽅式:
1. 按照服务对象分类
公共DNS:为公众提供解析服务,如ISP提供的DNS服务、Google DNS、OpenDNS等。
223.5.5.5 阿⾥dns
114.114.114.114 电信
8.8.8.8 是Google DNS服务器
私有DNS:维护由企业或组织拥有的私有⽹络中的域名解析,如公司内部的DNS服务器。
2. 按照服务功能分类
递归DNS:负责处理来⾃客户端的递归查询,并且逐层向下转发查询请求,直到找到包含查询结果的
DNS服务器。
权威DNS:负责解析特定区域内的域名解析请求,可以提供DNS记录管理服务。
1. 按照服务规模分类
根DNS服务器:负责维护全球DNS树形结构,处理来⾃顶级域名服务器和本地DNS服务器的请求。
顶级域名服务器:负责管理不同顶级域名(如.com、.org、.cn)下的权威DNS服务器。
⼆级域名服务器:负责维护某个⼆级域名下的权威域名服务器信息,通常由域名所有者⾃⼰管理。
www.baidu.com live.baidu.com
HTTP协议
1 HTTP协议基础概念
HTTP协议的定义、作⽤和特点
定义:HTTP (Hypertext Transfer Protocol)是⼀种⽤于传输超媒体⽂档(例如HTML)的应⽤层协议。
作⽤:在Web浏览器和Web服务器之间进⾏数据传输。
特点:⽆状态、基于请求/响应模型、灵活、可扩展。
HTTP协议的版本、⽅法和头部字段
版本:HTTP/1.0、HTTP/1.1、HTTP/2.0
⽅法:GET、POST、PUT、DELETE、HEAD、OPTIONS、TRACE、CONNECT。
头部字段:通⽤头部字段、请求头部字段、响应头部字段、实体头部字段。
2 HTTP请求响应过程
HTTP请求的过程和流程
建⽴TCP连接
发送HTTP请求报⽂
服务器响应HTTP请求
HTTP响应的过程和流程
服务器处理HTTP请求
服务器⽣成HTTP响应报⽂
服务器发送HTTP响应报⽂
HTTP连接管理和持久化
HTTP/1.0中的短连接和HTTP/1.1中的⻓连接
HTTP连接管理的性能和安全问题
HTTP持久化技术的实现原理和优化策略
3 HTTP状态码
HTTP状态码的作⽤和分类
1xx(信息响应):服务器已接收请求,需要请求者继续执⾏操作 101 websocket
2xx(成功响应):操作被成功接收、理解和接受
3xx(重定向):需要客户端执⾏进⼀步的操作才能完成请求 301 302
4xx(客户端错误):请求包含语法错误或⽆法完成请求 客户端请求不存在啊
5xx(服务器错误):服务器在处理请求的过程中发⽣错误或异常
常⻅的HTTP状态码及其含义
200 OK:成功响应,请求已完成
301 Moved Permanently:永久重定向,请求的资源已被永久移动到新的URL
404 Not Found:未找到,请求的资源不存在
500 Internal Server Error:内部服务器错误,服务器在处理请求时发⽣了错误
Wireshark 分析常⻅的⽹络问题
tcp.analysis.lost_segment # 分析丢失的数据段
tcp.analysis.duplicate_ack # 重传的ack
tcp.analysis.retransmission # 丢包 性能 延时等 重传
tcp.analysis.window_update # 滑动窗口
tcp.analysis.ack_rtt # 衡量tcp和网络报文的延时

浙公网安备 33010602011771号