涉及TCP的UNIX系统命令和访问控制

ZDNet软件频道 时间:2002-03-25 作者:ZDNET CHINA 特稿 |  我要评论()
本文关键词:UNIX
本文将对TCP做一番深入讨论,同时向读者解释该如何使用有关的UNIX工具来监控网络、保证网络的安全。

TCP(传输控制协议)和IP(网际协议)是Internet世界占统治地位的通信协议。TCP起源于美国国防部的Arpanet项目,RFC 793:Transmission Control Protocol.对TCP协议进行了全面的定义和说明。在现实生活中,你在发送和接收电子邮件的时候、在下载文件或者访问网站的时候就在同时使用着TCP和IP协议。本文将对TCP做一番深入讨论,同时向读者解释该如何使用有关的UNIX工具来监控网络、保证网络的安全。

TCP的作用是什么?

TCP是美国国防部设计的两种传输协议之一,另一种是UDP。UDP是一种不可靠的网络服务,负载比较小,而TCP则是一种可靠的通信服务,负载相对而言比较大。TCP采用套接字(socket)或者端口(port)来建立通信。你或许比较熟悉某些常用的端口,比如,FTP使用端口21,而SMTP则使用端口25。TCP给端口到端口通信提供了错误和流量控制机制,同时TCP还负责建立连接、处理终止和中断的端对端通信控制。

通常情况下我们认为TCP相比UDP具有更大的通信负载,但是,UDP却不具备TCP的控制特性,TCP用了大约20个字节来发送一个65Kbps的数据块,这个报头占整个数据块的比重也不过3%。所以,总得来看,这个负载是合理的,何况还令通信具有了可靠性。

TCP报头

现在我们就来仔细分析一下TCP包的报头部分。报头最小也得20个字节,所含信息内容见表A。

表A

源端口

16位

主叫端口的编号。

目标端口

16位

被叫端口的编号。

序列号

32位

这个编号保证数据按照正确的顺序得到处理。号码代表封装数据的第1个字节的序列号,按照顺序分段加1。

确认号

32位

代表下一个希望接收的TCP字节。

数据偏移

4位

TCP报头中32位字的数目。

保留

6位

设置为0。

标志

6位

控制连接和数据流的建立和终止:
URG—紧急指针字段
ACK—确认字段
PHS—推函数
RST—复位连接
SYN—同步序列编号
FIN—发送方没有更多数据需要传输

窗口

16位

接收窗口的大小,表示发送方希望接受的字节数目。

校验和

16位

根据IP地址字段、TCP报头和长度的校验和。

紧急指针

16位

紧急数据之后第1个字节的指针,让接收方知道有多少紧急数据到来。

选项

可变

当前只定义了最大TCP段大小。


实际的数据流在报头之后。在同IP合用的情况下,IP头用自己的IP地址负责两部主机之间的信息路由,这些信息都放在了TCP报头之前。图A显示一个TCP头。

图A TCP报头

 


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134