TCP/IP学习笔记(5)

ICMP协议、Ping程序、Traceroute程序

ping程序和Traceroute程序都是基于ICMP协议的,放在一起看。

ICMP是网络层的协议,尽管它是封装在IP数据报内部。

ICMP报文格式:

8位类型字段区分类型,代码区分类型(如下图),16位检验和覆盖ICMP的头部和数据部分。

根据上图可以看到 ICMP分为查询和差错两种,注意:ICMP差错报文出错时不会再产生ICMP差错报文,不然会一直循环下去。

同时目的地址是广播地址或多播地址的IP数据报也不会产生,如果产生的话 会产生很多ICMP差错报文,会产生广播风暴。

ICMP地址掩码请求与应答:

无盘系统通过广播此数据报根据ICMP应答获得子网掩码。

标识符和序列号由发送端任意设定,在应答中会返回,发送端就可以根据这个进行匹配

ICMP时间戳请求与应答

用于向另一个系统查询当前的时间,返回的值是自午夜开始算的毫秒数,无法获知当时的日期。

ICMP端口不可达差错

当目的端口不可达时,产生一个ICMP差错报文,一般的差错报文都会包含IP首部,及数据段的前8个字节,而这前8个字节主要包含了端口信息。通过这个可以了解导致差错的原因

Ping程序:

Ping程序大部分人都用过,它的原理就是发送ICMP回显请求,对方收到后发送icmp回显应答,以此判断是否可达。大多数支持TCP/IP协议的都会支持Ping服务器

可以看到第一次时间比较久,这很可能是发送arp请求和接收应答所花费的时间

从wireshark中我们可以看到请求携带的数据,应答也都回显了,报文的格式和上面的图一样。

 

IP记录路由:

在笔记(4)中提到IP的选项字段最多只有40个字节,除去3个字节的code(指明这个选项是干什么的)len(长度)ptr(指针字段)剩下的只够9个IP地址的。因此最多存放9个IP地址。

从下面的图也可看出来

抓到的包里也可以看出。

IP时间戳选项类似。

Traceroute程序:

因为IP记录路由选项记录的路由地址最多为9个,

无法完全呈现路由路径。

Traceroute可以完全呈现路径,原理是利用ip首部的TTL字段 TTL字段每经过一个路由器就会-1,到0时,路由器会向发送端发送ICMP超时报文(包含该路由的IP)。因此可以从1开始逐步加1,当数据报到达时产生一个端口不可达错误,就知道到目的主机了。

 

IP源站选项路由:

严格的源路由选择:在IP首部的选项段中添加路由地址,发送端指明IP数据报必须采用指定的路由,当一个路由器发现下一站路由不在其相连的网站上 就返回一个源站路由失败的 ICMP差错报文

宽松的源站选路:发送端指明了一个数据报经过的IP地址清单,但是数据报在清单上指明的任意两个地址之间可通过其他

本节完

时间: 2024-11-13 06:58:40

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

TCP/IP学习笔记(一):基础知识

[前言] 一位美女老师教这门课,上课全是英文,偶尔也蹦两句中文解释术语,不过基本不说……TCP/IP给我的第一印象是知识点琐碎,可能是因为我的知识面和知识量都很欠缺,不成体系. 老师的课件是基于<TCPIP协议族(第4版)>的,所以我就按照书的标题来记录笔记好了. 另外我还买了一本科普类的书籍<图解TCP/IP(第5版)>,还有一本教材<TCP/IP网络互连--卷I(第5版)>作为参考,不知道要看到猴年马月才能有收获. ====================我是分割线

TCP/IP学习笔记(2)----------IP协议与寻址

