計算機網絡筆記

TCP有連接可靠服務

TCP特點
1.TCP是面向連接的傳輸層協議;
2.每條TCP連接只能有兩個端點,每條TCP連接是一對一的;
3.TCP提供可靠交付,保證傳送數據無差錯,不丟失,不重復且有序;
4.TCP提供全雙工信道,允許通信雙方同時發送數據。TCP兩端都設有發送緩存和接收緩存,用來臨時存放雙向通信的數據;
發送緩存存放的數據:1.發送應用程序傳給發送方TCP準備發送的數據。2.TCP已發送但未收到確認的數據。
接收緩存存放的數據:1.按序到達但尚未被接受應用程序讀取的數據。2.不按序到達的數據。
5.TCP是面向字節流的,雖然應用程序和TCP的交互是一次一個數據塊(大小不等),但TCP把應用程序交下來的數據僅視為一串無結構的字節流。(這會導致粘包問題)UDP報文長度由發送應用進程決定,TCP報文的長度需要根據接收方給出的窗口值和網絡擁塞程度來決定。如果進程傳送到TCP緩存的數據塊太長,TCP會把它劃分得短一些傳送,如果太短則積足夠多得字節再組成報文段發出去。
TCP連接的端口為套接字,由IP和端口號組成,套接字唯一的標識網絡中的一臺主機和其上的一個應用(進程)。每條TCP連接唯一的被通信的兩個端口確定。

三次握手
1.客戶機向服務器發送請求連接報文段,報文段中同步位SYN置1,同時包含一個初始序號seq=x,客戶端進入同步已發送(SYN-SENT)狀態。
2.服務器收到客戶端的請求連接報文,回復一個確認報文。報文中確認位ACK、同步位SYN都置1,并包含一個初始序號seq=y和確認號ack=x+1,服務器進入同步收到(SYN-RCVD)狀態。
3.客戶端收到服務器的確認之后再向服務器發送一個確認報文,報文中確認位ACK置1,序號為seq=x+1,確認號ack=y+1,客戶進程進入已建立連接(ESTABLISHED)狀態。

四次揮手
1.客戶機發送釋放鏈接報文段,并停止發送數據,主動關閉TCP連接。報文段中終止位FIN置1,序號seq=u為上一個發送序號+1,客戶機進入終止等待1(FIN-WAIT_1)狀態。
2.服務器收到報文段后回復一個確認報文段。報文段中確認位ACK置1,確認號ack=u+1,序號seq=v為前一個序號加一,服務器進入關閉等待狀態(CLOSE-WAIT)。
3.當服務器沒有要向客戶機發送的數據時,通知TCP釋放鏈接。發送釋放連接報文段。報文段中終止位FIN確認位ACK都置1,確認號ack=u+1,序號seq=w(可能在這之前服務器還發送過一些數據),服務器進入最后確認狀態(LAST-ACK)。
4.客戶機收到報文,回復一個確認報文段。報文段中確認位ACK置1,確認號ack=w+1,序號seq=u+1。客戶機等待2MSL(最長報文段壽命)后進入連接關閉狀態(CLOSED)。

UDP無連接非可靠服務

UDP特點
1.無需建立連接,沒有建立連接時延;
2.無連接狀態,因為是無連接,因此不必維護連接狀態(接收緩存發送緩存擁塞控制和確認之類的);
3.分組首部開銷更小(UDP首部只有8B,而TCP有20B);
4.應用層能更好的控制發送的數據和發送時間。(沒有擁塞控制不會受網絡擁塞影響);
5.UDP支持一對一,一對多,多對多的交互通信,而TCP只支持一對一通信;

UDP常用于一次性傳送較少數據的網絡應用,如DNS,SNMP,也常用于多媒體應用,如IP電話,視屏會議,流媒體等。因為時延小。
UDP不保證可靠交互,但可由用戶在應用層來完成可靠交互(可以在應用層實現類似TCP可靠交互的機制(確認,重傳,數據有序))
UDP是面向報文,UDP對應用層交下來的報文既不合并,也不拆分,而是保留報文的邊界,一次交付一個完整的報文(報文在UDP中是不可分割的,報文是UDP數據報處理的最小單位)。(但UDP交付給IP層(網絡層)后可能會被分片)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/42002.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42002.shtml
英文地址,請注明出處:http://en.pswp.cn/news/42002.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android Studio瀑布流實現

