2018-01-20

2018-01-22  本文已影响29人  Java面试官

只是自说自话的学习笔记,各路看官绕路~

TCP协议:

1、tcp协议被定义为可靠的协议,但是它是属于传输层的协议,根据七层协议的定义,传输层的数据会先传网络层(ip层),而ip层是尽最大努力做到交付,这里可以理解成ip层也是不可靠的协议,那么在ip层之上的tcp协议如何做到可靠交付呢?这里要提到几个处理方式:


tip: 这里保持一个问题,刚刚提到的滑动窗口的传输方式其实是针对字节实现的,那么问题来了?tcp传输是数据报的形式实现的,那么为何此处是根据字节实现的呢?



tip: 这里将会产生一个问题,如果去掉第三次连接会怎么样呢?这里给出一个例子来解答这个问题,结合以上的知识点可以知道,如果在a第一次握手的时候出现了网络滞留或者丢失问题,a的协议机制有个计时器,超时了会再次发送请求,这也a就发送了两次请求连接的操作,而由于网络滞留问题,其中有一次操作在该连接结束后b才收到,那么如果是两次握手就结束的话,那么b此刻就会进入established状态,开始等待a的数据传输,可是a并没有打算将数据传输给b,这也b就会造成等待,导致b的资源浪费。



tip: 这里将会产生几个问题:


2、tcp协议中使用到的比较高效率的算法:

下面记录的算法是在拥塞控制的时候使用到的算法:

上一篇 下一篇

猜你喜欢

热点阅读