精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

騰訊面試比之前的要難,開始會(huì)胡說八道了

開發(fā) 前端
分塊傳輸感覺是說http協(xié)議里的chunk傳輸。它允許將數(shù)據(jù)分成多個(gè)塊(Chunk)進(jìn)行傳輸,每個(gè)塊都包含一段數(shù)據(jù)和該塊數(shù)據(jù)的長(zhǎng)度。在傳輸數(shù)據(jù)時(shí),先發(fā)送一個(gè)塊的長(zhǎng)度,然后發(fā)送該塊的數(shù)據(jù),接著發(fā)送下一個(gè)塊的長(zhǎng)度和數(shù)據(jù),以此類推,直到所有的數(shù)據(jù)都傳輸完畢。

大家好,我是小林。

今天又來分享面經(jīng)了,這次騰訊春招實(shí)習(xí)的面經(jīng),崗位是 java 后端開發(fā)。

讀者的背景是985碩,根據(jù)讀者的面試感受說是,騰訊面試比之前的要難,但是增加自信了,遇到不會(huì)的問題,開始會(huì)胡說八道了。

說一下BIO、NIO和AIO

讀者答:

  • BIO是阻塞IO。在上一個(gè)線程的任務(wù)執(zhí)行完之前,該線程必須阻塞等待上一個(gè)線程執(zhí)行完畢。
  • NIO是非阻塞IO。一旦是響應(yīng)事件發(fā)生了,該線程就會(huì)將對(duì)應(yīng)的響應(yīng)事件交給對(duì)應(yīng)的事件處理器進(jìn)行處理。
  • AIO是異步IO。主線程接收到請(qǐng)求后,可以分發(fā)給其他線程進(jìn)行異步處理,主線程繼續(xù)接收其他請(qǐng)求。

小林補(bǔ)充:

BIO(Blocking IO)、NIO(Non-Blocking IO)和AIO(Asynchronous IO)是Java中常用的IO模式。它們之間的主要區(qū)別在于IO的處理方式和效率。

BIO是同步阻塞IO,在進(jìn)行IO操作時(shí),必須等待IO操作完成后才能進(jìn)行下一步操作,這時(shí)線程會(huì)被阻塞。BIO適用于連接數(shù)比較小且固定的架構(gòu),由于線程阻塞等待IO操作,所以并發(fā)處理能力不強(qiáng)。

NIO是同步非阻塞IO,可以支持多個(gè)連接同時(shí)進(jìn)行讀寫操作,因此可以用較少的線程來處理大量的連接。NIO通過Selector來監(jiān)聽多個(gè)Channel的狀態(tài),當(dāng)Channel中有數(shù)據(jù)可讀或可寫時(shí),Selector會(huì)通知程序進(jìn)行讀寫操作。NIO適用于連接數(shù)多且連接時(shí)間較短的場(chǎng)景。

AIO是異步非阻塞IO,與NIO不同的是,AIO不需要用戶線程等待IO操作完成,而是由操作系統(tǒng)來完成IO操作,操作系統(tǒng)完成IO操作后會(huì)通知用戶線程處理。AIO適用于連接數(shù)較多且連接時(shí)間較長(zhǎng)的場(chǎng)景,如高性能網(wǎng)絡(luò)服務(wù)器等。

你說一下NIO是如何實(shí)現(xiàn)同步非阻塞的?主線程是只有一個(gè)嘛?

讀者答:

NIO底層是用Selector、Channel和ByteBuffer來實(shí)現(xiàn)的。主線程在循環(huán)使用select方法進(jìn)行阻塞等待,當(dāng)有acceptable、readable或者writable事件發(fā)生的時(shí)候,循環(huán)就會(huì)往下走,將對(duì)應(yīng)的事件交給對(duì)應(yīng)的事件處理器進(jìn)行處理。

他可以多線程的,可以有多個(gè)accept()線程和多個(gè)worker線程。

小林補(bǔ)充:

在NIO中,使用了多路復(fù)用器Selector來實(shí)現(xiàn)同步非阻塞的IO操作。Selector是一個(gè)可以監(jiān)控多個(gè)通道(Channel)是否有數(shù)據(jù)可讀或可寫的對(duì)象,當(dāng)一個(gè)或多個(gè)Channel準(zhǔn)備好讀或?qū)憰r(shí),Selector會(huì)通知程序進(jìn)行讀寫操作,而不是像BIO一樣阻塞等待IO操作完成。

在NIO中,主線程通常只有一個(gè),但是可以使用Selector來管理多個(gè)Channel,實(shí)現(xiàn)多個(gè)連接的非阻塞讀寫操作。當(dāng)有多個(gè)Channel需要進(jìn)行IO操作時(shí),Selector會(huì)輪詢這些Channel,檢查它們的狀態(tài)是否可讀或可寫,如果有可讀或可寫的Channel,就將其加入到一個(gè)已選擇鍵集合中,等待程序處理。這樣,一個(gè)線程就可以同時(shí)處理多個(gè)Channel,提高了系統(tǒng)的并發(fā)處理能力。

你用過哪些設(shè)計(jì)模式

單例模式,觀察者模式,責(zé)任鏈模式

講一下觀察者模式

讀者答:

觀察者模式就是他有多個(gè)觀察者,有一個(gè)觀察管理者,觀察者一開始會(huì)都注冊(cè)到觀察管理者的列表當(dāng)中,當(dāng)對(duì)應(yīng)的位置發(fā)生了相應(yīng)的事件呢,就會(huì)由觀察管理者調(diào)用相應(yīng)的觀察者的方法執(zhí)行相應(yīng)的動(dòng)作。

