[计网/谢/210-226]
面向连接,可靠,只能两个端点,全双工,面向直接流。
socket也叫套接字(IP地址:端口号)
socket有不同的含义,此处是套接字含义。
把上层的数据看做字节流,TCP有发送和接收缓存。
发送和接收端用的数据块大小(随网络状况变化)不一定相同,但是总的数据量一样。
不可靠
无差错;来得及接收(解决方法:停等协议…)
数据链路层协议(帮助理解传输层协议)
发送两个连续分组之间要等接收端发来的确认
信道利用率低
解决方法:滑动窗口协议,连续ARQ协议
接收端对按序到达的最后一个报文发送确认
因为是对按序到达的最后一个报文A发送确认,所以就算A之后的无序报文到达,发端还是会重传。
序号:字节按顺序编号
序号字段:本报文段所发送数据的第一个字节的序号
A和B之间通信。
A:序号第500,数据长200
B:确认号:(500+200+1)701(正确接收数据,然后期望收到701开始的数据)
头部+数据
偏移就是数据起点和头部起点的距离
谁发的数据报,窗口值就是谁的。
以告诉对方自己还有多少剩余容量。
是
MMS是TCP报文段中数据最大长度,不包括头部。
设置方式:是通信双方交互确认一个不分片的容量大小。
1.记录来回一趟的RTT
2.区分两个相同序号的报文的先后次序(+karn算法)
不是,缓存包括窗口
不是,每接收一个最大报文段,就要发送一次确认
往返时间为RTT;
RTTs:为多次RTT的加权平均数;
偏差s:为新RTT与旧RTT的偏差的加权平均;
超时的时间设置=RTTs+偏差s;
karn算法:出现重传把定时器时长翻倍
选择确认SACK,会把零散的数据块的边界告诉发端,但是最多告诉4个数据块(报文段头部的长度有限制)