• TCP/IP 协议大致的概念


    最近在看《图解HTTP》和《HTTP权威指南》,对TCP/IP大致过了一下。

      TCP/IP 不仅仅是TCP 和 IP 

      TCP/IP 是协议族,与之相对的事IEEE等标准组织设定的OSI七层。这里面涉及到的协议有:

      • TCP   传输控制协议                     传输层。
      • IP     网际协议                           网络层。
      • ARP    地址解析协议                        数据链路层协议。
      • UDP    用户数据报协议                  传输层。
      • ICMP   Internet控制报文协议          网络层。
      • DNS    域名系统                      为ip绑定逻辑名称。
      • HTTP   超文本传输协议                 应用层。

    作为一名java web工程师,可以说90%涉及的工作是HTTP协议,如果做IM或者云存储可能会涉及到TCP+UDP。所以,HTTP和TCP,是基本功。

         为什么要分层,要能理解,每一层的意义所在 

      作为分隔两地的计算机系统上不同应用程序,他们之间如果需要通信,首先要知道对方是谁。

    • 传输层是怎么区分不同对象的,ip:端口
      • 然后我要传输数据,数据按照什么方式打包送过去呢?
        • 报文 Message,报文是什么,是用户自定义长度(相对于底层协议来说)的二进制数据。然后在Message前加上传输层报文。
    • 传输层的数据到网络层,然后网络层是怎么区分不同对象的,ip
      • 然后我要传输数据,数据按照什么方式打包送过去呢?
        • 报文  Package,是我网络层无差别地对你传输层大数据报进行切割的小单位。然后在package前加上网络层报文。
    • 网络层到数据链路层,怎么办,这个时候,已经没有ip了,有的是什么,mac,真实物理世界的身份证。
      • 然后我要传输数据,数据按照什么方式打包送过去呢?
        • 分组 frame, 进一步进行切割的单位。然后在frame前加上链路层报文。

     可以看到,这三层的行为模式很相近。那为什么要分为三层。

    因为,数据传输要解决的问题太多了。通过对问题进行归类,不同层次来专门解决不同问题。有点工业2.0,福特生产线的味道。

    传输层,要解决的事,两个应用程序间传输数据。其实问题很抽象,因为层次高。所以,只设定两个应用程序的地址(ip+端口)就好了。

    网络层,要解决在跨越多个网络,长距离的情况下,我怎么找到另外一个主机,其实核心就是路由寻址。

    然后,就进入了“最后半公里”,将ip转换为mac,在链路层传输分组。

    分层,也是大型软件设计的工程学思想。 

           还有,每到下面一层时,一般都会进行数据切片分割?   

      

      因为需要复用。复用的场景是不同的。比如在数据链路层,有很多编码方式,还有什么频分复用、码分复用、时分复用等等,通过不同的编码方式来进行复用。

      在网络层也是,通过分片,我可以走多个通路。并行的思想。

      在传输层,有一个概念叫带宽,就算我能一下把所有数据给你送过去,你机器的内存难道不会撑爆吗。

                 

  • 相关阅读:
    C#
    C#
    ssh学习笔记
    (已解决)Could not open '/var/lib/nova/mnt/*/volume-*': Permission denied
    RPCVersionCapError: Requested message version, 4.17 is incompatible. It needs to be equal in major version and less than or equal in minor version as the specified version cap 4.11.
    如何在linux下安装idea
    The system has no LUN copy license
    调整mysql数据库最大连接数
    mysql数据库编码问题
    cinder支持nfs快照
  • 原文地址:https://www.cnblogs.com/haore147/p/5510462.html
Copyright © 2020-2023  润新知