原创:https://blog.csdn.net/ndzjx/article/details/89191533
TCP协议:
三次握手:
内核在我们调用listen方法时,就已经为这个监听端口建立了SYN队列和ACCEPT队列。
TCP的可靠连接:
1:send可以发送任意大的数据,但数据链路层不会允许报文太大,既然切分报文不可避免,那就只能发生在TCP内部,最有效率。
2:每个报文发出后必须收到回执(ACK)(超时重发)
3:报文在网络中传输时会失序,TCP接收端需要重新排序失序的报文。
4:当连接的两端处理速度不一致时,为防止TCP缓冲区溢出,有流量控制,减缓速度更快的一方的发送速度。
内核为每一个TCP连接都分配了内存分别充当发送、接收缓冲区。
(滑动窗口)缓存上限所起的作用:丢弃新报文,防止TCP连接消耗太多内存。