阿里雲iot事業部一面面經

18/7/24 阿里雲IoT(物聯網)事業部
無錫新吳區與阿里巴巴(NYSE:BABA)旗下的阿里雲計算有限公司宣佈達成物聯網戰略合作,阿里雲IoT(物聯網)事業部將爲物聯網核心示範區提供技術與服務,包括建設鴻山物聯網基礎平臺(飛鳳平臺),賦能開發與交付環境,加速物聯網應用成熟與商業化,共同打造世界級物聯網示範項目。

1.自我介紹

2.客戶端輸入url到服務器端響應整個過程【服務器端處理這塊答得不好】

3.Udp tcp dns(爲什麼使用udp使用tcp行不行)

DNS報文角度來看
主要是查看DNS報文首部中的標誌字段
[QR][opcode][AA][TC][RD][RA][(zone)][rcode]
當客戶端發出DNS查詢請求,從服務器收到的響應報文中的TC(刪減標誌)比特被置爲1時,表示應答總長度超過512字節,只返回前512個字節,這時DNS就需要使用TCP重發原來的查詢請求。因爲在UDP的應用程序中,其應用程序被限制在512個字節或更小,因此DNS報文穿數據流只能有512字節,而TCP能將用戶的數據流分爲一些報文段,因此TCP就能用多個報文段去傳超過512字節的數據流或是任意長度的數據流。
二、應用角度來看
DNS的主輔名字服務器在同步時使用TCP協議。輔名字服務器一般每3小時向主名字服務器發起查詢,看主服務器是否有新的記錄變動,如有變動,將執行一次區域傳送,區域傳送使用TCP協議。區域傳輸用TCP,其他用UDP。
什麼是區域傳輸?
dns的規範規定了2種類型的dns服務器,一個叫主dns服務器,一個叫輔助dns服務器。在一個區中主dns服務器從自己本機的數據文件中讀取該區的dns數據信息,而輔助dns服務器則從區的權威dns服務器中讀取該區的dns數據信息。當一個輔助dns服務器啓動時,它需要與主dns服務器通信,並加載數據信息,這就叫做區傳送(zone transfer).
通俗地講,就是DNS服務器之間傳輸時使用TCP,而客戶端與DNS服務器之間傳輸時用的是UDP
如果比較UDP包和TCP包的結構,很明顯UDP包不具備TCP包複雜的可靠性與控制機制。與TCP協議相同,UDP的源端口數和目的端口數也都支持一臺主機上的多個應用。一個16位的UDP包包含了一個字節長的頭部和數據的長度,校驗碼域使其可以進行整體校驗。(許多應用只支持UDP,如:多媒體數據流,不產生任何額外的數據,即使知道有破壞的包也不進行重發。)
很明顯,當數據傳輸的性能必須讓位於數據傳輸的完整性、可控制性和可靠性時,TCP協議是當然的選擇。當強調傳輸性能而不是傳輸的完整性時,如:音頻和多媒體應用,UDP是最好的選擇。在數據傳輸時間很短,以至於此前的連接過程成爲整個流量主體的情況下,UDP也是一個好的選擇,如:DNS交換。把SNMP建立在UDP上的部分原因是設計者認爲當發生網絡阻塞時,UDP較低的開銷使其有更好的機會去傳送管理數據。TCP豐富的功能有時會導致不可預料的性能低下,但是我們相信在不遠的將來,TCP可靠的點對點連接將會用於絕大多數的網絡應用。

TCP(Transmission Control Protocol,傳輸控制協議)是基於連接的協議,也就是說,在正式收發數據前,必須和對方建立可靠的連接。一個TCP連接必須要經過三次“對話”才能建立起來。三次對話的簡單過程:主機A向主機B發出連接請求數據包:“我想給你發數據,可以嗎?”,這是第一次對話;主機B向主機A發送同意連接和要求同步(同步就是兩臺主機一個在發送,一個在接收,協調工作)的數據包:“可以,你什麼時候發?”,這是第二次對話;主機A再發出一個數據包確認主機B的要求同步:“我現在就發,你接着吧!”,這是第三次對話。三次“對話”的目的是使數據包的發送和接收同步,經過三次“對話”之後,主機A才向主機B正式發送數據。

UDP(User Data Protocol,用戶數據報協議)是與TCP相對應的協議。它是面向非連接的協議,它不與對方建立連接,而是直接就把數據包發送過去!
UDP適用於一次只傳送少量數據、對可靠性要求不高的應用環境。比如,我們經常使用“ping”命令來測試兩臺主機之間TCP/IP通信是否正常,其實“ping”命令的原理就是向對方主機發送UDP數據包,然後對方主機確認收到數據包,如果數據包是否到達的消息及時反饋回來,那麼網絡就是通的。例如,在默認狀態下,一次“ping”操作發送4個數據包(如圖2所示)。大家可以看到,發送的數據包數量是4包,收到的也是4包(因爲對方主機收到後會發回一個確認收到的數據包)。這充分說明了UDP協議是面向非連接的協議,沒有建立連接的過程。正因爲UDP協議沒有連接的過程,所以它的通信效果高;但也正因爲如此,它的可靠性不如TCP協議高。QQ就使用UDP發消息,因此有時會出現收不到消息的情況。HTTP是用TCP協議傳輸的。

4.進程調度

5.設計一種完全公平的進程調度算法

6.Mysql的索引,以及索引的數據結構(b+樹和hash區別)。存儲引擎

7.mysql日誌

8.說一個你擅長的項目

9.Docker的兩種技術,cgroup和namespace很早就有了,爲什麼現在才火起來。

10.Dockers直接跑在物理機上和直接跑在openstack的虛擬機上有什麼區別。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章