主頁 >  其他 > 計算機網路---傳輸層(tcp、udp)

計算機網路---傳輸層(tcp、udp)

2021-06-09 21:59:11 其他

目錄

一、再談埠號

1、埠號范圍劃分

2、相關指令

二、UDP協議

1、udp協議格式

2、udp的特點

4、udp使用注意事項及基于udp的應用層協議

三、TCP協議

1、tcp協議格式

2、tcp報頭解釋

3、TCP確認應答機制

4、TCP超時重傳機制

5、tcp三次握手四次揮手

6、滑動視窗

7、流量控制

8、擁塞控制


一、再談埠號

埠號用來唯一標識一臺主機上通信的行程,在tcp協議中用“源ip”、“源埠”、“目的IP”、“目的埠”、“協議號”這樣一個五元組來標識一個通信,

1、埠號范圍劃分

  • 0 - 1023: 知名埠號 , HTTP, FTP, SSH 等這些廣為使用的應用層協議 , 他們的埠號都是固定的 .
  • 1024 - 65535: 作業系統動態分配的埠號. 客戶端程式的埠號, 就是由作業系統從這個范圍分配的.

一些知名埠號:

  • ssh服務器使用22號埠號;
  • ftp服務器使用21號埠號
  • telnet使用23號埠號
  • http使用80埠號
  • https使用443埠號

2、相關指令

1)查看知名埠號

cat /etc/services

2)netstat查看網路狀況

netstat選項

  • n:拒絕顯示別名,能顯示數字的全部轉化成數字,
  • l:列出所有在listen服務狀態
  • p:顯示建立相關鏈接的程式名
  • t:只顯示tcp相關選項
  • u:只顯示udp相關選項
  • a:顯示所有選項,默認不顯示listen相關

3)查看服務器的行程id--pidof

pidof 行程名

思考1:一個行程可以bind多個埠號?

可以,一個行程可以系結多個埠號,通過這些埠號都可以找到這個行程,

思考2:一個埠號可以被多個行程bind?

不可以,埠號的作用是唯一標識一臺主機上的具體某一個行程,如果多個行程都系結一個埠號就失去了埠號的意義,

二、UDP協議

用戶資料報協議(udp)是作業在傳輸層的一個重要協議,UDP 為應用程式提供了一種無需建立連接就可以發送封裝的 IP 資料包的方法,

1、udp協議格式

思考1:上層協議是如何將udp協議的報頭和有效載荷(資料)分離?

udp的報頭是一個8位元組的定長報頭,當拿到一個udp資料報是讀取到的前8個位元組就是報頭,報頭中包含一個16位的udp長度欄位,通過該欄位計算出udp有效載荷大小,這樣就將udp報頭和有效載荷成功分離,

思考2:udp協議最多可以傳送多少資料?

注意:16位udp長度可以認為是一個unsigned型別,且16位udp長度包括報頭的8位元組,

16位udp長度最多可以表示65535個位元組,而報頭占8位元組,因此udp有效載荷最大長度為65535-8=65527位元組,

思考3:udp協議如何保證用戶資料報的完整性?

udp稱為用戶資料報協議,因此一定要保證用戶資料報的完整性,具體做法就是8位元組報頭+16位丷長度來計算有效載荷長度,從而確保上層協議拿到的是一個完整的資料報,

思考4:16位檢驗和有什么作用?

udp是一個無連接不可靠的傳輸層協議,它的檢驗和只是用來檢驗資料本身是否出錯,由于udp的不可靠性,一旦檢測到檢驗和出錯,udp協議直接將該資料包丟棄,

總結:udp協議通過協議包頭中的16位的源埠和16位的目的埠直到自己“從哪來,到哪去”,通過16位udp長度直到自己攜帶了多大的資料報,并且可以通過這16位udp長度將報頭和有效載荷進行分離,還有一個16位的檢驗和,用來驗證資料報是否出錯,如果出錯直接丟棄,

2、udp的特點

