一、ARP协议
ARP(Address Resolution Protocol)地址解析协议,将IP地址解析成MAC地址。
IP地址在OSI模型第三层,MAC地址在OSI第二层,彼此不直接通信;
在通过以太网发生IP数据包时,先封装第三层(32位IP地址)和第二层(48位MAC地址)的报头;
但由于发送数据包时只知道目标IP地址,不知道其Mac地址,且不能跨越第二、三层,所以需要使用地址解析协议。
ARP工作流程分请求和响应:
在dos窗口内“ping”某个域名抓取到的包:
二、IP协议
IP(Internet Protocol)互联网协议,主要目的是使得网络间能够互相通信,位于OSI第三层,负责跨网络通信的地址。
当以广播方式发送数据包的时候,是以MAC地址定位,并且需要电脑在同一子网络。
当不在同一子网络就需要路由发送,这时候就需要IP地址来定位。
同样在dos窗口内“ping”某个域名抓取到的包:
三、TCP协议
TCP(Transmission Control Protocol)传输控制协议,一种面向连接、可靠、基于IP的传输层协议,主要目的是为数据提供可靠的端到端传输。
在OSI模型的第四层工作,能够处理数据的顺序和错误恢复,最终保证数据能够到达其应到达的地方。
1)标志位
SYN: 同步,在建立连接时用来同步序号。SYN=1, ACK=0表示一个连接请求报文段。SYN=1,ACK=1表示同意建立连接。
FIN: 终止,FIN=1时,表明此报文段的发送端的数据已经发送完毕,并要求释放传输连接。
ACK: 确认,ACK = 1时代表这是一个确认的TCP包,取值0则不是确认包。
DUP ACK:重复,重复确认报文,有重复报文,一般是是丢包或延迟引起的,从这个报文看应该是丢包了。
URG:紧急,当URG=1时,表示报文段中有紧急数据,应尽快传送
PSH:推送,当发送端PSH=1时,接收端尽快的交付给应用进程
RST:复位,当RST=1时,表明TCP连接中出现严重差错,必须释放连接,再重新建立连接
2)端口
客户端与不同服务器建立连接时,源端口和目标端口可不同。
3)TCP三次握手
4)TCP四次挥手
TCP四次断开,例如关闭页面的时候就会断开连接。
5)TCP概念
1. 发送窗口
无法简单的看出发送窗口的大小,发送窗口会由网络因素决定。发送窗口定义了一次发的字节,而MSS定义了这些字节通过多少个包发送。
2. 拥塞窗口(cwnd)
描述源端在拥塞控制情况下一次最多能发送的数据包的数量。
在发送方维护一个虚拟的拥塞窗口,并利用各种算法使它尽可能接近真实的拥塞点。
网络对发送窗口的限制,就是通过拥塞窗口实现的。
3. 在途字节数(bytes in flight)
已经发送出去,但尚未被确认的字节数。
在途字节数 = Seq + Len - Ack
其中Seq和Len来自上一个数据发送方的包,而Ack来自上一个数据接收方的包。
4. 拥塞点(congestion point)
发生拥塞时候的在途字节数就是该时刻的网络拥塞点。
先从Wireshark中找到一连串重传包中的第一个,再根据该Seq找到原始包最后计算该原始包发送时刻的在途字节数。
5. 慢启动
RFC建议初始拥塞窗口发送2、3、或4个MSS,如果发出去的包都能得到确认,则表明还没到拥塞点,可以收到n个确认增加n个MSS
6. 拥塞避免
慢启动持续一段时间后,拥塞窗口达到一个较大的值,就得放慢RFC建议在每个往返时间增加1个MSS,比如发了16个MSS全部确认,那么就增加到17个MSS
7. 超时重传
发出去的包在等待一段时间(RTO)后,没有收到确认,就只能重传了
8. 快速重传(Fast Retransmit)
不以时间驱动,而以数据驱动重传。如果包没有连续到达,就ACK最后那个可能被丢了的包,如果发送方连续收到3次相同的ACK,就重传。<