Wireshark数据包分析学习笔记Day24
数据收发操作的第一步是创建套接字。一般来说,服务器一方的应用程序在启动时就会创建好套接字并进入等待连接的状态。客户端则一般是在用户触发特定动作,需要访问服务器的时候创建套接字。在这个阶段,还没有开始传输网络包。
TCP包的头部还包含了客户端向服务器发送数据时使用的初始序号,以及服务器向客户端发送数据时需要用到的窗口大小。
TCP模块在执行连接、收发、断开等各阶段操作时,都需要委托IP模块将数据封装成包发送给通信对象。
集线器是按照以太网规则传输包的设备,而路由器是按照IP规则传输包的设备。
包收发操作的起点是TCP模块委托IP模块发送包的操作。
IP模块负责添加如下两个头部。
(1)MAC头部:以太网用的头部,包含MAC地址
(2)IP头部:IP用的头部,包含IP地址
无论要收发的包是控制包还是数据包,IP对各种类型的包的收发操作都是相同的。
IP地址实际上并不是分配给计算机的,而是分配给网卡的。IP头部的“接收方IP地址”填写通信对象的IP地址。发送方IP地址需要判断发送所使用的网卡,并填写该网卡的IP地址。
IP模块根据路由表Gateway栏的内容判断应该把包发送给谁。
将数字信息转换为电或光信号,才能在网线上传输,也就是说,这才是真正的数据发送过程。负责执行这一操作的是网卡。
MAC地址真正生效的是网卡驱动进行初始化时在MAC模块中设置的那个MAC地址。网卡中保存的MAC地址会由网卡驱动程序读取并分配给MAC模块。
MAC头部很容易被误解为是由网卡来处理的,实际上它是由TCP/IP软件来负责的。
能一开始就发送包的数据,而是要在前面加上一段用来测量时钟信号的特殊信号,这就是报头的作用。
起始帧分界符是一个用来表示包起始位置的标记。
中断是有编号的,网卡在安装的时候就在硬件中设置了中断号,在中断处理程序中则将硬件的中断号和相应的驱动程序绑定。