1、网络层,目录,一、tcp三次握手协议 二、tcp通信的要素 三、tcp拥塞控制,一、tcp三次握手协议,1、1 TCP三次握手定义,仅在三次握手建立TCP连接时有效。它提示TCP连接的服务端检查序列编号,该序列编号为TCP连接初始端(一般是客户端)的初始序列编号。在这里,可以把TCP序列编号看作是一个范围从0到4,294,967,295的32位计数器。通过TCP连接交换的数据中每一个字节都经过序列编号。在TCP报头中的序列编号栏包括了TCP分段中第一个字节的序列编号。,1.2 TCP三次握手示意图,1.3 FIN:结束标志,带有该标志置位的数据包用来结束一个TCP回话,但对应端口仍处于开放状态
2、,准备接收后续数据。 服务端处于监听状态,客户端用于建立连接请求的数据包(IP packet)按照TCP/IP协议堆栈组合成为TCP处理的分段(segment)。,分析报头信息: TCP层接收到相应的TCP和IP报头,将这些信息存储到内存中。 查找协议控制块(PCB):TCP查找与该连接相关联的协议控制块。如果没有找到,TCP将该分段丢弃并返回RST。(这就是TCP处理没有端口监听情况下的机制) 如果该协议控制块存在,但状态为关闭,服务端不调用connect()或listen()。该分段丢弃,但不返回RST。客户端会尝试重新建立连接请求。 建立新的socket:当处于监听状态的socket收到
3、该分段时,会建立一个子socket,同时还有socket,tcpcb和pub建立。这时如果有错误发生,会通过标志位来拆除相应的socket和释放内存,TCP连接失败。如果缓存队列处于填满状态,TCP认为有错误发生,所有的后续连接请求会被拒绝。这里可以看出SYN Flood攻击是如何起作用的。 丢弃:如果该分段中的标志为RST或ACK,或者没有SYN标志,则该分段丢弃。并释放相应的内存。,1.4 序列号,请注意,我们在TCP连接中发送的字节都有一个序列号。因为编了号,所以可以确认它们的收到。对序列号的确认是累积性的。TCP必须进行的序列号比较操作种类包括以下几种: 决定一些发送了的但未确认的序列
4、号。 决定所有的序列号都已经收到了。 决定下一个段中应该包括的序列号。,对于发送的数据TCP要接收确认,确认时必须进行的:,对于发送的数据TCP要接收确认,确认时必须进行的: SND.UNA = 最老的确认了的序列号。 SND.NXT = 下一个要发送的序列号。 SEG.ACK = 接收TCP的确认,接收TCP期待的下一个序列号。 SEG.SEQ = 一个数据段的第一个序列号。 SEG.LEN = 数据段中包括的字节数。 SEG.SEQ+SEG.LEN-1 = 数据段的最后一个序列号。,二、tcp通信的要素,2.1 终端设备的功能,把待传送的信息和信道上传送的信号互相转换;发送传感器用以感受信
5、号,接收传感器将信号恢复成信息。 传感器必须能正确地表达待传送的信息的实质,并能反变换成所需信息。这是高保真度和高质量,同样它也需与费用作权衡。 传感器是终端机的终端。,2.2 处理信号的设备以使能与信道匹配:,(b)处理信号的设备以使能与信道匹配: 对于网内中继线两端的设备(端机),只是要求有处理信号的功能,而不需要传感器。 线路匹配:包括物理特性的匹配(电流电压值应为线路所容许),和阻抗的匹配; 频带匹配:基带信号必须迁移到所分配的频带内,带外的残余尽可能地小以免影响别的信道; 对半双工线路还要使收到的信号不混入发出的信号,至少应抑止回音干扰。,2.3 tcp通信示意图,三、tcp拥塞控制
6、,3.1 拥塞,由于一个或多个交换节点(如路由器)的数据报过载,出现严重的时延。 当系统出现轻度拥塞时,路由器的队列中有大量的数据报排队等待路由; 系统严重拥塞时,数据报的总数超过了路由器的容量,路由器只能丢弃数据报。 由于TCP采用了超时重传机制,因此,如果拥塞不加以控制,可能导致大量的报文重传,并再度引起大量的数据报丢弃,直到整个网络瘫痪。这种现象称为拥塞崩溃,3.2 许可的窗口,TCP通过滑动窗口机制来控制发送的数据量,窗口的大小通过一下公式来确定: 许可的窗口=Min(通知窗口, 拥塞窗口) 拥塞窗口则根据报文超时的情况动态调整,用于避免网络交换节点数据报过载。 TCP许可的窗口大小应该同时满足两个窗口的要求,因此,取两个窗口大小的较小值,2.3 TCP拥塞窗口的控制,慢启动当启动一个新的连接或者在拥塞后重新发送报文段时,以一个报文段作为拥塞窗口的初始值,以后每次收到一个确认之后,将拥塞窗口增加一倍; 拥塞避免在慢启动技术的基础上,增加一个拥塞窗口的增加条件。当拥塞窗口的大小达到上次拥塞是窗口大小的一半时,以后窗口中所有的报文段都确认后,窗口大小增加1,而不是1倍; 加速递减一旦发现丢失报文段,立即将拥塞窗口的大小减半,直到窗口大小为1。对于保留在发送窗口中的报文段,其超时定时器的时限增加1倍。,2.4 TCP拥塞窗口的控制,