应用层原理

梦想不抛弃苦心追求的人,只要不停止追求,你们会沐浴在梦想的光辉之中。再美好的梦想与目标,再完美的计划和方案,如果不能尽快在行动中落实,最终只能是纸上谈兵,空想一番。只要瞄准了大方向,坚持不懈地做下去,才能够扫除挡在梦想前面的障碍,实现美好的人生蓝图。应用层原理,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

进程标志和寻址问题(服务用户)

  • 进程为了接收报文,必须有一个标识,即SAP

    • 主机:唯一的32位IP地址

      仅仅由IP地址还不能够唯一标识一个进程,一台端系统上有很多应用进程在运行

    • 所采用的传输层协议:TCP/UDP

    • 端口号(Port Numbers)2^16=65525

  • 一些知名端口号

    HTTP:TCP 80 Mail:TCP 25 FTP:TCP 21/20

  • 一个进程

    用IP+Port标识端节点

传输层提供的服务

位置:层间界面的SAP(TCP/IP:socket)

形式:应用程序接口API(TCP/IP:socket API)

  • 传输层提供的服务-需要穿过层间的信息

    • 层间接口必须要携带的信息
      • 要传输的报文(对本层来说:SDU)
      • 谁传的:自己的应用进程的标识::IP+TCP(UDP) 端口
      • 传给谁:对方的应用进程的标识::对方的IP+TCP(UDP) 端口号
    • 传输层实体(TCP/UDP实体)根据这些信息进行TCP报文段/UDP数据报的封装
      • 源端口号,目标端口号,数据等
      • 将IP地址往下层交IP实体,用于封装IP数据报:源IP,目标IP
  • 传输层提供的服务-层间信息的代表

    • 如果Socket API每次传输报文,都携带如此多的信息,太繁琐易错,不便于管理

    • 用一个代号(句柄,一个整数)标识通信的双方或者单方:socket

    • 就像OS打开文件返回的句柄一样

      对句柄的操作,就是对文件的操作

    • TCP Socket (一个整数):代表四元组信息

      • TCP服务,两个进程之间的通信需要之前要建立链接

        两个进程通信会持续一段时间,通信关系稳定

      • 可以用一个整数表示两个应用实体(应用层-传输层)之间的通信关系,本地标识

      • 穿过层间接口的信息量最小

      • TCP socket:源IP,源端口,目标IP,目标端口(用一个整数代表该四元组信息)

    • UDP socket

      • UDP服务,两个进程之间的通信之前无需建立连接

        每个报文都是独立传出的

        前后报文可能会给不同的分布式进程

      • UDP socket:本地IP,本地端口号

      • 但在传输报文时:必须提供对方IP,port

        接收报文时:传输层需要上传对方的IP,port

    TCP Socket和UDP Socket区别:

    TCP Socket是代表四元组,UDP Socket是代表两元组

    在服务层调用传输层接口时,TCP只需要发送元数据和Socket,UDP则需要发送元数据、Socket以及对方的IP,port

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

定义应用层协议:报文格式,解释,时序等

编制程序,使用OS提供的API,调用网络基础设施通信服务传报文,实现应用时序等

  • Internet传输层提供的服务

    TCP服务:

    • 可靠的传输服务
    • 流量控制:发送方不会淹没接收方
    • 拥塞控制:当网络出现拥塞时,能抑制发送方
    • 不能提供的服务:时间保证、最小吞吐量保证和安全
    • 面向连接:要求在客户端进程和服务器进程之间建立连接

    UDP服务:

    • 不可靠数据传输
    • 不提供的服务:可靠、流量控制、拥塞控制、时间、宽带保证、建立连接

    UDP存在的必要性:

    • 能够区分不同的进程,而IP服务不能
      在IP提供的主机到主机端到端功能的基础上,区分了主机的应用进程
    • 无需建立连接,省去了建立连接时间,适合事务性的应用
    • 不做可靠性的工作,例如检错重传,适合对实时性要求比较高而对正确性要求不高的应用
    • 没有拥塞控制和流量控制,应用能够按照设定的速度发送数据
  • 安全TCP

    TCP&UDP

    • 都没有加密
    • 明文通过互联网传输,甚至密码

    SSL

    • 在TCP上层实现,提供加密的TCP连接
    • 私密性
    • 数据完整性
    • 端到端的鉴别
    • 应用采用SSL库,SSL库使用TCP通信
    • 应用通过API将明文交给socket,SSL将其加密在互联网上传输

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/153697.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!