• 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的四次挥手,断开通路

  • 相关阅读:
    解决 Windows 下的 :所选择的任务“{0}”不再存在。若要查看当前任务,请单击“刷新”。
    学习编译更好的 DAO 的技巧
    宇宙的起源演讲全文(斯蒂芬·霍金)
    java對象序列化的兩種使用方法
    Ubuntu硬盘安装与配置(3D效果)
    java異常處理
    [zt]JDBC对数据库的事务操作
    [zt]spring本地事务与JTA事务实现解析
    Debian溫習
    在oracle中增大session數量
  • 原文地址:https://www.cnblogs.com/otome/p/12427986.html
Copyright © 2020-2023  润新知