计算机网络中的网络层、链路层与知名协议讲解


网络层

进行地址管理与路由选择。

通过对地址的管理,能够保证数据从一台主机发送到另一台主机,并且要选择合适的路径进行传输。

  • 主机:两端PC设备
  • 路由器:实现中间数据转发的设备
  • 设备节点:网络中的每个设备都是一个节点

IP地址在一个网络中不可随意分配。
IP地址 = 网路号 + 主机号

网段划分:
早期的网段划分中将整个网络中的IP地址划分成了5类:

  • A类:0~127
  • B类:128~191
  • C类:192~223
  • D类:224~239
  • E类:240~247
    因为早期的网段划分方式太过于粗糙,浪费较多,因此被淘汰掉了。
    引入的新方案:CIDR子网掩码

子网掩码由一段连续的二进制1组成。
功能:子网掩码与IP地址进行操作(IP & mack),得到网络号。
子网掩码取反,可以得到最大的主机号range = ~mask

在一个网络中并不是所有的主机号都可以分配给主机:

  • 主机号全为0:网络号(标识网络)。
  • 主机号全为1:广播地址(UDP
  • [特殊的IP地址]127.0.0.1:本地的回环网卡地址(虚拟网卡)
    用于本地网络测试
  • 公网与私网的IP地址划分:RFC 1918规定了用于组建私网的网段,三种为:
    10.*.*.*172.16.*.*~172.31.*.*192.168.*.*

链路层

负责相邻设备之间的数据帧传输:以太网协议eth)。

MAC地址:网卡上的物理地址,定位相邻的两个设备。
类型:uint8_t mac[6],共48位。

eth字段信息:源MAC地址,目的MAC地址,上层协议类型,数据,帧尾CRC

传输数据都要传输到相邻设备,如何获取相邻设备的MAC地址?arp协议。
ARP协议:通过IP地址获取MAC地址,是介于网络层与链路层之间的协议。

局域网的arp欺骗攻击?

arp协议获取到对端的mac地址后,会在本机将ip地址与mac地址的映射关系缓存很短的一段时间。

MTU:最大传输单元。限制了网卡在传输数据的时候,数据的最大长度。

如果mtu为1500,数据最大长度如何计算?

  • udp: mtu - ip - udp = 1500 - 20 - 8 = 1472
  • tcp:mtu - ip - tcp = 1500 - 20 - 20 = 1460
    这两个数字就是MSS,最大数据报文段大小。

mtu的影响:

  • tcp的影响:
    tcp在传输层进行数据传输时(在三次握手时)双方会协商MSS大小,在传输层自动进行数据分段,而这个MSS也取决于mtu大小。通信双方会选择较小的一方作为mss最大传输大小。
    因此tcp传输在网络层不会进行数据分片。
  • udp的影响:
    udp在传输数据的时候数据不大于64k - IPhdrlen - UDPhdrlen都可以传输(小于64k),但若数据的大小大于mtu大小则会在网络层进行数据分片。
    udp数据若被分片,则任意一个分片丢失或出错,就会造成分片重组失败,导致整个udp数据报被丢失。
    分片越多,危险越大。因此udp数据最好在应用层就将数据报大小分配合适。

知名协议/技术

DNS协议

DNS:域名系统(domain name system
作用:域名解析,通过解析域名获取到服务器IP地址。
域名:服务器地址的一种表示方法。

域名解析服务器
域名解析服务器采用分布式存储,根域名服务器:全世界有 13 组。
分布式存储的好处:

  1. 提高解析速度 / 分摊压力
  2. 提高容灾能力

常见顶级域名服务器:

  • .com(company)
  • .org(organization)
  • .gov(goverment)
  • .cn
  • .jp
  • .us

常见二级域名服务器:

  • qq.com
  • baidu.com

常见三级域名服务器:

  • zhidao.baidu.com
  • image.baidu.com

DNS域名解析流程

  1. 检测本机的hosts文件
    若本机没有与本地DNS的对应关系,则进行下一步。
  2. 检测本地DNS解析器的缓存信息
  3. 向本地DNS服务器发起请求
  4. 向根域名服务器发送请求递归查找(顶级域名服务器->二级域名服务器-> …)
  5. 如果没有找到就失败返回。

浏览器中输入url回车之后发生了什么?

  1. DNS解析
  2. 组织http请求信息
  3. 建立TCP客户端发送http请求(因为http是基于传输层tcp协议的协议)
  4. 网络层IP协议
  5. 链路层的eth协议封帧头与帧尾。

ICMP协议

网络层协议:控制报文协议(Internet Control Message Protocol

功能:进行网络探测。

ping工具就是ICMP协议实现的,不使用端口
ICMP是网络层协议,而ping是传输层协议。


NAT技术

地址转换技术(Network Address Translation)。
NAT是一个服务,本质是一个程序,通常部署在网关之内。

在网络层将替换数据中的源IP地址成为自己的IP地址。
让数据在复杂的网络中进行传输时,怎么去怎么回来。要在本地建立NAPT的映射关系(NAT转换表),保证收到的回复数据,能够确认应该发送给内网的哪个主机。

代理服务器,即VPN

NAT与代理服务器的区别:

  • NAT工作在网络层,进行地址转换,通常部署在网关设备上。
  • 代理服务器是一个应用,可以部署在任何主机上。
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

giturtle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值