udp協議有以下三個主要特點:

  • 無連接:直到對端的IP地址和埠號就可以直接進行傳輸,不需要建立連接,
  • 不可靠:沒有確認機制,沒有重傳機制,如果因為網路原因導致資料丟失等,udp協議層也不給應用層回傳任何資訊,
  • 面向資料報:傳輸的資料的單位是資料報,
  • 由于udp是面向資料報的,就導致udp不能靈活的控制資料的傳輸和接收次數,udp交給應用層的報文udp就原樣發送既不會拆分也不會合并,也就是說,應用層交給udp100個位元組的資料,udp一次就傳輸100個位元組的資料,接收端也必須一次接收完100個位元組的資料,

其次udp還有以下特點:

  • udp的socket是全雙工的(同一時間既能讀取資料也能寫入資料)
  • udp沒有真正意義的發送緩沖區但是具有接識訓沖區,

udp的緩沖區:

udp是全雙工的,同一時間可以同時進行讀和寫資料,但是如果資料量較大時就有可能導致資料處理不過來,因此需要緩沖區將資料存起來,

  • udp沒有真正意義的發送緩沖區,呼叫sendto會直接交給內核, 由內核將資料傳給網路層協議進行后續的傳輸動作
  • udp具有接識訓沖區,但是這個接識訓沖區不能保證收到的UDP報的順序和發送UDP報的順序一致; 并且如果緩沖區滿了, 再到達的UDP資料就會被丟棄,

4、udp使用注意事項及基于udp的應用層協議

udp可以傳輸的資料大小為2^16位元組(64k),在當今的互聯網環境下是一個非常小的數字,因此如果需要傳送大于64k的資料就需要在應用層手動分包多次發送,并在接收端手動拼接,

基于udp的應用層協議:

  • NFS: 網路檔案系統
  • TFTP: 簡單檔案傳輸協議
  • DHCP: 動態主機配置協議
  • BOOTP: 啟動協議(用于無盤設備啟動)
  • DNS: 域名決議協議

三、TCP協議

TCP全稱為傳輸控制協議,主要功能是對資料的傳輸進行詳細的控制,

1、tcp協議格式

tcp協議的報頭是不定長的,報頭的首部有一個4位欄位表示報頭的長度,具體表示的是該tcp 報頭有多少個32bit(4位元組),也就是說規定了tcp報頭最大長度為(2^4-1)*4 = 60位元組,由于tcp傳輸的是位元組流,因此tcp的有效載荷可以是任意長度的,

同樣的,頭部8個位元組源埠和8個位元組目的埠表示資料“從哪來到哪去”,由于tcp是面向連接的可靠傳輸,因此在tcp的頭部還有很多欄位用來確保資料的可靠傳輸(后面詳細講),

2、tcp報頭解釋

  • 源埠:表示發送資料的行程
  • 目的埠:接收資料的行程
  • 32位序號:發送的資料的序號
  • 32位確認序號:接收到的資料的確認號(一般為序號+1)
  • 4位首部長度:表示tcp首部長度(20~60位元組)
  • 6位標志位

URG:緊急指標是否有效

ACK:確認號是否有效

PSH:當接收端緩沖區滿時,且一直沒有拿走資料,發送端會發送一個PSH標志位為1的資料,提示接收端應用快速將緩沖區的資料取走,

PST:重新建立連接,攜帶PST標志位的報文稱為復位報文段,

SYN:請求建立連接,攜帶SYN標志位的報文稱為同步報文段,

FIN:關閉連接,攜帶FIN標志位的報文稱為結束報文段,

  • 16位視窗大小:接收端的緩沖區大小是有限的,給接收端發送資料將接識訓沖區填滿后如果在繼續發送,則會將原來的資料覆寫,因此tcp協議會將自己的接識訓沖區的剩余大小保存在16位視窗大小中和資料一起發送過去,需要注意的是,在tcp進行三次握手時就會進行第一次視窗大小的“協商”,
  • 16位校驗和:發送端填充, CRC校驗. 接收端校驗不通過, 則認為資料有問題. 此處的檢驗和不光包含TCP首部, 包含TCP資料部分.
  • 16位緊急指標:標識哪部分資料是緊急資料,

3、TCP確認應答機制

tcp進行的是可靠傳輸,傳輸的是位元組流,因此,對于tcp協議需要做到以下兩點:①確保接收端成功接收到資料②確保接收端接收到資料的有序性,

