TCP
传输控制协议 类比打电话
- 特点:面向连接(收发数据前 必须建立可靠的连接)
- 建立连接技术: 三次握手
- 应用场景:数据必须准确无误的收发 HTTP请求 FTP文件传输 邮件收发
- 优点:速度慢 稳定 重传机制 拥堵控制机制 断开连接
- 缺点:效率低 占用资源 容易被攻击(三次握手 -> DOS DDOS攻击)
- TCP/IP协议组:提供点对点的连接机制 制定了数据封装 定址 传输 路由 数据接收的标准
UDP
用户数据报协议 类比喇叭叫人
- 特点:面向无连接(不可靠 无状态传输机制)
- 无连接信息发送机制
- 应用场景:无需确保通讯质量且要求速度快 无需确保信息完整(消息收发 语音通话 直播)
- 优点:安全 快速 漏洞少
- 缺点:不可靠 不稳定 容易丢包
只要有目的源地址 端口号 发送方源地址 端口号 则可以直接发送信息报文 但不能保证一定能收到或完整的收到数据
HTTP与HTTPS
- HTTP:超文本传输协议
- 定义:客户端和服务端请求和应答的标准 用于从web服务器传输超文本到本地浏览器的传输协议
- HTTP请求: 按照协议规则向web服务器发送的将超文本传输到本地浏览器的请求
- HTTPS:超文本传输安全协议
- 定义:HTTP的安全版(安全基础是SSL/TLS)
- SSL:安全套接层
- TLS:传输层安全
- 为网络 通信提供安全及数据完整性的一种安全协议 对网络连接进行加密
区别:
- HTTP 是不安全的 (监听和中间人攻击等手段 获取网站账户信息和敏感信息) HTTPS可防止被攻击
- HTTP协议的传输内容都是明文 直接在TCP连接上运行 客户端和服务器都无法验证对方身份
- HTTPS 协议传输内容都被SSL/TLS加密 且运行在SSL/TLS上 SSL/TLS运行在TCP连接上 所以数据传输是安全的
建立TCP连接的三次握手
- 第一次握手:客户端向服务端发送SYN标志位(序号是J) 并进入SYN_SEND状态 (等待服务器确认状态)
- 第二次握手:服务器收到来自客户端的SYN J 服务端会确认该数据包已收到并发送ACK标志位(序号是J+1)和SYN标志位(序号是K) 服务器进入SYN_RECV(请求接收并 等待客户端确认状态)
- 第三次握手:客户端进入连接建立状态后 向服务器发送ACK标志位(序号是K+1)确认客户端已收到建立连接确认 服务器收到ACK标志位后 服务端进入已建立状态
个人感觉一开始不要纠结标志位和序号 先要体会三次握手的过程