目录
MAC&IP&TCP
一、说明应用层数据是如何被封装传输的?
1.数据发送处理过程数据封装协议数据单元
数据包分析
(1)应用层将数据交给传输层,传输层添加上TCP的控制信息(称为TCP头部),这个数据单元称为段(Segment),加入控制信息的过程称为封装。然后,将段交给网络层。
(2)网络层接收到段,再添加上IP头部,这个数据单元称为包(Packet)。然后,将包交给数据链路层。
(3)数据链路层接收到包,再添加上MAC头部和尾部,这个数据单元称为帧(Frame)。然后,将帧交给物理层。
(4)物理层将接收到的数据转化为比特流,然后在网线中传送。
2.数据接收处理过程数据封装协议数据单元
(1)物理层接收到比特流,经过处理后将数据交给数据链路层。
(2)数据链路层将接收到的数据转化为数据帧,再除去MAC头部和尾部,这个除去控制信息的过程称为解封装,然后将包交给网络层。
(3)网络层接收到包,再除去IP头部,然后将段交给传输层。
(4)传输层接收到段,再除去TCP头部,然后将数据交给应用层。
二、根据截获的数据包说明MAC,IP和TCP协议头信息各字段的含义
1、我用WireShark抓的一个包
2、分析这个数据包
[1] MAC头部
目的地址:40 a3 cc c0 e7 66
源地址:54 75 95 15 b3 d6
类型:08 00 表示上层使用的是ip数据包
MAC尾部:MAC帧的帧尾也只有一个字段,为4字节长,包含的信息是帧校验序列FCS(使用CRC校验)。
[2] IP头部
(1)说明:ip数据包首部最大40字节,最小20字节,一个字节8比特,比如45就是一个字节。
(2)解析该数据包
版本:4,ipv4
首部长度:5,单位为4字节,因此首部长度为20字节
服务类型:04
总长度:00 28,单位为字节,因此该ip数据包的总长度为28字节
标识:f1 00
标志和片偏移 04 00
- 标志:占3位 010 (中间的一位记为DF,Don’t Fragment;最后一个位为MF,More Fragment)
- 片偏移:占13位 13个0
生存时间(TTL):37
协议:06 表示上层使用的是TCP数据段
1:ICMP 4:IP 6:TCP 17:UDP 21:ftp 22:ssh 23:telnet 80:http 88:eigrp 89:ospf
首部检验和:9e 73
源地址:df 6f 12 d8
目的地址:c0 a8 01 68
[3] TCP头部
源端口号:00 50
目的端口号:cb 70
序号:a6 62 ce 4a
确认号:c7 9e 0d f7
头部长度 保 留 保留 保留标志位:50 10
-
头部长度:5(单位为4字节) 因此长度为20字节
-
保留:(6bits)000000
-
标志位:010000
-
URG: 表示紧急指针是否有效
-
ACK: 表示确认号是否有效(携带ACK标志的TCP报文段称为确认报文段)
-
PSH: 提示接收端应用程序要立即从TCP接收缓冲区读走数据,以腾出空间接收后续的数据。(若应用程序
不读走数据,数据会一直留在TCP模块的接收缓冲区)
-
RST: 表示要求对方重新建立连接(携带RST标志的TCP报文段为复位报文段)
-
SYN: 表示请求建立一个连接(携带SYN标志的TCP报文段称为同步报文段)
-
FIN: 表示通知对方要关闭连接(携带FIN标志的TCP报文段为结束报文段)
-
窗口大小:09 e5(TCP流量控制的一个手段)
校验和:db 93(作为TCP可靠传输的重要保障,这个校验不仅包括TCP头部,也包括数据部分)
紧急指针:00 00