小林補(bǔ)充:

觀察者模式(Observer Pattern)是一種設(shè)計(jì)模式,它定義了一種一對(duì)多的依賴關(guān)系,讓多個(gè)觀察者對(duì)象同時(shí)監(jiān)聽某一個(gè)主題對(duì)象,當(dāng)主題對(duì)象狀態(tài)發(fā)生變化時(shí),它的所有觀察者都會(huì)收到通知并自動(dòng)更新。

在觀察者模式中,有兩個(gè)核心角色:Subject(主題)和Observer(觀察者)。主題是被觀察的對(duì)象,它維護(hù)了一個(gè)觀察者列表,可以動(dòng)態(tài)添加或刪除觀察者。當(dāng)主題狀態(tài)發(fā)生變化時(shí),它會(huì)通知所有觀察者,并調(diào)用它們的更新方法。觀察者是接收主題通知的對(duì)象,它定義了一個(gè)更新方法,使主題在狀態(tài)發(fā)生變化時(shí)能夠及時(shí)通知到它。

觀察者模式可以實(shí)現(xiàn)松耦合的設(shè)計(jì),主題對(duì)象和觀察者對(duì)象之間沒有直接的耦合關(guān)系,它們之間通過抽象的接口進(jìn)行通信,可以方便地增加或刪除觀察者,而不需要修改主題對(duì)象的代碼。觀察者模式在很多場(chǎng)景中都有應(yīng)用,比如GUI事件處理、消息隊(duì)列、發(fā)布訂閱系統(tǒng)等。

java 代碼示例:

當(dāng)然,以下是一個(gè)簡(jiǎn)單的Java代碼實(shí)例,演示了觀察者模式的基本實(shí)現(xiàn):

import java.util.ArrayList;
import java.util.List;

// 主題(Subject)接口
interface Subject {
void registerObserver(Observer observer);
void removeObserver(Observer observer);
void notifyObservers();
}

// 觀察者(Observer)接口
interface Observer {
void update(String message);
}

// 具體主題(ConcreteSubject)實(shí)現(xiàn)
class ConcreteSubject implements Subject {
private List<Observer> observers = new ArrayList<>();
private String message;

@Override
public void registerObserver(Observer observer) {
observers.add(observer);
}

@Override
public void removeObserver(Observer observer) {
observers.remove(observer);
}

@Override
public void notifyObservers() {
for (Observer observer : observers) {
observer.update(message);
}
}

public void setMessage(String message) {
this.message = message;
notifyObservers();
}
}

// 具體觀察者(ConcreteObserver)實(shí)現(xiàn)
class ConcreteObserver implements Observer {
private String name;

public ConcreteObserver(String name) {
this.name = name;
}

@Override
public void update(String message) {
System.out.println(name + " received message: " + message);
}
}

// 測(cè)試類
public class ObserverPatternDemo {
public static void main(String[] args) {
ConcreteSubject subject = new ConcreteSubject();

Observer observer1 = new ConcreteObserver("Observer1");
Observer observer2 = new ConcreteObserver("Observer2");
Observer observer3 = new ConcreteObserver("Observer3");

subject.registerObserver(observer1);
subject.registerObserver(observer2);
subject.registerObserver(observer3);

subject.setMessage("Hello, everyone!");

subject.removeObserver(observer2);

subject.setMessage("How are you doing?");
}
}

運(yùn)行上述代碼,輸出如下:

Observer1 received message: Hello, everyone!
Observer2 received message: Hello, everyone!
Observer3 received message: Hello, everyone!
Observer1 received message: How are you doing?
Observer3 received message: How are you doing?

可以看到,當(dāng)主題對(duì)象狀態(tài)發(fā)生變化時(shí),它會(huì)通知所有觀察者,并調(diào)用它們的更新方法。觀察者可以根據(jù)接收到的消息進(jìn)行相應(yīng)的處理。

java內(nèi)存結(jié)構(gòu)

讀者答:

JVM內(nèi)存結(jié)構(gòu)分為5大區(qū)域,程序計(jì)數(shù)器、虛擬機(jī)棧、本地方法棧、堆內(nèi)存、方法區(qū)。

方法區(qū):

用來存儲(chǔ)加載的類信息、常量、靜態(tài)變量、編譯后的代碼等數(shù)據(jù)。

堆內(nèi)存:

堆內(nèi)存可以細(xì)分為:老年代、新生代(Eden、From Survivor、To Survivor)。JVM啟動(dòng)時(shí)創(chuàng)建,用來存放對(duì)象的實(shí)例。堆內(nèi)存是垃圾收集器管理的主要區(qū)域。

虛擬機(jī)棧:

線程私有的。虛擬機(jī)棧由多個(gè)棧幀組成。一個(gè)線程會(huì)執(zhí)行一個(gè)或多個(gè)方法,一個(gè)方法對(duì)應(yīng)一個(gè)棧幀。每一次方法調(diào)用都會(huì)有一個(gè)對(duì)應(yīng)的棧幀被壓入棧中,每一個(gè)方法調(diào)用結(jié)束后,都會(huì)有一個(gè)棧幀被彈出。棧幀內(nèi)容包含:局部變量表、操作數(shù)棧、動(dòng)態(tài)鏈接、方法返回地址等信息。

本地方法棧:

和虛擬機(jī)棧功能類似,虛擬機(jī)棧是為虛擬機(jī)執(zhí)行JAVA方法而準(zhǔn)備的,本地方法棧是為虛擬機(jī)使用Native本地方法而準(zhǔn)備的。

程序計(jì)數(shù)器(Program Counter Register):

線程私有的,程序計(jì)數(shù)器主要有兩個(gè)作用:

  1. 作為當(dāng)前線程所執(zhí)行的字節(jié)碼的行號(hào)指示器,通過它實(shí)現(xiàn)代碼的流程控制,如:順序執(zhí)行、分支、循環(huán)、異常處理。
  2. 在多線程的情況下,程序計(jì)數(shù)器用于記錄當(dāng)前線程執(zhí)行的位置,當(dāng)線程被切換回來的時(shí)候可以通過程序計(jì)數(shù)器中的信息獲取上次執(zhí)行的位置,然后繼續(xù)執(zhí)行。

說一下數(shù)據(jù)庫(kù)事務(wù)的四大特性

讀者答:

事務(wù)有ACID四大特性。就是原子性、一致性、隔離性和持久性。原子性就是指事務(wù)中的操作要么全做要么全不做,不存在中間態(tài)。一致性是指事務(wù)執(zhí)行前后數(shù)據(jù)庫(kù)的完整性不被破壞,保持一致。隔離性是指多個(gè)事務(wù)并發(fā)執(zhí)行時(shí)事務(wù)之間互不影響。持久性是指事務(wù)執(zhí)行成功后,事務(wù)對(duì)于數(shù)據(jù)庫(kù)的操作會(huì)永久的保存在磁盤上,永不丟失。

從一定程度上來講,AID是手段,C是目的,就是通過原子性、隔離性和持久性來保證一致性。

char和varchar的區(qū)別

讀者答:

char是固定長(zhǎng)度的字符串類型,varchar是可變長(zhǎng)度的字符串類型。拿char(128)和varchar(128)舉例來說。char(128)是無論字符串大小,都會(huì)在磁盤上分配128個(gè)字符的內(nèi)存空間。而varchar(128)會(huì)根據(jù)字符本身的長(zhǎng)短來分配內(nèi)存空間。

小林補(bǔ)充:

在MySQL中,CHAR和VARCHAR都是用于存儲(chǔ)字符類型數(shù)據(jù)的數(shù)據(jù)類型,它們的區(qū)別在于存儲(chǔ)方式和使用場(chǎng)景。

CHAR?類型用于存儲(chǔ)固定長(zhǎng)度的字符串,其長(zhǎng)度在定義表時(shí)就已經(jīng)固定,且最大長(zhǎng)度為255個(gè)字符。當(dāng)存儲(chǔ)的字符串長(zhǎng)度小于定義的長(zhǎng)度時(shí),MySQL會(huì)在其后面補(bǔ)充空格使其長(zhǎng)度達(dá)到定義的長(zhǎng)度。由于存儲(chǔ)的長(zhǎng)度是固定的,因此CHAR?類型的讀取速度比VARCHAR類型更快。

VARCHAR?類型則用于存儲(chǔ)可變長(zhǎng)度的字符串,其長(zhǎng)度可以在存儲(chǔ)數(shù)據(jù)時(shí)動(dòng)態(tài)地改變,但最大長(zhǎng)度也為255個(gè)字符。當(dāng)存儲(chǔ)的字符串長(zhǎng)度小于定義的長(zhǎng)度時(shí),MySQL不會(huì)在其后面補(bǔ)充空格。由于存儲(chǔ)的長(zhǎng)度是可變的,因此VARCHAR?類型的存儲(chǔ)空間相對(duì)更小,但讀取速度比CHAR類型稍微慢一些。

那與varchar相比,char字段是不是一無是處呢?

大部分情況,是的,最好使用varchar。不過考慮一個(gè)極端的場(chǎng)景:某個(gè)字段的最大長(zhǎng)度是100字節(jié),但是會(huì)頻繁修改。如果使用char(100)?,則插入記錄后就分配了100個(gè)字節(jié),后續(xù)修改不會(huì)造成頁(yè)分裂、頁(yè)空隙等問題,而varchar(100)由于沒有提前分配存儲(chǔ)空間,后續(xù)修改時(shí)可能出現(xiàn)頁(yè)分裂,進(jìn)而導(dǎo)致性能下降。

說一下外鍵約束

讀者答:

舉例來說,某一個(gè)字段是表b的主鍵,但是它也是表a中的字段,表a中該字段的使用范圍取決于表b。外鍵約束主要是用來維護(hù)兩個(gè)表的一致性。

小林補(bǔ)充:

外鍵約束的作用是維護(hù)表與表之間的關(guān)系,確保數(shù)據(jù)的完整性和一致性。讓我們舉一個(gè)簡(jiǎn)單的例子:

假設(shè)你有兩個(gè)表,一個(gè)是學(xué)生表,另一個(gè)是課程表,這兩個(gè)表之間有一個(gè)關(guān)系,即一個(gè)學(xué)生可以選修多門課程,而一門課程也可以被多個(gè)學(xué)生選修。在這種情況下,我們可以在學(xué)生表中定義一個(gè)指向課程表的外鍵,如下所示:

CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
course_id INT,
FOREIGN KEY (course_id) REFERENCES courses(id)
);

這里,students?表中的course_id?字段是一個(gè)外鍵,它指向courses?表中的id?字段。這個(gè)外鍵約束確保了每個(gè)學(xué)生所選的課程在courses表中都存在,從而維護(hù)了數(shù)據(jù)的完整性和一致性。

