个人网站怎么进后台,公司网站费用怎么做会计分录,网站备案价格,深圳网站设计公司是什么前面的笔记记录了Winsock的入门编程#xff0c;领略了Winsock编程的乐趣。。但这并不能算是掌握了Winsock#xff0c;加深理论知识的理解才会让后续学习更加得心应手。。因此#xff0c;这篇笔记将记录一些有关Winsock的基本理论知识#xff0c;由于是一篇笔记#xff0c;… 前面的笔记记录了Winsock的入门编程领略了Winsock编程的乐趣。。但这并不能算是掌握了Winsock加深理论知识的理解才会让后续学习更加得心应手。。因此这篇笔记将记录一些有关Winsock的基本理论知识由于是一篇笔记鉴于看书速度有限主要内容会慢慢地填入。。错误在所难免的希望看客更正。。(*^__^*) 嘻嘻…… 一消息和流摘录自网上 保护消息边界就是指传输协议把数据当作一条独立的消息在网上传输,接收端只能接收独立的消息.也就是说存在保护消息边界,接收端一次只能接收发送端发出的一个数据包. 而面向流则是指无保护消息保护边界的,如果发送端连续发送数据, 接收端有可能在一次接收动作中,会接收两个或者更多的数据包. 我们举个例子来说,例如,我们连续发送三个数据包,大小分别是2k, 4k , 8k,这三个数据包,都已经到达了接收端的网络堆栈中 如果使用UDP协议,不管我们使用多大的接收缓冲区去接收数据,我们必须有三次接收动作,才能够把所有的数据包接收完. 而使用TCP协议,我们只要把接收的缓冲区大小设置在14k以上,我们就能够一次把所有的数据包接收下来只需要有一次接收动作. 这就是因为UDP协议的保护消息边界使得每一个消息都是独立的.而流传输,却把数据当作一串数据流,他不认为数据是一个一个的消息. 所以有很多人在使用tcp协议通讯的时候,并不清楚tcp是基于流的传输,当连续发送数据的时候,他们时常会认识tcp会丢包.其实不然,因为当他们使用的缓冲区足够大时,他们有可能会一次接收到两个甚至更多的数据包,而很多人往往会忽视这一点,只解析检查了第一个数据包,而已经接收的其他数据包却被忽略了. 根据以上所说可以这样理解TCP为了保证可靠传输尽量减少额外开销每次发包都要验证因此采用了流式传输面向流的传输相对于面向消息的传输可以减少发送包的数量。从而减少了额外开销。但是对于数据传输频繁的程序来讲使用TCP可能会容易粘包。 当然对接收端的程序来讲如果机器负荷很重也会在接收缓冲里粘包。这样就需要接收端额外拆包增加了工作量。因此这个特别适合的是数据要求可靠传输但是不需要太频繁传输的场合两次操作间隔100ms具体是由TCP等待发送间隔决定的取决于内核中的socket的写法 而UDP由于面向的是消息传输它把所有接收到的消息都挂接到缓冲区的接受队列中因此它对于数据的提取分离就更加方便但是它没有粘包机制因此当发送数据量较小的时候就会发生数据包有效载荷较小的情况也会增加多次发送的系统发送开销系统调用写硬件等和接收开销。因此应该最好设置一个比较合适的数据包的包长来进行UDP数据的发送。UDP最大载荷为1472因此最好能每次传输接近这个数的数据量这特别适合于视频音频等大块数据的发送同时通过减少握手来保证流媒体的实时性 二面向连接和无连接 Connectionoriented 面向连接 一种网络协议,依赖发送方和接收器之间的显示通信和阻塞以管理双方的数据传输.网络系统需要在两台计算机之间发送数据之前先建立连接的一种特性。面向连接网络类似于电话系统在开始通信前必须先进行一次呼叫和应答。如果一种服务具有下列特征就认为它是面向连接的 1、建立一条虚电路比如3次握手 2、使用排序 3、使用确认 4、使用流量控制。流量控制的类型有缓冲、窗口机制和拥堵避免。 面向连接的服务就是通信双方在通信时,要事先建立一条通信线路,其过程有建立连接、使用连接和释放连接三个过程。TCP协议就是一种面向连接服务的协议,电话系统是一个面向连接的模式。其特点是 数据传输过程前必须经过建立连接、维护连接和释放连接的3个过程在数据传输过程中各分组不需要携带目的节点的地址。面向连接服务的传输连接类似于一个通信管道发送者在一端放入数据接受者从另一端取出数据。面向连接数据传输的收发数据顺序不变因此传输的可靠性好但需通信开始前的链接开销协议复杂通信效率不高。 Connectionless 无连接 网络系统允许一台计算机在任何时刻发送数据给任何一台其它的计算机的一种特性。无连接网络类似于邮政系统每封信件附有收信人地址信件可在任何时刻发出。在无连接的网络服务中增加了更多的管理开销。无连接的服务用来传送不带确认或流量的数据它被认为是不可靠的。三单播、多播、广播 单播 网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话那么用网络技术的术语来描述就是“单播”此时信息的接收和传递只在两个节点之间进行参见图1。 图1 单播一对一 单播在网络中得到了广泛的应用网络上绝大部分的数据都是以单播的形式传输的只是一般网络用户不知道而已。例如你在收发电子邮件、浏览网页时必须与邮件服务器、Web服务器建立连接此时使用的就是单播数据传输方式。但是通常使用“点对点通信”Point to Point代替“单播”因为“单播”一般与“多播”和“广播”相对应使用。优点服务器及时响应客户机的请求、服务器针对每个客户不通的请求发送不通的数据容易实现个性化服务。缺点 服务器针对每个客户机发送数据流服务器流量客户机数量×客户机流量在客户数量大、每个客户机流量大的流媒体应用中服务器不堪重负 现有的网络带宽是金字塔结构城际省际主干带宽仅仅相当于其所有用户带宽之和的5。如果全部使用单播协议将造成网络主干不堪重负。现在的P2P应用就已经使主干经常阻塞只要有5的客户在全速使用网络其他人就不要玩了。而将主干扩展20倍几乎是不可能。多播 “多播”可以理解为一个人向多个人但不是在场的所有人说话这样能够提高通话的效率。如果你要通知特定的某些人同一件事情但是又不想让其他人知道使用电话一个一个地通知就非常麻烦而使用日常生活的大喇叭进行广播通知就达不到只通知个别人的目的了此时使用“多播”来实现就会非常方便快捷但是现实生活中多播设备非常少。多播如图2所示。 图2 多播一对多 “多播”也可以称为“组播”在网络技术的应用并不是很多网上视频会议、网上视频点播特别适合采用多播方式。因为如果采用单播方式逐个节点传输有多少个目标节点就会有多少次传送过程这种方式显然效率极低是不可取的如果采用不区分目标、全部发送的广播方式虽然一次可以传送完数据但是显然达不到区分特定数据接收对象的目的。采用多播方式既可以实现一次传送所有目标节点的数据也可以达到只对特定对象传送数据的目的。优点 需要相同数据流的客户端加入相同的组共享一条数据流节省了服务器的负载。具备广播所具备的优点 由于组播协议是根据接受者的需要对数据流进行复制转发所以服务端的服务总带宽不受客户接入端带宽的限制。IP协议允许有2亿6千多万个268435456组播所以其提供的服务可以非常丰富 此协议和单播协议一样允许在Internet宽带网上传输。缺点 与单播协议相比没有纠错机制发生丢包错包后难以弥补但可以通过一定的容错机制和QOS加以弥补。 现行网络虽然都支持组播的传输但在客户认证、QOS等方面还需要完善这些缺点在理论上都有成熟的解决方案只是需要逐步推广应用到现存网络当中广播“广播”可以理解为一个人通过广播喇叭对在场的全体说话这样做的好处是通话效率高信息一下子就可以传递到全体如图3所示。图3 广播一对全体 “广播”在网络中的应用较多如客户机通过DHCP自动获得IP地址的过程就是通过广播来实现的。但是同单播和多播相比广播几乎占用了子网内网络的所有带宽。拿开会打一个比方吧在会场上只能有一个人发言想象一下如果所有的人同时都用麦克风发言那会场上就会乱成一锅粥。 在网络中不能长时间出现大量的广播包否则就会出现所谓的“广播风暴”。广播风暴就是网络长时间被大量的广播数据包所占用正常的点对点通信无法正常进行外在表现为网络速度奇慢无比。出现广播风暴的原因有很多一块有故障的网卡就可能长时间向网络上发送广播包而导致广播风暴。 集线器由于其工作原理决定了不可能过滤广播风暴一般的交换机也没有这一功能不过现在有的网络交换机如全向的QS系列交换机也有过滤广播风暴功能了路由器本身就有隔离广播风暴的作用。 广播风暴不能完全杜绝但是只能在同一子网内传播就好像喇叭的声音只能在同一会场内传播一样因此在由几百台甚至上千台电脑构成的大中型局域网中一般进行子网划分就像将一个大厅用墙壁隔离成许多小厅一样以达到隔离广播风暴的目的。 在IP网络中广播地址用IP地址“255.255.255.255”来表示这个IP地址代表同一子网内所有的IP地址。优点 网络设备简单维护简单布网成本低廉 由于服务器不用向每个客户机单独发送数据所以服务器流量负载极低。缺点 无法针对每个客户的要求和时间及时提供个性化服务。 网络允许服务器提供数据的带宽有限客户端的最大带宽服务总带宽。例如有线电视的客户端的线路支持100个频道如果采用数字压缩技术理论上可以提供 500个频道即使服务商有更大的财力配置更多的发送设备、改成光纤主干也无法超过此极限。也就是说无法向众多客户提供更多样化、更加个性化的服务。 转载于:https://www.cnblogs.com/LCCRNblog/p/3840958.html