end to end 和hop to hop
我们可以划出端系统(end system)(两边的主机)和中间系统(Intermediate system)(中间的路由器)。应用层和运输层之间使用的是端到端(end to end)的协议,但是,网络层提供的是却是逐跳(hop to hop)协议,两个端系统和每个中间系统都要使用它。
在TCP/IP协议族中,网络层IP提供的是一种不可靠的服务。也就是说,它只是尽可能快地把分组从源节点送到目标节点,并不能提供任何可靠性的保证。另一方面,TCP在不可靠的IP层上提供一个可靠的运输层。为了提供这种可靠的服务,TCP采用了超时重传,发送,接收端到端的确认分组等机制,运输层和网络层分别负责不同的功能。
MTU是啥?
MTU也被称为链路层的最大传输单元,以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492个字节。如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还要大,那么IP层就需要进行分片,把数据报分为若干片,这样每一片都会小于MTU。
当两台主机通信的时候,如果主机之间需要经过多个网络,那么每个网络之间的链路层就可能有不同的MTU。在通信路径中的最小MTU,被称为路径MTU。
以以太网为例,MTU的范围为: 46~1500 bytes,那么这最小的46 bytes是怎么来的呢?
以太网首部:14 bytes
以太网尾部:4 bytes
46 bytes = IP 首部(20 bytes)+ TCP首部(20 bytes) + 应用数据(1. ???这里为啥是4 bytes 2. 需要注意的是, UDP的首部长度为
8 bytes)
ARP(地址解析协议)
当一台主机把以太网数据帧发送到位于同一局域网上的另外一台主机的时候,是根据48bit的以太网地址来确定目的接口的,设备驱动程序从来不检查IP数据报中的目的IP地址。
ARP为IP地址到对应的硬件地址之间提供动态映射,之所以用动态这个词是因为过程自动完成的,一般应用程序用户或者系统管理员不需要关心:

附件:arp-network.drawio
