应用层协议原理

1.首先要明白应用层协议定义的是应用进程间的通信和交互的规则。

2.主流的应用体系结构有三种:

客户-服务器体系结构(C/S)

可扩展性低:只有一台服务器,当有成千上万用户同时访问时的高并发场景服务器可能会崩溃。

客户相互之间不能直接通信。

Web、FTP、Telnet和电子邮件都是C/S体系结构。

P2P体系结构自扩展性高,既可作为客户端也能作为服务端。但管理较难。
混合体综合了C/S和P2P两种体系结构。

3.进程间通信

其中进程P1和进程P2通信通过操作系统本身提供的通信方式进行通信(管道、消息队列、共享缓冲区等)。

进程P2和P3则是通过操作系统提供的网络协议报文服务进行通信。

那如何区别不同的应用进程?是如何相互通信的。这就需要解决三个问题:

        ①进程标识和进程寻址。(服务用户)

        ②传输层-应用层提供的服务如何。(提供服务)

                位置:层间接口的SAP( Socket)

                形式:应用程序接口API(Socket API )

        ③如何使用传输层提供的服务实现应用进程之间的报文交换,实现应用。(用户使用服务)

 

进程P2和P3通信,实际上是进程P2通过层间接口上的Socket API利用传输层提供的服务以及传输层通过下面几层的服务和P3通信。

提出问题,如何解决问题?

        ①问题:标识进程和进程寻址。解决:对进程进行编址(IP地址和port标识)

        ②问题:传输层-应用层提供的服务如何?解决:传输层提供的服务-需要穿过层间接口。那么

                就必须要携带的信息

                要传输的报文是什么  ?what         

                传给谁(作为对方应用进程的标识:IP+TCP/UDP 端口号)

                谁传的(对方的应用进程的标识:对方的IP+TCP/UDP 端口号)?who       

如果每次都要携带这三个信息,太繁琐也易错。

于是就有了TCP Socket(4元组):源IP、源端口、目标IP、目标端口。TCP Socket就是本地的标识,物理上看就是一个整数,在TCP中标识两个应用进程会话的关系。这是一张表,P2通过这张表就能找到想要通信的应用程序。

UDP Socket(2元组):源IP、源UDP端口。发送的时候需要有:UDP socket、携带发送的信息、目标IP和port。

 

注意不同主机的TCP socket / UDP socket可能不同。如S1和S2通信,S1有自己的socket1,到达运输层,而期间又创建了 TCP Socket11的4元组。而S2又和S3通信,S2有自己的socket2,到达运输层,而期间又创建了 TCP Socket22的4元组。那么这两个TCP Socket是不一样的。

 

说明一下端口和socket的区别:

端口是用来区别进程的。socket用来确定端系统。    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值