計算機網絡知識整理

OSI七層

物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。
物理層涉及信道上傳輸的比特流。
數據鏈路層的主要任務是加強物理層傳輸原始比特流的功能,是指對應的網路層顯現為一條無錯線路。發送包把數據封裝在數據幀,按順序傳送出去并處理接收方會送的確認幀。
網絡層關系到子網的運行控制,其中一個關鍵問題是確認從源端到目的算如何選擇路由。
傳輸層的基本功能是從會話層接收數據而且把其分成較小的單元傳遞給網絡層。
會話層允許不同機器上的用戶建立會話關系。
表示層用來完成某些特定的功能。
應用層包含著大量人們普遍需要的協議。

TCP和UDP

TCP是傳輸控制協議,提供的是面向連接、可靠的字節流服務。當客戶和服務器彼此交換數據前,必須現在雙方,之間建立一個TCP連接,之后才能傳輸數據。TCP提供超時重發、丟棄重讀數據、檢驗數據、流量控制等功能,保證數據能從一端傳到另一端。
UDP是用戶數據報協議,是一個簡單地面向數據報的運輸協議。UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是并不保證它們能夠到達目的地。由于UDP在傳輸數據報前不用在客戶和服務器之間建立一個連接,且沒有超時重發等機制,故而傳輸速度快。
TCP就像是打電話,兩者之間必須有一條不間斷的通路,數據不到達對方,對方就一直在等待,除非對方直接掛電話。先說的話先到,后說的話后到,有順序。
UDP就像寄一封信,發現者只管發,不管到。但是你的新風尚必須寫明對方的資質。發現者和收信者之間沒有通路,靠郵電局聯系。信發到時可能已經過了很久,也可能根本沒有發到。先發的信未必先到,后發的信也未必后到。

Socket套接字

Socket相當于進行網絡通信兩端的插座,只要對方的Socket和自己的Socket有通信聯接,雙方就可以發送和接收數據了。其定義類似于文件句柄的定義。如果你要編寫的是一個服務程序,那么先調用socket()創建一個套接字,調用bind()綁定IP地址和端口號,然后啟動一個死循環,循環中調用accept()接受連接。對于每個接受的鏈接,可以啟動多線程方式進行處理,在線程中調用send()、recv()發送和接收數據。
如果要編寫的是一個客戶端程序,那么久簡單多了,先調用socket()創建一個套接字,然后調用connect()鏈接服務器,之后就是調用send()、recv()發送和接受數據了。
服務器端程序編寫:
1. 調用ServerSocket(int port)創建一個服務器端套接字,并綁定到制定端口上。
2. 調用accept(),監聽連接請求,則接收連接,返回通信套接字
3. 調用Socket類的getOutStream()和getInputStream()獲取輸出流和輸入流,開始網絡數據的發送和接收
4. **關閉通信套接字**Socket.close()。
客戶端程序編寫:
1. 調用Socket()創建一個流套接字,并連接到服務器端
2. 調用Socket類的getOutStream()和getInputStream()獲取輸出流和輸入流,開始網絡數據的發送和接收
3. **關閉通信套接字**Socket.close()。

TCP三次握手四次握手

在TCP/IP協議中,TCP協議提供可靠的連接服務,采用3次握手建立一個連接。
第1次握手:建立連接時,客戶端發送SYN包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認。
第2次握手:服務器收到SYN包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態。
第3次握手:客戶端和服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此時發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成3次握手。
完成3次握手,客戶端與服務器開始傳送數據。在上述過程中,還有一些概念。
未連接隊列:在3次握手協議中,服務器維護一個未連接隊列,該隊列為每個客戶端的SYN包(syn=j)開設一個條目,該條目表明服務器已收到SYN包,并向客戶發出確認,正在等待的客戶的確認包。這些條目所標識的鏈接在服務器處于Syn_RECV狀態,當服務器收到客戶的確認保濕,刪除該條目,服務器進入ESTABLISHED狀態。
Backlog參數:標識未連接隊列的最大容納數目。
SYN-ACK重傳次數:服務器發送完SYN_ACK包,如果未收到客戶確認包,服務器進行首次重傳,等待一段時間仍未收到客戶確認包,進行第二次沖床,如果重傳次數超過系統規定的最大重傳次數,系統將該連接信息從半連接隊列中刪除。注意,每次重傳等待的時間不一定相同。
半連接存活時間:是指半連接隊列的條目存活的最長時間,即服務從收到SYN包到確認這個報文無效的最長時間,該時間值是左右重傳請求包的最長等待時間總和。有時我們也成辦理按揭存活時間為Timeout時間、SYN_RECV存活時間。

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

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

