流量控制:TCP提供流量控制服务,但是UDP不提供流量控制服务。在UDP通信方式中,UDP将会把这些报文段添加到相应套接字“前面”的一个有限大小的缓存中。进程每次从缓存中读取一个完整的报文段。如果进程从缓存中读取报文段的速度不够快,那么缓存将会溢出,并且将丢失报文段。
三次握手:第一步,客户端TCP向服务器端TCP发送一个特殊的TCP报文段。报文段首部中的一个标志位(SYN比特)被置为1,因此这个报文段称为SYN报文段;客户随机选择一个初始序号,将此序号放置于该起始的TCP SYN报文段的序号字段中。该报文段被封装在一个IP数据报中。
第二部,包含TCP SYN报文段的IP数据报到达服务器主机,从数据报中提取出TCP SYN报文段,为该TCP连接分配TCP缓存和变量,并向该客户TCP发送允许连接的报文段。这个报文段的组成是:SYN比特置为1,TCP报文段首部的确认号字段被置为client_isn+1.最后,服务器选择自己的初始序号(server_isn),并将其放置到TCP报文段首部的序号字段中。这个称为SYNACK报文段。
第三步,收到SYNACK报文段后,客户也要给该连接分配缓存和变量。客户主机则向服务器发送另外一个报文段。这最后一个报文段对服务器的允许连接的报文段进行了确认。SYN比特置为0,这时可以在报文段负载中携带客户到服务器的数据。
在三次握手之后,SYN比特都将被置为0,
四次挥手:参与TCP连接的两个进程中的任何一个都能终止该连接。当连接结束后,主机中的资源(缓存和变量)都将被释放。第一步,客户TCP向服务器进程发送一个特殊的报文段,其首部中的一个标志位即FIN比特被置为1;
第二步,服务器接收到该报文段后,就向发送方回送一个确认报文段,
第三部,服务器发送自己的终止报文段,FIN比特置为1
第四步,客户对这个服务器的终止报文段进行确认。
拥塞控制方法:端到端拥塞控制,TCP必须通过端到端的方法解决拥塞控制,因为IP层不会向端系统提供有关网络拥塞的反馈信息。TCP报文段的丢失(通过超时或3次冗余确认得知)被认为是网络拥塞的一个迹象,TCP会相应地减小其窗口长度。
网络辅助的拥塞控制,网络层构件即路由器向发送方提供关于网络中拥塞状态的显式反馈信息。拥塞信息从网络反馈到发送方的两种方式:一、直接反馈信息由路由器发给发送方,即阻塞分组的形式。二,路由器标记或更新从发送方流向接收方的分组中的某个字段来指示拥塞的产生,一旦收到一个标记的分组后,接收方就会向发送方通知该网络拥塞指示。这要经过一个完整的往返时间。
TCP拥塞控制:原则:一个丢失的报文段意味着拥塞,因此当丢失报文段时应当降低TCP发送方的速率,此时减小它的窗口长度;一个确认报文段指示该网络正在向接收方交付发送方的报文段,因此,当对先前未确认报文段的确认到达时,能够增加发送方的速率。确认的到达被认为是一切顺利的隐含指示,即报文段正从发送方成功交付给接收方。络不拥塞,拥塞窗口长度因此能够增加。;带宽探测,给定ACK指示源到目的地路径无拥塞,而丢包事件指示路径拥塞,TCP调节其传输速率的策略是增加其速率以响应到达的ACK,除非出现丢包事件才减小传输速率。。注意到,网络中没有明确的拥塞状态信令,即ACK和丢包事件充当了隐式信号,并且每个TCP发送方根据异步于其它TCP发送方的本地信息而行动。