首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TCP/IP堆栈中的链路层是否根据目的地的IP地址派生出要接收数据包的网卡的MAC地址?

是的,TCP/IP堆栈中的链路层根据目的地的IP地址派生出要接收数据包的网卡的MAC地址。在发送数据包时,操作系统会根据目的IP地址查询路由表,确定下一跳的网关IP地址。然后,通过ARP协议(地址解析协议)查询目的IP地址对应的MAC地址。ARP协议会发送一个广播消息,询问局域网内的所有设备,谁拥有目的IP地址对应的MAC地址。当目的设备收到广播消息后,会回复自己的MAC地址给发送方。发送方收到回复后,就知道了目的IP地址对应的MAC地址,然后将数据包封装成以目的MAC地址为目标的帧,发送到网络上。接收方的网卡会根据自己的MAC地址与目标MAC地址进行比对,匹配成功后接收数据包。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

计算机-底层-1

物理层。 就是传输的设备 数据链路层, 以太网协议规定,连入网络的每一个计算机都会有网卡接口,每一个网卡都会有一个唯一的地址,这个地址就叫做 MAC 地址。在链路层据定义了多少电信号为一组,这一组电信号构成了一个数据包,称之为帧。一个帧分为head以及data两个部分,head中存储了一系列的参数MAC地址就是其一,data存储了计算机之间交互的数据。 网络层, 对与相同子网的计算机可以数据交互之后,对与不同子网的计算机我们应该怎么办呢? 在网络层引入了三个协议:IP协议,ARP协议,路由协议 P协议:IP协议长4个字节,它的范围:0.0.0.0~255.255.255.255,分为两个部分:网络部分 + 主机部分,这两个部分的长度根据子网掩码决定。例如前24位时网络号,后8位为主机号。 ARP协议:即地址解析协议,是根据IP地址获取MAC地址的一个网络层协议。其工作原理如下: ARP首先会发起一个请求数据包,数据包的首部包含了目标主机的IP地址,然后这个数据包会在链路层进行再次包装,生成以太网数据包,最终由以太网广播给子网内的所有主机,每一台主机都会接收到这个数据包,并取出标头里的IP地址,然后和自己的IP地址进行比较,如果相同就返回自己的MAC地址,如果不同就丢弃该数据包。ARP接收返回消息,以此确定目标机的MAC地址;与此同时,ARP还会将返回的MAC地址与对应的IP地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。 路由协议:简单理解就是不同子网与子网间的通行必须通过网关的多次转发,最终找到目标IP所在的子网。 传输层, 上面已经实现了互联网中两台计算机的数据传输交互,但是如何确保数据被准确的分配给请求的接口呢? 端口号 在传输层使用的两个重要协议:TCP协议,UDP协议 TCP:在数据传输前进行3次握手,确定数据的传输是可靠有效的。TCP是面向连接的 UDP:UDP则是不会理会传输的成功与否,它在乎的仅仅是把数据发出去,接受端能否收到数据,它是不会管的。也就是说UDP面向无连接的

02

网络分层架构(七/四层协议)

业内普遍的分层方式有两种。OSI七层模型 和TCP/IP四层模型。 OSI七层模型:物、数、网、传、会、表、应 TCP/IP四层模型:链、网、传、应 1) 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。 2)数据链路层:定义了如何让格式化数据以帧为单位进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。如:串口通信中使用到的115200、8、N、1 3)网络层:在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。 4) 传输层:定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。 5) 会话层:通过传输层(端口号:传输端口接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。 6)表示层:可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。 7) 应用层:是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。

02
领券