数据链路层基本概念及基本问题linux
基本概念算法
三个基本问题windows
首部和尾部的一个重要做用就是进行帧定界(即肯定帧的界限)。此外,首部和尾部还包括许多必要的控制信息。缓存
为了提升帧的传输效率,应当使帧的数据部分长度尽可能大于首部和尾部的长度。最大传输单元MTU(Maximum Transfer Unit):帧数据部分长度上限。网络
MTU:工具
透明传输是指无论所传数据是什么样的比特组合,都应当可以在链路上传送。学习
发送端的数据链路层若是在数据中出现控制字符SOH (start of heading)或EOT,那么会在前面插入一个转义字符ESC(ascii编码是1B),若是数据中出现了转义字符,那么会在转义字符前面插入一个转义字符测试
字节填充或字符填充---接收端的数据链路层在将数据送往网络层以前删除插入的转义字符。大数据
比较经常使用的是循环冗余检测(CRC)网站
经过模2运算来计算。模2运算是一种二进制算法,也包括模2加法,减乘除,与四则运算不一样的是模2运算不考虑进位与借位。
CRC采用模2除法来计算,实际上就是异或(相同为0,不一样为1)。
如图,要传的数据是101001,加上三个0,,除以一个数,这个数是4位,除数的位数是加上0的个数再多一位,余数就做为FCS(添加到数据后面的冗余码)
接收方收到后,将数据和FCS拼起来,这里即101001001,一样对1101作模2除法,若是余数不是0,那么数据就错误,丢掉。
发送方和接收方会提早商议出一个多项式,这个多项式做为CRC的除数。
特色:
1. 这种检测方法并不能肯定究竟哪些比特出现了差错
2. 只有通过严格的挑选,并使用位数足够多的除数P,检测的准确度才会很高。
目的地址和源地址是MAC地址,类型用来指明上层所使用的协议,IPV4( 0x0800 ),ARP:0x0806,IPV6: 0x86DD等
以太网帧最短是64个字节,除数据报的字节外,其他占了18个字节,因此数据报至少46个字节。若是小于46字节,则应在数据字段后面加入整数字节的填充字段,以保证MAC帧大于或等于64字节
MAC地址的是48位二进制,其中前24位是IEEE的注册管理机构RA向厂家分配的地址字段,后24位厂家自行指派。CMD命令查看: ipconfig /all
出现如下状况会丢弃MAC帧
1. 帧的长度不是整数个字节
2. 用收到的帧检验序列FCS查出有差错
3. 数据字段的长度不在46到1500字节之间
4. 受限的MAC帧长度为64到1518字节之间
帧间最小间隔为9.6us,这是为了使刚刚接收的数据帧的接受缓存来得及清理,作好接收下一帧的准备。
两种状况下的数据链路层
使用点对点信道的数据链路层 PPP
使用广播信道的数据链路层 CSMA/CD
以太局域网
扩展以太网
高速以太网
以太网 集线器 网桥 交换机
负责在不一样网络之间 尽力转发数据包,基于数据包的IP地址转发
不负责丢失重传,不负责顺序。
网关通常使用第一个IP地址,
发送端
将IP地址经过广播 目标MAC地址是FF-FF-FF-FF-FF-FF 解析目标IP地址的MAC地址。
交换机决定了下一条给谁,IP才决定了数据的起点和终点,路由器根据IP转发
arp -a 查看arp的mac缓存, 若是是动态的就表示一会不用了就会删除,arp只能解析本网段。
相关软件:
局域网扫描器,能够扫描mac地址。
arp欺骗:告诉发广播的计算机,本身的mac就是对方但愿请求的mac
网络执法官: 控制本网段计算机之间的连通,告诉源目标假的mac地址
P2P终结者:控制本网段计算机访问网络的流量和网站,利用arp欺骗,告诉源目标地址网关是本身。
添加静态mac命令: arp -a ip mac
在本地链接点修复,能够清除arp静态缓存
网际控制报文协议,用来测试网络层是否畅通,检测故障,如ping,pathping,tracert
ping命令
ttl: 生存周期,过一个路由器减小1,到0就不转发了,防止出现数据包循环
不一样的操做系统ttl的初始值也不一样,能够以此来猜想对方是什么系统
linux: 64
windows:128
unix:255
经常使用参数:
ping ip -t 一直ping
ping ip -l 200 指定数据包大小
ping ip -i 1 指定ttl长度
更改数据包ttl时间,跟踪数据包途径的路由器
pathping 跟踪数据包路径,计算丢包的状况
请求超时和目标主机不可到达
去的时候没接受,出现目标主机不可到达
去的时候能接收,回来的时候找不到目标地址,会出现超时
tracert ip ,traceroute ip 在路由器上跟踪数据包路径的命令
tracert和traceroute虽然都是路由跟踪,可是二者探测方法及探测的数据类型不一样。默认状况下,traceroute是向目的地址的某个端口(大于30000)发送UDP数据报,tracert是向目的地址发出ICMP请求回显数据包。
共同点:都是经过设置发送包的TTL的值从1开始、逐次增1的方法来探测。
点到点
广播:只能在同一网段
组播:也叫多播
IP数据包
一个IP数据包由首部和数据两部分组成
- 首部的前一部分是固定长度,共20字节,是全部IP数据报必须有的
- 在首部的固定部分的后面是一些可选字段,其长度是可变的(大多数是没有的 )
一行四个字节,固定部分五行,20个字节。
版本: 标识TCP/IP协议版本, IPV4, IPV6 ,4就是v4,6就是v6
首部长度:加上可变部分
区分服务:给数据包加标记,默认是0x00
总长度:用来表示整个数据包的长度最大是2的16次方减一,65536字节
网络层 数据包 65535字节
数据链路层 数据最大1500字节 最大传输单元MTU,因此须要分片
数据包若是不分段,去掉首部,则最大只能为1480个字节
数据包分片:将大数据包分红多个小数据包,每一个都写上ip地址,单独选择路径,接收端将多个数据包合并成一个而后给网络层
泪滴攻击:向目标计算机发送重叠或过大的数据包
标识:给每一个分片的数据包标号,标识一个完整的数据包,同一个号同一个包
标志:标记数据包是分片的仍是完整的,占三位,目前只有前两位有意义,最低位是MF(More Fragment),为1表示后面还有分片,为0表示是最后一个分片,中间一位是DF(Don‘t Fragment),当DF=0时才容许分片,通常的数据包不分片
片偏移:每一个数据包的偏移量记录了分片第一个字节占整个数据包的第多少个字节
偏移单位是8的缘由:RFC的规定,IP的规定
它总长度(16bit)”和“偏移(13bit)”两个字段所决定的,总长度定义了IP包的最大长度为2^16=64KB,偏移说明了IP分片时它最多能表示2^13个偏移单位,这样偏移单位就是2^16/2^13=2^3,即为8B了,若是偏移单位不是8B,如选4B,则13bit的"偏移"就不能表示出IP的最大长度了
生存时间:TTL,应对环路
协议: 指出应将数据部分交给哪个进程,好比TCP交给运输层,ICMP交给网络层
协议号:
ICMP 1
IGMP 2
TCP 6
UDP 17
IPV6 41
OSPF 89
首部检验和:只检验首部
IPV6已取消可变部分
静态路由:管理员告诉路由器全部没有直连的网络下一条给谁
缺点:适用于小规模网络,不可以自动调整路由
动态路由:路由器本身学习路由表,RIP,OSPF协议
RIP: 周期性广播路由表,跳数,30秒更新一下路由信息,最大跳数 15跳
wireshark抓包,查看有没有广播多播一直占用网络
frame整个帧ethernet 以太网帧 数据链路层internet 网络层transmission 传输层smb里面的数据