您好,登錄后才能下訂單哦!
這篇文章主要介紹“web開發人員必須知道的網絡基礎知識有哪些”,在日常操作中,相信很多人在web開發人員必須知道的網絡基礎知識有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”web開發人員必須知道的網絡基礎知識有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1. 主要的網絡協議
以下每層列出的協議,都能夠在代碼或者操作系統中使用和管理,當程序進行網絡通信時,需要由這些協議共同協作完成。
應用層,包括HTTP、TLS(SSL3.1)、DNS、Thrift、FTP等
傳輸層,TCP(傳輸控制協議)、UDP(用戶報文協議)
網絡層,IP(網際協議)
鏈路層,ARP(地址解析協議)
物理層,該層與硬件關系更為緊密,無需太過關注
程序運行過程圖解
2. 網絡通信的過程
網絡通信的過程
在程序中發送HTTPS請求時,數據經過各層的處理,最終到達目標地址。對各層處理的主要部分進行了描述,其中第1、2、3步在程序中進行,第4、5、6步在操作系統內核中進行,第7步由硬件設備完成,下面對每一步進行詳細描述:
DNS解析將域名轉換為IPv4或IPv6地址,它依托于UDP協議向DNS服務器發送查詢請求并獲取響應信息。
HTTP報文由程序中的httpclient工具生成,包含用戶設置的HTTP相關參數(URL、header、body等)。
TLS協議通過四次握手機制協商出公鑰/私鑰,客戶端生成“會話密鑰”由公鑰加密發送到服務端,服務端通過私鑰解密獲取,最終使用該“會話密鑰”對HTTP報文進行加密。
TCP連接通過三次握手機制建立,HTTP報文以字節流形式寫入,發送的數據都需要經過“發送-確認”的過程,以保證其完整送達到指定IP地址。
IP數據包將字節流按MTU大小進行拆分,局域網內通常為1500字節,互聯網通常為512字節。IP數據包的頭信息上記錄了發送者IP和接收者IP。
MAC幀在發送時,實際無法直接發送到指定的IP地址,需要內核根據路由表中記錄的信息(本地路由表查看命令route -n),通過“IP地址與子網掩碼”進行“與運算”得到下一跳的網關IP。然后,鏈路層通過ARP協議獲取網關IP的MAC地址(本地ARP緩存表查看命令arp -a),將發送者MAC地址和網關MAC地址封裝到MAC幀中。
上一節描述的網絡通信過程,需要多種外部服務的參與才能完成,包括DNS服務、CA服務、路由器、ISP服務。
1. DNS服務
DNS服務器由DNS服務提供商進行管理,提供根據域名查詢IP地址的服務,常見的DNS服務提供商有中國電信(114.114.114.114)和谷歌(8.8.8.8),Linux系統中在文件/etc/resolv.conf中和目錄/etcc/sysconfig/network-scripts/下使用cat命令查看配置的DNS服務器IP地址。
2. CA頒發與驗證服務
CA服務器提供了TLS協議中需要的證書頒發服務,在TLS進行四次握手時通過CA服務驗證服務器提供的證書是否可信。瀏覽器內置了多種CA服務器的地址,并且也可以在本地配置證書進行驗證(如:12306.cn需要在瀏覽器安裝私有證書)。
3. 路由器
路由器是個人電腦發送IP數據包到互聯網的第一道網關,路由器內置了相關ISP服務器的信息。
4. ISP服務器
ISP(Internet Service Provider)互聯網服務提供商(如:中國電信、中國聯通)是網絡服務的關鍵角色,ISP服務器的作用與路由器相同,它們記錄了龐大的路由表提供給數據鏈路層進行查詢。當我們想要將自己的服務器接入到互聯網中,需要付費給ISP進行注冊,本質就是在ISP服務添加了自己服務器的路由信息(實際還涉及到光纖建設等物理層實施,這里不做描述)。
到此,關于“web開發人員必須知道的網絡基礎知識有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。