OSI模型对应的TCP/IP协议栈
注:osi模型是个理论框架,而TCP/IP协议栈是一个事实标准,所以我主要学的是TCP/IP协议栈
1)应用层:
作用:为用户体统软件接口
软件:
即时通信软件 =》 微信、QQ
购物软件 = 》 天猫、京东
音影类:pps、爱奇艺
协议:http、http、OICQ(扣扣的底层协议)
2)传输层:
作用:用于数据的可靠传输
协议:tcp、udp
3)网路层;
作用:
提供ip地址和三成通信功能(路由器)
协议:IP协议
4)链路接入层:
作用:提供mac地址和两层通信功能(交换机)
协议:Ethernet
wireshark抓包分析
1、Ethernet协议
Ethernet以太网协议,用于实现链路层的数据传输和mac地址的封装,上面打码的部分是我电脑的mac地址。
Destination:目的字段,标记目的字段的mac地址
Source:源自段,标记发出端的mac地址
type:类型值,标志上层协议
注:mac地址
1)所有设备的mac地址都是全球唯一的,window系统可以利用命令ipconfig /all查看自己电脑的mac地址
2)mac地址是16进制表示,长度为48bit
3)mac地址的前24bit被称之为oui代码,是厂商的唯一标志符,是一个厂商的标记,后24bit由厂商自己分配
2、ip协议
ip协议(Internet protocol,互联网协议),通过ip地址,保证联网设备的唯一性,实现面向无连接的通信和不可靠的传输功能
version:标识ip地址的版本,目前v4版地址已近枯竭,v6慢慢成为主流
header length:头部长度,默认20字节,最长60字节
differentiated servieces field:服务区分符,用于为不同的ip数据定义不通的服务质量
total length:总长度,标识ip头部加上层数据的数据包大小,ip总长度为65535个bit
identification:用来实现ip部分的重组,标识分片属于哪个进程,不同的部分通过不同的id区分
flags:用来确认是否有ip分片或是能否分片
fragement offset:用来识别ip分片的位置,实现分片重组
time to live : 生存时间,标识数据包还能生存多久,每次经过路由器的处理,TTL减一
protocol:协议号,标识上次应用协议
header checksum:用于检验ip数据包是否完整或被修改,若检验失败则丢弃数据包
数据包封装的过程
1)数据封装是一个为数据包加入寻址信息的过程
2)端口号用于标志不同的应用程序,面向最终用户
3)ip地址用汉语标志唯一通信设备,面向路由器
4)mac地址用于唯一标志局域网路设备,面向交换机
注:数据解包的过程正好和封装包的过程相反,从网络接入层开始
例如下面数据的传送过程:
TCP三次握协议在wireshark中的抓包过程
在wireshark中的tcp三次握手对应的包:
第一次握手:
客户端发送一个TCP包,标志位位SYN,序号为0,代表客户端求连接。
第二次握手:
服务端发送回确认包,标志位为ACK,ACK,将去确认包Ackenowlegenment Number置为seq+1。
第三次握手:
客户端再次发送确认包ACK,SYN 标志位为0,ACK标志位为1,并且把服务器发来ACK的序号段加1,放在确认字段中发送给对方。