套接字网络编程基础(三)

传输层(Transport Layer)是OSI中最重要, 最关键的一层,是唯一负责总体的数据传输和数据控制一层.传输层提供端到端的交换数据的机制.传输层对会话层等高三层提供可靠的传输服务,对网络层提供可靠的目的地站点信息。传输层中面向连接的协议为TCP,无连接的协议为UDP

面向连接的套接字编程

面向连接的服务是电话系统服务模式的抽象,即每一次完整的数据传输都要经过建立连接、使用连接和终止连接的过程。在数据传输的过程中,各数据分组不携带目的地址,而使用连接号(Connect ID)。本质上,连接是一个管道,收发数据不但顺序一致,而且内容相同

TCP协议

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能

面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据包之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。在一个TCP连接中,仅有两方进行彼此通信

套接字工作过程

一个完整的通信过程历经建立连接、发送/接收数据和释放连接3个阶段:

建立连接的过程按照TCP三次握手的规范进行;
发送/接收数据阶段称为客户机与服务器的会话期,会话内容遵守应用程序协议规则;
释放连接。

网络进程间面向连接的通信方式基于TCP,因而必须借助流式套接字来编程,应用程序分为服务器和客户端,双方是不对称的,需要分别编制

这里写图片描述

服务器端

  1. 创建监听套接字:为通信做第一步,该套接字为服务器监听客户机连接请求的,不进行数据交换
  2. 绑定监听套接字:将套接字与IP地址、传输层端口号联系在一起
  3. 启动监听:规定监听套接字请求队列长度,进入监听状态
  4. 接受客户机连接请求:创建新的连接套接字,进行数据交换
  5. 关闭套接字

客户机端

  1. 创建套接字:操作系统自动绑定ip和端口号
  2. 请求连接
  3. 数据传输
  4. 关闭套接字

无连接的套接字编程

无连接服务是邮政系统服务的抽象,每个分组都携带完整的目的地址,各分组在系统中独立传送。无连接服务不能保证分组到达的先后顺序,不进行分组出错的恢复与重传,不保证传输的可靠性。无连接协议在通信前,不需要建立连接,也不管接收端是否正在准备接收

UDP协议

UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范

UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据,UDP传输的可靠性由应用层负责

套接字工作过程

使用无连接的数据报套接字开发网络应用程序,既可以采用对等模式,也可以采用C/S模式

对等模式

这里写图片描述

C/S模式

这里写图片描述

//以上内容大部分摘自《网络编程实用教程(第三版)》 编者 段利国 刘金江 倪天伟 叶树华
//侵权必删
//仅供参考
//windows网络编程

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值