应用层协议和传输层协议

数字是离散的,模拟是连续的,对连续的信号进行采样就会变成数字信号(A/D转换)

  1. 在意念传输发明出来之前,计算机之间传输信息,总是需要介质的!要么有线传输,要么无线电波传输。你能接收到一条其他计算机的信息,那么物理层面上你一定能连接到它,你们是时空一致的。
  2. 网线上传输的数据其实就是电,是模拟信号,而数字信号是基于模拟信号采样而来的。信息是一种抽象概念,是我们人为定义的,它需要依托于信号来存在。而信号是物理意义上存在的。不讨论量子力学,我们生活中的所有物理现象其实都是模拟类型的信号,光,热,电,声音等等。而我们整个计算机都是依托于模拟信号来运行的。例如内存中的数据,实际上也是依托于电容中高高低低的电压实现的,只不过我们人为的对其进行了规定,高一些的为1,低一些的为0,进行了人为采样,形成了数字信号。
  3. osi七层模型和tcp/ip五层模型功能划分基本一样,区别在于tcp/ip五层模型高度概括了应用层。
  4. 虽然看起来分层,但实际上这些层只是人为抽象,物理层面上并不存在。传输时就是光电信号,类比发报机(嗒嗒嗒)。
    应用层协议和传输层协议_第1张图片

我们现在通常说的传输层协议,一般就是指tcp协议和udp协议。
我们拿应用层协议http来举例。
应用层协议和传输层协议_第2张图片

一、封包解包

我们平时电脑上的应用程序之间发送的信息,其实仅仅包含应用程序之间所需要的数据,但是当应用之间产生数据并发送后,数据会在发送端层层打包,而在接收端层层解包,最后拿出应用发送的最初数据。我们使用时并没有感觉到数据是被打包解包过的。传输过程中附加的层层打包的内容,其实是osi模型中其他层级所附加的头部数据,而这些附加的数据就是为了数据的更好更准确传输!

而应用层协议其实就只是一个约定,好比各个地方的方言(或外语),这样两者才能方便的知道对方发出的是什么内容。
比如http协议就约定应用程序双方,在发送和接受数据中,这几个字符串就代表:
数据的类型,HTTP Header: Content-Type
数据的长度,HTTP Header: Content-Length
数据的压缩方式,HTTP Header: Accept-Encoding

二、层层依赖

应用层并不关心数据是如何传输的,这是传输层的职责,在osi模型中上层功能依赖于下层,但不关心下层实现。
传输层负责数据的精准投递。
网络层及以下层级,用来唯一确定网络中的一台计算机。而传输层中因为有端口号,所以可以唯一确定一台计算机中的唯一应用,投递数据粒度更小更精准。
端口号用来识别同一台计算机中进行通信的不同应用程序,也被称为程序地址
引用:
那么,一个进程是否可以绑定多个端口号?一个端口号是否可以被多个进程绑定?
端口号+IP=套接字,IP表示目标电脑的地址,端口表示目标电脑操作系统上的进程。所以套接字可以唯一标识一个进程,如果一个端口被多个程序绑定,那么就不知道数据该发送给谁。所以,一个端口是不能被多个进程绑定的。但是,一个进程可以绑定多个端口,不同的端口连接不同的服务器程序,以提供不同的服务。

你可能感兴趣的:(tcp/ip,网络,网络协议,tcp/ip)