網路中存在許多復雜的情況,因此并不能保證接收端接收到的資料的順序就是發送端發送的順序,因此tcp協議需要確保接收端接收到資料后能夠按照正確的順序對資料進行處理,

確認應答機制:發送方每發送一個資料,接收方就要向發送方發送一個確認信號,表明自己已經收到該資料,從而確保接收端成功接收到資料,

思考:tcp 是如何實作確認應答機制并且確保接收到的資料的順序的?

在tcp報頭中,有兩個4位元組的欄位,分別表示的是32位序號和32位確認序號,tcp協議對將每個位元組的資料都進行了編號,這個編號就是序號,在發送資料時會將資料的編號放在報頭的32位序號中一起發送過去,接收端接收到資料后會發送一個包含32位確認序號的資料,32位確認序號表示的意思是已經接受度奧x號資料期望收到x+1號資料,例如,上圖中發送端發送1~1000號資料,接收端接收到會給發送端發送確認號為1001的確認資料,表示自己已將將1000之前的所有資料都接收到了,希望下次接收到的是1001號資料,這樣,tcp協議就完美的實作了確認應答機制,同時tcp協議還可以通過32位序號將接收到的序號按照發送順序進行處理,保證資料的順序不會出錯,

注意:確認應答機制永遠也不能對所有的資料進行確認,總是會有最后一條資料無法確認,因此確認應答機制并不對確認資料進行確認,

4、TCP超時重傳機制

tcp協議在保證資料可靠傳輸是,還需要確保丟失的資料能夠重新發送,因為,在主機A發送給主機B的資料可能由于網路原因導致資料發送失敗,因此主機A也就收不到主機B的確認,在tcp協議中,如果主機A給主機B發送一個資料,在規定時間內主機A沒有收到資料B的確認,主機A 就認為該資料丟失了(實際上不一定是丟失了,有可能是網路擁堵資料正在發送),會將該資料重新發送給主機B,這就是超時重傳機制,

無論是資料發送失敗(接收端確實沒有接收到資料),還是資料還沒發送過去或者只是確認資料發生丟包(接收端接收到了資料),一旦超時發送端都會將該資料重新進行發送,那么一定會導致接收端存在很多重復的資料,那么該如何設定超時時間呢?

最理想的情況就是找一個最小時間,確保資料在這個時間內一定能夠到達,但是這個時間的長短隨著網路環境的變化,是不同的,如果時間設定過長會影響傳輸速率,如果時間設定過短有可能會頻繁發送重復的包,

TCP為了保證無論在任何情況下都能比較高性能的通信,會動態計算這個時間,在linux中超時時間以500ms為一個單位,每次判斷超時重發的時間都是500ms的整數倍,如果重發一次仍然得不到應答,會等待500*2ms后進行重傳,如果還是不能得到應答則在等待4*500ms重發,以此類推,當累計到一定次數,tcp會認為對端或者網路出現例外,直接強制斷開連接,

5、tcp三次握手四次揮手

在正常情況下 , TCP 要經過三次握手建立連接 , 四次揮手斷開連接,具體程序如下圖:

三次握手程序

1)如何理解連接

對于服務器來說,服務器是1對多的,一個服務器可能要被很多個客戶端連接,因此,服務器端需要將眾多的連接進行管理,這就導致服務器得為這些連接建立相應的資料結構,同時這些操作也是需要時間的,所以,建立連接是需要時間+空間代價的,

2)三次握手程序

  • 一般情況下,第一次連接請求是由客戶端主動發送的,
  • 客戶端向服務器發送一個SYN請求,并將自己置為SYN_SENT狀態,阻塞等待服務器的應答,
  • 服務器收到客戶端的請求后,會向服務器端發送一個SYN+ACK資料包,表示服務器端收到客戶端的請求,并且向客戶端也發起連接請求,此時,服務器端變為SYN_RCVD,等待客戶端的確認,
  • 客戶端收到服務器端的SYN+ACK資料包后會再次向服務器端發送一個ACK確認資料包,發送成功后客戶端置為ESTABLISHED狀態,并且認為已經連接成功,
  • 當服務器端收到客戶端的ACK確認后,此時雙方建立連接成功,服務器置為ESTABLISHED狀態,

