騰訊一面涼經

自我介紹
1.tcp 三次握手
2.tcp udp 區別
3.p2p 不會?
4.打開網頁的過程?
5.c分配空間方式
6.malloc如何分配內存
7.多態
8.虛指針
9.和爲100
10.bfs
11.32位1e9數據 中位數
12.32位擴展8G
13.線程和進程區別
附加:線程進程切換?
answer
1:tcp 三次握手 c代表客戶端 s代表服務端
第一次 c->s 發送 syn包 seq=n 客戶端狀態變爲syn_send
第二次 s->c 發送 syn ack包 ack=n+1 seq=m 服務器轉檯變爲 syn_recv
第三次 c->s 發送 ack包 ack=m+1 seq=n+2 服務器客戶端變爲establelished
爲什麼要三次握手:建立可靠連接,確定序號,序號一般爲隨機值,防止網絡中被延遲的分組在以後被重傳。
爲什麼不兩次握手:
兩次握手有可能第二次丟失,造成建立多個鏈接,浪費資源。序列號得到確認。
四次握手過程:
第一次 c 發送fin c 狀態變爲 fin_wait_1
第二次 s 發送 ack s 狀態變爲 close_wait c 狀態變爲 fin_wait_2
第三次 s 發送 fin s 狀態變爲 last_ack c 狀態變爲 time_wait
第四次 c 發送 ack s 狀態變爲 closed
四次握手原因:tcp是雙工的協議所以接收方發送方都需要fin和ack 所以有四次
time_wait狀態原因:時長爲2msl 如果客戶端直接進去close 服務器沒收到ack 就會重新發送fin包,客戶端close之後 服務端就不會接收到ack而是收到rst,防止最後一次握手數據丟失。 而且如果關閉之後又使用有可能造成數據混淆。
2.
tcp 有連接的流服務 tcp 擁有標誌位 序號 數據校驗 超時重傳 窗口 擁塞控制 等來控制鏈接的可靠,以及進行會對網絡有益。慢但是可靠 文件傳輸 重要信息
udp 無連接的報文服務 快 但是不可靠 視頻 實時通信等
3.
p2p https://www.cnblogs.com/linsanshu/p/5546948.html 特點減少了服務器的負載,負載均衡,人人都是用戶也是服務器,缺點用戶少了用戶體驗極差。越多越好。採用哪種拓撲以及如何優化是重點。
4.打開一個網頁,例如 www.baidu.com dns協議查找到 網址的ip 順序 瀏覽器 電腦 路由器 isp網絡服務提供商 域名服務器 用tcp協議建立連接 然後就開始用http協議 post get這些請求了 用到的協議 dns http tcp ip arp(以太網會用到mac地址) 路由器上ospf等內部網關協議 bgp等外部網關協議
5.分配空間 malloc 小於128k調用brk函數分配 由鏈表管理的內存 大於128kmmap函數分配文件映射區
7.靜態多態和動態多態
靜態多態 函數重載 編譯期確定
動態多態 虛函數 定義時在數據的頭部 sizeof 當前類的虛函數只會佔用一個指針的空間
作用 確定類型裝換之後調用的函數爲原先類型的函數。
9.整數 求有多少個和爲100 不重複 sort 雙指針 複雜度 nlogn
可以重複 例如0 100 統計有多少個100 多少個0 最後計數 注意50
10.bfs不用函數 就是隊列 dfs是棧
11.32位1e9求中位數
當時思路:分組 例如 0-1e8 1e8-2e8…確定是哪組 然後重複這個行爲
12.虛擬內存 三級頁表
13.https://blog.csdn.net/zhou753099943/article/details/51771220
線程和進程如何切換:https://www.cnblogs.com/kkshaq/p/4547725.html

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