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: bytes=32 time<10ms TTL=128
   Reply from 192.1.8.12: bytes=32 time<10ms TTL=128
   Ping statistics for 192.1.8.12:
   Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
   Approximate round trip times in milli-seconds:
   Minimum = 0ms, Maximum = 0ms, Average = 0ms   

ICMP回显请求和回显应答报文格式如下:(以Ping为例)

类型0或8 代码0 检验和
标识符 序号

结构定义如下:

typedef struct icmp_hdr
{
unsigned char icmp_type; //类型
unsigned char icmp_code; //代码
unsigned short icmp_checksum; //检验和
unsigned short icmp_id; //标识符
unsigned short icmp_sequence; //序号
} ICMP_HDR, *PICMP_HDR, FAR *LPICMP_HDR;

PING程序把ICMP报文中的标识符字段设置为发送进程的ID号,这样即使在同一台主机同时运行多个ping实例,ping程序也可以识别返回的信息。

二、IP记录路由选项

PING程序为我们提供了查看IP记录路由(RR)选项的机会。每个处理PING请求的路由器都把它的IP地址放入选项字段中。当PING程序收到回显应答时,它就可以打印出这份IP地址清单。

由于IP首部中的首部长度字段只有4bit,因此IP首部最大为60字节。由于IP首部固定长度为20个字节,RR选项用去3个字节,因此存放IP地址的控件只有37个字节,也就是最多放9个IP地址。

code(1) len(1) ptr(1) 9个IP地址 多余1

code:IP选项类型,RR选项为7。

len:RR选项总长度,为39。

ptr:指针字段,存放下一个IP地址的位置,开始为4,放满为40。

IP地址为路由器的出口地址,同时原始主机收到带有RR选项的ICMP回响应答时也把它的入口IP地址放入清单。

时间: 2024-11-01 23:34:50

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

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学习笔记(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

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

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