TCP路由网络通信
路由器
实现跨网段通信 路由器的工作原理是基于路由器中的路由表来实现数据包的路径选择
当路由器收到一个数据包的时候,会读取数据包的目标IP地址,根据目标IP地址来匹配路由表中的规则
单个路由器不会负责数据包全程的发送,只负责把数据包转发到下一个路由器即完成了任务
路由分类
1.主机路由 到达网络中某个单独主机的路径
2.网络路由 到达某个网段的路径
3.默认路由 目标网络为 0.0.0.0 发送到连接互联网的最近路由
路由表的构成
1.目标 2.netmask 3.interface 4.gateway
解释:
目 标: 数据包发送的目标路径
netmask: 子网掩码 确定网段的网络ID
interface: 本路由器上的出口,类似于指定使用电脑上的哪张网卡
gateway:
1.直连 直连网络的网关是不需要配置的 直连网络表示和本路由器接口直接相连的网段
2.非直连 下一个路由器临近本路由器的接口地址
路由表配置
路由器中的直连网络是不需要手动配置,系统会自动生成 只有非直连的网络才需要添加路由记录.
路由表不单单是存在路由器中的,电脑中也存在路由表

当接口一样,网关也一样的时候 可以把这些设置成默认路由(配置成默认路由是有条件的,那就是路由器到所有非直连网段只有一个出口)

