tcp/udp區別以及tcp如何保證傳輸可靠性
tcp是基於連線的協議,udp是面向非連線的協議;
tcp傳輸可靠,udp傳輸不可靠;
tcp的可靠性是通過順序編號和確認(ack)來實現的。tcp在開始傳送乙個段時,首先將該段插入到傳送佇列之中,同時啟動時鐘。其後,如果收到了接受端對該段的ack資訊,就將該段從佇列中刪去。如果在時鐘規定的時間內,ack未返回,那麼就從傳送佇列中再次送出這個段。tcp在協議中就對資料可靠傳輸做了保障,握手與斷開都需要通訊雙方確認,資料傳輸也需要雙方確認成功
tcp三次握手和四次揮手
三次握手:
第一次握手:客戶端傳送syn包(syn=x)到伺服器,並進入syn_send狀態,等待伺服器確認;
第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=x+1),同時自己也傳送乙個syn包(syn=y),即syn+ack包,此時伺服器進入syn_recv狀態;
第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=y+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。
四次握手:
第一次揮手:主動關閉方傳送乙個fin,用來關閉主動方到被動關閉方的資料傳送。此時主動關閉方還可以接受資料。
第二次揮手:被動關閉方收到fin包後,傳送乙個ack給對方;
第三次揮手:被動關閉方傳送乙個fin,用來關閉被動關閉方到主動關閉方的資料傳送
第四次揮手:主動關閉方收到fin後,傳送乙個ack給被動關閉方
常見的路由選擇協議
rip協議、ospf協議
內部閘道器協議、外部閘道器協議
rip協議:底層是貝爾曼福特演算法,它選擇路由的度量標準(metric)是跳數,最大跳數是15跳,如果大於15跳,它就會丟棄資料報
ospf協議:底層是迪傑斯特拉演算法,是鏈路狀態路由選擇協議,它選擇路由的度量標準是頻寬,延遲。
tcp/ip五層模型
應用層 :ftp(檔案傳送協議)、telenet(遠端登入協議)、dns(網域名稱解析協議)、smtp(郵件傳送協議),pop3協議(郵局協議),http協議
傳輸層:udp協議、tcp協議
網路層:ip協議、icmp協議、arp協議、rarp協議
資料鏈路層
物理層osi七層模型
應用層:負責確定通訊物件,並確保足夠的資源用於通訊。為作業系統或網路應用程式提供訪問網路服務的介面;
表示層:負責資料的編碼、轉化,根據不同的應用目的將資料處理為不同的格式;
會話層:負責建立、維護、控制會話,區分不同的會話
傳輸層:是第乙個端到端,即主機到主機的層次。負責將上層資料分段並提供端到端的、可靠的或不可靠的傳輸;
網路層:上層的資料段在這一層被分割,封裝後叫做包;
資料鏈路層:上層傳下來的包在這一層被分割封裝後叫做幀
物理層:負責將資料以位元流的方式傳送、接收
ip位址的分類
網路號,主機號
a類:8位網路號(首位為0) 24位主機號(刨除全0和全1)
全0代表網路位址、全1代表該網路所有主機
b類:16位網路號(首位為10) 16位主機號(刨除全0和全1)
c類:24位網路號(首位為110) 8位主機號(刨除全0和全1)
arp協議的工作原理
每台主機都會在自己的arp緩衝區中建立乙個 arp列表,以表示ip位址和mac位址的對應關係。
傳送資料時,首先檢查自己 arp列表中是否存在該 ip位址對應的mac位址,如果有,就直接將資料報傳送到這個mac位址;如果沒有,就向本地網段發起乙個arp請求的廣播包,查詢此目的主機對應的mac位址。
網路中所有的主機收到這個arp請求後,會檢查資料報中的目的ip是否和自己的ip位址一致。如果不相同就忽略此資料報;如果相同,該主機首先將傳送端的mac位址和ip位址新增到自己的arp列表中,如果arp表中已經存在該ip的資訊,則將其覆蓋,然後給源主機傳送乙個 arp響應資料報,告訴對方自己是它需要查詢的mac位址;
源主機收到這個arp響應資料報後,將得到的目的主機的ip位址和mac位址新增到自己的arp列表中,並利用此資訊開始資料的傳輸。如果源主機一直沒有收到arp響應資料報,表示arp查詢失敗。
在瀏覽器中輸入www.baidu.com後執行的全部過程
dns解析得到ip位址,客戶端瀏覽器發起乙個http會話,通過tcp進行封裝資料報,輸入到網路層;
客戶端的傳輸層,把http會話請求分成報文段,新增源和目的埠;
客戶端的網路層主要做的是通過查詢路由表確定如何到達伺服器;
客戶端的鏈路層,包通過鏈路層傳送到路由器,通過鄰居協議查詢給定ip位址的mac位址,然後傳送arp請求查詢目的位址,如果得到回應後就可以使用arp的請求應答交換的ip資料報現在就可以傳輸了,然後傳送ip資料報到達伺服器的位址。
tcp為什麼會採用三次握手,若採用二次握手可以嗎?
採用三次握手是為了防止失效的連線請求報文段突然又傳送到伺服器。
失效的連線請求報文段是指:主機a發出的連線請求沒有收到主機b的確認,於是經過一段時間後,主機a又重新向主機b傳送連線請求,且建立成功,順序完成資料傳輸。
主機a第一次傳送的連線請求並沒有丟失,而是因為網路節點導致延遲達到主機b,主機b以為是主機a又發起的新連線,於是主機b同意連線,並向主機a發回確認,但是此時主機a根本不會理會,主機b就一直在等待主機a傳送資料,導致主機b的資源浪費。
http協議與https協議的區別
http是超文字傳輸協議,資訊是明文傳輸,https 則是具有安全性的ssl加密傳輸協議;
http和https使用的是完全不同的連線方式用的埠也不一樣,前者是80,後者是443;
https協議是由ssl(安全套接字層)+http協議構建的可進行加密傳輸、身份認證的網路協議要比http協議安全
計算機網路面試題
常見題 1 osi開放式網際網路參考模型有哪些組成?2 客戶端傳給伺服器時經過tcp ip的四層模型?3 從輸入 到獲得頁面的過程?4 cookie作用是啥?和session區別是啥?tcp ip 1 什麼是tcp協議?什麼是udp協議?2 tcp udp區別?3 tcp報文頭有哪些組成?4 udp...
計算機網路面試題
傳輸層網路層 應用層 3 http協議 報文格式 請求報文 響應報文 請求頭各種字段 響應頭各種字段 http狀態碼。4 https協議 詳細握手過程 各種演算法 摘要演算法 數字簽名 數字證書的原理與過程 http與https 輸入乙個url到瀏覽器返回頁面發生了什麼 網易 cookie與sess...
計算機網路面試題
tcp三次握手與四次揮手 tcp三次握手流程圖 tcp三次握手的原因 tcp四次揮手流程圖 tcp滑動視窗 tcp滑動視窗的解析圖 什麼是http協議無狀態協議?怎麼解決http協議無狀態協議?可以使用cookie來解決無狀態的問題,cookie就相當於乙個通行證,第一次訪問的時候給客戶端傳送乙個c...