如果沒有定義外鍵約束,那么就有可能出現(xiàn)學(xué)生選了不存在的課程或者刪除了一個(gè)課程而忘記從學(xué)生表中刪除選修該課程的學(xué)生的情況,這會(huì)破壞數(shù)據(jù)的完整性和一致性。因此,使用外鍵約束可以幫助我們避免這些問題。

說一下binlog

讀者答:

binlog是二進(jìn)制日志文件。他主要用來做主從同步。他有statement格式和row格式。statement記錄了執(zhí)行的SQL語句,Row 格式保存哪條記錄被修改。binlog事務(wù)提交的時(shí)候才寫入的。也可以用來做歸檔。

小林補(bǔ)充:

binlog日志是MySQL數(shù)據(jù)庫(kù)的一種日志記錄機(jī)制,用于記錄數(shù)據(jù)庫(kù)的修改操作(如插入、更新、刪除等),以便在需要時(shí)進(jìn)行數(shù)據(jù)恢復(fù)、數(shù)據(jù)復(fù)制和數(shù)據(jù)同步等操作。

binlog日志的實(shí)現(xiàn)以下功能:

  • 數(shù)據(jù)恢復(fù):binlog日志可以用于回滾到之前的某個(gè)時(shí)間點(diǎn),從而恢復(fù)數(shù)據(jù)。
  • 數(shù)據(jù)復(fù)制:binlog日志可以用于在主從數(shù)據(jù)庫(kù)之間復(fù)制數(shù)據(jù),從而實(shí)現(xiàn)數(shù)據(jù)的高可用和負(fù)載均衡等功能。

MySQL的binlog日志有三種格式,分別是Statement格式、Row格式和Mixed格式。它們之間的區(qū)別如下:

  • STATEMENT:每一條修改數(shù)據(jù)的 SQL 都會(huì)被記錄到 binlog 中(相當(dāng)于記錄了邏輯操作,所以針對(duì)這種格式, binlog 可以稱為邏輯日志),主從復(fù)制中 slave 端再根據(jù) SQL 語句重現(xiàn)。但 STATEMENT 有動(dòng)態(tài)函數(shù)的問題,比如你用了 uuid 或者 now 這些函數(shù),你在主庫(kù)上執(zhí)行的結(jié)果并不是你在從庫(kù)執(zhí)行的結(jié)果,這種隨時(shí)在變的函數(shù)會(huì)導(dǎo)致復(fù)制的數(shù)據(jù)不一致;
  • ROW:記錄行數(shù)據(jù)最終被修改成什么樣了(這種格式的日志,就不能稱為邏輯日志了),不會(huì)出現(xiàn) STATEMENT 下動(dòng)態(tài)函數(shù)的問題。但 ROW 的缺點(diǎn)是每行數(shù)據(jù)的變化結(jié)果都會(huì)被記錄,比如執(zhí)行批量 update 語句,更新多少行數(shù)據(jù)就會(huì)產(chǎn)生多少條記錄,使 binlog 文件過大,而在 STATEMENT 格式下只會(huì)記錄一個(gè) update 語句而已;
  • MIXED:包含了 STATEMENT 和 ROW 模式,它會(huì)根據(jù)不同的情況自動(dòng)使用 ROW 模式和 STATEMENT 模式;

說一下分庫(kù)分表

讀者答:

我可能知道的就是想我簡(jiǎn)歷上調(diào)研過的這個(gè)mycat組件,他是根據(jù)業(yè)務(wù)字段的hash值來確定分片的,比如user_id不同的用戶信息就會(huì)存儲(chǔ)到不同分片當(dāng)中,他是多個(gè)分片同時(shí)提供服務(wù)。

小林補(bǔ)充:

當(dāng)數(shù)據(jù)量過大造成事務(wù)執(zhí)行緩慢時(shí),就要考慮分表,因?yàn)闇p少每次查詢數(shù)據(jù)總量是解決數(shù)據(jù)查詢緩慢的主要原因。你可能會(huì)問:“查詢可以通過主從分離或緩存來解決,為什么還要分表?”但這里的查詢是指事務(wù)中的查詢和更新操作。

為了應(yīng)對(duì)高并發(fā),一個(gè)數(shù)據(jù)庫(kù)實(shí)例撐不住,即單庫(kù)的性能無法滿足高并發(fā)的要求,就把并發(fā)請(qǐng)求分散到多個(gè)實(shí)例中去,這種就是分庫(kù)。

總的來說,分庫(kù)分表使用的場(chǎng)景不一樣: 分表是因?yàn)閿?shù)據(jù)量比較大,導(dǎo)致事務(wù)執(zhí)行緩慢;分庫(kù)是因?yàn)閱螏?kù)的性能無法滿足要求。

遇到過數(shù)據(jù)庫(kù)死鎖嗎

讀者答:

事務(wù)A通過數(shù)據(jù)修改操作占用著資源A,事務(wù)B通過數(shù)據(jù)修改操作占用著資源B,而他們又同時(shí)請(qǐng)求對(duì)方的資源,互不退讓就造成了死鎖。如果沒有終止一個(gè)事務(wù)或者回滾過一段時(shí)間或超時(shí)。

小林補(bǔ)充:

假設(shè)有兩事務(wù),一個(gè)事務(wù)要插入訂單 1007 ,另外一個(gè)事務(wù)要插入訂單 1008,因?yàn)樾枰獙?duì)訂單做冪等性校驗(yàn),所以兩個(gè)事務(wù)先要查詢?cè)撚唵问欠翊嬖冢淮嬖诓挪迦胗涗洠^程如下:

圖片

可以看到,兩個(gè)事務(wù)都陷入了等待狀態(tài)(前提沒有打開死鎖檢測(cè)),也就是發(fā)生了死鎖,因?yàn)槎荚谙嗷サ却龑?duì)方釋放鎖。

死鎖的四個(gè)必要條件:互斥、占有且等待、不可強(qiáng)占用、循環(huán)等待。只要系統(tǒng)發(fā)生死鎖,這些條件必然成立,但是只要破壞任意一個(gè)條件就死鎖就不會(huì)成立。

TCP和UDP的區(qū)別

讀者答:

1.TCP是面向連接的協(xié)議,建立和釋放連接需要進(jìn)行三次握手和四次揮手。UDP是面向無連接的協(xié)議,無需進(jìn)行三次握手和四次揮手。說明udp比TCP實(shí)時(shí)性更強(qiáng)。

2.TCP 是流式傳輸,沒有邊界,但保證順序和可靠。UDP 是一個(gè)包一個(gè)包的發(fā)送,是有邊界的,但可能會(huì)丟包和亂序。

3.TCP連接的可靠性強(qiáng),UDP的可靠性不強(qiáng)。

4.TCP只能一對(duì)一,UDP支持一對(duì)多和多對(duì)多。

5.TCP的頭部開銷比UDP大。TCP 首部長(zhǎng)度較長(zhǎng),會(huì)有一定的開銷,首部在沒有使用「選項(xiàng)」字段時(shí)是 20 個(gè)字節(jié),如果使用了「選項(xiàng)」字段則會(huì)變長(zhǎng)的。UDP 首部只有 8 個(gè)字節(jié),并且是固定不變的,開銷較小。

TCP是如何保證可靠的?

讀者答:

  • tcp的序列號(hào)可以避免亂序的問題,保證收到的tcp報(bào)文都是有序的。
  • 在 TCP 中,當(dāng)發(fā)送端的數(shù)據(jù)到達(dá)接收主機(jī)時(shí),接收端主機(jī)會(huì)返回一個(gè)確認(rèn)應(yīng)答消息,表示已收到消息。
  • TCP 針對(duì)數(shù)據(jù)包丟失的情況,會(huì)用重傳機(jī)制解決。
  • 用快重傳解決個(gè)別報(bào)文段的丟失問題。
  • 使用滑動(dòng)窗口實(shí)現(xiàn)流量控制。使用接收方確認(rèn)報(bào)文中的窗口字段來控制發(fā)送方發(fā)送窗口大小,進(jìn)而控制發(fā)送方的發(fā)送速率,使得接收方來得及接收。
  • 使用基于窗口的擁塞控制,來盡量避免避免網(wǎng)絡(luò)擁塞。

流量控制是使用什么數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)的?

讀者答:

流量控制是使用滑動(dòng)窗口來實(shí)現(xiàn)的。接收方確認(rèn)報(bào)文中的窗口字段可以用來控制發(fā)送方窗口的大小。如果窗戶的值為0,則發(fā)送方停止發(fā)送數(shù)據(jù),但是發(fā)送方會(huì)定期的向接收方發(fā)送窗口探測(cè)報(bào)文以得到窗口的大小。

小林補(bǔ)充:

TCP傳輸協(xié)議中,流量控制是使用滑動(dòng)窗口(Sliding Window)來實(shí)現(xiàn)的。滑動(dòng)窗口是一種基于數(shù)據(jù)流的、動(dòng)態(tài)調(diào)整的、可變大小的窗口,它通過協(xié)商雙方的接收窗口和發(fā)送窗口大小,控制數(shù)據(jù)的傳輸速率。

在TCP協(xié)議中,每個(gè)數(shù)據(jù)包都有一個(gè)序號(hào),接收方通過序號(hào)來確認(rèn)是否收到了正確的數(shù)據(jù)包。發(fā)送方將數(shù)據(jù)分成若干個(gè)數(shù)據(jù)段,每個(gè)數(shù)據(jù)段的大小不超過發(fā)送窗口的大小,然后將這些數(shù)據(jù)段發(fā)送給接收方。接收方會(huì)確認(rèn)已經(jīng)收到的數(shù)據(jù),同時(shí)告訴發(fā)送方自己的接收窗口大小。發(fā)送方根據(jù)接收方的窗口大小,動(dòng)態(tài)調(diào)整自己的發(fā)送窗口大小,從而控制數(shù)據(jù)的傳輸速率。

滑動(dòng)窗口的大小是可以動(dòng)態(tài)調(diào)整的,它可以根據(jù)網(wǎng)絡(luò)狀況和雙方的能力來自適應(yīng)地調(diào)整,從而實(shí)現(xiàn)流量控制的功能。如果接收方的接收窗口變小,發(fā)送方會(huì)相應(yīng)地減小自己的發(fā)送窗口,以避免過多的數(shù)據(jù)堆積在網(wǎng)絡(luò)中導(dǎo)致?lián)砣H绻邮辗降慕邮沾翱谧兇螅l(fā)送方會(huì)相應(yīng)地增加自己的發(fā)送窗口,以提高數(shù)據(jù)傳輸速率。

分塊傳輸

讀者答:

分塊傳輸這一塊有個(gè)nagle算法。他的目的是盡量發(fā)送大數(shù)據(jù)塊,以減少發(fā)送報(bào)文的數(shù)量,提高傳輸效率。nagle算法規(guī)定在上一個(gè)未被確認(rèn)的分組的確認(rèn)到達(dá)之前,不能發(fā)送下一個(gè)分組。

分塊傳輸其實(shí)更像是http協(xié)議里的chunk傳輸。如果是特指tcp 的話,如果應(yīng)用層的數(shù)據(jù)超過mss的大小,數(shù)據(jù)會(huì)在tcp層進(jìn)行分塊。

小林補(bǔ)充:

分塊傳輸感覺是說http協(xié)議里的chunk傳輸。它允許將數(shù)據(jù)分成多個(gè)塊(Chunk)進(jìn)行傳輸,每個(gè)塊都包含一段數(shù)據(jù)和該塊數(shù)據(jù)的長(zhǎng)度。在傳輸數(shù)據(jù)時(shí),先發(fā)送一個(gè)塊的長(zhǎng)度,然后發(fā)送該塊的數(shù)據(jù),接著發(fā)送下一個(gè)塊的長(zhǎng)度和數(shù)據(jù),以此類推,直到所有的數(shù)據(jù)都傳輸完畢。

圖片

如果是特指tcp 的話,如果應(yīng)用層的數(shù)據(jù)超過mss的大小,數(shù)據(jù)會(huì)在tcp層進(jìn)行分塊。

剛才你說nagle算法是為了發(fā)送大數(shù)據(jù)塊,數(shù)據(jù)塊是越大越好嗎?(我沒太聽懂這個(gè)問題,他又換了個(gè)說法,其實(shí)我還是沒懂,但是他提到了MTU,我就借坡下驢了)

讀者答:

您剛才提到了MTU,有可能因?yàn)閿?shù)據(jù)塊比較大,可能會(huì)出現(xiàn)拆包的問題,將一個(gè)大數(shù)據(jù)塊分為幾個(gè)MTU單元進(jìn)行傳輸,因?yàn)門CP是按照序列號(hào)順序讀取的,所以可能會(huì)出現(xiàn)阻塞問題。

小林補(bǔ)充:

看業(yè)務(wù)場(chǎng)景,negle算法不適合像ssh這種傳輸小報(bào)文的場(chǎng)景,會(huì)增加延遲。

項(xiàng)目問題

縮減很多,只放出了共性的問題。

  • 性能調(diào)優(yōu)是怎么做的?
  • 你覺得你的這個(gè)項(xiàng)目性能瓶頸在哪里?
  • 項(xiàng)目你自己做的嗎?開源了嗎?

無算法題

面試總結(jié)

感覺:

  • 騰訊面試比之前的要難,增加自信了,開始會(huì)胡說八道了。即使知道自己說的不是對(duì)的,例如分塊傳輸那個(gè)問題。

不足之處:

  • 再積累積累吧
責(zé)任編輯:武曉燕 來源: 小林coding
相關(guān)推薦

2025-09-10 15:27:12

AI模型訓(xùn)練

2009-06-29 13:28:18

PHP小組PHP技巧網(wǎng)站加速

2025-09-23 09:44:02

2023-06-16 09:49:11

人工智能研究

2023-04-02 18:00:56

2023-05-05 10:28:47

2025-08-25 00:02:00

人工智能AI語言模型

2012-11-30 11:26:00

代碼注釋

2025-02-13 11:02:12

2023-10-26 23:55:46

數(shù)據(jù)模型

2023-11-18 09:30:42

模型AI

2013-03-08 09:59:59

2025-07-11 08:27:29

2025-10-27 01:55:00

2023-11-21 15:13:30

2024-04-30 10:40:11

2016-08-15 11:12:00

Linux

2025-03-31 08:30:00

AI模型技術(shù)

2015-07-08 09:28:46

Xcode代碼簽名

2019-05-21 12:33:32

騰訊云邱躍鵬云計(jì)算
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

