全部博文(471)
分类: 网络与安全
2013-06-16 11:28:14
一:TCP/IP相关问题
连接端及标记
IP地址和端口被称作套接字,它代表一个TCP连接的一个连接端。为了获得TCP服务,必须在发送机的一个端口上和接收机的一个端口上建立连接。TCP连接用两个连接端来区别,也就是(连接端1,连接端2)。连接端互相发送数据包。
一个TCP数据包包括一个TCP头,后面是选项和数据。一个TCP头包含6个标志位。它们的意义分别为:
SYN: 标志位用来建立连接,让连接双方同步序列号。如果SYN=1而ACK=0,则表示该数据包为连接请求,如果SYN=1而ACK=1则表示接受连接。
FIN: 表示发送端已经没有数据要求传输了,希望释放连接。
RST: 用来复位一个连接。RST标志置位的数据包称为复位包。一般情况下,如果TCP收到的一个分段明显不是属于该主机上的任何一个连接,则向远端发送一个复位包。
URG: 为紧急数据标志。如果它为1,表示本数据包中包含紧急数据。此时紧急数据指针有效。
ACK: 为确认标志位。如果为1,表示包中的确认号时有效的。否则,包中的确认号无效。
PSH: 如果置位,接收端应尽快把数据传送给应用层。
TCP/IP的一些实现原则
当一个SYN或者FIN数据包到达一个关闭的端口,TCP丢弃数据包同时发送一个RST数据包
当一个RST数据包到达一个监听端口,RST被丢弃 当一个RST数据包到达一个关闭的端口,RST被丢弃
当一个包含ACK的数据包到达一个监听端口时,数据包被丢弃,同时发送一个RST数据包
当一个不包含SYN位的数据包到达一个监听端口时,数据包被丢弃
当一个SYN数据包到达一个监听端口时,正常的三阶段握手继续,回答一个SYN|ACK数据包
当一个FIN数据包到达一个监听端口时,数据包被丢弃
原则1:
当一个SYN或者FIN数据包到达一个‘关闭了的’端口,
服务器丢弃该数据包,并返回一个RST数据包;
如图(aaa)
原则2:
当一个RST数据包到达一个‘监听端口或者关闭的’端口,
RST数据包都会被服务器丢弃。
原则3:
当一个ACK数据包到达一个‘监听的’端口,
服务器会丢弃这个数据包,并回应一个RST数据包。
如图(ccc)
原则4:
当一个FIN数据包到达一个‘监听端口’时,数据包将会被丢弃。
如图(ddd)