网络传输层UDP/TCP
在TCP/IP协议中,使用源IP,源端口号,目的IP,目的端口号,协议号这个的婺源组来表示一个通信的.(课已使用netstat-n查看
传输层--UDP 协议头包括:源端口号,目的端口号,UDP长度,UDP校验和,数据.
特点:无连接的,直到对方的ip和端口号就可以直接进行数据的传输,不需要建立连接.
不可靠:没有确认机制,也没有重传机制,如果因为网络故障的问题在发送数据给对方的时候,对方没有接收都会导致丢包的现象,而发送层完全不知道.
面向数据报:不能灵活的控制读写数据的次数和数量(使用UDP数据传输的时候最多只能发送64k的数据).
UDP协议没有真正的发送缓冲区,是直接交给内核处理的,UDP具有接收缓冲区但是接收缓冲区不能保证保证数据的读取顺序性.
传输层--TCP(传输控制协议)
协议格式:源端口号,目的端口号,32为序号,32为确认序号,4为位报头长度,6位标志位,16位窗口大小,16校验和,16应急指针.选项,数据.
TCP的确认应答机制(ACK):发送端给接收端,发送数据包之后接收端,接收到了之后给发送端一个相应下一个发送数据包的位置(ACK)
超时重传机制:发送端给接收端发送数据包之后接收端需要给发送端一个相应(ACK)但是如果发送端一直没有接收到相应,一段时间之后就进行重传.
特点:重传机制依赖发送缓冲区来重发的.最大等待时间就是发送数据和回应数据的一个流程的时间.
连接管理机制:在正常的情况下,TCP需要经过三次握手建立连接,经过四次握手断开连接.
确认连接:假如A建立B连接
A发送数据包SYN给B,
B接收到SYN数据包,之后给A一个ACK相应同时包括一个B的SYN数据包.
A接收到之后给B一个ACK的相应.
断开连接:假如A到B的关闭连接
A发送一个FIN断开连接请求到B;
B给A一个ACK相应.
B发送一个FIN断开请求到A;
A给B一个ACK相应.
滑动窗口:单个数据发送的时候效率比较低,所以我们使用滑动串口发送的时候可以同时并行同时发送对个数据包给接收端.不需要等待ACK相应.
接收到第一个ACK后,滑动窗口向后移动,继续发送第五段的数据.
窗口越大数据的吞吐率就越高.
特殊情况(1);数据包到达了但是相应ACK丢失了.
这种情况下,部分的ACK丢失了并不重要的,因为可以通过后序的ACK进行确认的.
(2)数据包直接丢失了.
如果数据包丢失了,后序ACK相应一直都是丢失这个包的其实位置.之后窗口就卡在了这个位置,之后这个窗口的其余数据都传送完了,后面进行对这个丢失的数据进行重发.更新这个ACK相应节点位置.
流量控制:接收端接收数据的的素都是有限的,如果返送段发送数据太快了导师接收端缓冲区一下打满了.这个时候发送端在据需发送这个数据的时候都会发生丢包的现象.
因此TCP引入了流量的控制,在ACK相应的时候在首部,写入了窗口的大小相应给发送端,从而来控制发送数据的多少或者是不是还继续发送.
堵塞控制:因为网络上有很多的计算机,都在发送数据,这个时候又有可能网络不是很好,贸然的发送数据会导致网络更加的拥堵,所以我们选择了慢启动这个机制,首先,将少量的数据发送出去探探路.之后慢慢加大数据的发送量.
延迟应答:不是接收端接收到数据之后立马给出相应,他是需要等待一会,这个时候可能接收缓冲区可能有些数据已经清除了,这个时候ACK携带的窗口更大相应给发送端.这样效率更高.
捎带应答:发送端给接收端发送数据的时候需要接收端相应,但是这个时候如果接收端需要给发送端发送数据的时候,这样相应和发送一块出去,也就是打了一个顺风车.

浙公网安备 33010602011771号