TCP UDP及socket编程学习(一)

TCP基础知识要点(一)

TCP 特性

TCP/UDP: 传输层,提供进程到进程的通信能力

IP:网络层,只能将IP数据包寻址到主机

因此要实现进程间通信只靠主机地址是不够的,还要加入进程的表示,即端口号(软件端口号)


TCP的确认和超时重发机制

1.确认机制:

TCP的基本传输单元是TCP数据段,其长度是可变的。由于TCP要提供的是端对端无差错的数据传输,所以TCP接收到数据后,将对数据进行校验,如果数据正确,则TCP将向对端发送确认。当接收端发出确认信息,表明之前的信息已正确收到,确认信息为希望接收的下一个字节的序列号。

2.超时重传机制:

TCP在发完一个数据包后,数据信息还保存在TCP的缓冲区中,知道接收方收到对端的确认信息(ACK)后才从缓冲区删掉,如果一段时间没有收到确认信息,发送方将重新发送,直到重发次数超过一定次数,那么TCP发送端将认为对端不可达,断开TCP链接。(比如收到了 30 31 33 34 35, 那么接收方将发送32,表示下一个希望发送的是32)。

TCP采用回带技术,在发送数据的段中回带对方的确认信息,这样可以省大量数据包,确认信息不用单独使用数据包传输。

影响超时重传的关键因素是定时时长,这个时长应当随着网络状况的变化而变化。目前TCP采用RTT(round trip time)为发送到接收到确认的时间长度,TCP根据每次连接的性能来定RTT值。

3.TCP滑动窗口

接收方通告的接收窗口大小。TCP通过滑动窗口协议来实现拥塞控制。就是发送方最多能发送控制窗口大小的数据,此后发送方将不发送数据,知道接收到发送方发来的ACK,窗口才能向前移动。控制窗口的大小有两个因素决定:一个是发送端自身的拥塞窗口控制,一个是接收方根据剩余缓冲区的数量发来的窗口大小,控制窗口的大小是两者中最小的。

在没有拥塞时,拥塞窗口和接收方通告的窗口相同,当TCP发现拥塞发生时,将减小拥塞窗口,拥塞消除后,增大拥塞窗口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章