• 互联网概述


    1.个人的电脑是如何发送和接收到数据的

      当我们的电脑接入互联网时,会被分配一个IP地址,现在B站的服务器也接入了互联网,它也会被分配一个IP地址(访问某个网站就是在访问那个网站的服务器)。此时如果我访问b站的首页,我就是客户端,bilibili服务器就是服务端。大致结构如下:

     
      这种形式就是客户端服务端模型。更贴近用户的是客户端,如浏览器、电子邮件客户端、手机APP;客户端是在远程计算机上运行的应用程序。客户端可以在需要时与服务端进行通信。

      客户端发送消息给服务器,我要获取首页的内容,消息会被转化成电子信号,通过电缆发送给bilibili服务器,在服务器端将电子信号转化为计算机可以识别的文本数据。这个将消息转化为电子信号,再将电子信号转化为计算机可以识别的文本数据是通过TCP/IP协议族(协议:是一组规则,用于指定计算机应如何通过网络来相互通信)实现的。

    2.TCP/IP协议

    分层:

    • 应用层:
      • 负责应用程序的协议。如负责浏览器和网络服务器相互通信的HTTP协议、负责文件传输的FTP协议、电子邮件传输的IMAP协议
    • TCP传输控制层:
      • 作用是发送数据包到计算机上使用特定端口号的应用程序
      • 三次握手
    • IP网络层:
      • 使用IP地址将数据包发送到特定的计算机上
    • 链路层:
      • 负责将二进制数据包与网络信号相互之间转换

     以请求一个html文本为例:

    (1)客户端的TCP/IP协议族

    说明:

    • 以上为客户端的TCP/IP协议分层中,一个数据包在各层中是如何处理的
    • IP是不可靠的无连接协议,并不关心数据包是否到达目的地,也不关心连接和端口号。 所以有可能会乱序到达目标地址,或者在传输途中丢失。当数据包过大时,在IP层会进行分包,由于每个数据包在物理链路层走的链路不一样,传输速度也不一样,会导致数据包没有按顺序到达目的地,但是TCP会根据数据包上携带的序列号来进行排列重组。并且发送方在一个特定时间内没有接收到接收方的ack确认时,则发送方会重新发送该数据包

     (2)服务器端的TPC/IP协议族

     说明:

    • 以上就是服务器端接收到请求以后TCP/IP层所做的事情,就是客户端与服务器端的一次交互

    3.互联网构成简介

     互联网组成大致如下:

    大致就是整个互联网由个人的PC以及互联网服务提供商(ISP)以及更上层的NSP(为ISP提供网络主干服务的公司)组成的大型网络。数据包就是在这个大型网络中进行的传输

    (1)那互联网是如何帮数据包找到一个正确的路线,把数据包送到目的地的:

    • 互联网中有个特殊的计算器—路由器,路由器上有个路由表,记录了其子网络的所有IP地址,但是它却不知道其上层网络的IP地址
    • 当数据包到达路由器,路由器检查路由表上是否有目的地的IP地址,如果有就发送给那个网络,如果没有,就向上层发送数据,在更高的层级去寻找拥有该IP的路由器,如果依然没有找到,则再次将数据包向上路由,直到到达NSP主干网为止。连接到NSP骨干网的路由器拥有最大的路由表,通过这张表可以将数据包路由到正确的骨干网,然后开始向下传播,进入越来越小的网络,直到找到目的地为止,这就是你的电脑如何访问到bilibili服务器的。

    (2)如何通过域名访问服务器的

    上面是通过IP地址找到了对应的服务器,但是不可能记住所有的IP地址来访问某个网站。所以就有了域名。

    这里就用到了Domain Names Service(DNS)。

    DNS是一个分布式数据库,上面记录了域名和其IP地址的对应关系,在浏览器中输入网址时,浏览器首先连接DNS服务器,获取到该域名的IP地址后,浏览器再连接访问该IP的服务器,有了DNS后,之后服务器IP地址有了变化,重新绑定一下域名和新IP地址就可以了。

  • 相关阅读:
    关于搭建系统直播和Thinkphp的杂谈(持续更新)
    linux下phpstudy的搭建以及网站的搭建
    java大文件读写操作,java nio 之MappedByteBuffer,高效文件/内存映射
    IntelliJ IDEA 破解
    遍历表格
    Ajax简单示例
    [转shasiqq]@Param 注解在Mybatis中的使用 以及传递参数的三种方式
    一些python学习的链接
    python Scrapy安装错误解决
    SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoade
  • 原文地址:https://www.cnblogs.com/codexlx/p/14478956.html
Copyright © 2020-2023  润新知