服务器 频道

简易网络基础架构(9):TCP 封包概念

  【IT168 服务器学院】TCP 封包概念: 防火墙, TCP_Wrappers,
  
  · TCP 封包:

  
  说完了 IP 之后,自然就不能不提 TCP/IP 这个架构底下的 TCP 封包啰!这个 TCP 是 Transmission Control Protocol 的意思,字面上的意思就是传输控制协议啦!嗯!还真是不错的字眼!这个 TCP 就是实际在『传送资料封包』的协议啦!刚刚我们有提到了 IP 这个东西嘛!那么我们怎么将资料寄到其它的地方去呢?很简单,就是系统先将我们的资料打包,然后在这个包裹的上面写上了『来源 IP 与 埠口』及『目的地 IP 与 埠口』,有了这个 IP 门牌,及 埠口 楼层,我们就可以将资料封包正确无误的寄到目的地啦!所以啰,要有 TCP 自然就必须要有 IP (因为 TCP 上面需要记录 IP 来源与目的地啊!)而要有 IP 就必须要有网络卡(必须要有这个东西才行嘛!)然后要网络卡正确的工作又需要正确的驱动网络卡!这样一层一层的下来,嘿嘿!就不难解决我们的网络问题啦!(当然啰, TCP 并不是这么简单的东西,不过我们这里又不是再开班授徒!所以就讲得很简单啦!有兴趣的赶紧买本书来看先!)
  
  · 端口 ( port ):
  
  咦!刚刚提到了 TCP 里面怎么有个陌生的名词?『埠口』?呵呵!其实说穿了,也没有什么了不起的,你可以想象成 IP 就是某家银行,而埠口就是银行里面的各个窗口啦!所以当 TCP 的封包进入到目的地 IP 主机之后,还要视当初送出这个 TCP 封包的时候,我们需要这个 TCP 封包送到那个埠口去!这是因为每个端口口的功能都不一样!最常见到的埠口有这些:
  
  21-20:FTP
  
  22 :SSH
  
  23 :Telnet
  
  25 :SMTP ( e-mail )
  
  80 :WWW
  
  110 :POP3 ( e-mail )
  
  所以啦,当我们将资料丢到目的地主机上面的时候,我们的资料并不是乱丢的啦!而是要丢给实际在负责该封包解析的窗口(埠口)才是呢!那么这些服务对应的埠口在哪里可以查到呢?嘿嘿!你的主机里头就有档案可以负责翻译啦!那就是鼎鼎大名的: /etc/services 这个档案啦!马上给他使用 vi 进入看一下(像不像在上课! ^_^""),当我们激活一个服务的时候,有可能该服务是直接以 port 来激活的,也有可能是经由 /etc/services 对应的 port 号与服务名称来比对的!这个可能依照写作之作者的不同而异!无论如何,我们要查询一个服务的基本埠口时,就可以藉由查询此一档案来简单的得知啰!
  
  · 防火墙概念:

  
  好啦!那么提到了 TCP 就不能不稍微聊一聊甚么是『 Firewall 』呢?简单的来说,最简易的 firewall 就是藉由『分析 TCP 封包,并经由一些既定规则,来将不想让某些 IP 或者是某些埠口的封包踢掉!』举个例子来说,我们都知道 Telnet 似乎不怎么安全,而由上面的埠口看到, telnet 是 port (埠口) 23,那么只要有任何的 TCP 封包带有 port 23 的要求时,你就将他挡到门外!嘿嘿!这就可以称作是防火墙啦!这个部分我们会在后头的 iptables 在详细的说明一下!
  
  · TCP_Wrappers:

  
  除了 TCP 分析的 iptables 软件之外,我们可以藉由相当简单的 TCP_Wrappers 来分析 TCP封包呢!这个功能就更简单啦!单纯的使用 /etc/hosts.allow 及 /etc/hosts.deny 这两个档案的设定值来解析 TCP 封包的规则,并将其设定抵挡原则,嘿嘿!马上就具有最简易的防火墙机制啰!这部份我们也会在后续继续提及!
  
  Gateway 与 Router :
  
  Gateway 与 Router 也是节点当中相当重要的一环,他的主要工作是:
  
  · 将两个不同的网域 ( network ) 进行转译的功能;
  
  · 制作路由 ( route ) 的功能。
  
  刚刚在上头我们知道在同一个 network 当中,资料可以在两个 IP 之间直接沟通,那么如果不在同一个 network 呢?举个例子来说,如果在上面的图标当中,那个 PC1 的 IP 是 192.168.0.1 而 PC2 的 IP 是 192.168.1.1 的话,而且两者之间并没有使用一些通讯协议,单纯只以 TCP/IP 来沟通时,由于位在不同的网段,所以正常状态下『两者之间是无法直接联机的』,这个时候就必须要透过转译器 ( Router ) 的协助啦!这个转译器的功能其实不只如此,他还可以转译不同的操作系统的通讯协议等等的,不过这里我们仅简单的讨论一下他的功能之一而已,Router 就是负责沟通两个或者是多个不同的网段的封包连接啦!所以,如果你的网络切的很细时,由于主机与 router 需要在同一个网域里面,呵呵,这个时候就得需要很多的 router 来进行不同 network 之间的连接了,否则不同的 network 怎么连接~? Linux 目前也可以用来作为 Router 呦!这个在后续我们提到 Router 的时候再来说明!
  
  好了,知道不同的 network 之外,来讨论一下,什么是『路由』呢?路由就是『让你的资料封包可以经由 route table 找到下一个要去的 IP 地址』。简单的以我们系上的网络架构来进行说明,我的工作机假设 IP 是 140.116.44.125 好了,那么我的封包如果是要传送给 140.116.44.202 时,由于我们系上是一个 C Class 的网域,所以 125 <--> 202 可以直接传递!但如果我的资料封包是要送到 tw.yahoo.com ( 202.1.237.21 ) 去呢?这个时候我的 125 就会先判断我的 路由表 ( route table ) 看看预设的网关 ( gateway ) 是哪一部计算机,然后他会将 资料封包传送到该 gateway 主机上去,而 gateway 主机在经由判断他自己的路由表,来判断这个资料封包下一个节点要传送到哪里去!?这一传再传最后才能到达 tw.yahoo.com 这部机器上!
  
  因此, route table 是相当重要的,你的 gateway 就相当的重要啰!因为你的所有的非 network 的封包都是经由 gateway 送出去的,万一你设定 gateway 错误时,嘿嘿!那么自然就无法将你的资料封包 正确的传导出去啰!这是目前在设定 网络参数 当中最容易被搞错的地方啰!
0
相关文章