TCP/IP四层中常见协议Ⅳ—链路层

2019-12-06 0 条评论 122 次阅读 0 人点赞

链路层

负责相邻设备之间的数据帧传输;以太网协议 Ethernet

Ethernet协议实现:源mac地址/目的mac地址/上层协议类型/数据/帧尾(包含校验和)

如何获取相邻设备的mac地址——arp协议

arp协议:通过设备的IP地址获取其mac地址

介于网络层和链路层之间的协议——通过IP地址获取MAC地址,通过发送一个arp请求包,要求指定ip地址的设备将自己的mac地址做一个应答响应回来,并对IP地址和mac地址的关系进行映射缓存(缓存时间很短,通常30min)

arp局域网欺骗攻击,如何解决?

MTU

最大传输单元;限制链路层数据帧中所能传输的最大数据大小

MTU对TCP协议的影响

TCP在传输层进行数据传输的时候会进行自动数据分段,分段大小称为MSS(最大数据段大小)通信双方在进行三次握手时计算自身MSS = MTU - IP - TPC并传递给对方,双方取二者中较小的MSS作为最大数据传输大小。

由于TCP在传输层会自动进行数据分段,故不会在网络层进行数据分片

MTU对UDP协议的影响

分片越多越危险;用户在应用层进行udp数据分包时应注意一下MSS的计算,因为udp不会协商MSS,只要数据大小小于64k-28就可以发送,但是在网络层封装IP头部之后若数据大小超过了MTU的大小就会进行数据分片,而数据一旦分片,就需要对端进行分片重组,重组过程当中一个分片出问题,整个udp报文都会被丢弃,申请重传影响效率

其他典型协议及技术

DNS/ICMP/NAT

DNS

DNS域名系统domain name system

域名:一串由点分隔的名字所组成的互联网上的一个主机/机组名称

作用:便于记忆查找服务器;通过域网访问一个服务器时,首先需要将容易记忆的域名转换成服务器的IP地址

域名的发展背景

  • 分布式存储
  • 根域名分布在世界各地:分摊访问压力,进行容灾处理
  • 全世界只有13台根域名服务器

域名服务器层级划分

根域名服务器 > 顶级域名服务器 > 二级域名域名服务器 > 三级域名服务器

顶级域名:.com/.org/.gov/.edu/.cn/.jp/.us

二级域名:.baidu.com/.qq.com

三级域名:.baike.baidu.com

域名解析流程

  1. 查看浏览器缓存
  2. 本机host文件
  3. 本地域名服务器
  4. 顶级域名服务器
  • 递归与迭代的过程
  • 通过域名访问服务器最终转换为通过服务器地址访问服务器
  • 域名解析:将域名进行解析转换得到服务器IP地址

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

  1. 域名解析——域名解析流程得到服务器IP地址
  2. 根据url组织http协议格式的http请求(http协议格式)
  3. 基于socket流程搭建tcp客户端(tcp协议协议格式特性)
  4. 经过各层封装,路由选择发送到服务器
  5. 服务器根据http协议格式解析请求,业务处理,组织响应数据,发送给客户端
  6. 客户端解析、展示

ICMP

网络层协议,用于进行网络探测

ssh:22端口,telnet:23端口,ping:使用ICMP协议实现,根本没有使用端口

NAT技术

  • NAT:网络地址转换服务,实现多个主机使用同一个公网IP上网

    发送的数据在局域网中的每一个路由器转发时,都需要将源地址转换为路由器本身的地址信息;怎么去怎么回

  • NAPT:在NAT基础上建立映射表

    发送地址与转换后的地址映射,通过这个映射表可以知道收到哪个回复应该发送给哪个局域网的主机

代理服务

翻墙

代理服务与NAT服务的区别?

  • NAT服务:工作在网络层,通常部署在网关设备上,对流经的数据进行地址转换,实现数据转发
  • 代理服务:应用程序,工作在应用层,可以部署在任意设备上,要求源端先将数据发给自己,再请求发送给目标服务器

L_KingMing

这个人太懒什么东西都没留下

文章评论(0)