相關文章

吸水間最低動水位標高_體驗長安逸動EV460:再也不用為電動車續駛里程焦慮了...

文| 車突突車圖騰出品,未經許可,謝絕轉載● ● ●人們都在期待碧水藍天,而且越來越多的消費者也開始踐行環保理念,在買車時關注起了純電動汽車。不過遺憾的是,純電動汽車目前還沒能成為主流。一方面,是因為…

java開發工具包jdk包括哪些

害怕干不過SpringBoot?莫慌,我送你套神級pdf文檔 隨著 Spring Boot 使用越來越廣泛,Spring Boot 已經成為 Java 程序員面試的知識點,很多同學對 Spring Boot 理解不是那么深刻,經常就會被幾個連環追問就給干趴下了&am…

微信計步器怎么不計步_難以關閉的微信朋友圈廣告

太難關掉了。”試圖關閉朋友圈廣告的小曾,在對照著騰訊視頻上的一個長達6分鐘的視頻演示之后,通過14次操作才得以關閉。這14步操作具體如下:點擊“我”—點擊“設置”—點擊“關于微信”—點擊“微信隱私保護指引”—下拉兩個屏幕的面積—點擊…

java開發工具有哪些

前言 Netty 是一款基于 Java 的網絡編程框架,能為應用程序管理復雜的網絡編程、多線程處理以及并發。Netty 隱藏了樣板和底層代碼,讓業務邏輯保持分離,更加易于復用。使用 Netty 可以得到一個易于使用的 API,讓開發人員可以專注自…

經典冒泡排序及其優化

經典排序算法 - 冒泡排序Bubble sort 原理是臨近的數字兩兩進行比較,按照從小到大或者從大到小的順序進行交換,這樣一趟過去后,最大或最小的數字被交換到了最后一位,然后再從頭開始進行兩兩比較交換,直到倒數第二位時結束,其余類似…

expdp導出 schema_記錄一則expdp任務異常處理案例

在XTTS遷移測試階段,遇到執行幾個expdp的導出任務,遲遲沒有返回任何信息,對應日志無任何輸出。環境:AIX 6.1 Oracle 10.2.0.4現象:在XTTS遷移測試階段,遇到執行幾個expdp的導出任務,遲遲沒有返…

java開發工具軟件排行榜

前言: 都說學歷是敲門磚,是一點都沒錯,即使是在重技術輕學歷的互聯網企業,面試官對于學歷越高的程序員初印象會更好,面試也會更順利,而大部分專科學歷的程序員,除非有過硬的技術,否…

簡單選擇排序算法

簡單選擇排序思想:首先,找到數組中最小的元素,其次,將它和數組第一個元素交換位置;再次,在剩下的元素中找到最小的元素,將它與數組中的第二個元素交換。如此亡故,直到將整個數組排序…

java開發工程師工作內容怎么寫

什么是分布式鎖?在回答這個問題之前,我們先回答一下什么是鎖。 普通的鎖,即在單機多線程環境下,當多個線程需要訪問同一個變量或代碼片段時,被訪問的變量或代碼片段叫做臨界區域,我們需要控制線程一個一個…

community 計算模塊度_光模塊深度:國內光模塊企業快速崛起

