网络之初识

目录

网络互连 

IP地址

端口号

认识协议

协议分层

封装和分用

客户端与服务器端,请求与响应


网络互连 

将多台计算机连接在一起,完成数据共享。

根据网络互连规模不同,可分为局域网和广域网

  • 局域网(LAN):局部组建的一种私有网络。
  • 广域网(WAN):通过路由器将多个局域网连接起来,在物理上组成一个大的网络,就形成了广域网

局域网和广域网只是一个相对概念,没有明确的区分。

IP地址

  • 用于标识网络主机,其他网络设备(如路由器)的网络地址,简单说:ip地址用于定位主机的网络地址。
  • ip地址由32位2进制数组成,每8位一组。

端口号

  •  网络通信中,知道了对方的ip地址只能找到对方的主机,不能确定对方主机的哪个进程去接收发来的数据。
  • 端口号可以标识主机中发送,接收数据的进程。简单来说:端口号用于定位主机中的进程。
  • 注意事项:多个进程不能绑定同一个端口,但一个进程可以绑定多个端口。

认识协议

  • 协议是网络通信中的一种约定,发送方和接收方约定好,按照特定的格式进行传输。
  • 协议只有双方都遵守才有意义
  • 网络通信,中间过程的非常复杂,所以要考虑的细节就会很多,因此会导致协议变得十分复杂。这样既难学习,也难以维护。因此需要协议分层。

协议分层

  • 复杂的协议学习和维护成本高,所以要进行拆分。复杂的协议会拆分出很多小的协议,把这些小的协议进行分类,把功能类似的协议归为一类。
  • 协议分层的约定
    • 上层协议调用下层协议。
    • 下层协议给上层协议提供服务。
    • 不能隔层调用。
    • 相邻的两层可以交互。
  • 协议是如何分层的?
    • 当前网络分层,有两种经典的分法:
      • OSI七层模型(从上往下依次是)
        • 应用层
        • 表示层
        • 会话层
        • 传输层
        • 网络层
        • 数据链路层
        • 物理层
      • TCP/IP五层模型(该模型把OSI七层模型的上三层合并为了应用层)
        • 应用层:应用程序
        • 传输层:端到端的传输
        • 网络层:点到点的传输
        • 数据链路层:相邻结点的传输
        • 物理层:底层基础设施
      • 例如我在淘宝上买了一件衣服。
      • 应用层关心的是这件衣服如何使用,是用来穿还是用来当抹布等等。
      • 传输层关心的是发件人信息和收件人信息。
      • 网络层关心的是发件人地址和收件人地址中间的路程规划如何走,是直达还是经过北京再经过南京到达收件人地址。
      • 数据链路层关心的是xx地到xx地如何传输,是公里还是飞机还是海运。
      • 物理层是负责为传输提供基础设施的,如公里,铁路,航线都得物理层来提供
    • TCP/IP五层模型中,传输层和网络层是由操作系统实现的,数据链路层和物理层由硬件和设备驱动实现,应用层是程序员自己写的。

封装和分用

假设如下场景:A通过qq给B发送了一条消息,消息内容为“你好,XXX”。

主机A的发送过程:

  1. 应用层(QQ应用程序)
    1. QQ程序内部自己约定好了一个应用层协议(具体内容是什么我们不得而知),我们简单的模拟一个设计方案:QQ应用程序会把用户输入的字符串构造成约定好的应用层协议的报文。
    2. 按照我们的方案,我们得出下面的报文。

     QQ应用程序会把生成的应用报文交给传输层协议,来进一步处理

  2. 传输层

    传输层这里的协议很多,最典型的是TCP协议。

    TCP协议要在之前的数据的基础上,加上一个TCP报头,TCP报头包含的信息很多,最重要的是源端口和目的端口。

    传输层继续把这个数据交给网络层处理。

  3. 网络层

    网络层最典型的是IP协议。IP协议把整个TCP数据报视为一个整体,作为载荷部分,在载荷前面加上IP报头。IP报头最重要的是源IP和目的IP。

    构造好IP数据报后,继续交给数据链路层处理。

  4. 数据链路层

    数据链路层最典型的协议是“以太网”

    电脑插上网线,这个网线就是“以太网线”,对应的网线也就是遵守“以太协议”的 。“以太协议”既管数据链路层,也管物理层。

    数据链路层在接收到的数据报的基础上加上帧头和帧尾。帧头包含源mac地址和目的mac地址,帧尾用来校验数据和。


     
  5. 物理层

    数据组织好后,通过物理层的设备(网卡)把上述数据的二进制比特流转换为光信号/电信号进行传输。

上述数据从上到下层层添加信息的过程就叫做“封装”。“分用”是封装的逆过程。

假设B主机收到了数据,中间传输的过程我们省略。

  1. 物理层

    B主机收到数据后把光信号/电信号转换为二进制数据。接下来交给数据链路层进行解析。
  2. 数据链路层

      数据链路层拿到物理层传输过来的以太网数据帧,去掉帧头和帧尾。取出载荷部分,然后把载荷部分交给网络层。
  3. 网络层

    根据IP协议对刚得到的IP数据报进行解析,去掉报头部分,得到载荷部分,然后把载荷部分交给传输层。

    ​​​​​​​
  4. 传输层

    根据TCP协议对刚得到的TCP数据报进行解析,去掉报头部分,得到载荷部分,然后把载荷部分交给应用层。
  5. 应用层(QQ程序)

    QQ应用程序根据协议把传输层传来的数据报进行解析,取到数据然后显示在屏幕上。
     

 上述过程描述了发送方和接收方之间的封装和分用的过程,但是实际过程中双方不是一根网线直连的,中间要经过一些交换机/路由器,因此实际情况更加的复杂!!!

客户端与服务器端,请求与响应

客户端:客户就是用户,客户端就是用户可以接触到的程序,如手机app,web网页。

服务器端:服务器端是为客户端提供服务的。

客户端向服务器端发送请求数据,服务器端将接收到的请求处理完后,响应给客户端。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值