zoukankan      html  css  js  c++  java
  • 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的四次挥手,断开通路

  • 相关阅读:
    Python
    Python
    Python
    Python
    python
    python
    Python
    pure css做的pc登陆界面
    MvcAdmin功能介绍
    pure css做的手机版博客园(我自己博客)
  • 原文地址:https://www.cnblogs.com/otome/p/12427986.html
Copyright © 2011-2022 走看看