美文网首页
HTTP基础(一):TCP/IP概述

HTTP基础(一):TCP/IP概述

作者: 麦田里的丨小王子 | 来源:发表于2019-07-30 19:43 被阅读0次

    一、网络协议

    到底什么叫网络协议呢?
    我们举个例子说明:我们国家有很多方言,一个人说四川话,另一个人说东北话,如果这两个人都不懂对方的方言,这两个人就没办法交流了。于是我们规定一种官方的语言(普通话),大家都用这种语言交流。

    类似的,不同的计算机可能安装了不同的操作系统,有不同的硬件等等,为了让它们能互相沟通,我们也制定一种官方语言/规则(协议),只要他们都遵守网络协议的规则发送和接收信息,那么他们之间就可以进行通信。

    网络协议实际上就是为了解决计算机之间的沟通(数据交换)问题制定的一系列规则、标准或约定。如图所示:

    网络协议
    我们把与互联网相关联的协议集合起来总称为TCP/IP

    二、TCP/IP分层模型

    TCP/IP协议族分为以下四层:

    TCP/IP分层模型
    如何理解分层模型?我们可以将分层理解为一种封装。

    1.理解分层

    应用层向用户提供服务。比如HTTP协议,它只处理客户端请求和服务的反馈,至于如何为两台计算机建立连接,它并不关心,而是直接把任务扔给下级(传输层TCP):

    应用层之间是一种虚拟连接
    以传输层TCP为例:它主要功能是提供两台计算机之间的数据传输服务。
    建立连接后上层(老大)要传什么文件,它是不知道的。
    建立连接的数据包怎么走,也就是数据在网络上的通路的选择(经过多个中转找到目标计算机),它直接甩锅给下级去干了(也可以理解为调用下级的接口)。

    所以,分层模型的封装指的是使用下层提供的服务(接口),实现自己的功能,为上层提供接口

    2.各层功能

    1. 应用层
      应用层决定了向用户提供应用服务时通信的活动。
    2. 传输层
      传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。
    3. 网络层
      网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计
      算机,并把数据包传送给对方。
    4. 链路层
      用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(NetworkInterfaceCard,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在
      链路层的作用范围之内。

    3.举例说明

    举个例子类比一下网络分层:
    比如你打电话给你的朋友。

    你和你的朋友类比为应用层。你们之间聊天的话题,说什么,怎么回复。这就是你们(应用层)关心的话题(服务)。至于怎么打通你朋友的电话,你只需要知道朋友的电话号码(IP地址)就行了。其他的就交给电话了,只需要拨号,朋友那边就能收到通话请求,接通了,你们就可以通话了。

    传输层:电话的功能就是用来提供通话服务的,它关心的是,拨号之后开始呼叫,接通了之后要保证通话畅通。至于怎么通过电话号码找到另一台电话,以及声音怎么传输,它移交给了电话转接中心。

    网络层:电话转接中心负责声音怎么传输,怎么通过一个个转接中心找到这个号码的手机。物理层的一些处理,比如声音实际的转码,电流的传输。它也需要移交给实际的中转设备。

    链路层:这条通话路线经过的各种设备(信号塔,卫星等),都属于链路层。

    4.数据流动

    发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去:


    数据流动

    三、使用ARP协议和路由选择协议进行通信

    1.ARP协议

    ARP协议参考这篇文章:[图解]ARP协议(一)
    这里简单介绍一下:
    之前我们说了,http数据在经过每一层时都会被打上一个该层所属的首部信息。比如经过传输层会被打上TCP首部(本机IP地址、目标IP地址),经过网络层会被打上IP首部(本机MAC地址、目标MAC地址)。

    不知道MAC地址无法通信

    注意,这里有一个问题:我只知道目标的IP地址,我不知道MAC地址啊!那怎么办呢?ARP协议就是用来获取MAC地址的:

    ARP协议获取MAC地址
    首先,在本机的ARP缓存表查询有没有记录目标ip对应的MAC地址,如果有,就找到了,没有的话,问一下局域网里面的计算机,有没有哪一个是这个ip地址。(方法是向局域网广播消息,如果有这个ip地址的电脑收到了消息,会根据广播里面的“自我介绍”:我的ip是XXX,MAC地址是XXX返回自己的IP和MAC地址)。

    但是很少会遇到要访问的计算机恰好就在局域网的情况。所有如果本地又没有记录,局域网又没有。怎么办呢,这时候我们之间填写局域网网关的MAC地址。(获取方法同上)。这样就把数据包传输给了网关。我们就不管了(甩锅~)。

    2.路由选择协议

    在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获悉很粗略的传输路线。
    这种机制称为路由选择(routing),有点像快递公司的送货过程。想要寄快递的人,只要将自己的货物送到集散中心,就可以知道快递公司是否肯收件发货,该快递公司的集散中心检查货物的送达地址,明确下站该送往哪个区域的集散中心。接着,那个区域的集散中心自会判断是否能送到对方的家中。


    路由选择中转

    四、DNS服务(域名解析)

    计算机既可以被赋予IP地址,也可以被赋予主机名和域名。比如www.hackr.jp
    用户通常使用主机名或域名来访问对方的计算机,而不是直接通过IP地址访问。因为与IP地址的一组纯数字相比,用字母配合数字的表示形式来指定计算机名更符合人类的记忆习惯。
    但要让计算机去理解名称,相对而言就变得困难了。因为计算机更擅长处理一长串数字。
    为了解决上述的问题,DNS服务应运而生。DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务。

    DNS服务

    五、各种协议与HTTP协议的关系

    各种协议与HTTP协议的关系

    相关文章

      网友评论

          本文标题:HTTP基础(一):TCP/IP概述

          本文链接:https://www.haomeiwen.com/subject/hdxnrctx.html