假装网络工程师1——TCP/IP上下层接口与静态路由
一、背景介绍
总所周知,公有云最难理解的部分在于网络,从事了公有云之后才发现自己的网络差的还很远,干脆从头回炉修炼,既然是从头修炼就从最基础的开始,当然也只是补充以前理解不透彻的地方,闲言少叙,言归正传。
二、TCP/IP模型
所有关于TCP/IP模型的书上都会提到下层为上层服务,此处重点介绍上下层之间的接口。以ip地址为例,网络层如何知道物理层传递过来的究竟是ipv4还是ipv6,此时就需要用到网络层与物理层之间的类型进行区分,0X0800表示需要网络层处理的地址为ipv4,0X86DD则表示ipv6,类似的层与层之间都需要通过接口来向上一层传递信息。如:网络层与传输层需要通过协议号传递,传输层与应用层需要
此处以一个ping实验来说明物理通过协议号向网络层传递信息,拓扑如下图所示:
通过路由器R1去ping路由器R2,此时在R2的GE0/0/0口抓包就能看到0X0800类型代表了ipv4
三、静态路由
此处的静态路由也只阐述以前理解不透彻的地方,通过几个实验进行说明。
1.实验1
拓扑如下图所示:
如果希望12.0.0.1/24能ping通34.0.0.4/24地址去方向需要做如下设置:
[R1]ip route-static 34.0.0.0 24 12.0.0.2 [R2]ip route-static 34.0.0.0 24 23.0.0.3
此时,数据包就能正常到达R4路由器,之所以R3路由器不需要进行设置,是因为34.0.0.0/24网段是R3路由器的直连网段,此处引出了==第一个重点==:路由器之间互联的接口处于同一个广播域。路由去往目标地址,只需要到达该地址直连网段的路由器即可。
同理,数据返回的静态路由只需要在R3,R4上进行配置。
[R4]ip route-static 12.0.0.0 24 34.0.0.3 [R3]ip route-static 12.0.0.0 24 23.0.0.2
2.实验2
假设此时拓扑变成如下图所示:
如果希望1.1.1.1/24能ping通2.2.2.2/24,在数据包发送方向路由器上的配置如下:
[R1]ip route-static 2.2.2.0 24 12.0.0.2 [R2]ip route-static 2.2.2.0 24 23.0.0.3 [R3]ip route-static 2.2.2.0 24 34.0.0.4
数据包返回方向路由器配置如下:
[R4]ip route-static 1.1.1.0 24 34.0.0.3 [R3]ip route-static 1.1.1.0 24 23.0.0.2 [R2]ip route-static 1.1.1.0 24 12.0.0.1
配置完后此时在R1上ping2.2.2./24发现不通
查看路由器确认配置正确,此时引出了==第二个重点==:默认的源地址是与网关在同一网段的地址,具体到本例,ping操作的源地址是12.0.0.1/24
由于R4上没有配置到12.0.0.0/24网段的静态路由,所以数据包无法返回
尽管R1上没有23.0.0.0/24网段的静态路由但他不影响1.1.1.1/24与2.2.2.2/24地址间的正常通信
- 基于TCP/IP的网络编程接口:Socket
- 配置静态路由使用出站接口和下一跳IP的差别
- {开源接口}之uIP1.0 免费的TCP_IP栈
- 基于TCP/IP的网络编程接口:Socket
- Socket接口是TCP/IP网络的API-C语言版
- Java的TCP/IP编程学习--打印主机所有接口信息
- 关于在Cisco路由器接口上应用ip tcp adjust-mss命令后,TCP头中出现选项的解释以及处理方法
- lwIP RAW TCP/IP接口
- TCP/IP Offload Engine技术的嵌入式以太网接口设计
- 《TCP-IP详解 卷2:实现》学习笔记—接口层分析
- 静态路由使用接口与下一跳IP的区别
- TCPIP接口读卡器delphi例子代码
- TCP/IP之一:网络结构与网络接口层
- 静态路由使用下一跳IP与出接口的区别
- LwIP 协议栈源码详解 ——TCP/IP 协议的实现(六:网络接口结构)
- 基于TCP/IP的SOCKET接口实现网络通信
- 配置静态路由使用出站接口和下一跳IP的差别
- 《TCP/IP具体解释卷2:实现》笔记--接口层
- H3C 以太网接口配置IP、静态路由、TELNET配置
- Linux网络管理员手册(5) 第五章 配置TCP/IP网络 proc文件系统 设置主机名 分配IP地址 IP的接口配置 以太网接口