TCP/IP Illustrated Note2

traceroute

原理

开始时发送一个TTL字段为1的UDP数据报,然后将TTL字段每次加一,以确定路径中的每个路由器。每个路由器在丢弃UDP数据报时都返回一个ICMP超时报文2,而最终目的的主机则产生一个ICMP端口不可达的报文。

IP源站选路选项

  • 严格的源路由选择

发送端指明IP数据包所必须采用的确切路由。如果一个路由器发现源路由所指定的下一个路由不在其直接连接的网络上,那么它会返回一个“源站路由失败”的ICMP差错报文。

  • 宽松的源站选路

发送端指明了一个数据报经过的IP地址清单,但是数据报在清单上指明的任意两个地址之间可以通过其它路由器。

IP选路

一个简单的路由表

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.159.2   0.0.0.0         UG    0      0        0 eth0
192.168.159.0   *               255.255.255.0   U     0      0        0 eth0
192.168.159.0   *               255.255.255.0   U     0      0        0 eth1

注意Flags一列,它有5种不同的标志:

  • U (route is up) 路由启用
  • H (target is a host) 目标是主机
  • G (use gateway) 使用网关
  • R (reinstate route for dynamic routing)
  • D (dynamically installed by daemon or redirect)
  • M (modified from routing daemon or redirect)

主机表项比网络表项具有更高的优先级,而网络表项比默认项具有更高的优先级。

UDP

UDP长度字段指的是UDP首部和UDP数据的总长度

UDP校验和覆盖UDP首部和数据,而IP首部校验和只覆盖IP首部

永远不要完全相信数据链路的CRC校验,应该始终打开端到端的校验和功能。另外,即使是打开了,也要小心,UDP和TCP的校验和也不是可以百分百信赖的。

注意两个ICMP报文和UDP的交互:ICMP不可达报文和ICMP源站抑制差错报文

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xdecode

Java读取打印机自定义纸张.

打印出现截断? 对于自定义纸张打印, 一定要先在打印机配置那边添加, 不然会出现截断. 例如打印1000*500, 出来是正常的, 打印216*139, 出现了...

491100
来自专栏QQ会员技术团队的专栏

从 TCP 三次握手说起:浅析TCP协议中的疑难杂症 ( 1 )

说到TCP协议,相信大家都比较熟悉了,对于TCP协议总能说个一二三来,但是TCP协议又是一个非常复杂的协议,其中有不少细节点让人头疼点。本文就是来说说这些头疼点...

7.3K120
来自专栏解Bug之路

TCP协议详解-定时器

        如代码所示,如果tcp的state<ESTABLISHED,表明其处于连接建立状态。定时器超时后,调用dropit终止连接。大多数伯克利系统将建...

8720
来自专栏JavaQ

TCP的三次握手和四次挥手

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP工作在网络OSI七...

34960
来自专栏java初学

TCP/IP三次握手与四次挥手

30170
来自专栏零基础使用Django2.0.1打造在线教育网站

TCP/IP 七层网络模型 三次握手

TCP/IP(TransmissionControlProtocol/Internet Protocol),中文名为传输控制协议/因特网互联协议,又名网络通讯协...

23410
来自专栏云霄雨霁

传输层协议UDP和TCP

17700
来自专栏王磊的博客

asp.net 操作ftp 通用代码[测试通过]

代码如下: // 建立目录 FtpWebRequest Request = (FtpWebRequest)WebRequest.Crea...

33540
来自专栏Android点滴积累

HandlerThread 创建一个异步的后台线程

使用HandlerThread几大优点: 1、制作一个后台异步线程,需要的时候就可以丢一个任务给它,使用比较灵活; 2、Android系统提供的,使用简单方便,...

24760
来自专栏开发与安全

linux网络编程之TCP/IP基础(五):分析一帧基于UDP的TFTP协议帧

下图是UDP的段格式: ? 相比TCP段格式,UDP要简单得多,也没啥好说的,需要注意的是UDP数据长度指payload加上首部的长度。 下面分析一帧基于UDP...

22470

扫码关注云+社区

领取腾讯云代金券