开发者社区


C++/C | Java | .Net/Windows | Linux/Unix | 开源 | 其他
首页 - 编程
编程
全文搜索:   

涉及TCP的UNIX系统命令和访问控制
作者: ZDNET CHINA 特稿
2002-03-25 10:40:32



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报头

 

【下一页】
声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
近期相关报道:
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
CNET NETWORKS 中国: 爱卡汽车网 | CNET科技资讯网 | e询网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | PChome | SPN | 网友世界 | ZDNet China | 中关村在线
CNET NETWORKS 美国: BNET | CNET.com | CNET Download.com | CNET News.com | CNET Reviews | CNET Shopper.com | GameSpot | MP3.com | mySimon | Release 1.0 | Search.com | TechRepublic | TV.com | Webshots | ZDNet
Copyright (c) 2006 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号