今天自己编写了一个简单的c++服务器客户端程序,注释较详细,在此做个笔记. windows下socket编程的主要流程可概括如下:初始化ws2_32.dll动态库-->创建套接字-->绑定地址信息-->服务器进行监听/客户端连接服务器-->数据交换-->关闭套接字对象. 服务器端: #include <Winsock2.h> #include <Ws2tcpip.h> #include <iostream> #pragma comment(…
题外话:刚刚过去的半个月实在是忙得我喘不过来气,虽然手里还压着几个项目得在期末考试之前做完,但是想想还是更新一下随笔,稍微换个心情.另外小吐槽一下那些在博客园里原封不动抄书当随笔的人,唉真是....算了我不吐槽了哈哈,进入正题! TCP/IP协议有关的书籍我在图书馆里翻看了很多,虽说每本侧重都不大一样,但是有一点是一样的:TCP协议讲义的篇幅都是其他协议的三到五倍! 下面总结一下TCP协议里最核心的知识和一些细节,首先从Overview开始: 一.  一张图--TCP FSM 这张图是TCP协议…
前言 MQTT定义了物联网传输协议,其标准倾向于原始TCP实现.构建于TCP的上层协议堆栈,诸如HTTP等,在空间上多了一些处理路径,稍微耗费了CPU和内存,虽看似微乎其微,但对很多处理能力不足的嵌入式设备而言,选择原始的TCP却是最好的选择. 但单纯TCP不是所有物件联网的最佳选择,提供构建与TCP基础之上的传统的HTTP通信支持,尤其是浏览器.性能富裕的桌面涉及领域,还是企业最 可信赖.最可控的传输方式之一.支持多种多样的连接通道,让目前所有一切皆可联网,除了原始TCP Socket,还要支…
CP 为什么三次握手而不是两次握手(正解版) https://blog.csdn.net/lengxiao1993/article/details/82771768 自己理解说明一下: 比如说有一条管子,一头有一个人,管子穿墙,俩人相互看不见只能传话, A说: 你接管子 B回答:我接好了 上面是只是单工,不能保证双工,因为你没告诉A接管子,下面需要让A接管子,下一步 B说:你接管子 A回答:我接好了 管子建立连接,可以输送液体; 一共花了4次 优化成3次: 将B回答:我接好了,和B说:你接管子合…
UDP(User Data Protocol)是传输层的用户数据报协议,有复用和分用以及差错检测的功能. 1) 多路复用(针对发送主机):从不同套接字收集数据块,并为每个数据块封装上首部信息,生成报文段,传递到网络层 2) 多路分解(针对接收主机):将报文段中的数据交付到正确的套接字 UDP协议主要特点: 1.UDP是无连接的,发送数据之前不需要建立连接(结束之后自然也不用释放连接),减少了开销和发送数据的时延 2.UDP使用尽最大努力交付,即不保证可靠交付,不需要维持复杂的连接状态表 3.UD…
传输控制协议(Transmission Control Protocol) 概念 一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议. 主要特点 (1)TCP是面向连接的运输层协议.这就是说,应用程序在使用TCP协议之前,必须先建立TCP协议.在传送数据完毕后,必须释放已经建立的TCP连接.类似于“打电话”,需要先拨号建立连接,通话完之后要挂机释…
第3章 TCP协议详解 3.1 TCP服务的特点 传输协议主要有两个:TCP协议和UDP协议,TCP协议相对于UDP协议的特点是 面向连接使用TCP协议通信的双方必须先建立连接,完成数据交换后,通信双方都必须断开连接以释放系统资源. 字节流 发送端执行的写操作次数和接收端执行的读操作次数之间没有任何数量关系. 相比UDP则是发送端每执行一次写操作,UDP模块就将其封装成一个UDP数据报并发送之.为避免丢包,接收端必须及时针对每一个UDP数据报执行读操作. 可靠传输 1) TCP协议采用发送应答机…
为什么 TCP 协议有粘包问题 这部分转载自draveness博客. TCP/IP 协议簇建立了互联网中通信协议的概念模型,该协议簇中的两个主要协议就是 TCP 和 IP 协议.TCP/ IP 协议簇中的 TCP 协议能够保证数据段(Segment)的可靠性和顺序,有了可靠的传输层协议之后,应用层协议就可以直接使用 TCP 协议传输数据,不在需要关心数据段的丢失和重复问题. 图 1 - TCP 协议与应用层协议 IP 协议解决了数据包(Packet)的路由和传输,上层的 TCP 协议不再关注路由…
网络模型 为使不同计算机厂家的计算机能够互相通信,国际标准化组织 ISO 1981 年正式推荐了一个网络系统结构一一七层参考模型,也叫作开放系统互连模型. ISO 七层网络模型及其功能展示: 这个七层网络模型在数据的传输过程中还会对数据进行封装,封装过程如图所示: ISO 七层网络模型中,当一台主机需要传送用户的数据( data 时,数据首先通过应用层的接口进入应用层.在应用层,用户的数据被加上应用层的报头( Ppplication Header, AH ),形成应用层协议数据单元( Proto…
终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读.前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西. TCP和UDP处在同一层---运输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,TCP是面向连接的,也就是说,利用TCP通信的两台主机首先要经历一个“拨打电话”的过程,等到通信准备结束才开始传输数据,最后结束通话.所以TCP要比UDP可靠的多,UDP是把数据直接发出去,而不管对方是不是在收信,就算是UDP…