什么是网络协议
网络协议的定义:为计算机网络中进行数据交换而建立的规则、标准或约定的集合.
一个网络协议至少包括三要素:
- 语法:用来规定信息格式;数据及控制信息的格式、编码及信号电平等。
- 语义:用来说明通信双方应当怎么做;用于协调与差错处理的控制信息。
- 时序:定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是异步传输。
网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义
网络协议分层
网络是分层的,网络协议也很多很多。我们只关注TCP/IP协议栈
TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能。包含以下四个层次:
TCP RFC中给出的层次图:
TCP/IP协议的工作流程如下:
- 在源主机上,应用层将一串应用数据流传送给传输层。
- 传输层将应用层的数据流截成分组,并加上TCP报头形成TCP段,送交网络层。
- 在网络层给TCP段加上包括源、目的主机IP地址的IP报头,生成一个IP数据包,并将IP数据包送交链路层。
- 链路层在其MAC帧的数据部分装上IP数据包,再加上源、目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。
- 在目的主机,链路层将MAC帧的帧头去掉,并将IP数据包送交网络层。
- 网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包;若校验和与计算结果一致,则去掉IP报头,将TCP段送交传输层。
- 传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据。若正确,则向源主机发确认信息;若不正确或丢包,则向源主机要求重发信息。
- 在目的主机,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的来自源主机的字节流,就像是直接接收来自源主机的字节流一样
抓包分析
- Frame: 物理层的数据帧概况
- Ethernet II: 数据链路层以太网帧头部信息
- Internet Protocol Version 4: 互联网层IP包头部信息
- Transmission Control Protocol: 传输层的数据段头部信息,此处是TCP
- Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议
可以去这个地方看下 http://www.seanyxie.com/wireshark抓包图解-tcp三次握手四次挥手详解/