1.传输层的作用
提供了应用进程间的端到端的连接,网络包从客户端到服务器后通过传输层的作用来识别自己属于哪个进程,另外传输层协议能提供应用的多路复用、分用功能、可靠数据传送、带宽保证,因为网络层提供的是尽力而为的服务,它不保证数据的有序性和非重复性,是不可靠的无连接服务。所以需要传输层来进行数据包的丢失、损坏、乱序等检测。
多路复用:指多个应用进程都可以使用同一个传输层协议传送数据.
分用:接收端将传输层报文段交付到正确的套接字的工作
可靠数据传送:从握手和松手连接来保证连接的建立和释放的可靠,然后在连接当中通过超时重传和确认机制来具体保证数据的可靠性,通过拥塞控制和流量控制来保证数据传输过程的稳定性
(1)超时重传:客户端在一定时间内没有收到来自服务端的确认报文就认为刚才发送的数据分组丢失了,因此要重传,所以要注意客户端在发送完分组后,必须暂时保留已发送分组的副本,在收到确认后才能清楚。 分组和确认分组必须编号来明确哪个发出去的分组收到了确认. 超时计时器的设置应当比数据在分组传输的往返时间更长一些,如果重传s时间设置的很长就会降低通信效率,很短的话会产生不必要的重传.
公式 : 新的RTT = (1 - a) * 旧的RTT + a * 新的RTT ( RTT : 往返时间)
(2)停止等待协议:停止等待就是每发送完一个分组后就停止发送,等待对方确认,在收到确认后再发送下一个分组.信道利用率极低.
(3)连续ARQ协议:将位于发送窗口内的分组连续发送出去,而不需要每次发送都等待对方的确认。在收到分组确认后发送窗口前移一个分组位置。实际上接收方一般都是采取累计确认的方式,不必对分组进行逐个确认,在收到数个分组后,只对按序到达的最后一个分组发送确认。表明到这个分组为止的所有分组都已经收到了。 会产生Go-back-N情况,就是如果发送了5个分组,如果中间第3个分组丢失了,那么接收方只能确认前两个分组。
(首先,什么是信道利用率呢?也就是信道的效率,假设在一个发送周期为1s,但实际传输数据的时间只用了0.5s,那么效率就是50%。)
2.传输层和网络层的区别:
网络层负责ip数据报的产生以及ip数据报在逻辑网络上的路由转发,而传输层提供端到端的进程通信服务,提供可靠和非可靠的连接
网络层主要任务是通过路由选择算法为报文或分组通过通信子网选择最适当的路径。
路由选择算法
(1).距离矢量路由算法:每个路由器维护一个距离矢量表,然后通过相邻路由器之间的距离矢量通告进行距离矢量表的更新,
每个距离矢量表项包括两部分:到达目的结点的最佳输出线路,和到达目的结点所需时间或距离,还有下一跳路由器的地址,通信子网中的其它每个路由器在表中占据一个表项,并作为该表项的索引。每隔一段时间,路由器会向所有邻居结点发送它到每个目的结点的距离表,同时它也接收每个邻居结点发来的距离表。这样以此类推,经过一段时间后便可将网络中各路由器所获得的距离矢量信息在各路由器上统一起来,这样各路由器只需要查看这个距离矢量表就可以为不同来源分组找到一条最佳的路由。
特点:注意 是只和相邻路