3)為什么是三次握手?

  1. 如果是1次握手,客戶端給服務器端發送一個連接請求直接就連接成功了,這與udp五連接有什么區別?建立連接是為了更好的管理,一次握手建立連接很容易遭到黑客的SYN洪水攻擊,導致服務器宕機,
  2. 如果是2次握手,客戶端向服務器端發送一個請求,服務器端向客戶端發送一個確認,到此請求建立成功,那么存在一個問題,服務器端發送的ACK確認如果丟失了,此時服務器認為已經建立連接成功了,而客戶端沒有收到服務器的ACK確認認為沒有建立連接成功,就會進行超時重傳,這樣就可能導致服務器端資源浪費,同時2次握手也容易遭到SYN洪水攻擊,
  3. tcp傳輸資料時,最新的資料永遠是無法保證可靠性的(最新的資料不會進行確認),當進行三次握手時,只要前兩次失敗客戶端和服務器端就會認為連接沒有建立成功,但是,如果第3三次握手失敗,此時客戶端認為建立成功了而服務器端認為沒有建立成功,不會為其創建相應的資料結構,并且服務器端沒有收到客戶端的ACK確認就會進行超時重傳,當重傳次數達到一定程度后就直接強制斷開連接,因此也不會對客戶端造成很大的影響,但是,如果是四次連接就會導致服務器端認為連接建立成功,而客戶端認為沒有建立成功,此時浪費的是服務器資源,服務器是1對多的,如果大量的客戶端對服務器連接都出現這種問題,就會給服務器帶來巨大的資源浪費,甚至導致服務器崩潰,當然,五次握手和三次握手結果是相同的,但是三次握手是最小保證可靠連接的次數,相比于5/7...節省時間,
  4. 總結:為什么三次握手可以,第一個原因就是讓吳福氣不要出現建立誤判情況,浪費服務器資源;其次還有一個重要原因就是,以最小成本驗證全雙工(tcp是全雙工的,三次握手就可以保證全雙工通信信道的場通),

四次揮手程序

1)為什么是四次揮手

斷開連接是需要上方同時建立起斷開連接狀態的,因此需要互相請求和確認,一共就是四次揮手,

2)四次揮手的程序

  • 客戶端向服務器端發送FIN斷開連接請求,發送成功后客戶端置為FIN_WAIT1狀態,
  • 服務器端收到客戶端的FIN請求后,需要向客戶端發送一個ACK確認,發送成功后,服務器端置為CLOS_WAIT狀態,
  • 客戶端收到服務器端的ACK確認后進入FIN_WAIT2狀態,
  • 服務器端給客戶端發送FIN斷開連接請求,并進入ALST_ACK狀態,
  • 客戶端向服務器端發送ACK確認,進入TIME_WAIT狀態,此時客戶端并沒有立刻斷開連接,
  • 服務器端收到客戶端的ACK確認后關閉連接,此時服務器端進入CLOSED狀態,斷開連接成功,

理解TIME_WAIT和CLOSE_WAIT狀態

1)TIME_WAIT狀態

為什么客戶端給服務器端發完ACK確認后,沒有立刻進入CLOSED狀態?

對于客戶端的最后一次ACK確認,服務器端不會在進行確認,如果客戶端立刻進入CLOSED狀態,有可能導致服務器端并沒有接收到ACK確認,對FIN進行超時重傳,但是此時客戶端已經斷開連接,服務器端是一直收不到客戶端確認的,只能等到重傳次數到達一定程度強制斷開連接,因此,在客戶端發送完確認后會等待一段時間,如果在改時間內沒有收到服務器端重傳的FIN資料就會斷開連接,否則對重傳的FIN重新進行確認,確保服務器端收到并斷開連接,

其次,客戶端發送完ACK確認進入TIME_WAIT狀態,還有一個重要作用就是防止網路中沒有傳完,保證歷史資料在網路中消散,

2)如何驗證TIME_WAIT狀態?

