还是上一篇的问题
在一内部局域网中,
client  内网地址为 10.0.0.2    
web  服务器内网地址为 10.0.0.1    外网地址为  211.6.15.1    域名为  xx.love.com

问题:在内网10.0.0.2的机器上访问   外网地址 211.6.15.1 或者域名  xx.love.com  都无法访问,

上一篇中提到的cisco asa设备 不能访问是因为 asa 它不允许数据流从内部流到外部再流回内部,所以连接会超时


     这里从tcp协议的角度来分析下:
 包  动作 包 目的地址                 包  源地址                
  10.0.0.2发出包(第一次握手)   211.6.15.1  10.0.0.2
 到达路由器外网端口  nat 转换后   10.0.0.1  10.0.0.2
 10.0.0.1接包后  回复包(第二次握手)   10.0.0.2  10.0.0.1
 包到达交换机 直接被转发(不过路由器)!    
 10.0.0.2 接到包  10.0.0.2  10.0.0.1
 10.0.0.2此刻在等待211.6的第二次握手    
 10.0.0.2却接到10.0.0.1的第二次握手  丢弃    
     
 10.0.0.1 却还在等待 10.0.0.2的第三次握手    
 没有结果的等待……    
!在这一步中  包也可能经过交换机到达路由器的内网接口,由于是发往内部主机的,路由器还是不会启用pat转换,而是通过直连路由直接转发给你的客户机10.0.0.2,这样你的客户机10.0.0.2仍然收不到源地址为211.6.15.1的回应包,还是不能成功建立连接。

!在这里还有一种情况   ,如果路由器将你发往211.6.15.1的数据包算做是发往外网,对其做了pat转换,或路由器是强制地址转换的,那么该数据包的源地址将变为211.6.15.1到达路由器外部接口,而路由器如果有相关防错功能,也许该数据包就直接被干掉了。
       如果可以继续转发那么该数据包将以源地址为200.200.200.1目标地址192.168.0.1到达web服务器。而服务器回应的数据包就会以目标地址200.200.200.1 源地址200.200.200.1到达路由器外部接口。而路由器外部接口此时就晕了。
   解决方法:
      有些路由器内部设置可以  纠正此问题。
      如果不通过路由器解决,可以在内网建一台dns服务器。
      自建dns太费时间,也可以修改机器的host文件

还是端口回流问题 TCP协议解析的更多相关文章

  1. TCP协议解析

    本文摘抄自:http://www.kuqin.com/shuoit/20141018/342719.html 本文描述了TCP协议,首先简单介绍了TCP完成了一些什么功能:介绍了TCP报文格式,以及典 ...

  2. 【.NET6+Modbus】Modbus TCP协议解析、仿真环境以及基于.NET实现基础通信

    前言:随着工业化的发展,目前越来越多的开发,从互联网走向传统行业.其中,工业领域也是其中之一,包括各大厂也都在陆陆续续加入工业4.0的进程当中. 工业领域,最核心的基础设施,应该是与下位硬件设备或程序 ...

  3. TCP协议解析及相关问题

    TCP协议是什么: TCP是一种传输控制层的协议(TCP,Transmission Control Protocol)是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议.也就是要 ...

  4. 初识TCP协议

    一.引言 发送一段TCP数据大致需要经过:用户封装 –> TCP封装 –> IP封装 –>帧封装 Note:用户封装没啥好说的,都是客户自己决定的,在一些简单的应用情况下,这个步骤可 ...

  5. 第3章 TCP协议详解

    第3章 TCP协议详解 3.1 TCP服务的特点 传输协议主要有两个:TCP协议和UDP协议,TCP协议相对于UDP协议的特点是 面向连接使用TCP协议通信的双方必须先建立连接,完成数据交换后,通信双 ...

  6. TCP协议调试工具TcpEngine V1.3.0使用教程

    简介   这里说的TCP协议调试定义是在开发长连接TCP协议应用时,为了验证代码流程或查找bug,需要与对端交互数据过来,当需要时可以暂停发送:单条发送:跳过发送:正常发送:发送时修改数据等.   T ...

  7. 传输层tcp协议以及scoket套字节方法

    一.传输层 1.传输层的由来: 网络层的IP帮我们区分子网 以太网的Mac帮我们找到主机 所以通过IP和Mac找到了一台特定的主机 如何找到该特定主机的应用程序呢? 答案是通过端口,端口即应用程序与网 ...

  8. syslog-ng 配置(tcp协议)

    一.概况 两台服务器,都安装syslog-ng,一台服务端,一台客户端: server:192.168.209.19 client:192.168.209.18 二.安装 采用yum安装,执行: yu ...

  9. TCP协议疑难杂症全景解析

    说明: 1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看起来是要比代码更轻松的3).针对对象:对TCP已经有了全面了解的人. ...

随机推荐

  1. webpack 三

    之前06年写了两篇自己研究webpack的文章,由于webpack已经升到了4.x,今天用起来发现有点小变化,重新自己建一个简单的项目,这里记录一下过程 1.安装webpack和webpack-cli ...

  2. acmPush模块示例demo

    感谢论坛版主 马浩川 的分享. 模块介绍:  阿里移动推送(Alibaba Cloud Mobile Push)是基于大数据的移动智能推送服务,帮助App快速集成移动推送的功能,在实现高效.精确.实时 ...

  3. log日志拦截

    简介 主要记录一下项目中的日志拦截和异常拦截,由于之前公司项目为单体项目,所使用的日志拦截较为简单,只是用拦截器进行前后对日志的拦截,异常拦截直接使用@ExceptionHandler,而现在公司接口 ...

  4. 洛谷 P1463 [POI2002][HAOI2007]反素数

    题目链接 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1, ...

  5. 5.JavaSE之数据类型详解

    数据类型: 强类型语言: 要求变量的使用严格要求符合规定,写错了就不行,所有变量都必须先定义后才能使用,否则是不能使用的. 比如Java.C++都是强类型语言,也就是说,一旦定义了一个变量,只定义了某 ...

  6. Java 使用 UnixSocket 调用 Docker API

    在 Docker 官网查阅 API 调用方式 例如:查询正在运行的容器列表,HTTP 方式如下: $ curl --unix-socket /var/run/docker.sock http:/v1. ...

  7. CSS-06-CSS颜色表示方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. Web自动化测试项目(五)测试结果通知

    一.邮件通知 使用第三方邮件发送库yagmail github地址:https://github.com/kootenpv/yagmail 安装 pip3 install yagmail demo.p ...

  9. 【Java并发基础】局部变量是线程安全的

    前言 方法中的变量(即局部变量)是不存在数据竞争(Data Race)的,也是线程安全的.为了理解为什么,我们先来了一下方法是如何被执行的,然后再分析局部变量的安全性,最后再介绍利用局部变量不会共享的 ...

  10. STM8 ADC1连续模式切换通道干扰问题的解决

    初始化ADC1: void Init_ADC(void){ GPIO_Init(GPIOD, (GPIO_Pin_TypeDef)(GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_5|G ...