一、核心觀點二、發展追溯:技術是底蘊、創新是動力1 光通信發展:技術迭代加快,國產替代是前進的方向依據摩爾定律,光模塊的小型化、低成本以及高速率是產品迭代的主要方向。2 競爭格局:市場集中度高,巨頭地位穩固,國內廠商穩步崛起…

java開發工程師的自我評價

前言 京東到家訂單中心系統業務中,無論是外部商家的訂單生產,或是內部上下游系統的依賴,訂單查詢的調用量都非常大,造成了訂單數據讀多寫少的情況。 我們把訂單數據存儲在MySQL中,但顯然只通過DB來支撐大量的查詢是不…

華為魔術手機拆機圖解_華為P9進水不顯示維修案例

看點:iPhone X原裝屏與國產屏有哪些區別?看點:換7P、8P屏幕:C11和DTP和DKH的區別獅淘:華人手機維修師專屬工具集合店,不銹鋼拆機片5個只需9.9元!包郵山貓潮品:手機渠道直供&#xff…

java開發工程師自我介紹文本

前言 每年金三銀四,金九銀十之際,想進階夢想挑戰大廠的朋友層出不窮。 夢想是要有的,萬一就實現了呢?且撇開大牛們不說,每年面試之時問題也層出不窮,不得不說,每年被算法絕殺的朋友也是不在少數…

面向對象技術

面向對象和面向過程的區別 出發點不同。 面向對象強調問題域的要領直接映射到對象和對象之間的接口上,是用符合常規思維的方式來處理客觀世界的問題。 面向過程方法強調的則是過程的抽象化和模塊化,是以過程為中心構造或處理客觀世界問題的。層次邏輯…

ad09只在一定范圍內查找相似對象_23、面向對象編程

目錄:對象的概念類與對象面向對象編程類的定義與實例化屬性訪問類屬性與對象屬性屬性查找順序與綁定方法小結視頻鏈接一 對象的概念”面向對象“的核心是“對象”二字,而對象的精髓在于“整合“,什么意思?所有的程序都是由”數據”…

java開發工程師轉行可以做什么

前言 分布式事務主要解決分布式一致性的問題。說到底就是數據的分布式操作導致僅依靠本地事務無法保證原子性。與單機版的事務不同的是,單機是把多個命令打包成一個統一處理,分布式事務是將多個機器上執行的命令打包成一個命令統一處理。 MySQL 提供了…

atlas怎么看日志_億級的日志治理!微服務最佳方案,ELK stack從零搭建

ELK Stack 誕生背景一般我們需要進行日志分析場景:直接在日志文件中 grep、awk 就可以獲得自己想要的信息。但在規模較大的場景中,此方法效率低下,面臨問題包括日志量太大如何歸檔、文本搜索太慢怎么辦、如何多維度查詢。需要集中化的日志管理…

Java變量類型

所有的變量在使用前必須聲明。 type identifier [ value][, identifier [ value] ...] ; 格式說明:type是數據類型,identifier是變量名,可以使用逗號隔開來聲明多個同類型變量。 一下列出一些變量的聲明實例,有些包含了初始化過…

java開發工程師面試問題大全及答案大全

前言 Alibaba作為國內互聯網行業的“老大”,一直以來也是很多“數碼寶貝”夢寐以求的公司,我個人是做Java開發的,阿里這些年也開發了很多屌炸天的開源項目,像什么Spring Cloud Alibaba,開源Java診斷工具Arthas&#x…

me shy是什么歌 抖音make_內含活動福利 | 小紅書、抖音爆贊的高顏值的北歐家居神店開到卜蜂中心啦!...

幾個月前,一家北歐范顏值爆表的瑞典獨立設計師品牌家居店憑借其充滿設計感的產品刷爆社交媒體微博、小紅書、抖音經常出現它的身影隨便一篇閱讀量、收藏量都好幾萬數不清的爆like讓人按耐不住了!這個品牌叫NǒME家居(認住這個正版的ǒ),開到哪…