Java面试 三次握手、四次挥手、流量控制、拥塞控制、线程与进程

三次握手【三报文握手】

  1. A首先要向B发送建立连接的请求。
  2. B收到A的请求后,要告诉A自己已经收到了请求。
  3. A收到B的确认收到请求后,要告诉B,自己也已经收到了B确认无误的信息。

之所以这样做是因为TCP需要建立全双工通信,也就是要求双方都要确认自己和对方的发送和接收都正常。

  1. 第一次报文握手:A只是发送了报文,A既不知道B的发送和接收是否正常,也不知道自己的发送和接收是否正常。对于B而言,B知道了A发送正常,自己接收正常
  2. 第二次报文握手:A收到了B的确认报文,可知自己发送和接收正常,知道对方发送和接收也正常。但是B不知道自己的发送是否正常,也不知道对方的接收是否正常
  3. 第三次报文握手:B收到了A的确认确认收到报文。B可以确认自己的发送正常,对方的接收也正常。

四次挥手【四报文握手】

任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送的时候,则发出连接释放通知,对方确认后就完全关闭了TCP连接。

举个例子:A和B打电话,通话即将结束后,A说“我没啥要说的了”,B回答“我知道了”。但是B可能还会要说的话,A不能要求B跟着自己的节奏结束通话,于是B可能又巴拉巴拉说了一通,最后B说“我说完了”,A回答“知道了”,这样通话才算结束。

TCP和UDP
  1. TCP是面向连接的运输层协议。TCP提供全双工通信,能够保证通信的可靠性
  2. UDP在传送数据前不需要简历连接,其他端收到UDP报文后,也不需要给出任何确认。

流量控制

利用滑动窗口实现流量控制。发送方的发送窗口不能超过接收方给出的接收窗口值。比如说,A向B发送数据,在连接建立时,B告诉A,我的接收窗口receiver window(rwnd)=400。

拥塞控制

拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不至于过载。TCP采用慢开始、拥塞避免、快重传和快恢复的四种拥塞控制算法。慢开始就是当主机开始发送时,由小到大主键增大拥塞窗口。每经过一个传输轮次,拥塞窗口就会加倍。而这种加倍不是无限的,存在一个慢开始门限阈值,达到这个阈值后就会启用拥塞避免算法。这个时候拥塞窗口就会按照线性规律缓慢增长。当收到超时信息的时候,会重新进入慢开始阶段,并将启用拥塞避免算法的阈值减半。但是有的时候,其实网络没有阻塞,只是个别报文段丢失了。那接收方就会启动快重传算法,不等待自己发送数据才捎带确认丢失,而是立刻对已收到的报文进行三次重复确认。这个时候,发送方就会立刻重传。发送方这个时候知道了不是网络堵塞,就不启动慢开始,而是执行快恢复的算法。跳过慢开始阶段,直接进入拥塞避免。

线程和进程的关系

进程是动态执行的程序。它包含了PCB块和相对应占有的资源。所以说进程是资源分配的最小单位。而进程里面可能会含有多个线程,线程可以共享进程的部分资源,也可以拥有自己的局部变量等。线程是CPU调度的最小单位。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值