tcp/ip协议学习笔记

来源:互联网 发布:国际数据是什么 编辑:程序博客网 时间:2024/04/30 07:14

建立一个连接3次握手,断开连接4次挥手,这是由tcp的半关闭导致的。Tcp是全双工通信,一方发送fin,只是对应自己端的应用层关闭了,该端不会再发送数据,但可以接收数据
MSS最大报文段长度
MSL报文段最大生存时间


TCP:连接。Syn代表数据传输的起始序列号,ack则为syn+1.或为数据分段的序列号+1,收到的ack号也为下一个要发送的数据号。
断开,客户端在发送fin报文段后,server回复ack+1,断掉client到server的通信,server再发送fin到client,此时client处于time_wait状态,等待2msl时间,若在这断时间内没有再收到fin,则断掉server到clinet的通信。

传输可靠性:ack。两种方法确定tcp数据段丢失:超时和重复ack。
超时重传:发出一个数据段后,会设置定时器,超时未收到ack重传。
快速重传:打断定时器机制。由于滑动窗口,会产生空洞,接收到乱序片段,发送需要的数据的片段 号+1,若连续收到相同的这样的3个ack,发送端还未到超
时时间,则打断定时器,发送缺少的数据段。

滑动窗口:发送端窗口左边为已发送并收到ack的数据,右边为未发送数据。当收到窗口左边的数据ack,窗口右移。但当通告窗口为0时,停止发送,并进行探
测,即发送1字节的数据,超时未收到则等待更长的时间再次发送,直到恢复传输连接。
接收端窗口左边为已收到数据,累计ack,即若窗口数据片段都到达,则发送最后一个数据片段的ack。
拥塞控制:开始是慢启动,基本上是从1开始的指数增长,到达阀值后线性增长,一旦数据包丢失,将阀值设置为二分之一,并回到慢启动阶段。

窗口三种移动方式:合拢、张开、收缩
合拢:收到ack。收到的ack确认号之前的数据都是已经完全发送成功的
张开:窗口右移允许发送更多的数据。当接受方应用程序读取了缓冲区数据,释放TCP接收缓冲区时,会发生这种情况。
收缩:若收到ack在左窗口的左边,则丢弃。当左窗口右移为0时,不能发送数据。

窗口大小是相对于确认号的。
发送方不一定需要发送一个窗口大小的数据。
接收方在发送ack时不必等到窗口被填满。
对于每个TCP连接,维持4个定时器:1、ack重传;2、坚持定时器,保证窗口的流动;3、保活定时器4、2msl定时器
RTT:给定连接的往返时间
重传多义性:分组在rtt时间内没有到达,增减rtt的值,下次到达的ack是上次的还是第二次的,不能更行rtt的值

0 0
原创粉丝点击