博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TCP/IP总结(二):链路层
阅读量:4136 次
发布时间:2019-05-25

本文共 1328 字,大约阅读时间需要 4 分钟。

MTU

以太网和IEEE802.3对数据帧的长度都有限制,其最大值分别是1500和1492字节,这个限制称为MTU:最大传输单元,Maximum Transmission Unit。

如果IP层要传数据报,但是数据报长度大于MTU,那么IP层就要分片(Fragmentation)

路径MTU

网络上进行通信的两个主机,会经过多个网络,每个网络的链路层可能有不同的MTU,最小的那个称为路径MTU。

以太网帧格式

这里写图片描述

以太网头部:14字节。链路层并不识别逻辑地址(IP地址),只识别物理地址(MAC地址)。

IP->MAC 地址解析(ARP)

MAC->IP 反向地址解析(RARP)

以太网三种帧:如上三个,分别是IP协议,ARP协议,RARP协议所规定的三种。

ARP协议的帧

这里写图片描述

对于应用层的一个应用程序A来讲,它如果想要与另一个应用层的另一个程序B通信,它只知道B的IP地址,想要通信,必须知道实际的物理地址(MAC地址),因为IP地址仅仅是逻辑上的地址,所以需要链路层的ARP把IP地址转化为MAC地址。

ICMP协议作用(工作于IP层,即网络层)

但是可能存在IP地址不合理,这样就无法转换,这就需要下面的ICMP协议来解决。将差错信息反馈给源端。

这里写图片描述

ICMP协议是一个网际协议,工作于IP层,即网络层

ICMP是一种反馈给源端差错信息,查询信息,ping程序就是把数据封装成ICMP协议来实现的。属于IP层的协议。上面的一个例子,以及下面的例子:比如IP层不分片,使报文超过MTU,则ICMP会把错误反馈给源端应用程序。

这里写图片描述

下图是ICMP报文中不同的类型,代码,对应的功能描述。

回显应答是一种查询请求,不是差错请求。
这里写图片描述

再回到ARP协议

这里写图片描述

ARP协议原理:假设A要发送数据给B,那么A肯定会填充一个B的IP地址10.0.0.1,但是到A的下层后,A肯定不知道B的MAC地址,这时,A采用广播机制,发送一个数据包,到网络上面的所有主机,那么IP地址为10.0.0.1的主机会响应A的请求,而其他主机会自动忽略。A的请求是封装成ARP地址解析协议的帧格式进行请求,之后B响应,这个叫做回复ARP请求应答,同时B也做一个操作:将A的MAC地址加入ARP缓冲区。这样A就获得B的MAC地址。
一旦获取B的MAC地址,那么B的IP地址和MAC地址对应关系就会存在A的本地ARP高速缓存中,不用再次广播来获得B的MAC地址。
这里写图片描述
获得目的MAC地址之后,就可进行链路层数据成帧。

Ping原理

这里写图片描述

首先是ping+IP地址,或者ping+主机名。注意:如果是ping+主机名的话(会通过DNS服务器把主机名转化为IP地址。怎么转换的呢???)
具体步骤:
这里写图片描述

RARP-反向地址解析协议

一般应用于无盘工作站,无法将IP地址保存在配置文件中。

无盘工作站知道自己的MAC地址,但是不知道自己的IP地址。所以无盘工作站需要向RARP服务器询问自己的IP地址。然后RARP服务器返回无盘工作站的IP地址给无盘工作站。这个过程就叫做RARP。
这里写图片描述

这个就到这,前面都是毛毛雨,下一篇是重点,讲述IP和TCP,包括路由,TCP三次握手,四次分手,以及窗口进行流量控制原理。Excited!

你可能感兴趣的文章
QML DropArea拖拉文件事件
查看>>
CORBA links
查看>>
读后感:>
查看>>
ideas about sharing software
查看>>
different aspects for software
查看>>
To do list
查看>>
Study of Source code
查看>>
如何使用BBC英语学习频道
查看>>
spring事务探索
查看>>
浅谈Spring声明式事务管理ThreadLocal和JDKProxy
查看>>
初识xsd
查看>>
java 设计模式-职责型模式
查看>>
构造型模式
查看>>
svn out of date 无法更新到最新版本
查看>>
java杂记
查看>>
RunTime.getRuntime().exec()
查看>>
Oracle 分组排序函数
查看>>
删除weblogic 域
查看>>
VMware Workstation 14中文破解版下载(附密钥)(笔记)
查看>>
日志框架学习
查看>>