简介 下一博文终将会详细解析TCP/IP协议 本讲中主要注重于寻址 TCP/IP协议族中最核心的协议,提供不可靠.无连接的数据报传输服务. 不可靠:不能保证IP数据报能成功送达. 无连接:并不维护后续数据报的状态信息,每个数据报的处理都是相互独立.数据报可能不会按照发送顺序接收.同一站点向另一站点发送的多个数据报可能经过不同的路由到达. 帧格式 IP数据报格式如下. 版本:IP协议版本号,目前为4.故称为IPv4. 首部长度:以4字节为单位.最小值为5,不包含可选字段的IP首部大小为20字节.最

TCP/IP学习笔记

1. 华蓓老师主页  http://staff.ustc.edu.cn/~bhua/ 2. OSI vs TCP/IP 3.  TCP流量控制 1)连接建立时,接收端告诉发送端接收窗口的数值rwnd=400byte 2)  如果发生丢包,接收端回给发送端的ack字段设为1, ack number设为想要接收的seq number,window size减小 3)发送端重传丢失字段,并根据接收端最新的rwnd size来决定发送的size 4. TCP拥塞控制

TCP/IP学习笔记(1)----------详解

TCP/IP协议 Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议.Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成.TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准.协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求.通俗而言:TCP负责发现传输的问题,一有问题就发出信号,

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

1.TCP/IP协议栈 四层模型 TCP/IP这个协议遵守一个四层的模型概念:应用层.传输层.互联层和网络接口层. 网络接口层 模型的基层是网络接口层.负责数据帧的发送和接收,帧是独立的网络信息传输单元.网络接口层将帧放在网上,或从网上把帧取下来. 互联层 互联协议将数据包封装成internet数据报,并运行必要的路由算法. 这里有四个互联协议: 网际协议IP:负责在主机和网络之间寻址和路由数据包. 地址解析协议ARP:获得同一物理网络中的硬件主机地址. 网际控制消息协议ICMP:发送消息,并报

TCP/IP学习笔记(三)——IP,ARP,RARP

参考文献: * <TCP/IP详解 卷一:协议>: 1. IP网际协议 1.1 特点: 不可靠:不能保证IP数据报能成功到达目的地: 无连接:不维护任何关于后续数据报状态信息,即没有握手的环节,比如UDP也是无连接的: 1.2 IP首部 普通IPv4首部长度20字节(除非含有选项字段): 网络字节序:Big-endian: 服务类性(TOS):共8位,实际有效位4bit,最小时延,最大吞吐量,最高可靠性,最小费用: 不同的协议有不同的要求:Telnet和Rlogin用于少量交互数据要求最小传输

TCP/IP学习笔记__mbuf

Socket发送和接收数据都是写入和读取mbuf(存储器缓存)来完成的.下面着重介绍下Sendto函数与mbuf的关系: 以UDP协议为例: 1.UDP的输出执行过程: UDP的输出执行过程 2.协议层的m_buf 添加了IP+UDP头部的mbuf 3.插口层端的m_buf 包括插口地址的m_buf                                                                                     包括数据的插口层m_buf 4

tcp/ip 学习笔记 章二 链路层

一.数据链路层 当需要在一条线路上传递数据时,除了必须使用一条物理设备时,还需要一些必要的通信协议来控制数据的传输,若把实现这些协议的硬件和软件的加到链路上,就叫做数据链路:最常用的是-----网络适配器.一般适配器都包含了数据链路层和物理层这两层的功能. 物理层的包含多种与物理介质相关的协议和标准 物理层协议分类: 电磁与光学协议(电流.光调制.编码) 机械协议(链接介质机械标准,大小.形状.化学成分) 功能性的协议 程序性协议(比如二进制数1,表示的电压) eg:EIA/TIA-232 V.

ICMP和arp协议以及tcp/ip学习

ICMP:http://blog.csdn.net/tigerjibo/article/details/7356936 ARP:http://blog.csdn.net/tigerjibo/article/details/7351992 IP分片:http://www.vants.org/?post=106 TSO/GSO linux内核源码剖析 udp: http://modernrobber.blog.163.com/blog/static/214636320074305183395/ ht