Python 網絡通訊(電腦之間的通信)


  1. 在電腦通信之前,必須規定好 IP子網掩碼 才能進行通信
  2. 網線與電線不同,一根網線不能連接多台電腦,所以就有了  集線器(Hub)(很久以前的方法)
    缺點:使用廣播的方式發送數據,即:A給B發送數據,集線器會與ABCD都建立連接,如果這時C想給D發送數據就不行,因為通道被占用了
  3. 后來,就出現了更高級的通信裝置  交換器(Switch)
    1. 克服了集線器以廣播發送數據的缺點,當需要廣播的時候發送廣播,當需要單播的時候又能夠以單播的方式進行發送
    2. 企業中就是用交換器來完成多台電腦的網絡連接的,代替了之前的集線器
    3. 但是交換器不止需要 IP和端口,而且需要知道MAC地址,但是平常發送文件的時候都不詢問MAC地址,為什么能直接發送?
      這是因為,當你發送數據時,交換器會廣播所有電腦,並用ARP的方式發送一個所有電腦都能接收的MAC地址:FF:FF:FF:FF:FF:FF,並且帶有源IP和目的IP,目的IP就會把自己的MAC地址返回到源IP電腦中,最后發送方就會使用目的IP、目的端口和目的MAC地址發送數據
  4. 路由器
    1. 如果想給不同網絡號的電腦發送數據,自己不能發送就要找一個有能力的設備代理,那就是網關(一般是路由器)
    2. 第一次發送要有目的IP、目的MAC(網關的MAC)、源IP和源MAC,到網關后,網關會把目的MAC改成要對方路由器的MAC地址,對方路由器再把MAC地址改成目的IP的MAC地址(IP地址不變但MAC地址一直在變)

  5. 用域名訪問服務器
    1. 輸入域名,然后瀏覽器會訪問DNS服務器(就跟一個電話本一樣)來解析域名
      1. 用ARP廣播的方式得到默認網關的地址
      2. DNS服務器的IP地址是固定的,但不是同一個網絡號,所以先要把數據發送到默認網關
      3. 因為IP地址的范圍是划分好的,所以默認網關知道DNS服務器在哪
      4. DNS服務器把解析出來的IP地址返回給默認網關,默認網關把IP地址返回給本機
    2. 把域名解析成IPD地址后,瀏覽器向目的服務器發起tcp的三次握手
    3. 三次握手成功后,會發送HTTP協議的數據  "POST/GET HTTP1.1"等數據包內容,然后等待服務器的應答
    4. 最后發送tcp的四次揮手,斷開通路


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM