TCP/IP学习笔记(2)

一、ARP:地址解析协议

先看:

C:\Documents and Settings\xiaoj>arp -a
  Interface: 192.1.8.84 on Interface 0x1000003
  Internet Address Physical Address Type
  192.1.8.12 00-0b-cd-03-c4-27 dynamic
  192.1.8.15 00-0d-9d-93-09-f5 dynamic
  192.1.8.18 00-e0-18-c1-86-3d dynamic
  192.1.8.26 00-80-2d-78-4f-81 dynamic
  192.1.8.33 00-0b-cd-0f-a4-c5 dynamic
  192.1.8.38 00-30-6e-36-5f-99 dynamic
  192.1.8.86 00-0b-cd-b8-0c-ae dynamic
  192.1.8.247 00-50-ba-e5-20-af dynamic
  192.1.8.248 00-0d-56-19-ba-56 dynamic

第一列显示的是主机的IP地址,第二列就是主机的网卡MAC地址。

ARP协议就是提供IP地址到对应的硬件地址提供动态映射。这个过程一般是系统自动完成的。ARP发送一份ARP请求给以太网上的主机,该请求中包含目的主机的IP地址,其意思是“如果你是这个IP的拥有者,请回答你的硬件地址”。当目的主机的ARP层收到这份广播报文时,识别出这是发送端在询问它的IP地址,于是就会发送一个ARP应答,这个ARP应答包括IP地址及对应的硬件地址。

二、ARP分组格式

以太网目的地址6 以太网源地址6 帧类型2 硬件类型2 协议类型2 硬件地址长度

1

协议地址长度1 请求应答1 发送者硬件地址6 发送者IP地址

4

目的硬件地址6 目的IP地址4

先看定义:

//ARP首部

struct arphdr(
 u_short ar_hrd; //硬件类型
 u_short ar_pro; //协议类型
 u_char ar_hln; //硬件地址长度
 u_char ar_pln; //协议地址长度
 u_short ar_op; // 请求还是应答
 u_char arp_sha[6]; //发送者硬件地址
 u_char arp_spa[4]; //发送者IP地址
 u_char arp_tha[6]; //目的硬件地址
 u_char arp_tpa[4]; //目的IP地址
 u_char arp_zero[18]; //填充字段
};

时间: 2024-12-21 14:42:51

TCP/IP学习笔记(2)的相关文章

TCP/IP学习笔记补遗

经过我对网络上IP数据包的跟踪,对我写的<TCP/IP学习笔记>进行补充.通过本文,可以加深对TCP/IP的认识. ●网络环境:ADSL宽带 ●IP数据包内容:通过Outlook发送邮件,帐号是xiaojin8039@163.com,给我的其他邮箱xiaoj@njb.swirebev.com发送邮件,系统从而捕获的IP包. ●所有IP包均为TCP协议 1.关于IP包的分片情况: 所有的IP包均不分片,也就是IP包传输过程从不进行分片,均保持原始IP包的大小.这可能跟网络环境较好有关. 2.关于

TCP/IP学习笔记(7)

一.SNMP:简单网络管理协议 基于TCP/IP的网络管理包括两部分:网络管理站(manager)和被管理的网络单元(被管设备).这些被管设备的共同点就是都运行TCP/IP协议.管理进程和代理进程之间的通信有两种方式,一种是管理进程向代理进程发出请求,询问参数值,另一种方式是代理进程主动向管理进程报告某些重要的事件. 基于TCP/IP的网络管理包含3个组成部分: (1)一个管理信息库(MIB).管理信息库包含所有代理进程的所有可被查询和修改的参数. (2)关于MIB的公用结构和表示符号,叫做管理

TCP/IP学习笔记(1)

一.TCP/IP结构: TCP/IP是一个四层协议,结构如下: 1.应用层:各种应用程序和协议,如Http.FTP等. 2.传输层:TCP和UDP TCP提供一种可靠的运输层服务,但UDP是不可靠的,不能保证数据报到正确到达目的地. 3.网络层:IP.IGMP.ICMP IP提供的是一种不可靠的服务,也就是尽可能块地把分组从源节点送到目的节点,但并 不提供任何可靠性保证.ICMP是IP的附属协议,主要用来交换错误报文,IGMP是组管理协议,用来将UDP数据报多播到多个主机. 4.链路层:设备驱动

TCP/IP学习笔记(6)

一.TCP协议 1.TCP 通过以下方式提供可靠性: ◆ 应用程序分割为TCP认为最合适发送的数据块.由TCP传递给IP的信息单位叫做报文段. ◆ 当TCP发出一个报文段后,它启动一个定时器,等待目的端确认收到这个报文段.如果不能记时收到一个确认,它 就重发这个报文段. ◆ 当TCP收到发自TCP连接另一端的数据,它将发送一个确认.这个确认不是立即发送,通常延迟几分之一秒. ◆ TCP将保持它首部和数据的检验和.这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化如果收到报文段的检验和有

TCP/IP学习笔记(4)

一.UDP协议 UDP 是一个简单的面向数据报的运输层协议,进程的每个输出操作都产生一个UDP数据报,并组装成一份待发送的IP数据报.UDP不提供可靠性. UDP封装格式: IP首部(20) UDP首部(8) UDP数据 1.UDP首部: 16位源端口号 16位目的端口号 16位UDP长度 16位UDP检验和 数据(如果有) 端口号表示发送和接收的进程. UDP长度字段指的是UDP首部和UDP数据的字节长度,该字段的最小值是8,表示没有数据.该长度不包括IP首部长度. UDP检验和包括UDP首部

TCP/IP学习笔记(8)

一.FTP:文件传输协议 1.FTP协议:采用2个TCP连接来传输一个文件. (1)控制连接: 控制连接通常以客户服务器方式建立.控制连接始终等待客户与服务器的通信,该连接将命令从客户端传给服务器,并传回服务器的应答. (2)数据连接: 该连接用于数据传输. 2.数据表示: (1)文件类型: ◆ASCII文件:默认以NVT ASCII形式传输.这要求发送方将本地文本文件转换为NVT ASCII码,而接收方将NVT ASCII码再还原为本地文本文件.用NVT ASVCII码传输的每一行都以一个回车

TCP/IP学习笔记(5)

一.DNS系统 1.DNS的授权: 网络信息中心NIC负责分配顶极域和委派其他指定地区域的授权机构.一个独立管理的DNS子树称为一个区域,许多二极域将他们的子域划分为更小的区域.当一个系统加入到一个区域中时,该区域的DNS管理者为该新系统申请一个域名和一个IP地址,并将他们加入到名字服务器的数据库中. 一个名字服务器负责一个或多个区域,一个区域的管理者必须为该区域提供一个主名字服务器和至少一个辅助名字服务器. 每个主名字服务器都必须知道根名字服务器的IP地址,根服务器必须知道所有二极域中每个授权

TCP/IP学习笔记(3)

一.Ping程序: 先看: //ping C:\WINNT\system32>ping svr00804 Pinging svr00804.sccnj.swirebev.com [192.1.8.12] with 32 bytes of data: Reply from 192.1.8.12: bytes=32 time<10ms TTL=128 Reply from 192.1.8.12: bytes=32 time<10ms TTL=128 Reply from 192.1.8.12

我以前没接触过计算机网络,想学习TCP/IP协议,需要先看《计算机网络》这本数吗

问题描述 可以直接看<TCP/IP协议详解>卷一吗?是不是在看卷一前要了解下Lunx编程呢?请大家指点下 解决方案 解决方案二:没有5年编程经验,也没有正规学习过软件专业,最好不要学这个.不需要学习任何linux,学习windows即可.解决方案三:建议还是看下计算机网络,你需要首先有个大致的概念.好比学习初等代数,你应该去看数学教科书,而不是看数学手册.如果i你根本没有电子/计算机科学的基础,最好先看看通讯原理.编码,这些都是计算机网络的基础.解决方案四:该回复于2014-09-12 23: