計(jì)算機(jī)網(wǎng)絡(luò)面試題

[toc]

計(jì)算機(jī)網(wǎng)絡(luò)面試

基礎(chǔ)部分

TCP報(bào)頭格式 (20字節(jié))

[圖片上傳失敗...(image-5dc5cd-1521004095489)]

  • 32位端口號(hào):

源端口和目的端口各占16位赡麦,2的16次方等于65536,看端口的命令:netstat爆阶。

  • 32位序號(hào):

也稱為順序號(hào)(Sequence Number)萌庆,簡(jiǎn)寫為SEQ溶褪,

  • 32位確認(rèn)序號(hào):

也稱為應(yīng)答號(hào)(Acknowledgment Number),簡(jiǎn)寫為ACK践险。在握手階段猿妈,確認(rèn)序號(hào)將發(fā)送方的序號(hào)加1作為回答。

  • 4位首部長(zhǎng)度:

這個(gè)字段占4位巍虫,它的單位時(shí)32位(4個(gè)字節(jié))彭则。本例值為7,TCP的頭長(zhǎng)度為28字節(jié)垫言,等于正常的長(zhǎng)度2 0字節(jié)加上可選項(xiàng)8個(gè)字節(jié)贰剥。,TCP的頭長(zhǎng)度最長(zhǎng)可為60字節(jié)(二進(jìn)制1111換算為十進(jìn)制為15筷频,15*4字節(jié)=60字節(jié))。

  • 6位標(biāo)志字段:

ACK 置1時(shí)表示確認(rèn)號(hào)(為合法前痘,為0的時(shí)候表示數(shù)據(jù)段不包含確認(rèn)信息凛捏,確認(rèn)號(hào)被忽略。

RST 置1時(shí)重建連接芹缔。如果接收到RST位時(shí)候坯癣,通常發(fā)生了某些錯(cuò)誤。

SYN 置1時(shí)用來發(fā)起一個(gè)連接最欠。

FIN 置1時(shí)表示發(fā)端完成發(fā)送任務(wù)示罗。用來釋放連接惩猫,表明發(fā)送方已經(jīng)沒有數(shù)據(jù)發(fā)送了。

URG 緊急指針蚜点,告訴接收TCP模塊緊要指針域指著緊要數(shù)據(jù)轧房。注:一般不使用。

PSH 置1時(shí)請(qǐng)求的數(shù)據(jù)段在接收方得到后就可直接送到應(yīng)用程序绍绘,而不必等到緩沖區(qū)滿時(shí)才傳送奶镶。注:一般不使用。

  • 16位檢驗(yàn)和:

檢驗(yàn)和覆蓋了整個(gè)的TCP報(bào)文段: TCP首部和TCP數(shù)據(jù)陪拘。這是一個(gè)強(qiáng)制性的字段厂镇,一定是由發(fā)端計(jì)算和存儲(chǔ),并由收端進(jìn)行驗(yàn)證左刽。

  • 16位緊急指針:

注:一般不使用捺信。

只有當(dāng)U R G標(biāo)志置1時(shí)緊急指針才有效。緊急指針是一個(gè)正的偏移量欠痴,和序號(hào)字段中的值相加表示緊急數(shù)據(jù)最后一個(gè)字節(jié)的序號(hào)残黑。

  • 可選與變長(zhǎng)選項(xiàng):

通常為空,可根據(jù)首部長(zhǎng)度推算斋否。用于發(fā)送方與接收方協(xié)商最大報(bào)文段長(zhǎng)度(MSS)梨水,或在高速網(wǎng)絡(luò)環(huán)境下作窗口調(diào)節(jié)因子時(shí)使用。首部字段還定義了一個(gè)時(shí)間戳選項(xiàng)茵臭。

  • 最常見的可選字段是最長(zhǎng)報(bào)文大小疫诽,又稱為MSS (Maximum Segment Size)同仆。每個(gè)連接方通常都在握手的第一步中指明這個(gè)選項(xiàng)嫩码。它指明本端所能接收的最大長(zhǎng)度的報(bào)文段胸懈。1460是以太網(wǎng)默認(rèn)的大小龄广。

UDP報(bào)頭格式(8字節(jié))

[圖片上傳失敗...(image-9ecf21-1521004095489)]

  • 2字節(jié)源端口字段

源端口是一個(gè)大于1023的16位數(shù)字贬蛙,由基于UDP應(yīng)用程序的用戶進(jìn)程隨機(jī)選擇助隧。

  • 2字節(jié)節(jié)的端口字段

  • 2字節(jié)長(zhǎng)度字段

指明了包括首部在內(nèi)的UDP報(bào)文段長(zhǎng)度痒给。UDP長(zhǎng)字段的值是UDP報(bào)文頭的長(zhǎng)度(8字節(jié))與UDP所攜帶數(shù)據(jù)長(zhǎng)度的總和贪薪。

  • 2字節(jié)校驗(yàn)和字段

是指整個(gè)UDP報(bào)文頭和UDP所帶的數(shù)據(jù)的校驗(yàn)和(也包括偽報(bào)文頭)查辩。偽報(bào)文頭不包括在真正的UDP報(bào)文頭中胖笛,但是它可以保證UDP數(shù)據(jù)被正確的主機(jī)收到了。因在校驗(yàn)和中加入了偽頭標(biāo)宜岛,故ICMP除能防止單純數(shù)據(jù)差錯(cuò)之外长踊,對(duì)IP分組也具有保護(hù)作用。

TCP/UDP區(qū)別 (待補(bǔ)全)

  1. TCP面向連接(如打電話要先撥號(hào)建立連接);UDP是無連接的萍倡,即發(fā)送數(shù)據(jù)之前不需要建立連接
  2. TCP提供可靠的服務(wù)身弊。也就是說,通過TCP連接傳送的數(shù)據(jù),無差錯(cuò)阱佛,不丟失帖汞,不重復(fù),且按序到達(dá);UDP盡最大努力交付凑术,即不保證可靠交付

Tcp通過校驗(yàn)和翩蘸,重傳控制,序號(hào)標(biāo)識(shí)麦萤,滑動(dòng)窗口鹿鳖、確認(rèn)應(yīng)答實(shí)現(xiàn)可靠傳輸。如丟包時(shí)的重發(fā)控制壮莹,還可以對(duì)次序亂掉的分包進(jìn)行順序控制翅帜。

  1. UDP具有較好的實(shí)時(shí)性,工作效率比TCP高命满,適用于對(duì)高速傳輸和實(shí)時(shí)性有較高的通信或廣播通信涝滴。

  2. 每一條TCP連接只能是點(diǎn)到點(diǎn)的;UDP支持一對(duì)一,一對(duì)多胶台,多對(duì)一和多對(duì)多的交互通信

  3. TCP對(duì)系統(tǒng)資源要求較多歼疮,UDP對(duì)系統(tǒng)資源要求較少。

UDP相對(duì)于TCP的優(yōu)勢(shì)

UDP以其簡(jiǎn)單诈唬、傳輸快的優(yōu)勢(shì)韩脏,在越來越多場(chǎng)景下取代了TCP,如實(shí)時(shí)游戲。

  1. 網(wǎng)速的提升給UDP的穩(wěn)定性提供可靠網(wǎng)絡(luò)保障铸磅,丟包率很低赡矢,如果使用應(yīng)用層重傳,能夠確保傳輸?shù)目煽啃浴?/p>

  2. TCP為了實(shí)現(xiàn)網(wǎng)絡(luò)通信的可靠性阅仔,使用了復(fù)雜的擁塞控制算法吹散,建立了繁瑣的握手過程,由于TCP內(nèi)置的系統(tǒng)協(xié)議棧中八酒,極難對(duì)其進(jìn)行改進(jìn)空民。

采用TCP,一旦發(fā)生丟包羞迷,TCP會(huì)將后續(xù)的包緩存起來界轩,等前面的包重傳并接收到后再繼續(xù)發(fā)送,延時(shí)會(huì)越來越大闭树,基于UDP對(duì)實(shí)時(shí)性要求較為嚴(yán)格的情況下耸棒,采用自定義重傳機(jī)制,能夠把丟包產(chǎn)生的延遲降到最低报辱,盡量減少網(wǎng)絡(luò)問題對(duì)游戲性造成影響。

TCP UDP 編程步驟的區(qū)別

TCP

服務(wù)端

  1. 創(chuàng)建一個(gè)socket
  2. 設(shè)置socket的屬性
  3. 綁定ip地址和端口
  4. 開啟監(jiān)聽
  5. 接受客戶端上來的連接
  6. 收發(fā)數(shù)據(jù)
  7. 關(guān)閉網(wǎng)絡(luò)連接
  8. 關(guān)閉監(jiān)聽
    客戶端
  9. 創(chuàng)建一個(gè)socket
  10. 設(shè)置socket屬性
  11. 綁定IP地址、端口等信息到socket上
  12. 設(shè)置要連接的對(duì)方的IP地址和端口等屬性
  13. 連接服務(wù)器
  14. 收發(fā)數(shù)據(jù)
  15. 關(guān)閉網(wǎng)絡(luò)連接

