- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
传输层位置 从通信和信息处理的角度看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。 传输层概述 传输层协议只在端系统上运行。 传输层协议的主要功能之一是确定在源系统上生成消息和在目的系统上接收消息的较高层进程。 传输层实体能够根据高层应用的需求提供不同的服务质量。 传输层对高层用户屏蔽网络的差异,使高层用户的对等实体在交互过程中不受下层通信技术细节的影响。 两种逻辑通信信道:UDP和TCP 两种运输层协议 :UDP和TCP UDP概述 UDP 用户数据报UDP 使用尽最大努力交付,只能提供不可靠的交付 UDP 是无连接的,即发送数据之前不需要建立连接。 UDP 基于端口的复用和分用 UDP 基于端口的复用和分用 UDP报文首部结构 计算 UDP 检验和的例子 计算16位二进制数的反码和 计算规则 从低位到高位逐列进行计算,0加0等于0,0加1等于1,1加1等于0同时产生一个进位,若最高位相加后产生进位,则最后得到的结果要加1。 例: 总结 UDP 是一个简单的面向用户数据报的传输层协议。应用进程的输出正好产生一个UDP数据报,并组装成一个待发送的IP数据报。 UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能和有限的差错检测功能。 UDP不提供可靠性。 总结 虽然 UDP 用户数据报只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点。 发送数据之前不需要建立连接 UDP 的主机不需要维持复杂的连接状态表。 UDP 用户数据报只有8个字节的首部开销。 网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的。 总结 UDP 是无连接的,即发送数据之前不需要建立连接。 UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。 UDP 是面向报文的。UDP 没有拥塞控制,很适合多媒体通信的要求。 UDP 支持一对一、一对多、多对一和多对多的交互通信。 UDP 的首部开销小,只有 8 个字节。 基于UDP协议的编程 1.UDP连接方式的通信规程 UDP是面向无连接的协议,即在发送数据之前不必建立连接,只需要将Winsock绑定到一个端口上,其他无连接协议的Winsock如果向本机发送数据,就需要指出地址和端口号。 基于UDP协议的编程 2.A计算机UDP聊天程序设计 Private Sub Form_Load() With winSockA //设置Winsock控件的相关属性// .Protocol = sckUDPProtocol //设置UDP协议// .RemoteHost = wlgc-d3 //设置远程计算机名// .RemotePort = 8000 //设置远程计算机端口号// .Bind 9000 //绑定本地端口号// End With End Sub 基于UDP协议的编程 2.A计算机UDP聊天程序设计 Private Sub txtSend_Change() winSockA.SendData txtSend.Text //在键入文本时,立即发送出去// End Sub Private Sub winSockA_DataArrival(ByVal bytesTotal As Long) Dim strData As String winSockA.GetData strData //接收输入的数据// txtArr.Text = strData //在文本框显示接收的数据// End Sub 基于UDP协议的编程 2.A计算机UDP聊天程序设计 Private Sub Command1_Click() winSockA.Close //关闭winsock控件,解除端口绑定// Unload Me //退出程序// End Sub 基于UDP协议的编程 3.B计算机UDP聊天程序设计 B端的的程序与A端的几乎一样,只是控件的名称不一样。另外特意在Winsock控件RemoteHost中使用了IP地址。各控件的源代码如下,各语句的作用与A端的程序中一样。 Private Sub Command1_Click() winSockB.Close U
原创力文档


文档评论(0)