体系结构
常见的网络体系结构分为:C/B-S结构 与 P2P结构。
C/B-S结构
需要一个中心服务器,具有固定且周知的IP地址。如Google。
P2P结构
所有设备都是对等方,如skype。
P2P结构的挑战有三:
- 上载与下载不对等,上载压力比下载压力大很多,P2P上载压力挑战——ISP友好
- 对等网络无法保证安全
- 用户需要自愿承担网络带宽和储存的成本
客户与服务
发起通信的进程被标识为客户,等待联系的进程是服务
IP与Port
当一个客户寻求服务时,他首先要找到服务的地址。有了这个地址,它就能找到对应的服务器。这就是IP地址,它也唯一标识了主机。
但一个服务器可能要同时服务多种客户。每个客户需要找到服务主机上自己需要的服务,即服务主机上的接受进程。这个就是端口号。
在www.iana.org上可以看到对应的公共的端口号。
socket
socket是应用程序进程和运输层之间的接口。通过socket我们可以:
- 选择运输层协议
- 设定部分运输层参数。如最大缓存和最大报文段长度
运输层的考量指标
可靠数据传输
在不同的应用场景中,数据丢失的容忍度,可能会决定我们使用什么协议。运输层的协议可以分类为:可靠数据传输和不可靠数据传输。在容忍丢失应用中,我们就可以选择不可靠数据传输。
吞吐量
吞吐量是发送进程能够向接收进程交付比特的速率。传输层的协议可以分类为能够保持特定吞吐量和不能够保持特定吞吐量两种。而他们对应的应用场景,分别为:带宽敏感应用(如网络电话)和弹性应用(如文件传输)。
定时
运输层协议提供了能够保证时延的协议和不能保证时延的协议。对于高实时的场景,我们需要使用能够保证时延的协议,反之则可以使用不能保证时延的协议。
安全性
运输协议能为应用程序提供一种或多种安全性服务。如数据加密、数据完整性和端点鉴别。
运输服务
TCP
- 面向连接服务。在传输数据前,需要先建立一个全双工连接。在结束报文发送时,必须拆除该连接。
- 可靠的数据传输服务,TCP的数据无差错且顺序交付,没有字节的丢失和冗余。
- TCP还具有拥塞控制机制。简而言之,当发送方和接收方之间的网络发生拥塞时,TCP会抑制发送进程。
- 安全性,TCP本身没有提供加密机制。SSL是TCP的辅助服务。它不是一个运输服务,它是基于TCP,在应用层实现的服务。TCP在SSL的帮助下能够保证安全性。
UDP
不提供不必要服务的轻量级运输协议。无连接、不保证数据正确,也不保证数据顺序正确。
应用层协议
我们确定了运输层,就是确定了我们的信息的运输方式。但我们运输的内容是什么样的,如何才能让客户端和服务端互相理解运输的内容,这就是应用层的事情了。
应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文。特别定义的有:
- 报文类型(请求/响应)
- 报文语法和字段描述方式
- 字段的语义,字段信息的含义
- 进程何时及如何发送报文,对报文的响应规则
网友评论