对TCP/IP协议的一些看法(2):ARP协议

上一讲主要介绍了下TCP/IP的总体概述,由于是随笔,可能写的不是很有条理,也只是想到什么写下什么,后期可能还会进行补充。

今天主要讲下我对网络层的ARP协议的一些认识。ARP的主要功能是提供IP地址到物理地址(MAC地址)的一个动态映射。我们知道两台计算机之间要进行数据的传输,最终还是在链路层通过以太网报文进行发送的,所以发送方必须知道接收方的地址,即物理地址。但一般来说在IP层传下来的报文中只有IP地址,因此在链路层通过ARP协议进行IP地址到物理地址的转换。这个转换是自动完成的,不需要用户去实现。

具体的实现过程如下:

1.发送方向网内的所有计算机发送ARP请求(进行广播),里面包括目标IP地址,源IP地址和源物理地址,意思是说你们谁的IP地址是这个;

2.若接收方和发送方在同一网段内,则收到ARP请求后先存储发送方的IP和物理地址,之后在ARP应答报文中填充自己的物理地址后返回给发送方;其余计算机不进行响应;

3.若两者不在同一网段内,可能要通过路由器进行转发;路由器的知识在后面说明;

4.发送方收到ARP应答后即可将以太网报文发给接收方。

另外还有几点需要注意:

1.所有计算机都包含一个ARP高速缓存,用于减少查询的时间;一般缓存时间在20分钟

2.关于ARP的指令包括arp -a(列出本地的arp缓存)和arp -d(删除缓存,需要高权限才能操作)

3.ARP采取广播查询,单播回应

4.最后需要说明的一点是,有些人说ARP属于网络层,有些说是链路层。应该可以这么理解,在OSI模型中,ARP属于链路层,在TCP/IP中,属于网络层

时间: 2024-09-29 22:53:23

对TCP/IP协议的一些看法(2):ARP协议的相关文章

TCP/IP学习20180709-数据链路层-arp协议

arp协议:address resolution protocol地址解析协议数据链路层,每个数据包都有MAC地址.主机是怎样根据对方主机的ip地址知道对方主机的mac地址呢?通过arp协议.主机里有ip-arp对应表.拿到ip就查对应表.查到了就用mac地址.查不到就向网络发arp协议广播包.收到这个广播包的所有主机都查自己的ip地址.如果该主机发现自己的ip地址符合,就把包含自己mac地址的arp包发给广播主机.广播主机拿到arp包后更新ip-arp对应表.然后用arp地址发送数据包. 原文

TCP/IP学习20180629-数据链路层-ARP、IP

1.数据链路层:IP.ARP.RARPARP协议用来找到目标主机的Ethernet网卡Mac地址,IP协议用来承载数据ARP协议找到目标,IP协议传输数据2.IP协议ip协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输.IP不是可靠的协议.IP协议没有提供一种数据未传达以后的处理机制这个认为是上层协议该做的事,也就是TCP.UDP等等该干的3.IP协议头 原文地址:https://www.cnblogs.com/lsjava/p/9245823.h

TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute

转自:http://blog.csdn.net/goodboy1881/article/details/670761 ———————————————————————————————————————————————————————— 1.IMCP协议介绍 前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成.其中一个重要的模块就是ICMP(网络控制报文)协议. 当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将

TCP/IP模型各个层次的功能和协议

层次名称 功    能 协    议 应用层 (Application Layer) 负责实现一切与应用程序相关的功能,对应OSI参考模型的上三层 FTP(文件传输协议) HTTP(超文本传输协议) DNS(域名服务器协议) SMTP(简单邮件传输协议) NFS(网络文件系统协议) 传输层 (Transport Layer) 负责提供可靠的传输服务,对应OSI参考模型的第四层 TCP(控制传输协议) UDP(用户数据报协议) 网际层 (Inter-network Layer) 负责网络间的寻址.

TCP/IP详解学习笔记(6)-UDP协议

1.UDP简要介绍 UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议. 2.UDP协议头 2.1.UDP端口号 由于很多软件需要用到UDP协议,所以UDP协议必须通过某个标志用以区分不同的程序所需要的数据包.端口号的功能就在于此,例如某一个UDP程序A在系统中注册了3000端口,那么,以后从外面传进来的目的端口号为3000的UDP包都会交给该程序.端口号理论上可以有2^16这么多.因为它的长度是16个bit

TCP/IP网络编程、三次握手协议及socket编程

1.概念 2.三次握手协议

TCP/IP 原理 -- ICMP:因特网控制报文协议

ICMP:它传递差错报文以及其他需要注意的信息. ICMP是封装在IP数据报内部被传递的. ICMP报文格式: 1.ICMP报文类型由类型和代码字段共同决定.类型共有15中,通过代码字段又可对其进行细分.详细报文类型说明如图: 图 -ICMP报文类型

《TCP/IP详解,卷1:协议》学习记录

在“第20章—TCP的成块数据流—20.6慢启动—一个例子”中,中文版有如下翻译“此时尽管可发送多达3个报文段,可是在下一个ACK收到之前,只发送了2个报文段”,英文版原文为“Two more segments are sent (not three) because the ACK for segment 4 is still outstanding.”

【Java TCP/IP Socket】构建和解析自定义协议消息(含代码)

在传输消息时,用Java内置的方法和工具确实很用,如:对象序列化,RMI远程调用等.但有时候,针对要传输的特定类型的数据,实现自己的方法可能更简单.容易或有效.下面给出一个实现了自定义构建和解析协议消息的Demo(书上例子). 该例子是一个简单的投票协议.这里,一个客户端向服务器发送一个请求消息,消息中包含了一个候选人的ID,范围在0~1000.程序支持两种请求:一种是查询请求,即向服务器询问候选人当前获得的投票总数,服务器发回一个响应消息,包含了原来的候选人ID和该候选人当前获得的选票总数:另

TCP/IP协议,HTTP协议

1. 协议  a. TCP/IP总体构架概述     TCP/IP协议并不全然符合OSI的七层參考模型.传统的开放式系统互连參考模型,是一种通信协议的7层抽象的參考模型,当中每一层运行某一特定任务.该模型的目的是使各种硬件在同样的层次上相互通信.这7层是:物理层.数据链路层.网路层.传输层.话路层.表示层和应用层.而TCP/IP通讯协议採用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完毕自己的需求.这4层分别为:     i.   应用层:应用程序间沟通的层,如超文本传送协议(HTTP