中科大郑烇、杨坚 《计算机网络》第二章

本文详细介绍了网络应用的体系结构,包括客户-服务器模式和对等模式。重点讲解了进程通信、TCP/UDP套接字的工作原理,以及应用层协议如HTTP、FTP和DNS的基本概念和功能。在TCP套接字编程中,阐述了服务器端和客户端的交互过程,而在UDP套接字编程中,强调了其无连接特性和应用场景。此外,还讨论了传输层服务的选择,如可靠性和延迟等因素对应用的影响。

1、应用层协议原理

1.1 网络应用的体系结构:

可能的应用架构:
1)客户-服务器模式(C/S:client/server)
2)对等模式(P2P:Peer To Peer)
3)混合体:客户-服务器和对等体系结构

1.1.1 客户-服务器模式(C/S:client/server)

服务器端:

  • 一直运行
  • 固定IP地址和周知的端口号
  • 扩展性:服务器短的扩展性较差

客户端:

  • 主动与服务器通信
  • 与互联网有间歇性的连接)
  • 可能是动态IP地址
  • 不直接与其它客户端通信

缺点:可拓展性差 达到一定能限(阈值),性能暴跌 可靠性差

在这里插入图片描述

1.1.2 对等模式(P2P:Peer To Peer)
  • (几乎)没有一直运行的服务器
  • 任意端系统之间可以进行通信
  • 每一个节点既是客户端又是服务器
    • 自扩展性-新peer节点带来新的
    • 服务能力,当然也带来新的服务请求

1.2、进程通信

进程:在主机上运行的应用程序

  • 在同一个主机内,使用进程间通信机制通信(操作系统定义)

  • 不同主机,通过交换报文(message)来通信

客户端进程:发起通信的进程
服务器进程:等待连接的进程

注意:P2P架构的应用也 有客户端进程和服务器进程之分

1.3 分布式进程通信需要解决的问题

应用进程如何使用传输层提供的服务交换报文

在这里插入图片描述

1.3.1、问题1:进程标识和寻址问题(对于进程 谁发/谁收,对等层实体之间)
  • 进程为了接收报文,必须有一个标识

    • 主机:唯一的32位IP地址
    • 端口号(Port Numbers) 用来区分不同的应用进程
      所采用的的传输层协议:TCP/UDP
  • 一个进程:用IP + port 标识端节点

  • 本质上,一对主机进程之间的通信由2个端节点构成

1.3.2、问题2:传输层-应用层提供服务是如何 (上下层间)
  • 位置:层间界面的SAP (TCP/IP :socket)
  • 形式:应用程序接口API (TCP/IP :socket API)

传输层提供的服务-需要穿过层间的信息
层间接口必须要携带的信息

  • 要传输的报文(对于本层来说:SDU) (SDU——未经本层封装的) (发的什么)
  • 谁传的:对方的应用进程的标示:IP+TCP(UDP)端口 (谁发的)
  • 传给谁:对方的应用进程的标示:对方的IP+TCP(UDP)端口号 (发给谁)

传输层实体(tcp或者udp实体)根据这些信息进行TCP报文段(UDP数据报)的封装
源端口号,目标端口号,数据等
将IP地址往下交给IP实体,用于封装IP数据报:源IP,目标IP

如果Socket API(原语)每次传输报文(穿过层间),都携带如此多的信息,太繁琐易错,不便于管理
用个代号标示通信的双方或者单方: socket
就像OS打开文件返回的句柄一样
对句柄的操作,就是对文件的操作
1.3.2.1 TCP socket

1、TCP服务,两个进程之间的通信需要之前建立连接,两个进程通信会持续一段时间,通信关系稳定。
2、可以用一个整数(socket)表示两个应用实体之间的通信关系,本地标识
3、用一个整数标识传输,穿过层间接口的信息量最小
4、TCP socket:源IP,源端口,目标IP,目标IP,目标

TCP socket 是一个整数(类似文件描述符)代表一个四元组(我的IP和端口号 对方的IP和端口号)
便于管理 使得穿过层间的信息量最小
是应用层和传输层的一个约定 本地会话的标识

对于使用面向连接服务(TCP)的应用而言,套接字是4元组的一个具有本地意义的标识

  • 4元组: (源IP,源port,目标IP,目标port)

  • 唯一的指定了一个会话(2个进程之间的会话关系)o应用使用这个标示,与远程的应用进程通信

  • 不必在每一个报文的发送都要指定这4元组

  • 就像使用操作系统打开一个文件,OS返回一个文件句柄一样,以后使用这个文件句柄,而不是使用这个文件的目录名、文件名

  • 简单,便于管理

在这里插入图片描述
穿过层间接口的包括 ICI 和 SDU

1.3.2.2 UDP socket
1.3.3、问题3:如何使用传输层提供的服务,实现应用进程之间的报文交换,实现应用 (本层间)
  • 定义应用层协议:报文格式、解释、时序等
  • 编制程序,使用OS提供的API,调用网络基础设施提供通信服务传递报文,解析报文,实现应用时序等

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值