标签:src nmap 根据 最大 中间 字节 windows 注意 就是
TCP把连接作为基本的抽象,TCP的连接的点对点这个点事IP和端口号组合,是套接字(如摸个程序在某个网卡(IP地址)下监听某个端口,下面就是监听在所有网卡)。
TCP基于IP(最大努力服务),因此TCP必须采取适当措施才能使连接可靠。
理想的传输条件有以下两个特点:
然而都不具备。所以:
先从最简单的发一个确认一个谈起:
当出现差错的时候,接收方没收到没法传确认,发送方没收到接收方的确认。双方怎么感知呢?时间!超时重传。
分组超时计时器
注意:
这些逻辑都需要分组编号才能实现,不管是数据分组和确认分组,sequence number,acknowledge number.
发送方重传之后收到迟来的确认就是丢弃了,但也知道接收方接收到了。
上述重传自动进行叫ARQ(automatic repeat request)。也就是发送方重传是自动进行的。
能够在不可靠的网络上实现可靠传输。
当在不可靠网络上实现了可靠传输模型,既可以在其基础上优化了。
发送一个分组,等待一个确认,信道利用率太低。
RTT round-trip time
RTT=传播时延+排队时延(路由器和交换机的)+数据处理时延(应用程序的)。
这样采用流水线传输提高信道利用率
想要连续发送必然在数据包编号的时候要为其进行连续编号,序号。
既然连续发送,就能累计确认。
需要注意
标志位ACK
仅当ACK置位时有效,TCP规定连接建立后所有传送的报文段都必须把ACK置1
复位RST
当RST=1时表明TCP连接中出现严重错误,必须释放连接,并且也被用来拒绝一个非法的报文段或拒绝打开一个连接,nmap的syn扫描就是根据此原理。
窗口 windows size
窗口指明发送方接受缓存大小(以字节为单位),可以进行流控。
选项
MSS
TCP数据段大小
主要考虑MTU,以太网为1500,其中IP占20字节,TCP最小20字节,所以MSS最大1460字节
时间戳选项
可以用来计算RTT
也为应对大带宽下TCP序号绕回问题。
RTT round trip-time
RTT 记录的报文段发出时间,以及收到相应确认时间,时间之差为RTT,对其进行加权平均RTTs,称为加权平均往返时间。旧的和新的RTT都有一个权重,RFC建议0.125.
新的RTTs=(1-α) * 旧的RTTs+α * 新的RTT
超时重传时间RTO
folow control
通过窗口大小可以进行端到端的流量控制,windows size 为0时停止传输。
发送端会进行零窗口探测。每个连接只要收到零窗口报文会生成一个持续计时器persistense timer
拥塞控制是一个全局性过程,防范中间设备路由器等丢弃包引来更多的重传,情况持续恶化。
流量控制是端到端过程,控制的是端。
发送方维持一个拥塞窗口状态变量。
发送窗口等于拥塞窗口,基于超时调节。
三报文握手
最后一个报文的意义在于防止“已失效的连接请求报文段”,即客户端的请求连接滞后到达,服务端重新又开一个连接。
### 连接释放
### 状态机
标签:src nmap 根据 最大 中间 字节 windows 注意 就是
原文地址:https://www.cnblogs.com/wan-xiang/p/11577574.html