互联网基础:

 
数据链路层:RFC文档:894/1042/1340
  1. 为IP模块发送和接受IP数据报
  2. 为ARP模块发送ARP请求和接收ARP应答
  3. 为RARP模块发送RARP请求和接收RARP应答
 
*CSMA/CD:带冲突检测的载波侦听多路访问
 

 
 
 
串行链路IP(SLIP):RFC 1055
  1. IP数据报以一个END(0XC0)的特殊字符串结束
  2. END---> 0XDB(ESC)、OXDC
  3. ESC---> 0XDB、0XDD
 
压缩SLIP:rfc1144
一般能把40个字节压缩到3-5个字节
 
PPP:点对点协议
 
 
环回接口:127.0.0.1/localhost
 

最大传输单元MTU:以太网和802.3对数据帧的一个限制,即传输的数据,不包括以太网或802.3的首部和尾部校验(首部为6比特的目的地址、6比特的源地址、2比特的长度、4比特的CRC)
路径MTU:通信主机路径中的最小MTU
 

IP:rfc791
 

 
 

ARP/RARP:rfc826
ARP-(根据目标IP找到下一跳MAC地址)
查看ARP缓存: arp -a
 
ARP代理:若果ARP请求是从一个网络的主机到另一个网络的主机,那么连接这两个网络的路由器就可以回答该请求,这样,就使发起ARP请求的发送端误以为路由器就是目的主机。
免费ARP:指主机发送ARP查找自己的IP地址
*一个主机收到一个ARP请求,如果ARP请求中的目的IP地址是这个主机,那么这个主机回一个ARP应答,
*如果主机收到某个IP的ARP请求,且这个IP已经在这个主机的ARP缓存中了,那么就要用ARP请求中的发送端硬件地址对ARP缓存中相应的内容进行更新。
*丢弃
 
RARP-(根据源MAC找到自己的IP地址)
rfc:903
帧类型代码:0x8035
 

ICMP:
rfc:792
I C M P报文是在I P数据报内部被传输的
 
 
下面各种情况都不会导致产生I C M P差错报文:
1) ICMP差错报文(但是,I C M P查询报文可能会产生I C M P差错报文) 。
2) 目的地址是广播地址(见图3 - 9)或多播地址(D类地址,见图1 - 5)的I P数据报。
3) 作为链路层广播的数据报。
4) 不是I P分片的第一片(将在11 . 5节介绍分片) 。
5) 源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地
址或多播地址。
这些规则是为了防止过去允许I C M P差错报文对广播分组响应所带来的广播风暴。
 
 
I C M P时间戳请求允许系统向另一个系统查询当前的时间。
 
 
ICMP端口不可达差错
 
 
 
 

 
 
 

 
两个小工具:ping  / traceroute
(内核中进行处理)ping:测试主机是否可达,该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答.
回显请求和回显应答报文格式
IP记录路由选项 RR选项 ,记录出口IP地址
一般格式
 
始终把出口的IP地址加入清单。当ICMP回显应答到达原始系统时,把自己的入口IP地址也加入清单中。
IP时间戳选项
 

 
Traceroute
traceroute发送一份UDP数据报给目的主机,但它选择一个不可能的值作为UDP端口(大于30000),使目的主机的任何一个应用程序都不可能使用该端口,因为,当该数据报达到时,将使目的主机的UDP魔铠产生一份“端口不可达”错误的ICMP报文,这样,TRACEROUTE程序索要做的就是区分接收到的ICMP报文是超时还是端口不可达,以判断什么时候结束。
*显示入接口
 
IP源站选路选项
(SSRR)严格的源路由选择、发送端指明IP数据报所必须采用的确切路由
/(LSRR)宽松的源站选路、发送端指明了一个数据报经过的IP地址清单
对于宽松的源站选路来说, c o d e字段的值是0 x 8 3;而对于严格的源站选路,其值为 0 x 8 9。
-g 宽松的源站选路指明一些中间路由器
-G 严格的
 

 
 
 
 
 
 
 

