TCP专项复习
HearLing
向大神进击
展开
-
[TCP专项复习]TCP灵魂之问
TCP与UDP的区别面向连接可靠性基于字节流三次握手连接一次握手过程及变化为什么不是两次为什么不是四次握手过程中可以携带数据吗同时发起挥手会怎样四次挥手断开连接半连接队列全连接队列SYN Flood攻击过程如何应对这种攻击剖析TCP报文收不字段源端口、目标端口序列号、ISN:ISN是如何计算的,为什么确认号标记位窗口大小校验和可选项TCP快速打开(TFO)原理首轮三次握手之后的三次握手TFO优势TCP时间戳作用计算往返时延RTT原创 2020-11-13 00:09:39 · 137 阅读 · 0 评论 -
[TCP灵魂之问]TCP 的拥塞控制、慢启动、慢启动阈值、拥塞避免、快速重传和快速恢复
说说 TCP 的拥塞控制?流量控制发生在发送端跟接收端之间而TCP 的拥塞控制主要处理的问题是,整个网络环境,网络特别差,特别容易丢包的情况。对于拥塞控制来说,TCP每条连接都需要维护两个核心状态:拥塞窗口(Congestion Window,cwnd): 是指目前自己还能传输的数据量大小; 接收窗口(rwnd)是接收端给的限制 拥塞窗口(cwnd)是发送端的限制 发送窗口大小 = min(rwnd, cwnd)慢启动阈值(Slow Start Threshold,ssthre原创 2020-11-12 23:54:15 · 3667 阅读 · 0 评论 -
[TCP灵魂之问]TCP 的流量控制、滑动窗口
说一说 TCP 的流量控制流量控制要做的事情,就是在通过接收缓存区的大小,控制发送端的发送。如果对方的接收缓存区满了,就不能再继续发送了。具体是如何做的呢?举个例子:首先双方三次握手,初始化各自的窗口大小,均为 200 个字节。假如当前发送端给接收端发送 100 个字节,那么此时对于发送端而言,可用窗口减少了 100 个字节。现在这 100 个到达了接收端,被放到接收端的缓冲队列中。不过此时由于大量负载的原因,接收端处理不了这么多字节,只能处理 40 个字节,剩下的 60 个字节被留在了缓冲队列原创 2020-11-12 23:17:19 · 128 阅读 · 0 评论 -
[TCP灵魂之问]TFO 流程、TCP快速打开(TFO)原理、TFO优势
TFO 流程首轮三次握手就是第二次握手的时候不是立即返回SYN+ACK了,而是返回计算得到的`SYN cookie`,放在TCP报文的Fast Open(快速打开)选项中,客户端拿到cookie将其缓存首先客户端发送SYN给服务端,服务端接收到。注意哦!现在服务端不是立刻回复 SYN + ACK,而是通过计算得到一个SYN Cookie, 将这个Cookie放到 TCP 报文的 Fast Open选项中,然后才给客户端返回。客户端拿到这个 Cookie 的值缓存下来。后面正常完成三次握手原创 2020-11-12 22:32:08 · 889 阅读 · 0 评论 -
[TCP灵魂之问]介绍一下 TCP 报文头部的字段
TCP 报文头部的字段源端口、目标端口如何标识唯一标识一个连接?答案是 TCP 连接的四元组——源 IP、源端口、目标 IP 和目标端口。那 TCP 报文怎么没有源 IP 和目标 IP 呢?这是因为在 IP 层就已经处理了 IP 。TCP 只需要记录两者的端口即可。序列号即Sequence number, 指的是本报文段第一个字节的序列号。序列号在 TCP 通信的过程中有两个作用:在 SYN 报文中交换彼此的初始序列号。保证数据包按正确的顺序组装。ISN即Initi原创 2020-11-10 19:08:14 · 1899 阅读 · 0 评论 -
半连接队列、全连接队列、SYN Flood 攻击、如何应对SYN Food攻击、半连接队列和 SYN Flood 攻击的关系
半连接队列当客户端发送SYN到服务端,服务端收到以后回复ACK和SYN,状态由LISTEN变为SYN_RCVD,此时这个连接就被推入了SYN队列,也就是半连接队列。全连接队列当客户端返回ACK, 服务端接收后,三次握手完成。这个时候连接等待被具体的应用取走,在被取走之前,它会被推入另外一个 TCP 维护的队列,也就是全连接队列(Accept Queue)。SYN Flood 攻击原理SYN Flood 属于典型的 DoS/DDoS 攻击。其攻击的原理很简单,就是用客户端在短时间内伪造大量不存在的原创 2020-11-10 18:20:24 · 956 阅读 · 0 评论 -
[TCP灵魂之问]四次挥手断开连接
四次挥手断开连接刚开始都处于established状态客户端端口,向服务器发FIN报文发送后,客户端变成FIN-WAIT-1状态–以及half-close(半关闭)状态,即无法向服务端发送报文只能接收服务端接收后向客户端确认,变成closed-wait状态客户端接收到了服务端的确认,变成fin-wait2状态服务端向客户端发送FIN,自己进入LAST-ACK状态,客户端收到服务端发来的FIN后,自己变成了TIME-WAIT状态,然后发送 ACK 给服务端。注意了,这个时候,客户端需要等原创 2020-11-10 15:54:34 · 298 阅读 · 0 评论 -
[TCP灵魂之问]三次握手建立连接
TCP三次握手的过程以最通俗易懂的恋爱过程来讲述TCP三次握手的过程第一次 我爱你男---------》女女方收到-》证明男方有爱的能力第二次 我收到你的爱,我也爱你男《----------------------女男方收到-》证明女方拥有爱与被爱的能力第三次 我收到了你的爱男----------------》女女方收到-》证明男方具备被爱的能力那么真实的握手又是怎么样的?真实的三次握手也是要确认双方的两样能力:发送能力与接收的能力。原创 2020-11-10 11:56:14 · 523 阅读 · 0 评论 -
[TCP灵魂之问]TCP和UDP的区别
TCP和UDP的区别首先概况其基本的区别:TCP是面向连接的、可靠的、基于字节流的传输层协议UDP是一个面向无连接的传输层协议TCP三大核心:面向连接;所谓面向连接,指的是客户端与服务端的连接,在双方互相通信之前,TCP需要三次握手简历连接,而UDP没有相应的简历连接的过程可靠性;TCP可靠性主要体现在1有状态2可控制面向字节流;UDP数据传输基于数据报,仅仅是继承了IP层的特性,而TCP为维护状态,将IP包变成了字节流有状态、可控制有状态;TCP会精准记录哪些数据发送了,被对方原创 2020-11-10 10:20:26 · 126 阅读 · 0 评论