平时我们在电脑上配置默认网关就是为了生成一个默认路由记录,电脑主机的路由表中如果有默认路由而没有配置默认网关的话同样可以上网
但是如果只有默认网关而没有默认路由的话,电脑同样不能上网
路由操作命令
添加路由
route add -net/-host 8.8.8.8 netmask 255.255.255.0 gw 8.8.8.1
route add default gw 8.8.8.1 netmask 255.255.0.0
删除路由
route del default gw 8.8.8.1
route del -net/-host 8.8.8.8 netmask 255.255.255.0
配置路由表记录的时候所有的gw 必须和当前主机的任意一个网卡上的IP处于同一个网段,否则此条路由记录是无法添加成功的.
主机通讯过程步骤(主机A访问B)
1.主机A首先通过IP和netmask做运算判断主机B是否和A在同一个网段
2.如果在同一个网段则通过arp协议和B的IP获取B的MAC地址
3.如果不在同一个网段则通过arp协议和网关的IP获取网关的MAC地址
4.网关通过B的IP和自己的路由表转发数据包到下个路由器,直到转到和B在同一个网段的路由器
5.最后一个路由器通过arp协议和B的IP获取到B的MAC地址
3.数据包在路由器之间传递的时候只有源MAC地址和目标MAC地址在不停的发生变化.
4.没有路由的主机是无法和网络中的其它主机进行通信的.
5.两台主机要能通信有两个层面是需要相互连通的
1.物理层 两台主机都用网线连接到了互联网,这两台主机可以在同一个网段(在一个路由器的同一端),甚至可以连接在同一个交换机.
即使两台主机连接在同一个交换机上,如果对这两台主机人为的配置成不同网段的IP,那么这两者同样不能ping通.
2.网络层
1. 可以把两台主机的IP设置到同一个网段
2. 可以分别给两台主机的路由表中添加到对方主机网段的路由记录
6.两张网卡如果物理上相通,但是配置的IP地址不在同一个网段,要想这两台主机相通,配置一条无网关的路由记录即可
这种情况下跨这两个网段通信是不需要添加路由器的,只需要在主机中添加一条路由记录
route add default dev ens37
route add default dev eth1
7.用户给主机配置IP 网关 netmask 本质上都是为了配置路由,路由才是网络主机通信的关键。
Linux配置成路由器
cat /proc/sys/net/ipv4/ip_forward 改成 1 启动linux的数据包转发(路由)功能.如果不启动,系统默认会把目标不是自己的数据包丢弃掉.
TCP路由网络通信的更多相关文章
- 程序猿修仙之路--数据结构之你是否真的懂数组? c#socket TCP同步网络通信 用lambda表达式树替代反射 ASP.NET MVC如何做一个简单的非法登录拦截
程序猿修仙之路--数据结构之你是否真的懂数组? 数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构 .要想在之后的江湖历练中通关,数据结构必不可少. ...
- Traefik 2.0 tcp 路由试用
对于tcp 的路由是基于sni (需要tls)但是可以通过统配(*) 解决不试用tls的,当然也可以让Traefik 自动生成tls 证书 以下是测试http 以及mysql 的tcp 路由配置(de ...
- c#socket TCP同步网络通信
一.socket简介 socket就是套接字,它是引用网络连接的特殊文件描述符,由三个基本要素组成: 1: AddressFamily(网络类型) 2: SocketType(数据传输类型) 3:Pr ...
- Java中的TCP/UDP网络通信编程
127.0.0.1是回路地址,用于测试,相当于localhost本机地址,没有网卡,不设DNS都可以访问. 端口地址在0~65535之间,其中0~1023之间的端口是用于一些知名的网络服务和应用,用户 ...
- Java TCP/UDP网络通信编程
本文转自:http://www.cnblogs.com/cdtarena/archive/2013/04/10/3012282.html 网络应用中基本上都是TCP(Transmission Cont ...
- boost::asio::ip::tcp实现网络通信的小例子
同步方式: Boost.Asio是一个跨平台的网络及底层IO的C++编程库,它使用现代C++手法实现了统一的异步调用模型. 头文件 #include <boost/asio.hpp> 名空 ...
- python利用scapy模块写一个TCP路由追踪和扫描存活IP的脚本
前言: 没有前言 0x01 from scapy.all import * import sys from socket import * import os from threading impor ...
- TCP/IP网络通信-数据传输
1.通过网络IP实现数据的传输. 2.服务器端代码 [ 服务端主要通过Socket类来创建一个监听等待客户端连接,服务端发送用send方法,接收用Receive方法] using System.Ne ...
- QT从入门到入土(九)——TCP/IP网络通信(以及文件传输)
引言 TCP/IP通信(即SOCKET通信)是通过网线将服务器Server端和客户机Client端进行连接,在遵循ISO/OSI模型的四层层级构架的基础上通过TCP/IP协议建立的通讯.控制器可以设置 ...
随机推荐
- 【代码审计】YUNUCMS_v1.0.6 后台代码执行漏洞分析
0x00 环境准备 QYKCMS官网:http://www.yunucms.com 网站源码版本:YUNUCMSv1.0.6 程序源码下载:http://www.yunucms.com/Downl ...
- vs2017更新后web项目部分后台代码类没有颜色,也没有自动提示输入功能
vs2017有的版本更新后默认.net framework框架是.net framework4.6.1,将项目的.net framework框架更改为4.6.1,颜色和自动提示出现
- 23种设计模式之原型模式(Prototype)
在系统开发过程中,有时候有些对象需要被频繁创建,原型模式通过给出一个原型对象来指明所要创建的对象的类型,然后通过复制这个原型对象的办法,创建出更多同类型的对象.原型模式是一种对象创建型模式,用原型实例 ...
- Power BI 报表服务器发布
Power BI 报表服务器让你的用户能够访问数据.获取见解,并能够使用 SQL 报表服务器服务的企业报告功能 - 这一切都在现代本地解决方案中完成.让用户能够直观浏览数据并快速发现模式,以便更快作出 ...
- for循环将字典添加到列表中出现覆盖前面数据的问题
出现问题: rets = [{'id':1},{"id":2},{"id":3}] context = {} context['count'] = len(re ...
- TCP通信粘包问题分析和解决
转载至https://www.cnblogs.com/kex1n/p/6502002.html 在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的.因此TCP的socket编程,收发 ...
- 使用 tabindex 改变Tab 键顺序
使用 tabindex原文 https://developers.google.cn/web/fundamentals/accessibility/focus/using-tabindex 在表单上使 ...
- 一次项目实践中DBCP数据库连接池性能优化
关于数据库连接池DBCP的关注源于刚刚结束的一轮测试,测试内容是衡量某Webserver服务创建用户接口的性能.这是一款典型的tomcat应用,使用的测试工具是Grinder.DBCP作为tomcat ...
- 引用:WebAPI中的定时处理-使用Quartz.Net
引用: https://blog.csdn.net/lordwish/article/details/78926252 主要是给自己做个记录,不用到处找,这篇文章写的很全,推荐 文中:在项目的Glob ...
- 文末有福利 | IT从业者应关注哪些技术热点?
7月14-15日,MPD工作坊北京站即将开幕,目前大会日程已经出炉,来自各大企业的技术专家,按照软件研发中心的岗位职能划分,从产品运营.团队管理.架构技术.自动化运维等领域进行干货分享,点击此[链接] ...