线程与进程,http、https(post、get),socket(tcp、udp)的拆包和粘包,protocol buffer、大头小头简述
一、tcp和udp区别?
三次握手安全:tcp建立连接(三次握手),安全可靠(有序,无差错、无丢失、无重复);
建立连接:udp通信前不需建立连接,不可靠传输(视频、音频通话);
分组开销:TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组;UDP是面向数据报的传输,没有分组开销。
控制:TCP提供拥塞控制和流量控制机制;UDP不提供;
总结:tcp安全、面向字节流传输有分组开销、有流量和拥塞控制机制;
二、post和get?
长度:post请求长度无限制,get有限制;
参数位置:post参数放在body,get请求参数放在url(参数暴露);
参数限制:GET请求参数只能是ASCII码(所以中文需要URL编码),而POST请求传参没有这个限制;
实质相同点:其实,GET和POST本质上两者没有任何区别。他们都是HTTP协议中的请求方法。底层实现都是基于TCP/IP协议。
三、线程和进程;
任务调度:线程是CPU任务调度的基本单位;
资源分配:进程是系统资源分配的基本单位,多个线程共有进程资源;
四、http与https
1、ca:https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、ssl(明文与加密):http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、端口80与443:http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、状态:http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
https://www.cnblogs.com/wqhwe/p/5407468.html
五、http与socket区别:分别是短连接,和长连接;
六、socket的拆包和分包
原因:发送端优化算法,或者接收端延迟接收;
方案:添加包头,通过包头数据长度信息读取数据;
(完整的数据包 = 服务号(id) + 数据包长度(length) + 数据)
https://www.jianshu.com/p/9ea0f0c84990
七、结构数据序列化工具:protocol buffer(协议缓冲区,独立的数据交换格式)对比json、xml
1 二进制流:序列化后,数据是二进制流而不是字符串:
2 协议文件:序列化需要事先定义数据格式
(.proto 协议文件
),反序列化(还原)需要预定义好的数据格式;
3 传输大量数据时,更小更快;使用维护更简单;且跨平台、跨语音;
备注:ios开发 : pod protobuf
https://blog.csdn.net/mzpmzk/article/details/80824839
八、大头(socket传输时,低字节在高地址)与小头(intel的cpu,低字节在低地址)
https://blog.csdn.net/m0_37690319/article/details/80542259
线程与进程,http、https(post、get),socket(tcp、udp)的拆包和粘包,protocol buffer、大头小头简述相关推荐
- 文件传输_python socket实现文件传输(防粘包)
1.文件传输的要点: 采用iterator(迭代器对象)迭代读取,提高读取以及存取效率: 通过for line in file_handles逐行conn.send(): 2.socket粘包问题: ...
- 【Socket网络编程】0.socket TCP/UDP 可参考 【lx青萍之末】 的 【Linux网络编程 】系列博客
关于socket TCP/UDP 相关知识 可参考博主[ lx青萍之末] 的 [Linux网络编程 ]系列博客 https://blog.csdn.net/daaikuaichuan/category ...
- Socket封包、拆包、粘包
接触Socket通信的过程中,遇到了各种有关数据包的问题.这里做一下记录. 一.Socket粘包 1.什么是粘包? 答:顾名思义,其实就是多个独立的数据包连到一块儿. 2.什么情况下需要考虑粘包? 答 ...
- 并发编程知识总结,软件开发架构,socket套接字模板,粘包问题,struct解决粘包问题,上传大文件数据,socketserver,关于操作系统的发展史,进程,线程。...
并发编程知识总结 软件开发架构 C/S: client:客户端 server:服务端 优点:占用网络资源少,软件的使用稳定 缺点:服务端更新后,客户端也要更新,需要使用多个软件,需要下载多个客户端 B ...
- python socket.socket()函数 套接字详解及TCP、UDP程序示例(粘包等)
文章目录 socket的定义 套接字的工作流程 socket函数使用 socket函数用法 服务端套接字函数 客户端套接字函数 公共用途的套接字函数 面向文件的套接字方法 打电话的流程演示 服务端.p ...
- Socket 套接字和解决粘包问题
---恢复内容开始--- Socket 套接字: 什么是socket: Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实 就是一个门面模式,它 ...
- 【Java 网络编程】Socket TCP UDP 联系
文章目录 I 信息传输关注点 II Socket 与 TCP UDP 关系 III Socket 连接组成 ( IP地址 + 端口号 ) IV Socket TCP V Socket UDP VI C ...
- python socket实现文件传输(防粘包)
1.文件传输的要点: 采用iterator(迭代器对象)迭代读取,提高读取以及存取效率: 通过for line in file_handles逐行conn.send(): 2.socket粘包问题: ...
- pythontcp文件传输_python socket实现文件传输(防粘包)
1.文件传输的要点: 采用iterator(迭代器对象)迭代读取,提高读取以及存取效率: 通过for line in file_handles逐行conn.send(): 2.socket粘包问题: ...
最新文章
- 将成化学键的成键过程理解成是用分子测量本征值的过程
- JSPatch defineProtocol 实现详解
- VTK:IO之GLTFExporter
- 实现klib_使用klib加速数据清理和预处理
- 小谈Online-game服务器端设计(4)
- Android kernel Crash后,定位出错点的方法
- 1014-新浪微博(数据 cell )
- 基于CUDA的三维VTI介质逆时偏移与ADCIGs提取
- UE4中Bebavior Tree中Delay及其后面代码失效的原因
- 支持 vulkan android,Vulkan 使用入门
- iOS 中 常用的第三方库
- ssh登录慢的解决办法
- VHDL/Verilog HDL实现任意整数倍分频器
- 仅需6步!虹科教你如何在第三方软件CODESYS中配置PCAN
- matlab imwareaopen,李祎 副教授
- touch: cannot touch ‘***’: Read-only file system
- 软件测试之独步武林系列(一)
- 实验二实验结论实验总结与体会
- php制作日历带节日实验目的,php制作日历
- 从2.3.3到4.1.1:最全的android系统源码下载大集合