TCP有多个网卡,源IP地址如何选择?(一)

对于 TCP,请参阅以下文章:

TCP 三向握手 TCP 四向波 TCP 重传 TCP 滑动窗口 TCP 流控制 TCP 串扰控制网络可见性 TCP 三向握手 TCP 连接队列 TCP 性能优化远程定位 IP

TCP在进行数据传输时,会委托IP模块将数据封装成网络数据包发送给通信对象。

从上图可以看出,IP合约上需要源IP地址和目的IP地址。因为HTTP是TCP传输输入网址后就跳转到其他网址,所以IP头中的契约是0x06(代表TCP)。

客户端有多张网卡,源IP如何选择?

如果客户端有多个网卡(多个源IP地址),则必须根据路由表规则选择网卡(源IP地址)。

# linux中查看路由表
route -n

具体选择步骤如下:

对路由表中的目标地址和子网段执行 AND 操作。如果计算结果与路由中的Destination一致,则将路由对应的网卡IP地址作为路由表中的源IP地址。一个特殊的路由,目的地址和子网段都是0.0.0.0(代表默认网段,Gateway是路由器的IP地址),如果其他路由失败match输入网址后就跳转到其他网址,它也手动匹配。两点传输MAC

IP back生成后,需要在IP back后面添加MAC face。

MAC Yulin 需要发送者的 MAC 地址和接收者的 MAC 地址。在 TCP/IP 通信中,合约只有两种:

关于ARP如何获取接收者的MAC地址,可以阅读以下文章:

如何查看MAC地址缓存

arp -a

ARP缓存一般由三部分组成:

导出网卡

网络包只是显存中的一串补码信息,很难直接发给对方。需要网卡才能将数字信息转换成可以通过网线传输的电路信号。

控制网卡需要使用网卡驱动。网卡驱动从IP层获取数据包后,会将其复制到网卡中的缓冲区中,然后在开头加上header和start frame delimiter,并在最后加上一个frame校准序列,用于测量误差.

数据包封装后,网卡会将数据包转换为联通号码,通过网线发送出去。

开关

交换机是二层网络设备,用于将原始数据包转发到目的地。

交换机的端口没有MAC地址。

交换机中有一个MAC地址表。 MAC地址表主要包含两条信息:

交换机的收包操作

网线中的联通号到达交换机的网线插口。交换机收到联通号码后,会将联通号码转换为数字信号,并在包尾通过FCS校准。 ,需要检查数据包接收方的MAC地址是否在交换机的MAC地址表中。如果MAC地址表中有匹配记录,则通过交换电路将数据包发送到记录上的端口。

没有MAC地址表怎么办?

如果MAC地址表中没有对应的MAC地址,交换机就很难确定将数据包转发到端口。在这种情况下,交换机会将数据包发送到除源端口之外的所有端口。端口上的设备收到数据包后,如果自己的MAC地址与数据包中的MAC地址匹配,就会收到数据包并做出响应。只要响应返回,交换机就可以将其写入 MAC 地址表。无需向所有端口发送数据包。

如果接收方是广播地址,交换机仍会将数据包发送到源端口以外的所有端口。

路由器

数据包经过交换机后,成功到达路由器,转发到下一个路由器或路由器上的目标设备。

路由器是一个三层网络设备,每个端口都有一个MAC地址和一个IP地址。

路由器的发送和接收过程

路由器端口收到联通号码后,会将联通号码转发给数字信号路由器,在包尾校准FCS。如果没有问题,检查MAC腹部的接收方MAC地址是否与自己一致。放在接收缓冲区中,否则数据包会被直接扔掉。路由器收到数据包后,会将数据包中的MAC腹部去掉。路由器会根据IP后面的内容转发数据包,路由器会根据路由表进行搜索。一跳路由找到匹配的路由后,会根据路由表项中的Gateway列确定对方的地址。如果网段是IP地址,这个IP地址就是我们要转发的目的地址(此时目的还没有到达)。 ,路由器需要继续转发)如果网段为空,则IP后面的接收者IP地址为最终目的地址

目标IP地址确定后,会通过ARP确定MAC地址,最后将封装好的数据包(IP层的目标IP不会改变)发送出去。在整个包转发过程中,可以看到源IP和目的IP仍然没有变化,但是MAC地址还在变化。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 网站程序 TCP有多个网卡,源IP地址如何选择?(一) https://www.wkzy.net/game/9636.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务