Netty-网络协议与滑动窗口

TCP

三次握手

在这里插入图片描述
三次握手原因:
TCP是面向连接的,需要双方都确认连接的建立。

  1. 第一次握手:客户端请求建立连接
  2. 第二次握手:服务器应答,并请求建立连接
  3. 第三次握手:客户端针对服务器请求的确认应答

漏洞:

SYN洪泛攻击
网络服务所在的端口发送大量伪造原地址的攻击报文,发送到服务端,造成服务端上的半开连接队列被占满,从而阻止其他用户进行访问
解决方案:

  1. 无效连接监控释放
  2. 延缓TCB分配方法
  3. 防火墙

四次挥手

在这里插入图片描述

心跳

TCP有心跳控制,但是是2小时才检测这种,不靠谱
所以一般需要在应用层来控制心跳
TCP keepAlive 是在一定时间内(默认2小时)socket 上没有接收到数据时主动断开连接,避免浪费资源,TCP keepAlive 检测的主要是传输层的连通性,应用层心跳主要检测应用层服务是否可用,如如果出现死锁虽然 socket 是联通的但服务已经不可用。

TCP通信原理

Socket套接字

Socket使用ip+port作为TCP连接的端点

TCP缓冲区

每个TCP的Socket的内核中都有一个发送缓冲区和接收缓冲区,这是 操作系统的范畴
在这里插入图片描述

窗口机制

在这里插入图片描述

滑动窗口

  1. 发送方和接收方都会维护一个数据帧的序列,这个序列称为窗口
  2. 发送方的窗口大小由接收方确认

目的

  1. 确保数据不丢失
    如果发送的数据丢失了可以重发
  2. 控制发送速度
    以免接收方缓存不够大导致溢出,同时控制流量防止网络阻塞

Http过程

  1. 三次握手建立TCP连接
  2. 客户端向服务器发送请求get
  3. 客户端发送请求头信息
  4. 服务器应答http1.1 200 ok
  5. 返回响应头信息
  6. 服务器向客户端发送数据
  7. 服务器关闭TCP连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值