首先啟動 server, 然后啟動 client, 然后用 Ctrl-C 使 server 終止 , 這時馬上再運行 server, 結果是系結失敗,這是因為 , 雖然 server 的應用程式終止了 , TCP 協議層的連接并沒有完全斷開 , 因此不能再次監 聽同樣的 server 埠,
解決TIME_WAIT等待引起的系結失敗:
set|socktop介面,即使?埠處于監聽狀態也可以進行系結,

3)CLOSED_WAIT狀態

首先屏蔽服務器daunt程式中關閉檔案描述符的代碼,啟動服務器,讓客戶端進行鏈接,客戶端連接成功后關掉客戶端,此時客戶端就想服務器端發送了斷開連接的請求,但是由于服務器端屏蔽了close,無法斷開連接,此時,查看服務器狀態就為CLOSE_WAIT狀態,

總結:對于服務器上出現大量的 CLOSE_WAIT 狀態 , 原因就是服務器沒有正確的關閉 socket, 導致四次揮手沒有正確 完成. 這是一個 BUG. 只需要加上對應的 close 即可解決問題,

6、滑動視窗

前面討論的確認應答策略是基于“一次發送,一次確認”,經過“一次發送,一次確認”完成后才能進行下一次發送,這樣資料的傳輸效率會很低,

但是,確認應答機制很好的保證了數傳輸的安全性,為了解決其傳輸效率問題,又引入滑動視窗,華東視窗是指,可以一次性發送一批資料,這一批資料發送的程序不需要等待其中某一個資料的確認,視窗大小就是指這批資料的最大值,

如下圖:

  • 發送前四個段時,不需要等待任何ACK,直接將四個段發送完,
  • 收到第一個ACK后,滑動視窗向后移動繼續發送接下來的四個段,以此類推

作業系統內核為了維護這個滑動視窗 , 需要開辟 發送緩沖區 來記錄當前還有哪些資料沒有應答 ; 只有確 認應答過的資料, 才能從緩沖區刪掉, 視窗越大, 則網路的吞吐率就越高 ;

  • 在上面這個圖中,整個區域表示的是發送緩沖區,白色區域是滑動視窗
  • 滑動視窗中的資料是已經發送等待確認的資料,
  • 滑動視窗之前的資料是已經發送并且已經收到確認的資料,
  • 滑動視窗之后部分的資料是還沒有發送的資料
  • 當接收到一個ACK時,滑動視窗的左邊會右移,
  • 當接識訓沖區(16位視窗大小)變大時,滑動視窗右邊右移,因此,當滑動視窗越大時,表示對方的接收能變強,
  • 滑動視窗大小除了受對方接識訓沖區剩余大小的影響,還跟擁塞控制有關(后邊詳細講解),因此,滑動視窗越大還表明網路狀況好,網吞吐率高,

新的技術的引入,必然會帶來一些新的問題和挑戰,滑動視窗雖然解決了資料傳輸效率低問題,那么如果資料丟包又該如何重傳呢?

  • 接收端收到了資料,但是接收端發送的ACK丟了,

其實,滑動視窗機制已經很好的解決了這個問題,滑動視窗中是可以容忍部分ACK丟包的,只要后續ACK進行確認即可(ACK確認序號表示的是該序號之前的所有資料都已經收到,接下來向收到的資料的序號),例如,上圖中1001的ACK丟了并不影響,只要后邊任意一個到達都表示1~1000的收據已經收到,

  • 資料報丟了,接收端,沒有收到,

當資料包真正丟失了,是需要進行重傳的,這也就要求滑動視窗中發送的ACK要確保他之前的資料都已經接收到,例如,接收端接收到的資料的順序是1~1000、5001~6000、4001~5000,當接收到5001~6000的資料后不能立即發送6001的ACK,必須等到6001之前的資料全部到達才能發送,

其次,滑動視窗的重傳機制和之前的超時重傳機制也有所不同,滑動視窗中,如果某一個資料真的丟了(超過時間沒有收到),接收方會給發送方發送的每一個不是丟失的資料發送的確認號都是丟失資料的確認號,當接收端接收到三次這個ACK時,會重新對這個ACK的資料進行重新發送,這種機制叫做高速重發機制,也稱快重傳,