数据链路层、ARP/RARP、ICMP、ping和traceroute的更多相关文章

  1. IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

    目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边 ...

  2. (网络层)IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

    目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边 ...

  3. 网络层 IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

    目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边 ...

  4. tcp/ip--IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)

    IP 数据报首部 最高位在左边,记为0 bit:最低位在右边,记为31 bit 版本: 占 4 位,指 IP 协议的版本目前的 IP 协议版本号为 4 (即 IPv4) 首部长度: 占4位,可表示的最 ...

  5. UNIX网络编程——利用ARP和ICMP协议解释ping命令

    一.MTU 以太网和IEEE 802.3对数据帧的长度都有限制,其最大值分别是1500和1492字节,将这个限制称作最大传输单元(MTU,Maximum Transmission Unit)      ...

  6. 利用ARP和ICMP协议解释ping命令

    一.MTU 以太网和IEEE 802.3对数据帧的长度都有限制,其最大值分别是1500和1492字节,将这个限制称作最大传输单元(MTU,Maximum Transmission Unit).如果IP ...

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

    1.IMCP协议介绍 前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成.其中一个重要的模块就是ICMP(网络控制报文)协议. 当传送 ...

  8. 4.ICMP协议,ping和Traceroute

    1.IMCP协议介绍 前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成.其中一个重要的模块就是ICMP(网络控制报文)协议. 当传送 ...

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

    转自:http://blog.csdn.net/goodboy1881/article/details/670761 1.IMCP协议介绍 前面讲到了,IP协议并不是一个可靠的协议(是一种尽力传送的协 ...

随机推荐

  1. 配置linux内核输出所有的log信息

    答案:修改内核文件include/linux/printk.h  (内核版本为4.9) 修改前 #define CONSOLE_LOGLEVEL_DEFAULT 7 /* anything MORE ...

  2. PAT1072. Gas Station (30)

    题目的测试用例数据有问题! 第一个Case 应该是 G1 2.0 3.2 一直在想3.3分母的3怎么来了.ORZ #include <iostream> #include <ccty ...

  3. kubectl delete

    kubectl delete 通过配置文件名.stdin.资源名称或label选择器来删除资源. 支持JSON和YAML格式文件.可以只指定一种类型的参数:文件名.资源名称或label选择器. 有些资 ...

  4. MySQL 存储过程参数用法 in, out, inout

    MySQL 存储过程参数有三种类型:in.out.inout.它们各有什么作用和特点呢? 一.MySQL 存储过程参数(in) MySQL 存储过程 “in” 参数:跟 C 语言的函数参数的值传递类似 ...

  5. canvas drawimage绘制图像出错(默认canvas300*150)解决办法

    今天在开发中,再一次踩了以前踩过的坑,写完程序在这里写一下,分享给大家也避免再次遇坑. //默认的canvas <canvas id ="canvas"></ca ...

  6. [spring]<context:component-scan/>使用

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  7. int数组的下标为n

    int 类型的数组 先定义int n = 5: 定义int a[n] = {0}; 编译怎么不通过啊?n必须为常量如果想实现你说的,应该用宏#define n 5int a[n]={0};这样就可以了 ...

  8. Mybatis-Generator插件的使用与Spring集成Mybatis的配置

    参考:http://blog.51cto.com/zero01/2103687 Mybatis-Generator是一个用于自动生成dao层接口.pojo以及mapper xml的一个Mybatis插 ...

  9. Ubuntu下配置Nginx+PHP

    1.安装Nginxapt-get install nginx 2.启动Nginxservice nginx start 3.访问服务器IP 如果看到“Welcome to nginx!”说明安装好了. ...

  10. torch7框架 深度学习(1)

    前面已经安装好了torch,下面就来看看如何在torch框架上搭建深度学习模型,我一直觉得源码结合原理是机器学习最好的学习途径.所以我们从分析一个简单的案例开始吧. 参考Supervised Lear ...