计算机网络
ARP
网络层和数据链路层的桥梁。
通过IP地址找到MAC地址,只适用于IPv4,不能用于IPv6(可以用ICMPv6替代ARP发送邻居探索消息,融合了IPv4中的ARP,ICMP重定向和ICMP路由选择,甚至还能自动设置IP地址:和DHCPv6结合)。ARP是通过ARP请求和ARP响应两种类型的包来确定MAC地址的。
IPv6中ICMP的作用被放大,如果没有ICMPv6,IPv6无法正常通信。
如上图所示主机A为了获得主机B的MAC地址,要通过广播发送一个ARP请求包,这个包包含了想要了解其MAC地址的主机的IP地址。如果ARP请求包中的目标IP和自己的IP地址一致,那么这个节点就将自己的MAC地址塞入到ARP响应包中返回给主机A。
ARP请求包还有一个作用:将自己的MAC地址告诉对方
TCP
中间节点并不承诺提供可靠的连接通道,物资完全可能失序、重复、甚至丢失。所谓可靠完全由两个端点来实现。
TCP要求无论处在何种网络环境下都要提供高性能通信,并且无论网络拥堵情况如何变化,都必须保持这个特性。因此它每次发包都会计算往返时间及其偏差(RTT:Round Trip Time)。数据被重发之后如果还是收不到确认应该,则会再次进行发送,此时确认应答的时间将会以2倍,4倍的指数函数延长。此外,数据也不会被无限、反复重发。达到一定重发次数之后,如果还是没有任何确认应答返回,就会判断为该网络或者对端主机发生异常,强制关闭连接,并且通知应用通信通信异常强行终止。
滑动窗口
窗口大小是指无需等待确认应答而可以继续发送数据的最大值,这个机制大量使用了缓冲区。可以对多个段同时进行确认应答。
如下图所示,当某一段报文丢失的时候,发送端会一直收到序号为1001的确认应答,这个确认应答好像在提醒发送端“我想接收的是从1001开始的数据”。因此,在窗口比较大,又出现报文段丢失的情况下,同一个序号的确认应答将会被重复不断返回。而发送端主机如果连续3次收到同一个确认应答就会对其所对应的数据进行重发。这种机制比超时管理更加高效,因此也被称为高速重发机制。
拥塞控制
一般来说,计算机网络处于一个共享的环境,因此有可能会因为其他主机之间的通信使得网络拥堵。在网络出现拥堵时,如果突然发送一个较大量的数据,极有可能会导致整个网络的瘫痪。为了防止该问题的出现,在通信开始的时候就会通过一个叫做慢启动的算法得出的数据,对发送数据量进行控制。


