wss的网络学习笔记
物联网淑惠试用
TCP/IP模型
四层TCP/IP模型
物理层
传输单位:比特流
物理设备:中继器(信号再生),集线器(HDB)
链路层
传输单位:帧
典型协议:SDLC,HDLC,PPP,STP
功能:链路管理,!差错控制,!流量控制,传输管理,介质访问控制(MAC)
物理设备:网桥,交换机 //工作在MAC子层,隔离碰撞域
网络层
传输单位:数据报
典型协议:IP,ICMP(网际控制报文协议),IGMP(因特网组管理协议,用于组播)ARP,RARP,OSPF,CIDR
DHCP(应用层,UDP),RIP(应用层,UDP),OSPF(网络层,IP),BGP(应用层,TCP)
功能:流量控制,!拥塞控制,差错控制
注意:OSI模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信。而TCP/IP模型认为可靠性是端到端的问题,因此在网络层只支持无连接的通信模式,而在传输层支持面向连接和无连接两种模式。
物理设别:路由器
传输层
传输单位:报文段(TCP),用户数据报(UDP)
典型协议:TCP,UDP
功能:端到端传输,流量控制,差错控制,拥塞控制,服务质量
TCP如何保证可靠性
- 序列号、确认应答、超时重传
数据到达接收方,接收方需要发出一个确认应答,表示已经收到该数据段,并且确认序号会说明了它下一次需要接收的数据序列号。如果发送发迟迟未收到确认应答,那么可能是发送的数据丢失,也可能是确认应答丢失,这时发送方在等待一定时间后会进行重传。这个时间一般是2*RTT(报文段往返时间)+一个偏差值。
- 窗口控制与快速重传(重复确认应答)
TCP会利用窗口控制来提高传输速度,意思是在一个窗口大小内,不用一定要等到应答才能发送下一段数据,窗口大小就是无需等待确认而可以继续发送数据的最大值。如果不使用窗口控制,每一个没收到确认应答的数据都要重发。
使用窗口控制,如果数据段1001-2000丢失,后面数据每次传输,确认应答都会不停地发送序号为1001的应答,表示我要接收1001开始的数据,发送端如果收到3次相同应答,就会立刻进行重发;但还有种情况有可能是数据都收到了,但是有的应答丢失了,这种情况不会进行重发,因为发送端知道,如果是数据段丢失,接收端不会放过它的,会疯狂向它提醒…
- 拥塞控制(慢启动,拥塞避免,快重传,快恢复)
[]
如果把窗口定的很大,发送端连续发送大量的数据,可能会造成网络的拥堵(大家都在用网,你在这狂发,吞吐量就那么大,当然会堵),甚至造成网络的瘫痪。所以TCP在为了防止这种情况而进行了拥塞控制。
慢启动:定义拥塞窗口,一开始将该窗口大小设为1,之后每次收到确认应答(经过一个rtt),将拥塞窗口大小*2。
拥塞避免:设置慢启动阈值,一般开始都设为65536。拥塞避免是指