WireShark学习笔记(一)
1、从WireShark分析网络层协议的传输
下面是网络接口层协议,从图中可以看到两个相邻设备的MAC地址,因此该网络包才能以接力的方式传送到目的地址。
下面是网络层,在这个包中,主要的任务是把TCP层传先来的数据加上目的地址和原地址,有了目标地址,数据才可能送到接受方,有了原地址,接收方才知道发送者是谁。
传输层协议:这层使用TCP协议,应用产生的数据油TCP来控制传输,用于网络数据包的排序,重传 流量控制。只是对传输行为进行控制,
应用层: 数据包传输的内容
下面是具体抓取某登录网站的一个数据包,登录的时候需要提交数据包 使用POST提交 所有我们过滤数据包,出现三个提交post 数据包,由于使用的是HTTP协议,数据包没有加密,直接可以看到提交的账户信息
如果我们使用BurpSuite抓包的话直接可以修改数据包。 在发送
Ack:确认号,如图5中的Ack=6577,接收方向发送方确认已经收到了哪些字节。
比如甲发送了“Seq: x Len: y”的数据段给乙,那乙回复的确认号就是x+y,这意味着它收到了x+y之前的所有字节。同样以图5为例,52号包的Seq=5129, Len=1448,所以来自接收方的53号包的Ack=5129+1448=6577,表示收到了6577之前的所有字节。理论上,接收方回复的Ack号恰好就等于发送方的下一个Seq号,所以我们可以看到54号包的Seq也等于5129+1448=6577。并且说TCP的确认是可以累积的,在一个TCP连接中,因为双方都可以是接收方,所以它们各自维护自己的Ack号。
当丢包的时候,接收方通过seq+Len 的值与下一个seq的值,能够判断哪些包丢失。
比方下面的数据包排序之后,第一个包的sql+len=201 ,意味着下一个包的seq 是201 实际上没哟收到这个包。
SYN包: 携带这个标志的包表示正在发送链接请求, 因为链接是双向的,所以建立连接的时候双方都要发送一个SYN
FIN包: 携带这本标志的包表示正在请求终止链接,因为是双向的,所以彻底关闭一个链接时,双方都要发送一个FIN
RST包: 用于重置一个混乱的链接,或者拒绝一个无效的请求。