概述
传输层能为不同主机上的应用进程之间提供逻辑通讯,在发送端,传输层会将从应用层收到的报文进行分组,转化为报文段,再由网络层分组成数据报进行传送
TCP
-
可靠数据传输
通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达 -
拥塞控制
能对发送的流量进行控制,当网络拥塞时,减少数据的发送 -
数据包格式
UDP
-
不可靠传输
尽最大努力交付,即不保证可靠交付 -
无拥塞控制
因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等) -
数据包格式
TCP的三次握手与四次挥手
-
连接时三次握手
首先主机端发送连接请求报文,服务段接受连接后回复ACK报文,并为这次连接分配资源。主机端接收到ACK报文后也向服务段发生ACK报文,并分配资源,这样TCP连接就建立了
-断开时四次挥手
当主机要断链接时,会向服务端发送一个FIN为1的报文段,服务端收到后发送一个确认报文段ACK,然后服务端会向主机端发送一个FIN报文段,主机端收到会发送一个确认报文段,此时两边用于该次连接的资源会全部释放
-
三次握手原因
防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误,client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接。”。主要目的防止server端一直等待,浪费资源。 -
四次挥手原因
因为TCP是一个全双工协议,必须单独拆除每一条信道。4次挥手的目的是终止数据传输,并回收资源,此时两个端点两个方向的***已经没有了任何关系,必须等待两方向都没有数据传输时才能拆除虚链路,因此必须单独分别在一个方向上终止该方向的数据传输。