计算机基础--网络
互聯網協議
互聯網協議的功能:定義計算機如何接入internet,以及接入internet的計算機通信的標準。
互聯網協議按照功能不同分為osi七層或者tcp/ip五層或tcp/ip四層
每層常見物理設備
因為學習python編程只需要了解tcp/ip五層模型,所以我們只需要了解應、傳、網、數、物這五層模型的主要協議,就理解了整個互聯網通信的原理。
每層都運行特定的協議,越往上越靠近用戶,越往下越靠近硬件
物理層:主要是基于電器特性發送高低電壓(電信號),高電壓對應數字1,低電壓對應數字0
數據鏈路層:根據以太網協議(ethernet)定義了電信號的分組方式(ethernet)
網絡層:引入一套新的地址用來區分不同的廣播域/子網,這套地址即網絡地址(arp)
傳輸層:建立端口到端口的通信(tcp、udp) PS:端口范圍0-65535,0-1023為系統占用端口
應用層:規定應用程序的數據格式。(http、ftp等)
?
TCP三次握手四次揮手
?
網絡通信實現
想實現網絡通信,每臺主機需具備四要素
-
- 本機的IP地址
- 子網掩碼
- 網關的IP地址
- DNS的IP地址
獲取這四要素分兩種方式
1.靜態獲取
即手動配置
2.動態獲取
通過dhcp獲取
| 以太網頭 | ip頭 | udp頭 | dhcp數據包 |
?
(1)最前面的”以太網標頭”,設置發出方(本機)的MAC地址和接收方(DHCP服務器)的MAC地址。前者就是本機網卡的MAC地址,后者這時不知道,就填入一個廣播地址:FF-FF-FF-FF-FF-FF。
?
(2)后面的”IP標頭”,設置發出方的IP地址和接收方的IP地址。這時,對于這兩者,本機都不知道。于是,發出方的IP地址就設為0.0.0.0,接收方的IP地址設為255.255.255.255。
?
(3)最后的”UDP標頭”,設置發出方的端口和接收方的端口。這一部分是DHCP協議規定好的,發出方是68端口,接收方是67端口。
?
這個數據包構造完成后,就可以發出了。以太網是廣播發送,同一個子網絡的每臺計算機都收到了這個包。因為接收方的MAC地址是FF-FF-FF-FF-FF-FF,看不出是發給誰的,所以每臺收到這個包的計算機,還必須分析這個包的IP地址,才能確定是不是發給自己的。當看到發出方IP地址是0.0.0.0,接收方是255.255.255.255,于是DHCP服務器知道”這個包是發給我的”,而其他計算機就可以丟棄這個包。
?
接下來,DHCP服務器讀出這個包的數據內容,分配好IP地址,發送回去一個”DHCP響應”數據包。這個響應包的結構也是類似的,以太網標頭的MAC地址是雙方的網卡地址,IP標頭的IP地址是DHCP服務器的IP地址(發出方)和255.255.255.255(接收方),UDP標頭的端口是67(發出方)和68(接收方),分配給請求端的IP地址和本網絡的具體參數則包含在Data部分。
?
新加入的計算機收到這個響應包,于是就知道了自己的IP地址、子網掩碼、網關地址、DNS服務器等等參數
轉載于:https://www.cnblogs.com/8192bit/p/7196356.html
總結
- 上一篇: 多对一(一对多)的双向关联
- 下一篇: 编译OSG的FreeType插件时注意的