TCP会话过程详解


解读防火墙

到底什么才是防火墙?它工作在什么位置,起着什么作用?查阅历史书籍可晓得,古代使用木制结构房屋的时候为防止火灾的发生和蔓延,人们将坚固的石头堆砌在房屋周围作为屏障,而这种防护结构就被称为“防火墙”(FireWall)。时光迅速穿越到了21世纪,如今有着各种变相的攻击手段,为了保护计算机的安全,聪明的人类开发出一种能阻止计算机之间直接通信的技术,并沿用了古代“防火墙”。到此,防火墙渊源史被我们挖出来了

用专业数据来说,防火墙是一种位于两个或多个网络间,实施网络之间访问控制的组件集合。对于普通用户来说,所谓“防火墙”,是指一种被放置在自己的计算机与外界网络之间的防御系统,从网络发往计算机的所有数据都要经过他的判断处理后才会决定能不能把这些数据交给计算机,一旦发现不符合规则的数据,防火墙就拦截下来,由此实现了对计算机的保护。

防火墙分类

一般主要分为两类:包过滤防火墙;应用层网关防火墙

包过滤防火墙,使用一个软件查看所流经的数据包的包头(header),来决定整个包的命运。它可能会丢弃(DROP)这个包,可能会接受(ACCEPT)这个包,也可能执行其他复杂动作。包过滤是一种内置于LINUX内核路由功能之上的类型,其防火墙工作在网络层。数据包过滤是通过对数据包的IP头和TCP头或UDP头的检查来实现的,分为简单包过滤-----根据tcp/ip协议;带状态检查的包过滤---- 4中状态new  established  invilid related (因此tcp的状态机又是一个不得不弄懂的内容,接下来就会学习到)

应用层网关防火墙:顾名思义,是工作在应用层,并且是根据数据包传输的实际数据进行判断的

引入TCP/IP相关知识

TCP三次握手建立连接

在TCP/IP协议中,TCP洗衣提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。(SYN表示同步请求位,ACK表示确认位,确认号是确认对方的序列号+1)

图1

第一次握手:建立连接时,客户端A发送SYN请求到服务器B,请求建立连接,第一次序列号是随机的300

第二次握手:服务器B收到SYN请求,并发送A一个ACK确认,同时自己也发送了一个SYN包,请求对方建立连接。此时B的序列号是随机的,确认号为303(确认对方的序列号)

第三次握手:A收到B的SYN+ACK之后,向B发送ACK确认,双发达成协议

TCP四次断开连接

(FIN--finish ,是断开请求)

图2

第一次断开:A发送一个FIN请求断开,用来关闭客户A到服务器B的数据传输

第二次断开:B收到FIN,则回复一个ACK,表示确认收到断开请求了

第三次断开:B关闭与A的连接,发送一个FIN给客户端

第四次断开:A发送ACK给B,确认收到断开请求

双方都同意“分手了”并且协商好了,那就分手吧TCP

  • 1
  • 2
  • 下一页

相关内容