
TCP协议
文章平均质量分 90
tcp协议
Eisen戴
如果明知结局,何不给自己最后的骄傲,何不给过去最好的结局.
展开
-
Linux系统中跟TCP相关的内核参数
当进程调用 close() 函数关闭 socket 后,相关句柄已被释放,无论该连接是处于 FIN_WAIT1 状态,还是确实关闭了,该连接已经与进程完全无关,由内核和另一端完成四次挥手交互,此时的连接就称为孤儿连接。设为0表示关闭功能,设为1表示仅作为客户端时使用,设为2表示仅作为服务端时使用,设为3表示无论作为客户端还是服务端都使用TFO功能。设为0表示关闭RACK,设为1表示开启RACK,设为2表示把RACK的重排序窗口静态化(min_rtt/4),设为3表示禁用RACK的DUPACK阈值探索。原创 2023-12-24 00:21:23 · 2313 阅读 · 1 评论 -
TCP 核心工作机制
一、如何保证传输可靠TCP 的核心知识:如何保证传输可靠 + 如何提高传输效率:确认应答机制 + 超时重传机制:滑动窗口机制、快速重传机制、流量控制机制、延时应答机制、捎带应答机制、拥塞控制机制一、如何保证传输可靠TCP的可靠性主要是通过来实现的。1 确认应答机制先看发送方:在没有滑动窗口机制之前,发送方一次只能发送一段报文,且每次发送完后要等待接收方的ACK确认,只有在收到接收方的ACK确认应答后,才能将发送缓冲区里对应的数据释放掉,并开始发送第二段报文。原创 2023-12-19 22:53:08 · 880 阅读 · 0 评论 -
TCP/UDP 的特点、区别及优缺点
所以UDP既不保证数据的传递(可能会丢包),也不重传丢失的数据包,相对不太可靠,但是,与TCP相比,它传输数据的速度更快,常用于传输音频、视频、多媒体数据流等数据,常用于音频和多媒体应用。传输速度慢、效率低。而且在传输过程中,还要考虑确认机制,重传机制和拥塞机制等,这都会消耗一定时间,使得传输效率略低,所以TCP不适合实时性要求高的场景;UDP 协议对应用程序传递给它的数据既不合并,也不拆分,而是保留这些报文的边界,将每条数据封装成独立的数据报进行传输,每个数据报都是独立的实体,不会进行拆分和重组。原创 2023-12-11 23:56:51 · 1461 阅读 · 0 评论 -
TCP报文头(首部)详解
TCP协议传输的数据单元是报文段,一个报文段由TCP首部(报文头)和TCP数据两部分组成,其中TCP首部尤其重要,首部用于控制(新建、断开)连接、流量和拥塞等。TCP首部的固定长度是20B,最大长度是60B,其中可变选项长度最长为40B(4B×10)。原创 2023-12-12 23:12:28 · 10360 阅读 · 1 评论 -
TCP三次握手、四次挥手及状态转换详解
服务端收到客户端的SYN报文,如果允许建立连接,就向客户端发送SYN+ACK报文,报头需初始化seq和ack值,之后进入 SYN-RCVD 状态,等待客户端的ACK报文。当被动关闭连接的一方收到FIN报文后,发现自己也没有数据要发送给对端,就将两次挥手合并成一次,直接给对端发送FIN+ACK报文。被动关闭连接的一方等发送完所有数据后,应用层也会关闭socket,内核协议栈自动给主动关闭方发送一个FIN报文,告知对方我方也也不再发送数据,可以关闭连接,之后进入 LAST-ACK 状态。原创 2023-12-10 00:28:12 · 1609 阅读 · 2 评论