cdn 原理

本文详细介绍了CDN的工作原理,包括用户访问域名到获取内容的全过程,并通过C代码示例展示了域名解析的过程,进一步解释了如何通过服务器中间层提高访问效率。

没有前言 直接原理

cdn原理分为4步:

1)、用户向浏览器提供要访问的域名;

2)、浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址;

3)、浏览器使用所得到的IP地址,域名的服务主机发出数据访问请求;

4)、浏览器根据域名主机返回的数据显示网页的内容。

下面看一段c代码

 #include <sys/socket.h>
 #include <stdio.h>
 int main()
 {
     char *ptr,**pptr;
     struct hostent *hptr;
     char str[32];
    char str[32];
    ptr = "www.baidu.com";
    if((hptr=gethostbyname(ptr))==NULL)
    {   
        printf("gethostbyname error for host:%s\n",ptr);
        return 0;
    }   
    //将主机规范名打印出来
    printf("official hostname:%s\n",hptr->h_name);
    //主机可能有多个别名,将所有别名分别打印出来
    for(pptr=hptr->h_aliases;*pptr!=NULL;pptr++)
        printf("alias:%s\n",*pptr);
    //根据地质类型,将地址打印出来
    switch(hptr->h_addrtype)
    {   
        case AF_INET:
        case AF_INET6:
            pptr=hptr->h_addr_list;
        //将刚才得到的所有地址都打印出来,其中调用了inet_ntop()函数
            for(;*pptr!=NULL;pptr++){
                printf(" address:%s\n",inet_ntop(hptr->h_addrtype,*pptr,str,sizeof(str)));
            }   
            break;
        default:
            printf("unknow address type\n");
            break;
    }   
    return 0;
}


输出的结果:

official hostname:www.a.shifen.com
alias:www.baidu.com
 address:119.75.218.77
 address:119.75.217.56

它用gethostbyname函数访问baidu会返回两个ip地址,一般客户端只需要一个ip地址,浏览器是不会区分哪个ip地址更有效率的,所以就需要设置服务器中间层,具体步骤是  :

    1.客户端(浏览器)gethostbyname -> 公网名字服务器 -> 中间缓存层名字服务器 计算客户ip地址 返回真正的ip

    2.客户端通过socket绑定ip地址访问边缘服务器 返回数据   

以上步骤是我猜的 希望高手指点                            



要在Windows复现HRNet,您需要按照以下步骤进行操作: 1. 首先,您需要在官网下载并解压mmdection-1.0.0。您可以在\[1\]中找到官网链接。 2. 打开Windows命令窗口,并使用cd命令切换到mmdection-1.0.0目录。 3. 在命令窗口中输入以下命令来安装所需的依赖项: ``` pip install -r requirements.txt ``` 4. 接下来,您可以使用CrowdPose数据集进行训练。使用以下命令: ``` python tools/dist_train.py --cfg experiments/crowd_pose/higher_hrnet/w32_512_adam_lr1e-3.yaml ``` 这将使用CrowdPose数据集和指定的配置文件进行训练。您可以在\[2\]中找到示例命令。 5. 如果您想使用COCO数据集进行训练,可以使用以下命令: ``` python tools/dist_train.py --cfg experiments/coco/higher_hrnet/w32_512_adam_lr1e-3.yaml ``` 这将使用COCO数据集和指定的配置文件进行训练。您可以在\[3\]中找到示例命令。 请确保您已经正确安装了Python和相关的依赖项,并按照上述步骤进行操作,即可在Windows复现HRNet模型的训练。 #### 引用[.reference_title] - *1* [动作识别(四)手把手教你在Win11上复现mmskeleton的ST-GCN骨架动作识别模型](https://blog.youkuaiyun.com/QIANFANGshiwo/article/details/121035905)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [HigherHRnet详解之实验复现](https://blog.youkuaiyun.com/qq_41845951/article/details/121035901)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值