例如:

  • 當某一段報文段丟失之后 , 發送端會一直收到 1001 這樣的 ACK, 就像是在提醒發送端 " 我想要的是 1001" 一樣
  • 如果發送端主機連續三次收到了同樣一個 "1001" 這樣的應答 , 就會將對應的資料 1001 - 2000 重新發送
  • 這個時候接收端收到了 1001 之后 , 再次回傳的 ACK 就是 7001 ( 因為 2001 - 7000) 接收端其實之前就已 經收到了, 被放到了接收端作業系統內核的接識訓沖區,

思考1:有了快重傳,為什么還需要超時重傳

其實,超時重傳是一種兜底策略,試想,如果所發送的資料小于3次時,即使資料丟失也引發不了塊重傳,此時還是需要超時重傳進行解決,同時,如果是最后一個資料丟了,也是無法引發快重傳的,

7、流量控制

接收端處理資料的速度是有限的 . 如果發送端發的太快 , 導致接收端的緩沖區被打滿 , 這個時候如果發送端繼續發送 , 就會造成丟包, 繼而引起丟包重傳等等一系列連鎖反應 . 因此TCP 支持根據接收端的處理能力 , 來決定發送端的發送速度 . 這個機制就叫做 流量控制 (Flow Control) ;
  • 接收端將自己可以接收的緩沖區大小放入 TCP 首部中的 "視窗大小" 欄位, 通過ACK端通知發送端;
  • 視窗大小欄位越大, 說明網路的吞吐量越高;
  • 接收端一旦發現自己的緩沖區快滿了, 就會將視窗大小設定成一個更小的值通知給發送端;
  • 發送端接受到這個視窗之后, 就會減慢自己的發送速度;
  • 如果接收端緩沖區滿了, 就會將視窗置為0; 這時發送方不再發送資料, 但是需要定期發送一個視窗探測數
  • 據段, 使接收端把視窗大小告訴發送端.

注意:實際上接收端和發送端第一次“協商”視窗大小是在三次我說的額程序中,三次握手建立連接時,SYN包中就包含了視窗大小,

8、擁塞控制

雖然 TCP 有了滑動視窗這個大殺器 , 能夠高效可靠的發送大量的資料 . 但是如果在剛開始階段就發送大量的資料 , 仍然可能引發問題. 因為網路上有很多的計算機, 可能當前的網路狀態就已經比較擁堵 . 在不清楚當前網路狀態下 , 貿然發送大量的資料 , 是很有可能引起雪上加霜的. TCP引入 慢啟動 機制 , 先發少量的資料 , 探探路 , 摸清當前的網路擁堵狀態 , 再決定按照多大的速度傳輸資料 ;

為了解決這個問題,引入了擁塞視窗的概念,開始發送資料的時候,擁塞視窗定義為1,每收到一個ACK擁塞視窗+1,每次發送資料的時候將擁塞視窗和主機端反饋的視窗大小做比較,取最小的作為實際發送的視窗大小,

但是,這樣的擁塞視窗增長速度是指數級別的,,慢啟動只是啟動時速度慢,但是增長速度非常快,為了不增長的那么快, 因此不能使擁塞視窗單純的加倍. 此處引入一個叫做慢啟動的閾值,當擁塞視窗超過這個閾值的時候, 不再按照指數方式增長, 而是按照線性方式增長,

  • TCP開始啟動的時候, 慢啟動閾值等于視窗最大值;
  • 在每次超時重發的時候, 慢啟動閾值會變成原來的一半, 同時擁塞視窗置回1;
少量的丟包 , 我們僅僅是觸發超時重傳 ; 大量的丟包 , 我們就認為網路擁塞 ;
TCP 通信開始后 , 網路吞吐量會逐漸上升 ; 隨著網路發生擁堵 , 吞吐量會立刻下降 ; 擁塞控制, 歸根結底是 TCP 協議想盡可能快的把資料傳輸給對方 , 但是又要避免給網路造成太大壓力的折中方案 .

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286296.html

標籤:其他

上一篇:計算機網路實驗(思科模擬器Cisco Packet Tracer)——路由器配置

下一篇:C語言中的這個小細節你知道嗎?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more