網路協議,如tcp/udp的區別?(
1、tcp面向連線(如打**要先撥號建立連線);udp是無連線的,即傳送資料之前不需要建立連線
2、tcp提供可靠的服務。也就是說,通過tcp連線傳送的資料,無差錯,不丟失,不重複,且按序到達;udp盡最大努力交付,即不保證可靠交付
3、tcp面向位元組流,實際上是tcp把資料看成一連串無結構的位元組流;udp是面向報文的
4、每一條tcp連線只能是點到點的;udp支援一對一,一對多,多對一和多對多的互動通訊
5、tcp首部開銷20位元組;udp的首部開銷小,只有8個位元組
6、tcp的邏輯通訊通道是全雙工的可靠通道,udp則是不可靠通道
三次握手與四次揮手
三次握手通俗版:
第一次握手:客戶端要和服務端進行通訊,首先要告知服務端一聲,遂發出乙個syn=1的連線請求訊號,」服務端哥哥,我想給你說說話」。
第二次握手:當服務端接收到客戶端的連線請求,此時要給客戶端乙個確認資訊,」我知道了(ack),我這邊已經準備好了,你現在能連嗎(syn)」。
第三次握手:當客戶端收到了服務端的確認連線資訊後,要禮貌的告知一下服務端,「好的,咱們開始聯通吧(ack)」。
到此整個建立連線的過程已經結束,接下來就是雙方你一句我一句甚至同時交流傳遞資訊的過程了。
四次揮手斷開連線通俗版:
第一次揮手:雙方交流的差不多了,此時客戶端也已經結尾了,接下來要斷開通訊連線,所以告訴服務端「我說完了(fin)」,此時自身形成等待結束連線的狀態。
第二次揮手:服務端知道客戶端已經沒話說了,服務端此時還有兩句話要給客戶端說「我知道你說完了(ack),我再說兩句&*…%¥」…
第三次揮手:此時客戶端洗耳恭聽繼續處於等待結束的狀態,伺服器端也說完了,自身此時處於等待關閉連線的狀態,並對告訴客戶端,「我說完了,咱們斷了吧(fin)」。
第四次揮手:客戶端收知道服務端也說完了,也要告訴服務端一聲(ack),因為連線和斷開要雙方都按下關閉操作才能斷開,客戶端同時又為自己定義乙個定時器,因為不知道剛才說的這句話能不能準確到達服務端(網路不穩定或者其他因素引起的網路原因)。
所以預設時間定為兩個通訊的最大時間之和,超出這個時間就預設伺服器端已經接收到了自己的確認資訊,此時客戶端就關閉自身連線,伺服器端一旦接收到客戶端發來的確定通知就立刻關閉伺服器端的連線。
到此為止雙方整個通訊過程就此終結。
三次握手闡述:
在第一次訊息傳送中,a隨機選取乙個序列號作為自己的初始序號傳送給b;
第二次訊息b使用ack對a的資料報進行確認,因為已經收到了序列號為x的資料報,準備接收序列號為x+1的包,所以ack=x+1,同時b告訴a自己的初始序列號,就是seq=y;
第三條訊息a告訴b收到了b的確認訊息並準備建立連線,a自己此條訊息的序列號是x+1,所以seq=x+1,而ack=y+1是表示a正準備接收b序列號為y+1的資料報。
四次揮手闡述:
由於tcp連線時全雙工的,因此,每個方向都必須要單獨進行關閉,這一原則是當一方完成資料傳送任務後,傳送乙個fin來終止這一方向的連線,
收到乙個fin只是意味著這一方向上沒有資料流動了,即不會再收到資料了,但是在這個tcp連線上仍然能夠傳送資料,直到這一方向也傳送了fin。
首先進行關閉的一方將執行主動關閉,而另一方則執行被動關閉,上圖描述的即是如此。
(1)第一次揮手:client傳送乙個fin,用來關閉client到server的資料傳送,client進入fin_wait_1狀態。
(2)第二次揮手:server收到fin後,傳送乙個ack給client,確認序號為收到序號+1(與syn相同,乙個fin占用乙個序號),server進入close_wait狀態。
(3)第三次揮手:server傳送乙個fin,用來關閉server到client的資料傳送,server進入last_ack狀態。
(4)第四次揮手:client收到fin後,client進入time_wait狀態,接著傳送乙個ack給server,確認序號為收到序號+1,server進入closed狀態,完成四次揮手。
網路協議相關
應用層 telnet pop 郵件 http 表示層會話層 傳輸層 tcp udp 網路層 ip icmp 鏈路診斷 arp 為鏈路層獲得目標位址的mac位址 dhcp 動態位址配置協議,不用管理員配位址 nat translator,位址轉換,私有位址對外的轉換,節約位址和網路安全考慮ipv6也有...
軟體測試 之網路篇
2 常見的http返回碼有哪些?200 請求被成功處理 301 請求位址永久轉移 302 請求位址臨時轉移 400 404 客戶端問題 身份驗證 許可權等 500 伺服器內部錯誤 5 對http協議怎麼理解的?參 http協議是應用層的乙個超文字資料傳輸協議,由請求和響應構成,主要的請求方式有get...
軟體測試相關
軟體測試模型 v模型 使用者需求 需求分析與系統 概要設計 詳細設計 編碼 單元測試 整合測試 系統測試 驗收測試 w模型 開發 使用者需求 需求分析與系統設計 概要設計 詳細設計 編碼 整合 實施 交付 測試 使用者需求 驗收測試準備 需求分析與設計 系統測試準備 詳細設計 單元測試準備 整合測試...