端口号
熟知端口号:0~1023 指派给TCP/IP重要的应用程序
登记端口号:1024~49151 给没有熟知端口号的应用程序使用,要在IANA登记(没卖出去的
客户端使用端口号:49152~65535 又称短暂端口号/临时端口号
应用程序 | FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP |
熟知端口号 | 21 | 23 | 25 | 53 | 69 | 80 | 161 |
套接字
套接字=(主机IP地址,端口号)
TCP:FTP\HTTP\TELNET
UDP:TFTP\DNS\SNMP\RTP
UDP也提供复用、分用
通信子网包括物理层、数据链路层、网络层,而传输层是承上启下的
UDP和TCP各自有自己的端口号,互不干扰,可以在同一台主机上共存
TCP和IP报头的长度 都是20B
长度字段包含了数据长度和报头长度
校验和计算:二进制反码运算求和再取反
若计算结果无差错(结果为0)则设校验和为全1
且校验和字段可选,不要的话就设置校验和为全0
计算校验和时,在UDP首部前面加12B的伪首部,其并非首部,只是在计算校验和的时候,临时加在前面,不向下传,也不向上递交,只是那来算一下。
TCP协议
三次握手
四次断开
慢开始和拥塞避免
慢开始从 1~2~4~8~16成倍增长,当超过阈值时,采用阈值开始而不是直接从超过的那个点开始
过了ssthresh阈值之后开始逐个增长
拥塞后将新的阈值调整为拥塞处大小的一半
然后开始新一轮
— — — — — — — — — — — — — — — — — — — —
cwnd=拥塞窗口
rwnd=接收窗口
twnd=发送窗口,发送窗口=100则说明还可以发100B的东西出去
MSS=一个最长报文段长度
ssthresh=阈值
RTT=往返时间
窗口的大小是字节为单位,如100窗口 则 100B
— — — — — — — — — — — — — — — — — — — —
快重传和快恢复
慢开始从 1~2~4~8~16成倍增长
过了ssthresh阈值之后开始逐个增长
收到3个重复的确认后将新的阈值调整为拥塞处大小的一半
然后直接从新的阈值处开始重传,就免去了新一轮的慢开始的步骤
TCP确认号:下一次想收到的报文段的数据部分的第一个字节的编号
若A收到100,则说明B期望A发100且,B收到了100以前的全部
发送窗口=min{接收窗口,拥塞窗口}
拥塞窗口:由发送端的网络状况决定