TCP/IP协议族,四层网络协议,上层协议使用下层协议提供的服务。
数据链路层:网络驱动程序
IP地址和MAC地址转换:ARP、RARP
网络层:数据包的选路和转发
传输层:
TCP:提供可靠的、面向连接的、基于流的服务
UDP:提供不可靠的、无连接的、基于数据报的服务
SCTP(流控制传输协议)
应用层:处理应用程序逻辑,用户空间实现,其它层在内核空间实现。
应用层->数据链路层:封装(encapsulation)
数据链路层->应用层:分用(demultiplexing)
ARP协议:
实现任意网络层地址到任意物理地址的转换。
基本原理:主机向自己所在的网络广播一个ARP请求,该请求包含目标机器的网络地址。此网络上的其他机器都将收到这个请求,但只有被请求的目标机器会回应一个ARP应答,其中包含自己的物理地址。
DNS协议:
递归查询:如果目标DNS服务器无法解析某个主机名,则它将向其它DNS服务器继续执行查询,如此递归至到查询到结果并返回。
迭代查询:如果目标DNS服务器无法解析某个主机名,则它将自身存储的其它DNS服务器的IP返回给客户端供参考。
IP协议详解:
IP层传递给数据链路层的数据可能是一个完整的IP数据报,也可能是一个IP分片,它们统称为IP分组。
IP路由:
路由机制:1、完全匹配IP 2、匹配网络ID 3、默认路由
IP数据报转发
TCP拥塞控制:
SWND(Send Window,发送窗口),发送端向网络一次连续写入的数据量。数据量以TCP报文段数量来衡量。
RWND(Receive Window,接收窗口)
CWND(拥塞窗口),联合RWND来控制SWND的大小。取两者的较小值。CWND的初始值为2-4倍SMSS(TCP报文段数据部分最大长度)。
慢启动:CWND += min(SMSS,N),N表示此次确认中之前未被确认的字节数。发送端每收到一次确认,CWND值按此公式递增。
拥塞避免:CWND达到阈值后进入此阶段。CWND += SMSS * SMSS / CWND
快速重传
快速恢复
收到3个重复的确认报文段时,立即重传丢失的报文段,并按新算法设置CWND。CWND = ssthresh + 3*SMSS
每收到一个重复的确认时,设置 CWND = CWND + SMSS
收到新数据确认时,设置 CWND=ssthresh。进入拥塞避免阶段。
发送端如何判断拥塞?
1、传输超时
2、接收到重复的确认报文