TCP/IP 协议的一些总结
1.tcp头部


2.三次握手,四次挥手


注意整个过程中的客户端和服务端的状态转换已经传输的一些序列号和标志。
1.为啥三次:1.延迟的ack会导致重新建立连接,2,无法得知服务端的序列号是否被确认。
2.为啥四次:1.前两次确定客户端要fin,但是服务端还有数据没有传完,所以等数据传完需要再两次确定fin,
3.为啥等两个2msl:1.如果最后的一个ack 服务端没收到,服务端还会再传一个fin,在2msl内,客户端会收到然后再次等待2msl;
2.确保客户端最后一个ack不会出现在下一次的tcp连接中。
4.产生大量time-wait状态的原因:1.有大量的web server的访问,
可以开启tim-wait的socket重用,或者快速回收已经完成的socket。
5.tcp listen状态中backlog参数的含义:
1.维护两个队列 未完成三次握手的队列和已经完成三次握手的队列,未完成的套接字处于syn-recvd状态 ,完成的处于established状态
当完成三次握手时,就会将套接字从未完成队列移动到已完成队列,所以accep函数是发生在三次握手之后,因为accept会监听已完成队列是否为空,如果为空就会堵塞,如果不为空就会取出一项并返回。

浙公网安备 33010602011771号