MAC、IP、TCP比较

一、MAC地址(数据链路层协议,单位:帧,有48比特):识别以太网上的某个单独设备或一组设备。

由48位组成,每8位一组分为6组,在二进制转化十六进制时我们习惯性的4位一组进行计算,所以一组8位正好可以换成两个用十六进制表示的数字。所以我们一般使用十六进制表示MAC地址,简单,明了。xx-xx-xx-xx-xx-xx。如下图以MAC地址为AC-DE-48-00-00-80为例说明其格式,是两种发送方式。
在这里插入图片描述
I/G:如果I/G=0,则是某台设备的MAC地址,即单播地址;如果I/G=1,则是多播地址(组播+广播=多播)。
G/L:如果G/L=0,则是全局管理地址,由IEEE分配;如果G/L=1,则是本地管理地址,是网络管理员为了加强自己对网络管理而指定的地址。
OUI(供应商标识):由IEEE(电气和电子工程师协会)分配给厂商,它包含24位。厂商再用剩下的24位。
EUI(扩展唯一标识符):为其生产的每个网卡分配一个全球唯一的全局管理地址。
一般来说大厂商都会购买多个OUI。
下面是以以太网MAC地址的帧格式(目的地址到CRC校验之间)为例说明:
在这里插入图片描述
前导码(7字节):使接收器建立比特同步
起始定界符SFD(1字节):指示一帧的开始
目的地址DA(6字节):指出要接收该帧的工作站
源地址SA(6字节):指示发送该帧的工作站地址。
数据字段长度(2字节):指示其后的逻辑链路控制(LLC)数据字节的长度,从网络层下来的IP数据包便是由LLC携带。
逻辑链路控制帧LLC:携带的用户数据
填充字段PAD:以保证帧有足够长度来适应碰撞检测的需要
帧校验序列FCS(4字节):采用循环冗余校验码(CRC)用于检验帧在传输过程中有无差错

二、IP包格式(网络层协议,单位:包,有20字节=160比特)

在这里插入图片描述

注:

1、版本:标明数据是IPv4还是IPv6的。
2、首部长度:这个IP包头多少字节,一般是20字节。
3、优先级与服务类型:PPP、D、T、R、C、U(优先度、延迟、吞吐量、可靠性、最小费用、保留位 )
在这里插入图片描述
4、总长度:首部+数据部分的长度,最长为65535字节,若包太长,超过了最大传输单元则需要分片。
5、标识符:让目标主机确定一个新的数据段属于哪个数据包。
6、标志:有DF和MF
在这里插入图片描述
7、段偏移量:有点像序号,表示目前这个IP分段在原始IP包中所在位置。
8、TTL:限制分组生存的计数器,若TTL=0则不再传输,数据在此处被丢弃,没传输一个网段TTL值就-1,最大值为255,最小为0,一般是64.
9、协议号:
在这里插入图片描述
10、可选项:IP首部长度必须是4的整数倍,如果选项长度不是4的整数倍,则需填充数据。

三、TCP报文段格式(传输层协议,单位:报文段,有20字节)

在这里插入图片描述
1、序号:TCP协议是基于流发送数据的,所有使用序号给发送的所有数据字节都编上号,并按照序号进行顺序发送。
2、确认号:TCP的通信是全双工的(两端同时发送和接受),当连接建立成功后,每一方都能同时发送和接收数据。每一个方向的序号代表这个报文段携带的第一个字节数据的编号。每一方还需要使用确认号对它已经收到的字节进行确认。即:本端把收到的最后一个字节的编号加一,这个值就是确认号,然后发送给对端。
3、标志位:
URG表示紧急指针字段有意义,
ACK表示确认序列号字段有意义;TCP规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1.
PSH表示Push功能,推送数据。
RST表示复位TCP连接
SYN表示SYN报文,在建立TCP连接的时候使用,用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此, SYN置1就表示这是一个连接请求或连接接受报文。
FIN表示没有数据需要发送了,终止连接。在关闭TCP连接的时候使用,用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。
4、窗口大小:表示接收缓冲区的空闲空间,16位,用来告诉TCP连接对端自己能够接收的最大数据长度。
5、校验和:每一个报文段都包括有校验和字段,若报文有损伤,则由终点TCP将其丢弃,并被认为是丢失。TCP的校验和是强制的。
6、紧急指针:只有URG标志位被设值时该字段才有意义,表示紧急数据相对序号的偏移。用URG值+序号得到最后一个紧急字节。

猜你喜欢

转载自blog.csdn.net/zhang_yazhou/article/details/105834433