效果: ImageDetail class package com.example.waterfallflow; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.ImageView;public class ImageDetail extends Activity{Overrideprotected void …

DNNGP、DeepGS 和 DLGWAS模型構成對比

一、DNNGP DNNGP 是基于深度卷積神經網絡,這個結構包括一個輸入層,三個卷積層,一個批標準化層,兩個dropout層,一個平坦化層,一個 dense層。 dropout層:在神經網絡中,dropout層是一個非常有效的正…

信息與通信工程面試準備——數學知識|正態分布|中心極限定理

目錄 正態分布 正態分布的參數 正態分布的第一個參數是均值 正態分布的第二個參數是標準差SD 所有正態分布的共同特征 標準正態分布:正態分布的特例 中心極限定理 理解定義 示例# 1 示例# 2 知道樣本均值總是正態分布的實際含義是什么? 正態分…

Scala 如何調試隱式轉換--隱式轉換代碼的顯示展示

方法1 在需要隱式轉換的地方,把需要的參數顯示的寫出。 略方法2,查看編譯代碼 在terminal中 利用 scalac -Xprint:typer xxx.scala方法打印添加了隱式值的代碼示例。 對于復雜的工程來說,直接跑到terminal執行 scalac -Xprint:typer xxx.…

JVM——類文件結構

文章目錄 一 概述二 Class 文件結構總結2.1 魔數2.2 Class 文件版本2.3 常量池2.4 訪問標志2.5 當前類索引,父類索引與接口索引集合2.6 字段表集合2.7 方法表集合2.8 屬性表集合 一 概述 在 Java 中,JVM 可以理解的代碼就叫做字節碼(即擴展名為 .class …

winform 封裝unity web player 用戶控件

環境: VS2015Unity 5.3.6f1 (64-bit) 目的: Unity官方提供的UnityWebPlayer控件在嵌入Winform時要求讀取的.unity3d文件路徑(Src)必須是絕對路徑,如果移動代碼到另一臺電腦,需要重新修改src。于是考慮使…

elementUI 的上傳組件<el-upload>,自定義上傳按鈕樣式

方法一&#xff1a; 原理&#xff1a;調用<el-upload>組件的方法喚起選擇文件事件 效果&#xff1a; 頁面代碼&#xff1a; 1、選擇圖片按鈕 <div class"flex_row_spacebetween btn" click"chooseImg"><span class"el-icon-plus ic…

matlab機器人工具箱基礎使用

資料&#xff1a;https://blog.csdn.net/huangjunsheng123/article/details/110630665 用vscode直接看工具箱api代碼比較方便&#xff0c;代碼說明很多 一、模型設置 1、基礎效果 %采用機器人工具箱進行正逆運動學驗證 a[0,-0.3,-0.3,0,0,0];%DH參數 d[0.05,0,0,0.06,0.05,…

教育行業軟文怎么寫,媒介盒子無償分享

隨著產業升級和技術變革、信息的智能化、數字化發展&#xff0c;也為教育行業帶來了新的增長點&#xff0c;在線教育課程類型豐富多元&#xff0c;新課程不斷涌現。在激烈的市場競爭環境下&#xff0c;教育機構如何根據市場實行差異化戰略并加強自身品牌建成為挑戰。 如今&…

微服務-Ribbon(負載均衡)

負載均衡的面對多個相同的服務的時候&#xff0c;我們選擇一定的策略去選擇一個服務進行 負載均衡流程 Ribbon結構組成 負載均衡策略 RoundRobinRule&#xff1a;簡單的輪詢服務列表來選擇服務器AvailabilityFilteringRule 對兩種情況服務器進行忽略&#xff1a; 1.在默認情…

Php“牽手”拼多多商品詳情頁數據采集方法,拼多多API接口申請指南

拼多多詳情接口 API 是開放平臺提供的一種 API 接口&#xff0c;它可以幫助開發者獲取商品的詳細信息&#xff0c;包括商品的標題、描述、圖片等信息。在電商平臺的開發中&#xff0c;詳情接口API是非常常用的 API&#xff0c;因此本文將詳細介紹詳情接口 API 的使用。 一、拼…

315官方點贊!多燕瘦或將成酵素選購唯一標準

食用酵素及其衍生產品&#xff0c;是近年來國內主流電商平臺的主要增長類目之一。在全球范圍內&#xff0c;酵素的流行由來已久&#xff0c;其中在日本、北美、歐洲等發達國家和地區尤為風靡。據不完全統計&#xff1a;歐洲酵素市場規模約占全球酵素市場份額的40%以上&#xff…

【Linux】一切皆文件

Linux 下一切皆為文件&#xff0c; 文件包括頭文件&#xff0c;庫文件&#xff08;靜態庫和共享庫&#xff09;&#xff0c;可執行文件&#xff0c;目錄文件&#xff0c;軟鏈接文件&#xff0c;配置文件等。 每個文件都依據權限分為用戶、用戶組和其他人三個身份&#xff0c;…

webpack相關面試

運行 npm run xxx 的時候發生了什么&#xff1f; npm run xxx的時候&#xff0c;首先會去項目的package.json文件里找scripts 里找對應的xxx&#xff0c;然后執行 xxx的命令 npm i 的時候&#xff0c;npm 讀到該配置后&#xff0c;就將該文件軟鏈接到 ./node_modules/.bin 目錄…

vscode conda activate激活環境出錯

vscode conda activate 出錯 conda-script.py: error: argument COMMAND: invalid choice: ‘activate’ To initialize your shell, run$ conda init <SHELL_NAME>Currently supported shells are:- bash- fish- tcsh- xonsh- zsh- powershellSee conda init --help f…

自定義Android滑塊拼圖驗證控件

自定義Android滑塊拼圖驗證控件 拼圖認證視圖默認策略工具類參考 1、繼承自AppCompatImageView&#xff0c;兼容ImageView的scaleType設置&#xff0c;可設置離線/在線圖片。 2、通過設置滑塊模型&#xff08;透明背景的圖形塊&#xff09;設置滑塊&#xff08;和缺省塊&#x…

【HarmonyOS北向開發】-01 HarmonyOS概述

飛書原文鏈接-【HarmonyOS北向開發】-01 HarmonyOS概述https://fvcs2dhq8qs.feishu.cn/docx/TDf2d2KMaoPSUUxnvg2cASDdnCe?fromfrom_copylink

Leetcode-每日一題【劍指 Offer 20. 表示數值的字符串】

題目 請實現一個函數用來判斷字符串是否表示數值&#xff08;包括整數和小數&#xff09;。 數值&#xff08;按順序&#xff09;可以分成以下幾個部分&#xff1a; 若干空格一個 小數 或者 整數&#xff08;可選&#xff09;一個 e 或 E &#xff0c;后面跟著一個 整數若干空…

xcode把包打到高版本的iPhone里

打開xcode CTRLb build工程&#xff0c;build成功 把手機連到mac&#xff0c;在xcode選項卡里面的window里面選中device and simulator 打開對應的手機的頁面 然后在工程目錄下build成功過后有一個product的文件夾里面&#xff0c;直接把app拖到對應的手機的窗口就可以不用…

指針和數組簡單填空題合集(純刷題:60道)

前言 本篇文章適合初學指針和數組的朋友&#xff0c;如果您看了前幾組題覺得很簡單&#xff0c;可以看一看我的另一篇文章。 通過本篇文章&#xff0c;你可以清晰的區分出strlen和sizeof的區別&#xff0c;&#xff08;題目類型包括一維數組、二維數組&#xff09;并提高自己…