您好,登錄后才能下訂單哦!
這篇文章主要介紹“2021最新版TCP,UDP,Socket,Http的網(wǎng)絡(luò)編程面試題有哪些”,在日常操作中,相信很多人在2021最新版TCP,UDP,Socket,Http的網(wǎng)絡(luò)編程面試題有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”2021最新版TCP,UDP,Socket,Http的網(wǎng)絡(luò)編程面試題有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
在計算機網(wǎng)絡(luò)要做到井井有條的交換數(shù)據(jù),就必須遵守一些事先約定好的規(guī)則,比如交換數(shù)據(jù)的格式、是否需要發(fā)送一個應(yīng)答信息。這些規(guī)則被稱為網(wǎng)絡(luò)協(xié)議。
簡化問題難度和復(fù)雜度。由于各層之間獨立,我們可以分割大問題為小問題。
靈活性好。當(dāng)其中一層的技術(shù)變化時,只要層間接口關(guān)系保持不變,其他層不受影響。
易于實現(xiàn)和維護。
促進標(biāo)準(zhǔn)化工作。分開后,每層功能可以相對簡單地被描述
應(yīng)用層 應(yīng)用層最靠近用戶的一層,是為計算機用戶提供應(yīng)用接口,也為用戶直接提供各種網(wǎng)絡(luò)服務(wù)。我們常見應(yīng)用層的網(wǎng)絡(luò)服務(wù)協(xié)議有:HTTP,HTTPS,F(xiàn)TP,TELNET等。
傳輸層 建立了主機端到端的鏈接,傳輸層的作用是為上層協(xié)議提供端到端的可靠和透明的數(shù)據(jù)傳輸服務(wù),包括處理差錯控制和流量控制等問題。該層向高層屏蔽了下層數(shù)據(jù)通信的細(xì)節(jié),使高層用戶看到的只是在兩個傳輸實體間的一條主機到主機的、可由用戶控制和設(shè)定的、可靠的數(shù)據(jù)通路。我們通常說的,TCP UDP就是在這一層。端口號既是這里的“端”。
網(wǎng)絡(luò)層 本層通過IP尋址來建立兩個節(jié)點之間的連接,為源端的運輸層送來的分組,選擇合適的路由和交換節(jié)點,正確無誤地按照地址傳送給目的端的運輸層。就是通常說的IP層。這一層就是我們經(jīng)常說的IP協(xié)議層。IP協(xié)議是Internet的基礎(chǔ)。
數(shù)據(jù)鏈路層 通過一些規(guī)程或協(xié)議來控制這些數(shù)據(jù)的傳輸,以保證被傳輸數(shù)據(jù)的正確性。實現(xiàn)這些規(guī)程或協(xié)議的 硬件 和軟件加到物理線路,這樣就構(gòu)成了數(shù)據(jù)鏈路,
對某些實時性要求比較高的情況使用UDP,比如游戲,媒體通信,實時直播,即使出現(xiàn)傳輸錯誤也可以容忍;其它大部分情況下,HTTP都是用TCP,因為要求傳輸?shù)膬?nèi)容可靠,不出現(xiàn)丟失的情況
在網(wǎng)絡(luò)數(shù)據(jù)傳輸中,傳輸層協(xié)議TCP是要建立連接的可靠傳輸,TCP建立連接的過程,我們稱為三次握手。
這個肯定可以。三次握手都可以保證連接成功了,何況是四次,但是會降低傳輸?shù)男省?/p>
服務(wù)器每收到一次客戶端的請求后都會重新復(fù)位一個計時器,時間通常是設(shè)置為2小時,若兩小時還沒有收到客戶端的任何數(shù)據(jù),服務(wù)器就會發(fā)送一個探測報文段,以后每隔75秒鐘發(fā)送一次。若一連發(fā)送10個探測報文仍然沒反應(yīng),服務(wù)器就認(rèn)為客戶端出了故障,接著就關(guān)閉連接。
TCP連接的一方A,隨機選擇一個32位的序列號(Sequence Number)作為發(fā)送數(shù)據(jù)的初始序列號(Initial Sequence Number,ISN),比如為1000,以該序列號為原點,對要傳送的數(shù)據(jù)進行編號:1001、1002...三次握手時,把這個初始序列號傳送給另一方B,以便在傳輸數(shù)據(jù)時,B可以確認(rèn)什么樣的數(shù)據(jù)編號是合法的;同時在進行數(shù)據(jù)傳輸時,A還可以確認(rèn)B收到的每一個字節(jié),如果A收到了B的確認(rèn)編號(acknowledge number)是2001,就說明編號為1001-2000的數(shù)據(jù)已經(jīng)被B成功接受。
在網(wǎng)絡(luò)數(shù)據(jù)傳輸中,傳輸層協(xié)議斷開連接的過程我們稱為四次揮手
因為服務(wù)器收到客戶端斷開連接的請求時,可能還有一些數(shù)據(jù)沒有發(fā)完,這時先回復(fù)ACK,表示接收到了斷開連接的請求。等到數(shù)據(jù)發(fā)完之后再發(fā)FIN,斷開服務(wù)器到客戶端的數(shù)據(jù)傳送。
客戶端沒有收到ACK確認(rèn),會重新發(fā)送FIN請求。
網(wǎng)絡(luò)上的兩個程序通過一個雙向的通訊連接實現(xiàn)數(shù)據(jù)的交換,這個雙向鏈路的一端稱為一個Socket。Socket通常用來實現(xiàn)客戶方和服務(wù)方的連接。Socket是TCP/IP協(xié)議的一個十分流行的編程界面,一個Socket由一個IP地址和一個端口號唯一確定。
但是,Socket所支持的協(xié)議種類也不光TCP/IP、UDP,因此兩者之間是沒有必然聯(lián)系的。在Java環(huán)境下,Socket編程主要是指基于TCP/IP協(xié)議的網(wǎng)絡(luò)編程。
socket連接就是所謂的長連接,客戶端和服務(wù)器需要互相連接,理論上客戶端和服務(wù)器端一旦建立起連接將不會主動斷掉的,但是有時候網(wǎng)絡(luò)波動還是有可能的
Socket偏向于底層。一般很少直接使用Socket來編程,框架底層使用Socket比較多,
先運行服務(wù)端,在運行客戶端 ,
服務(wù)端:
package com.test.io; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream;
Socket連接就是所謂的長連接,理論上客戶端和服務(wù)器端一旦建立起連接將不會主動斷掉;
Socket適用場景:網(wǎng)絡(luò)游戲,銀行持續(xù)交互,直播,在線視屏等。
http連接就是所謂的短連接,即客戶端向服務(wù)器端發(fā)送一次請求,服務(wù)器端響應(yīng)后連接即會斷開等待下次連接
http適用場景:公司OA服務(wù),互聯(lián)網(wǎng)服務(wù),電商,辦公,網(wǎng)站等等等等
到此,關(guān)于“2021最新版TCP,UDP,Socket,Http的網(wǎng)絡(luò)編程面試題有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。