进程标志和寻址问题(服务用户)
-
进程为了接收报文,必须有一个标识,即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