UDP

服務(wù)端

  1. 創(chuàng)建一個(gè)socket碍现,用函數(shù)socket()幅疼;
  2. 設(shè)置socket屬性,用函數(shù)setsockopt();* 可選
  3. 綁定IP地址昼接、端口等信息到socket上爽篷,用函數(shù)bind();
  4. 循環(huán)接收數(shù)據(jù),用函數(shù)recvfrom();
  5. 關(guān)閉網(wǎng)絡(luò)連接慢睡;
    客戶端
  6. 創(chuàng)建一個(gè)socket逐工,用函數(shù)socket();
  7. 設(shè)置socket屬性漂辐,用函數(shù)setsockopt();* 可選
  8. 綁定IP地址泪喊、端口等信息到socket上,用函數(shù)bind();* 可選
  9. 設(shè)置對(duì)方的IP地址和端口等屬性;
  10. 發(fā)送數(shù)據(jù)髓涯,用函數(shù)sendto();
  11. 關(guān)閉網(wǎng)絡(luò)連接袒啼;

HTTP狀態(tài)碼

(最好結(jié)合使用場(chǎng)景,比如在緩存命中時(shí)使用哪個(gè))

  1. HTTP: Status 200 – 服務(wù)器成功返回網(wǎng)頁(yè)
  2. HTTP: Status 3xx - 表示要完成請(qǐng)求纬纪,需要進(jìn)一步操作 通常蚓再,這些狀態(tài)代碼用來重定向
  3. HTTP: Status 404 – 請(qǐng)求的網(wǎng)頁(yè)不存在
  4. HTTP: Status 503 – 服務(wù)不可用

HTTP協(xié)議

(一些報(bào)頭字段的作用,如cace-control包各、keep-alive)

OSI協(xié)議摘仅、TCP/IP協(xié)議以及每層對(duì)應(yīng)的協(xié)議。

SESSION機(jī)制问畅、cookie機(jī)制

TCP三次握手娃属、四次揮手

image
image

MSL是Maximum Segment Lifetime英文的縮寫,中文可以譯為“報(bào)文最大生存時(shí)間”按声,他是任何報(bào)文在網(wǎng)絡(luò)上存在的最長(zhǎng)時(shí)間膳犹,超過這個(gè)時(shí)間報(bào)文將被丟棄

打開網(wǎng)頁(yè)到頁(yè)面顯示之間的過程

  1. 嘗試從本機(jī)Host文件獲取ip地址,沒有則去請(qǐng)求DNS服務(wù)器獲取訪問的IP
  2. 通過三次握手建立TCP連接
  3. 通過HTTP協(xié)議請(qǐng)求網(wǎng)頁(yè)內(nèi)容
  4. 通過瀏覽器渲染請(qǐng)求過來的html

http和https區(qū)別

HTTP:是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議签则,是一個(gè)客戶端和服務(wù)器端請(qǐng)求和應(yīng)答的標(biāo)準(zhǔn)(TCP)须床,用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,它可以使瀏覽器更加高效渐裂,使網(wǎng)絡(luò)傳輸減少豺旬。

HTTPS:是以安全為目標(biāo)的HTTP通道,簡(jiǎn)單講是HTTP的安全版柒凉,即HTTP下加入SSL層族阅,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL膝捞。

HTTPS和HTTP的區(qū)別主要如下:

  1. https協(xié)議需要到ca申請(qǐng)證書坦刀,一般免費(fèi)證書較少,因而需要一定費(fèi)用。
  2. http是超文本傳輸協(xié)議鲤遥,信息是明文傳輸沐寺,https則是具有安全性的ssl加密傳輸協(xié)議。
  3. http和https使用的是完全不同的連接方式盖奈,用的端口也不一樣混坞,前者是80,后者是443钢坦。
  4. http的連接很簡(jiǎn)單究孕,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸爹凹、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議厨诸,比http協(xié)議安全。

https在請(qǐng)求時(shí)額外的過程

客戶端在使用HTTPS方式與Web服務(wù)器通信時(shí)有以下幾個(gè)步驟逛万,如圖所示泳猬。

  1. 客戶使用https的URL訪問Web服務(wù)器,要求與Web服務(wù)器建立SSL連接宇植。
  2. Web服務(wù)器收到客戶端請(qǐng)求后得封,會(huì)將網(wǎng)站的證書信息(證書中包含公鑰)傳送一份給客戶端。
  3. 客戶端的瀏覽器與Web服務(wù)器開始協(xié)商SSL連接的安全等級(jí)指郁,也就是信息加密的等級(jí)忙上。
  4. 客戶端的瀏覽器根據(jù)雙方同意的安全等級(jí),建立會(huì)話密鑰闲坎,然后利用網(wǎng)站的公鑰將會(huì)話密鑰加密疫粥,并傳送給網(wǎng)站。
  5. Web服務(wù)器利用自己的私鑰解密出會(huì)話密鑰腰懂。
  6. Web服務(wù)器利用會(huì)話密鑰加密與客戶端之間的通信梗逮。
