计算机网络
计算机网络…
抓包工具
fildder
网络数据传输
HTTP 传输数据之前,首先需要 TCP 建立连接,称为三次握手。
TCP 模块在执行连接、收发、断开等各阶段操作时,都需要委托 IP 模块将数据封装成网络包发送给通信对象。IP 头部里面需要有源地址 IP 和 目标地址 IP。
生成了 IP 头部之后,接下来网络包还需要在 IP 头部的前面加上 MAC 头部。MAC 头部是以太网使用的头部,它包含了接收方和发送方的 MAC 地址,用于两点之间的传输。
每个主机都有自己的 ARP 高速缓存表,记录着 IP 与 MAC 地址的对应关系。客户端先查找自己的高速缓存表,如果没有,需要发送 ARP 请求报文广播查询,报文中有客户端的 iP 与 MAC 和服务端的 IP,服务端发现 IP 相符,便将客户端的 IP、MAC 记录到自己的高速缓存表中,然后发送 ARP 响应告知自己的 MAC 地址。客户端收到并记录到高速缓存表中。
网络包只是存放在内存中的一串二进制数字信息,没有办法直接发送给对方。因此,我们需要将数字信息转换为电信号,才能在网线上传输,也就是说,这才是真正的数据发送过程。负责执行这一操作的是网卡,要控制网卡还需要靠网卡驱动程序。网卡驱动获取网络包之后,会将其复制到网卡内的缓存区中,接着会在其开头加上报头和起始帧分界符,在末尾加上用于检测错误的帧校验序列。最后网卡会将包转为电信号,通过网线发送出去。
电信号到达网线接口,交换机进行接收,接下来交换机将电信号转换为数字信号。
然后通过包末尾校验错误,如果没问题则放到缓冲区。
交换机表查找 MAC 地址,然后将信号发送到相应的端口
在网络包传输的过程中,源 IP 和目标 IP 始终是不会变的,一直变化的是 MAC 地址,因为需要 MAC 地址在以太网内进行两个设备之间的包传输。