0
点赞
收藏
分享

微信扫一扫

应用层协议和传输层协议

非凡兔 2022-01-17 阅读 63

待修订

  1. 在意念传输发明出来之前,计算机之间传输信息,总是需要介质的!要么有线传输,要么无线电波传输。你能接收到一条其他计算机的信息,那么物理层面上你一定能连接到它,你们是时空一致的。
  2. 网线上传输的数据其实就是电,可能是模拟信号或数字信号,这取决于传输介质。
  3. osi七层模型和tcp/ip五层模型功能划分基本一样,区别在于tcp/ip模型高度概括了应用层。
  4. 虽然看起来分层,但实际上这些层只是人为抽象,物理层面上并不存在。传输时就是电信号,类比发报机(嗒嗒嗒)。

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

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

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

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

举报

相关推荐

0 条评论