数据链路层
- 以太网帧格式
类型有三种:IP、ARP、RARP
-
MAC地址
- MAC地址用来识别数据链路层中连接的节点
- 长度为48位,用16进制数中间间隔
:
来表示 - MAC地址在网卡出厂就确定,是唯一的。虚拟机中不一定
-
MTU
-
MTU最大传输单元,是对发送数据长度的规定,最大值1500,不同的网络类型有不同的MTU
-
如果一个数据包从以太网路由到拨号链路上,数据包大于拨号链路的MTU,则需要对数据进行分片
-
不同的数据链路层标准的MTU是不同的
-
-
MTU对IP协议影响
由于数据链路层MTU的限制,对于较大的IP数据要进行分包
- 将较大的包分为多个小包,并打上标签
- 每个小包IP协议头的16位标识都是相同的
- 每个小包的IP协议头的3位标志字段中,第二位为0,表示允许分片,第三位来表示结束标志,是为1
- 到达对端会将其按序重组,拼装后返回给传输层
- 任意分包消失,接收端的重组就会失败,但是IP层不会负责重新传输数据
路由器分片后,每个小包都有一个IP头部,传输层头部只会有一个
-
MTU对UDP协议影响
- 一旦UDP携带的数据超过1472(1500 - IP头20 - UDP头20),那么就会在网络层分成多个IP数据报
- 由于UDP协议的不可靠,一旦IP数据报任意一个丢失,就会重组时失败,传输数据也就丢失了
-
MTU对于TCP协议的影响
- TCP数据报受制于MTU,TCP的单个数据报的最大分段大小,称为MSS(MAX segment size)
- TCP在建立连接过程中,通信双方会进行MSS协商
- 最理想的情况下,MSS的值正好是在IP不会被分片处理的最大长度,受制于MTU
- 双方在发送SYN的时候会在TCP头部写入自己支持的MSS值
- 然后双方得知对方的MSS值后,选择较小的作为最终MSS
- MSS的值在TCP首部选择(40字节)
-
ARP协议
ARP不是一个单纯的数据链路层协议,而是一个介于数据链路层和网络层之间的协议
ARP协议建立了主机IP地址和MAC地址的映射关系
- 在网络通讯时,源主机的应用程序直到目的主机的IP地址和端口,但不知道目的主机的硬件地址
- 数据包首先是被网卡接收到再去处理上层协议,如果接收到的数据包的硬件地址与本机不符,则直接丢弃
- 因此在通讯前必须获得目的主机的硬件地址
- 每隔主机都维护一个ARP缓存表,可以用arp-a命令查看。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有在此使用此表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址
-
NAT技术
NAT技术是解决IP地址不够用的主要手段,是路由器的重要功能
- NAT能够将私有IP对外通信时转为全局IP
- 每个终端设置私有IP,路由器或服务器设置全局IP
- 全局IP为公网IP是唯一的,私有IP不需要
-
代理
- 正向代理
应用:VPN、爬虫
-
反向代理
应用:VPN、爬虫