昨日内容回顾
-
软件开发架构分类
C/S架构 需要下载专门的客户端,客户端高度定制化。
B/S架构 浏览器充当客户端,可以连接多个服务端,但是无法实现个性化的功能。
-
网络编程基础知识
网络编程主要目的是实现数据的远程交互,基本条件是物理连接。
-
OSI七层模型
应用层(展示层、会话层)、传输层、网络层、数据链路层、物理层
-
网络相关常见名词
交换机、广播、单播、广播风暴、局域网、路由器、URL(实质是IP+端口号)。
-
各种常用协议
以太网协议(数据链路层):计算机出场必须赋有其特征序列号,即物理地址。
IP协议(网络层):计算机接入互联网必须依靠特定的IP地址。
PORT协议(传输层):计算机上运行的程序都会被分配一个端口号,自定义程序使用8000后。
ARP协议:可以通过IP地址解析出访问者的物理地址。
今日内容概要
- TCP协议/UDP协议
- socket模块
今日内容详细
TCP协议/UDP协议
TCP协议下数据传输的执行流程:
建立连接时:
客户端—发送建立连接申请(SYN)→
服务端—同意申请并发送建立连接申请→
客户端——同意连接申请,建立连接
结束连接时:
客户端—发送连接结束信号(FIN)→
服务端——接收结束信号,检测数据传输是否完成——确认完成传输,发送结束连接信号—→
客户端——收到结束信号,断开连接
TCP协议传输的特点
-
可靠性
TCP协议连接下的计算机在数据传输时,若在固定时间内没有收到反馈,则会对数据进行重新传送。
-
同时连接数有限
TCP协议下由于计算机的连接是相互关联并反馈的,同时硬件水平是有上限的,所以同时连接数过多时,会导致服务端负担过大甚至崩溃。因此一般服务器要设定缓冲带,限制同时访问量。
UDP协议特点
又称数据报协议,传输数据时仅负责发送,不做其他相关操作。
socket模块
socket模块基础知识
socket类似于操作系统,为用户提供了在应用层与其他层之间的便捷操作。
socket又叫套接字,分为两种,一种是基于文件类型的AF_UNIX,另一种是基于网络类型的AF_INET。
socket模块用法
object = socket. socket() 创建新的socket对象并返回,不指定通信版本和协议时默认使用TCP。
object. bind() 为生成的对象绑定IP地址。
object. connect() 使用该对象与指定IP地址连接。
object. listen() 为对象建立半连接池。
object. close() 删除生成的socket对象。
sock,addr = object. accept() 建立与链接对象的通道并返回该通道及对象地址。
sock. recv() 接收通道收到的信息并返回,结果为字节类型。括号内填入最大接收信息的大小。
sock. send() 通过通道向正在连接的地址发送信息,信息必须为字节类型。
sock. close() 关闭该对象与其所连接的对象的通道。
标签:协议,socket,object,TCP,模块,连接,客户端 From: https://www.cnblogs.com/akazukis/p/16897398.html