第1页:涉及TCP的UNIX系统命令和访问控制 第2页:涉及TCP的UNIX系统命令和访问控制 第3页:涉及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报头