网络层
网络层
- 寻址
- 选择最佳路径
IP数据包格式
网络层:ip头部+tcp/udp头部+上层数据==>数据包
有20字节的固定部分,还有40字节的可选项,加上数据。
- 版本号(4bit):ip版本协议
- 首部长度(4):ip数据包包头长度
- 优先级与服务类型(8):表示数据包的优先级和服务类型
- 总长度(16):IP数据包的总长度,最长为 65535 字节,包括包头和数据
- 标识符(16):该字段用于表示IP数据包的标识符。当IP对上层数据进行分片时,它将给所有的分片数据分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包
- 标志(3):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出(完整)
- 段偏移量(13):一个数据包需要分片,指明这个分片举例原始数据开始的位置,作用重组数据
- TTL(time to live)生命周期(8):可以防止一个数据包在网络中无限循环的转发下去,每经过一个路由器 -1,当TTL的值为0时,该数据包将被丢弃 0-255
- 协议号(8):封装的上层哪个协议,ICMP:1 TCP:6 UDP:17
- 首部校验和(16):这个字段只检验数据报的首部,不包括数据部分。这是因为数据报每经过一次路由器,都要重新计算一下首部校验和(因为,一些字段如生存时间、标志、片偏移等可能发生变化)
- 源地址(32):源ip地址,表示发送端的IP地址
- 目标地址(32):目标ip地址,表示接收端的IP地址
- 可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据
tips:
通过 TTL的 返回值 确定你的 系统类型
- win 128 左右
- linux 64 左右
ICMP
Internet控制消息协议(Internet Control Message Protocol),是ip协议的辅助协议。
作用:检测网络的双向联通性
- ping
Ping是网络设备、Windows、Unix和Linux平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP协议。
Ping常用于探测到达目的节点的网络可达性。
ping 空格 ip地址 [选项]
ping选项
ipconfig 显示子的ip地址
ping --help 显示帮助命令
ping -t 长ping ping -t ip地址 长ping ctrl+c 停止
ping -l size 发送缓冲区大小 ping -l 指定包的大小(1600) ip地址
ping -w 等待时间超时 ping -w 指定等待时间(默认是秒:2 ) ip地址
ping -n 指定ping几次 ping -n 指定的次数(5) ip 地址
tip:
ping的通一定通
ping不通不一定网络不通
- tracert
tracert ip地址
经过几个路由设备 追踪
tip:
tracert ip地址 Win系统中
traceroute ip地址 Linux系统中
Type | Code | 描述 |
---|---|---|
0 | 0 | Echo Reply |
3 | 0 | 网络不可达 |
3 | 1 | 主机不可达 |
3 | 2 | 协议不可达 |
3 | 3 | 端口不可达 |
11 | 0 | 超时 |
8 | 0 | Echo Request |
type:代表类型
code:代表具体情况
- 网络波动:偶尔丢一两个包
- ping不通:没有一个数据能到达
当服务出来问题,安在下面思路排错:
- ping自己的127.0.0.1;ping自己设置的ip地址。
- ping网关,看网关是否有问题。
- 看双方地址是否有问题。
- 看防火墙策略是否有问题(需要找网络工程师配合)。
冲突域
冲突域:两台设备同时发送消息时,互相干扰那他们就处于同一个广播域。
广播域
广播域:一台机器发送广播,能收到消息的机器,都是在同一广播域。
注意点:
1.广播域=一个网段
2. 交换机的所有端口默认在同一个广播域里。
3. 路由器的每一个端口都是一个独立的广播域。
ARP
地址解析协议:把ip地址转换成mac地址,检测ip地址冲突
- 无故ARP:当一台设备获取到一个ip地址时,会自动发送一个无故ARP,检测是否有设备已经使用了此地址。
- 将ip地址转换成mac地址完成数据封装。