数据链路层 + NAT技术

数据链路层:负责设备之间的数据帧的传送和识别。

一、以太网

以太网的帧格式

如何分离报头和有效数据?

报头是固定长度的

如何将数据交给上层协议?

通过类型,如果是0800,则交给IP协议,如果是0806,就交给ARP协议

Mac地址

  • MAC地址用来识别数据链路层中相连的节点
  • 长度为48位,及6个字节。 一般用16进制数字加上冒号的形式来表示(如:08:00:27:03:fb:19)
  • 在网卡出厂时就确定了,不能修改。mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址,可能会冲突,也有些网卡支持用户配置mac地址)

在网络传输时,源IP地址/目的IP地址不变(NAT技术将内网IP替换成公网IP除外),表示横跨多个网络的地址,源Mac地址/目的Mac地址会一直变化,描述的是路径上的每段路途的起点和终点

认识MTU

MTU相当于发快递时对包裹尺寸的限制,这个限制是不同的数据链路对应的物理层产生的限制

  • 以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位
  • 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU
  • 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation)
  • 不同的数据链路层标准的MTU是不同的

所以UDP/TCP发送的数据报文的大小都要在一定的范围内,不然在IP层就会被分片,让数据丢失的概率变大,效率变低。

UDP的报文中的有效数据<=1500-20-8=1472,TCP的报文中的有效数据<=1500-20-20=1460(最大段长度MSS)。TCP在建立连接时就会约定好MSS的大小,取两者的较小值


二、ARP协议

在局域网通信中,我们总是能通过主机的IP地址找到主机的Mac地址,从而将数据发送出去,但是我们如何通过IP地址得到Mac地址呢?--- ARP协议

ARP协议格式

  • 注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。
  • 硬件类型指链路层网络类型,1为以太网
  • 协议类型指要转换的地址类型,0x0800为IP地址
  • 硬件地址长度对于以太网地址为6字节
  • 协议地址长度对于和IP地址为4字节
  • op字段为1表示ARP请求,op字段为2表示ARP应答

这里有三点需要注意:

  • 主机会将收到的ARP结果缓存起来(一段时间后失效) --- 有效减少ARP请求的次数,同时也防止别人的主机换了,我们还在往过期的地址发送数据
  • 一台主机既能收到ARP请求也能收到ARP应答
  • 主机会按照最新的地址信息来跟新缓存

 用arp -a 命令,就能看到主机中缓存的地址

和ARP协议对应的还有一个RARP协议,作用是已知Mac地址要求IP地址,有兴趣可以了解一下


三、DNS协议(域名解析协议)

所谓的域名,就是我们日常输入的网址中写的类似www.baidu.com的字符串,它可以帮助我们记忆网站地址,不需要在使用IP地址。DNS协议的作用在于将域名翻译成IP地址。会有专门的域名解析服务器来帮助我们完成这一动作。

域名使用 . 连接

  • com:一级域名,表示这是一个企业域名,同级的还有 "net"(网络提供商),"org"(非盈利组织) 等
  • baidu:二级域名,公司名(或者组织的名称)
  • www:只是一种习惯用法,之前人们在使用域名时,往往命名成类似于www.xxx.xxx这样的格式,来表示主机支持的协议

四、ICMP协议

ICMP 协议是一个 网络层协议
一个新搭建好的网络, 往往需要先进行一个简单的测试, 来验证网络是否畅通, 但是 IP 协议并不提供可靠传输, 如果丢包了,IP 协议并不能通知传输层是否丢包以及丢包的原因,ICMP正是提供这种功能的协议
ICMP 主要功能包括
  • 确认IP包是否成功到达目标地址
  • 通知在发送过程中IP包被丢弃的原因
  • ICMP也是基于IP协议工作的,但是它并不是传输层的功能,因此把它归结为网络层协议
  • ICMP只能搭配IPv4使用,如果是IPv6的情况下,需要是用ICMPv6

 

ICMP 大概分为两类报文 :一类是通知出错原因,一类是用于诊断查询

以下是ICMP协议的一些主要特点和用途:

  1. 错误报告:当IP数据包在传输过程中出现问题时,如无法到达目的主机、TTL(Time To Live)超时等,目标主机会向源主机发送一个ICMP错误报告。这些错误报告有助于源主机了解数据包为何未能成功传输,从而采取相应的措施。
  2. 网络探测和诊断:ICMP协议提供了一些用于网络探测和诊断的工具,如ping命令。ping命令使用ICMP回显请求和回显应答报文来测试两台主机之间的网络连通性。当源主机发送一个ICMP回显请求报文给目标主机时,如果目标主机可达且工作正常,它会返回一个ICMP回显应答报文给源主机。
  3. 路由跟踪:traceroute(在Windows中为tracert)是一个使用ICMP报文和TTL值来追踪数据包从源主机到目标主机所经过的路由器路径的工具。通过逐步增加TTL值并观察ICMP超时或目标不可达报文,traceroute可以确定数据包在传输过程中经过的每一跳路由器。
  4. 网络管理:ICMP协议还可以用于网络管理,如地址掩码请求和应答(用于动态主机配置协议DHCP)以及路由器发现等。

ping命令

  • 注意,此处 ping 的是域名,而不是url,一个域名可以通过DNS解析成IP地址
  • ping命令不光能验证网络的连通性,同时也会统计响应时间和TTL(IP包中的Time To Live,生存周期)
  • ping命令会先发送一个 ICMP Echo Request给对端,对端接收到之后,会返回一个ICMP Echo Reply
  • ping是基于网络层的ICMP协议的,没有端口号

五、NAT技术

NAT技术,全称为Network Address Translation(网络地址转换),是一种在IP网络中用于解决IPv4地址短缺问题的技术。以下是NAT技术的简单介绍:

定义与背景

  • NAT技术是在1994年提出的,旨在通过将一个外部IP地址和端口映射到更大的内部IP地址集来转换IP地址。
  • NAT允许在本地网络中使用私有IP地址,当连接互联网时则使用全局IP地址。

工作原理

  • NAT使用流量表将流量从一个外部(主机)IP地址和端口号路由到与网络上的终结点关联的正确内部IP地址。
  • NAT的实现方式有三种:静态转换(Static NAT)、动态转换(Dynamic NAT)和端口多路复用(OverLoad或PAT)。

NAT技术的缺点:

1、外网无法直接访问内网中的主机,因为转化表是内部主机访问外网时才会创建映射关系

2、 装换表的生成和销毁都需要额外开销

代理服务器

NAT vs 代理服务器

  • 从应用上讲,NAT设备是网络基础设备之一,解决的是IP不足的问题。代理服务器则是更贴近具体应用,比如通过代理服务器进行翻墙,另外像迅游这样的加速器,也是使用代理服务器
  • 从底层实现上讲,NAT是工作在网络层,直接对IP地址进行替换。代理服务器往往工作在应用层
  • 从使用范围上讲,NAT一般在局域网的出口部署,代理服务器可以在局域网做,也可以在广域网做,也可以跨网
  • 从部署位置上看,NAT一般集成在防火墙,路由器等硬件设备上,代理服务器则是一个软件程序,需要部署在服务器上
代理服务器的应用场景

内网穿透 && 内网打洞

  • 31
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值