91三级在线| 亚洲字幕av一区二区三区四区| 大香伊人久久精品一区二区| 欧美日韩亚洲成人| 日本一区二区三区视频免费看 | 91精品观看| 精品国产电影一区二区| av在线无限看| 丁香高清在线观看完整电影视频| 久久综合久久综合久久| 国产精品视频中文字幕91| 免费网站观看www在线观| 欧美**vk| 精品国产青草久久久久福利| 看欧美ab黄色大片视频免费| xxx.xxx欧美| 中文字幕欧美激情| 国产亚洲第一区| 国产人妖一区二区三区| 久久久久久亚洲精品杨幂换脸| 久久中文字幕在线| 级毛片内射视频| jizz性欧美23| 91精品福利在线一区二区三区| 激情综合网婷婷| 丁香花在线观看完整版电影| 国产精品毛片大码女人| 久久五月天婷婷| 国产极品久久久| 精品影视av免费| 欧美日韩亚洲视频一区| 国产免费色视频| 黄色片免费在线| 99久久精品国产网站| 亚洲综合视频1区| 一区二区日韩视频| 日韩成人精品在线观看| 欧美亚洲视频在线观看| 久久久久久久蜜桃| 中文字幕免费精品| 久久精品国产精品亚洲| 欧美人与禽zoz0善交| 亚洲最大在线| 色婷婷久久久亚洲一区二区三区 | 国产一区二区三区久久| 久久99精品久久久久久琪琪| 成人在线观看高清| 欧美电影免费观看高清| 色噜噜国产精品视频一区二区| 欧美特黄一区二区三区| 亚洲区小说区图片区qvod| 亚洲高清一区二| av av在线| 久9re热视频这里只有精品| 精品久久久久一区二区国产| 91av免费观看| 成人三级av在线| 亚洲国产美女久久久久| 99精品一区二区三区无码吞精| 99精品在免费线中文字幕网站一区| 日韩亚洲欧美在线| 欧美日韩一区二区区| 亚洲国产高清在线观看| 精品国产一区二区亚洲人成毛片| 99re这里只有| 一区二区三区日本久久久| 亚洲精品影视在线观看| 91国模少妇一区二区三区| 黑丝美女一区二区| 视频在线一区二区| 性色av无码久久一区二区三区| 中国成人一区| 久久人人看视频| 4438国产精品一区二区| 美洲天堂一区二卡三卡四卡视频| 国产在线98福利播放视频| 99久久免费国产精精品| 成人av午夜电影| 欧美日韩三区四区| 91se在线| 亚洲在线成人精品| 日韩精品一区二区三区久久| 欧美黄色三级| 欧美一级片在线看| 精品一区二区三区四区五区六区| 蜜桃成人av| 久久视频在线看| 国产精品视频久久久久久久| 日一区二区三区| 91久久国产婷婷一区二区| 国产综合视频在线| 国产亚洲精品超碰| 国产日韩欧美大片| 国产福利片在线观看| 欧美日韩久久一区二区| 国产裸体视频网站| 欧美人与物videos另类xxxxx| 中文字幕自拍vr一区二区三区| 成年人av电影| 日韩高清中文字幕一区| 91精品网站| 黄色网址在线播放| 亚洲综合网站在线观看| 中文字幕无码不卡免费视频| 秋霞一区二区| 伊人久久免费视频| 日韩男人的天堂| 久久精品国产精品亚洲红杏| 国产精品午夜av在线| 香蕉视频在线播放| 精品日本高清在线播放| 日本中文字幕精品—区二区| 久久porn| 九九视频这里只有精品| www.久久网| av一本久道久久综合久久鬼色| 一区二区三区四区五区精品| 国产中文在线播放| 欧美一区二区三区影视| 干b视频在线观看| 99精品福利视频| 91久久伊人青青碰碰婷婷| 亚洲精品承认| 在线看国产一区二区| 久久久午夜精品福利内容| 欧美在线精品一区| 国产日韩精品入口| 国产系列电影在线播放网址| 婷婷六月综合网| 中文字幕第九页| 欧美在线三区| 成人国产精品一区| 2017亚洲天堂1024| 亚洲视频www| 91丝袜美腿高跟国产极品老师| 日韩av电影免费观看| 91av久久| 精品国产免费久久| 精品99久久久久成人网站免费| 精品一区二区三区蜜桃| 亚洲欧洲精品一区二区三区波多野1战4| 午夜欧美激情| 亚洲精品av在线播放| 国产精品16p| 成人app下载| 给我免费播放片在线观看| 久久久久久久久久久久电影| 北条麻妃久久精品| 亚洲中文字幕在线观看| 国产精品嫩草影院av蜜臀| 久久久久狠狠高潮亚洲精品| 影视先锋久久| 国产成人精品久久久| 国产中文字幕在线看| 日本韩国欧美在线| 一区二区精品免费| 奇米一区二区三区| 深夜福利成人| 精品久久99| 久久久av免费| 不卡av中文字幕| 亚洲国产精品人人做人人爽| 久久一区二区电影| 国产精品腿扒开做爽爽爽挤奶网站| 精品久久久久久一区二区里番| 岛国在线视频网站| 亚洲欧美视频在线| 一级黄色a视频| 亚洲色图欧美偷拍| 欧美一级片在线免费观看| 亚洲精华国产欧美| 蜜桃精品久久久久久久免费影院| 欧美18—19sex性hd| 亚洲天堂第二页| 夜夜躁很很躁日日躁麻豆| 亚洲欧美日韩一区二区 | 五月天婷婷丁香| 99精品欧美一区二区蜜桃免费 | 久久综合综合久久综合| 麻豆md0077饥渴少妇| gogo人体一区| 国产精品jvid在线观看蜜臀| 麻豆视频在线播放| 精品盗摄一区二区三区| www.久久久久久久| 国产精品黄色在线观看| 国产精品日日摸夜夜爽| 久久成人一区| 懂色av一区二区三区四区五区| 51vv免费精品视频一区二区| 91精品国产免费久久久久久| 国产精品视频一区二区久久| 91精品国产入口| 欧美日韩一二三四区| 国产精品高潮呻吟| 久久免费精品国产| 日韩电影在线免费看| 青青草视频国产| 欧美人与拘性视交免费看| 亚洲一区二区三区成人在线视频精品 | 国产一区二区三区免费在线| 久久久在线视频| 国产裸舞福利在线视频合集| 日韩美女一区二区三区| 无码人妻黑人中文字幕| 一区二区三区色| 欧美黄色高清视频| www.99精品| 中文字幕视频三区| 久久久久看片| 女人被男人躁得好爽免费视频| 亚洲综合图色| 国产精品视频入口| 日韩一区二区三区四区五区 | 国产大片中文字幕| 国产精品久99| 伊人网在线视频观看| 国产999精品久久久久久绿帽| 国产精品亚洲αv天堂无码| 午夜久久tv| 在线观看欧美激情| 久久99高清| 国产日韩亚洲精品| 日韩在线观看中文字幕| 成人黄色激情网| 成人不卡视频| 国产999精品| 水蜜桃在线视频| 777精品视频| av手机在线观看| 欧美黑人狂野猛交老妇| 国产在线二区| 亚洲系列中文字幕| 欧美18xxxxx| 精品无人区太爽高潮在线播放 | 国产经典欧美精品| 亚洲第一色av| 久久av资源网| 欧美午夜片在线免费观看| 中文 日韩 欧美| 美日韩一区二区三区| 成人免费无码av| 另类国产ts人妖高潮视频| 波多野结衣家庭教师在线播放| 国内自拍视频一区二区三区| 国产女人18毛片| 女生裸体视频一区二区三区| 8x8x华人在线| 韩国久久久久| av日韩在线看| 黄色av日韩| 久久99中文字幕| 亚洲欧洲一区二区天堂久久| 国产高清www| 在线综合欧美| 日韩欧美xxxx| 免费在线欧美视频| 182午夜在线观看| 国内外成人在线| 亚洲av毛片在线观看| 国产精品538一区二区在线| 黑人性生活视频| 成人国产精品免费| 黑丝av在线播放| 国产亚洲一区二区三区| 极品人妻videosss人妻| 国产精品美女久久久久久久| 糖心vlog免费在线观看| 亚洲另类在线一区| 久久精品国产亚洲AV无码麻豆 | 最近2019中文字幕大全第二页| 91九色在线porn| 欧美成人亚洲成人| av在线小说| 国产91色在线播放| 国产精品诱惑| y111111国产精品久久婷婷| 麻豆精品少妇| 亚洲国产一区二区在线| 欧美日韩mv| 播放灌醉水嫩大学生国内精品| 日韩成人免费在线| 中国老熟女重囗味hdxx| 久久亚洲精品国产精品紫薇| 亚洲aaa视频| 午夜欧美视频在线观看 | 69堂成人精品免费视频| 看黄色录像一级片| 亚洲精品亚洲人成人网| 青青草成人av| 欧美日韩和欧美的一区二区| 农村少妇久久久久久久| 亚洲人成电影在线观看天堂色| 菠萝蜜视频国产在线播放| 91精品国产乱码久久久久久久久 | 日韩午夜免费视频| 亚欧在线免费观看| 丁香啪啪综合成人亚洲小说| 国产交换配乱淫视频免费| 亚洲欧美偷拍卡通变态| 特级毛片www| 日韩三级精品电影久久久| 国产午夜在线视频| 欧美激情一区二区久久久| 精品网站在线| 久久精品日产第一区二区三区精品版 | 99视频只有精品| 在线视频一区二区三区| 亚洲精选一区二区三区| 最好看的2019年中文视频| 午夜不卡影院| 国产a一区二区| 久久蜜桃av| 国产一级片黄色| av在线这里只有精品| 真实国产乱子伦对白在线| 欧美日韩在线免费视频| 天堂av在线7| 亚洲国产精品网站| av在线免费播放| 国产精品久在线观看| 老司机精品视频在线播放| 青青在线免费视频| 美女视频网站久久| 欧美 日韩 成人| 狠狠做深爱婷婷久久综合一区| 亚洲国产精品一| 操人视频在线观看欧美| av免费在线一区| 日本精品一区二区三区高清 久久| 亚洲午夜久久久久久尤物| 日本一二三区在线| 亚洲欧美中日韩| 91丨porny丨在线中文 | 91成人在线免费视频| 黄网站色欧美视频| 免费av一级片| 久久久午夜视频| 都市激情久久| 国产精品www在线观看| 成人久久久精品乱码一区二区三区| 中国毛片直接看| 欧美一区二区三区人| 色大18成网站www在线观看| 国产精品入口夜色视频大尺度| 精品精品久久| 欧美精品成人网| 欧美国产精品v| 在线观看国产一区二区三区| 最近2019免费中文字幕视频三| 欧美精品资源| 亚洲一区二区三区乱码| 久久精品999| 欧美在线视频第一页| 日韩一级大片在线观看| www在线看| 麻豆亚洲一区| 日韩不卡一区二区三区| 亚洲欧洲综合网| 欧美一级艳片视频免费观看| 国内在线免费视频| 国产综合18久久久久久| 国产精品一二| av网在线播放| 欧美日韩国产精品自在自线| 影院在线观看全集免费观看| 官网99热精品| 国产精品五区| 国产一区第一页| 欧美一级在线视频| 国产在线88av| 亚洲国产精品毛片| 国内精品国产三级国产a久久| 久久久久久天堂| 亚洲乱码国产乱码精品精天堂| 91伊人久久| 国产尤物av一区二区三区| 91在线视频在线| 中文字幕乱码一区二区| 欧美噜噜久久久xxx| 欧美尿孔扩张虐视频| 国产一级做a爰片久久| 尤物av一区二区| 久热av在线| 成人久久一区二区三区| 一区二区三区国产在线| 国产一二三av| 亚洲国产高潮在线观看| 欧美xx视频| 97av中文字幕| 国产清纯美女被跳蛋高潮一区二区久久w | 美女精品国产| 国产揄拍国内精品对白| 日韩三级小视频| 久久视频在线免费观看| 亚洲春色h网| 国产又粗又猛大又黄又爽| 日韩欧美一区二区在线| h网站久久久| 日韩欧美在线观看强乱免费|