image

https是如何保證數(shù)據(jù)安全的

IP地址子網(wǎng)劃分

POST和GET區(qū)別

  1. GET后退按鈕/刷新無害,POST數(shù)據(jù)會(huì)被重新提交(瀏覽器應(yīng)該告知用戶數(shù)據(jù)會(huì)被重新提交)绣溜。
  2. GET書簽可收藏慷彤,POST為書簽不可收藏。
  3. GET能被緩存怖喻,POST不能緩存 底哗。
  4. GET編碼類型application/x-www-form-url,POST編碼類型encodedapplication/x-www-form-urlencoded 或 multipart/form-data锚沸。為二進(jìn)制數(shù)據(jù)使用多重編碼跋选。
  5. GET歷史參數(shù)保留在瀏覽器歷史中。POST參數(shù)不會(huì)保存在瀏覽器歷史中哗蜈。
  6. GET對(duì)數(shù)據(jù)長(zhǎng)度有限制前标,當(dāng)發(fā)送數(shù)據(jù)時(shí)坠韩,GET 方法向 URL 添加數(shù)據(jù);URL 的長(zhǎng)度是受限制的(URL 的最大長(zhǎng)度是 2048 個(gè)字符)候生。POST無限制同眯。
  7. GET只允許 ASCII 字符绽昼。POST沒有限制唯鸭。也允許二進(jìn)制數(shù)據(jù)。
  8. 與 POST 相比硅确,GET 的安全性較差目溉,因?yàn)樗l(fā)送的數(shù)據(jù)是 URL 的一部分。在發(fā)送密碼或其他敏感信息時(shí)絕不要使用 GET 菱农!POST 比 GET 更安全缭付,因?yàn)閰?shù)不會(huì)被保存在瀏覽器歷史或 web 服務(wù)器日志中。
  9. GET的數(shù)據(jù)在 URL 中對(duì)所有人都是可見的循未。POST的數(shù)據(jù)不會(huì)顯示在 URL 中陷猫。
    出處

DNS解析過程

深入部分

TCP如何保證數(shù)據(jù)的可靠傳輸?shù)?/h3>

(這個(gè)問題可以引申出很多子問題,擁塞控制慢開始的妖、擁塞避免绣檬、快重傳、滑動(dòng)窗口協(xié)議嫂粟、停止等待協(xié)議娇未、超時(shí)重傳機(jī)制,最好都能掌握)

地址解析協(xié)議ARP

交換機(jī)和路由器的區(qū)別

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末星虹,一起剝皮案震驚了整個(gè)濱河市零抬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宽涌,老刑警劉巖平夜,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異卸亮,居然都是意外死亡忽妒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門嫡良,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锰扶,“玉大人,你說我怎么就攤上這事寝受】琅#” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵很澄,是天一觀的道長(zhǎng)京闰。 經(jīng)常有香客問我颜及,道長(zhǎng),這世上最難降的妖魔是什么蹂楣? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任俏站,我火速辦了婚禮,結(jié)果婚禮上痊土,老公的妹妹穿的比我還像新娘肄扎。我一直安慰自己,他們只是感情好赁酝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布犯祠。 她就那樣靜靜地躺著,像睡著了一般酌呆。 火紅的嫁衣襯著肌膚如雪衡载。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天隙袁,我揣著相機(jī)與錄音痰娱,去河邊找鬼。 笑死菩收,一個(gè)胖子當(dāng)著我的面吹牛梨睁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播坛梁,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼而姐,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了划咐?” 一聲冷哼從身側(cè)響起拴念,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎褐缠,沒想到半個(gè)月后政鼠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡队魏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年公般,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胡桨。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡官帘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出昧谊,到底是詐尸還是另有隱情刽虹,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布呢诬,位于F島的核電站涌哲,受9級(jí)特大地震影響胖缤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阀圾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一哪廓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧初烘,春花似錦涡真、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至局齿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間橄登,已是汗流浹背抓歼。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拢锹,地道東北人谣妻。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像卒稳,于是被迫代替她去往敵國(guó)和親蹋半。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容