TCP/IP动画 , TCP,UDP通讯
TCP,UDP通讯TCP和UDP是用于控制数据通信的规则。TCP比UDP更严格地管理通信。因此,TCP适用于需要准确性的通信,而UDP适用于需要速度的通信。在通信过程中,数据被分解为称为数据包的小片段。然后,将TCP或UDP标头添加到每个数据包。*TCP详细信息TCP首先在源PC和目标PC之间建立连接。然后,数据以数据包的形式发送,接收者将其接收并组合成其原始状态。然后,使用实际数据检查TCP标头中的信息,以确保没有错误。确认后,收件人将每次答复。如果出现通讯问题,将再次发送相同的数据。*TCP和UDP标头的内容“源和目标端口”:PC端口号“序列号”:传出数据号。每个字节加1。“ACK No.”:在接收到的序列号上加1“MSS(option)”:数据包的最大数据大小(字节)。“Window”:不等待ACK顺序发送的数据大小。(示例)Window(2000字节)=MSS(1000字节)*2“Checksum”:用于检查数据准确性的值
TCP标准TCP通信*“对于[(S)No.00]”“No.00”表示TCP报头中的序列号。“(S)”表示服务器端的序列号,“(P)”表示PC端的序号。1.当PC访问Web服务器时,首先在PC与服务器之间建立用于通信的TCP连接。2.此连接称为“3 way hand shake”。每个起始序列号和MSS大小在连接建立期间确定。3.正在建立TCP连接中4.PC : 转到网站“http://www.ogumo.co.jp”。(SYN)请求TCP连接。[(P)No.9900]5.Server : (ACK)OK。[(P)No.9901](SYN)我也请求TCP连接。[(S)No.4500]6.PC : (ACK)OK。[(S)No.4501]7.PC : 建立连接。8.Server : 建立连接。9.当PC或服务器发送“SYN”时,每个开始序列号都是随机设置的。PC(9900),Server(4500)10.PC : (PSH)请求网站数据。11.开始通信网站数据。12.PC : 此请求大小为1个数据包,数量为10个字节。[(P)No.9901-9910]13.PC和服务器之间的请求和响应14.Server : (ACK)OK。[(P)No.9911](PSH)发送网站数据。(1个数据包,数量为1000字节)[(S)No.4501-5500]15.PC : 我们获得了网站数据的一半。16.PC : (ACK)OK。[(S)No.5501]17.Server : (PSH)发送站点数据的后半部分(1个数据包,1000字节)。[(S)No.5501-6500]18.PC : 获得的网站数据。19.PC : (ACK)OK。[(S)No.6501]20.结束连接21.PC : (FIN)退出显示网站。此请求的大小为1个数据包,数量为1个字节。[(P)No.9911]22.Server : (ACK)OK。[(P)No.9912]23.Server : (FIN)关闭连接。[(S)No.6501]24.PC : (ACK)OK。[(S)No.6502]25.Server : 连接已关闭。26.PC : 通信已结束。TCP 麻烦TCP通信期间发生故障。*“对于[(S)No.00]”“No.00”表示TCP报头中的序列号。“(S)”表示服务器端的序列号,“(P)”表示PC端的序号。1.为了简洁起见,从已经建立的通信连接开始。2.当PC或服务器发送“SYN”时,每个开始序列号都是随机设置的。PC[9900],Server[4500].在3次握手过程中,这些数字增加1。3.PC : (PSH)请求网站数据。4.开始通信网站数据。5.PC : 此请求大小为1个数据包,数量为10个字节。[(P)No.9901-9910]6.PC和服务器之间的请求和响应7.Server : (ACK)OK。[(P)No.9911](PSH)发送网站数据。(1个数据包,数量为1000字节)[(S)No.4501-5500]8.缺少某些数据。9.PC : 无法还原数据。10.PC : 实际接收的数据量为800字节。已减少200字节。11.PC : 丢失的序列号[(S)No.5301-5500]12.PC : 这会引发“Checksum”错误。在这种情况下,PC无法发送ACK。13.Server : (PSH)由于在一定时间后未返回ACK,因此将再次发送相同的数据包。[(S)No.4501-5500]14.PC : (ACK)OK。[(S)No.5501]15.Server : (PSH)发送网站数据。(1个数据包,数量为1000字节)[(S)No.5501-6500]16.PC : 获得的网站数据。17.PC : (ACK)OK。[(S)No.6501]18.PC : ACK数据包丢失。19.Server : (PSH)由于在一定时间后未返回ACK,因此将再次发送相同的数据包。[(S)No.5501-6500]20.PC : (ACK)获得的网站数据。21.Server : 已收到ACK。[(S)No.6501]所有网站数据已发送。22.连接终止被省略。TCP Window设置“Window size”可实现连续通信。*“对于[(S)No.00]”“No.00”表示TCP报头中的序列号。“(S)”表示服务器端的序列号,“(P)”表示PC端的序号。1.为了简洁起见,从已经建立的通信连接开始。2.建立连接后,将确定序列号,MSS和“Window size”。Window=MSS*2。因此,站点数据连续两次发送,而没有收到ACK。3.开始通信网站数据。4.PC : (PSH)请求网站数据。5.PC : 此请求大小为1个数据包,数量为10个字节。[(P)No.9901-9910]6.PC和服务器之间的请求和响应7.在接收到ACK之前,根据“Window size”连续发送站点数据。8.Server : (ACK)OK。[(P)No.9911](PSH)发送网站数据。(1个数据包,数量为1000字节)[(S)No.4501-5500]9.Server : (PSH)发送下一个数据包。[(S)No.5501-6500]10.PC : (ACK)我们获得了网站数据的一半。11.Server : 已收到ACK。[(S)No.5501]12.PC : (ACK)获得的网站数据。13.Server : 已收到ACK。[(S)No.6501]所有网站数据已发送。14.连接终止被省略。15.通过设置“Window size”缩短了通信时间。TCP Window 麻烦设置“Window size”时会发生一些麻烦。*“对于[(S)No.00]”“No.00”表示TCP报头中的序列号。“(S)”表示服务器端的序列号,“(P)”表示PC端的序号。1.为了简洁起见,从已经建立的通信连接开始。2.建立连接后,将确定序列号,MSS和“Window size”。Window=MSS*2。因此,站点数据连续两次发送,而没有收到ACK。3.开始通信网站数据。4.PC : (PSH)请求网站数据。5.PC : 此请求大小为1个数据包,数量为10个字节。[(P)No.9901-9910]6.PC和服务器之间的请求和响应7.在接收到ACK之前,根据“Window size”连续发送站点数据。8.Server : (ACK)OK。[(P)No.9911](PSH)发送网站数据。(1个数据包,数量为1000字节)[(S)No.4501-5500]9.PC : 获得的网站数据。[(S)No.4501-5300]缺少某些数据。10.Server : (PSH)发送下一个数据包。[(S)No.5501-6500]11.缺少某些数据。12.Server : 服务器正在等待第一个ACK。[(S)No.5501]13.PC : (ACK)我们获得了网站数据的后半部分。[(S)No.5501-6500]14.PC : 仅返回第二个ACK。“ACK No.”表示PC请求第一个数据包。[(S)No.4501]15.PC : 如果将另一个站点数据包发送到PC,则将返回相同的ACK。[(S)No.4501]16.Server : 如果连续多次返回相同的ACK或发生超时,则服务器将再次发送数据包。[(S)No.4501-5500]17.Server : (PSH)由于过去的ACK编号仍已发送,因此再次发送相同的数据包。[(S)No.4501-5500]18.PC : (ACK)获得的网站数据。[(S)No.4501-5500]19.Server : 已收到ACK。[(S)No.6501]所有网站数据已发送。20.连接终止被省略。21.如果未正确发送数据,则接收者等待丢失的数据,并继续告知发送者相同的ACK号码。UDPUDP通信。此示例以过去的网络视频的形式。1.在开始使用UDP下载视频数据之前,您的PC必须使用TCP来访问发布视频的网站。我将简要介绍TCP。2.PC : (PSH)请求网站数据。3.Server : (ACK)+(PSH)发送网站数据。4.PC : (ACK)获得的网站数据。5.已建立连接,并且已通过TCP下载站点数据。尚未下载视频数据。6.PC : (PSH)单击按钮播放视频。7.Server : (ACK)OK。8.此连接用于TCP通信。UDP不需要它。在此不做说明。9.此视频应用程序通过UDP发送数据。10.Server : 此视频应用程序通过UDP发送数据。11.PC : 获取并显示视频数据。12.Server : 发送下一个数据而不检查数据或等待响应。13.Server : 此视频应用程序通过UDP发送数据。14.视频数据一个接一个地发送。15.PC : 获取并显示视频数据。16.Server : 此视频应用程序通过UDP发送数据。17.通过PC的操作,UDP通信突然结束。从现在开始,数据将通过TCP发送。18.PC : (PSH)按下结束按钮。19.Server : (ACK)OK。20.PC : 看完视频。UDP 麻烦在UDP通信期间发生故障。1.在开始使用UDP下载视频数据之前,您的PC必须使用TCP来访问发布视频的网站。我将简要介绍TCP。2.PC : (PSH)请求网站数据。3.Server : (ACK)+(PSH)发送网站数据。4.PC : (ACK)获得的网站数据。5.已建立连接,并且已通过TCP下载站点数据。尚未下载视频数据。6.PC : (PSH)单击按钮播放视频。7.Server : (ACK)OK。8.此连接用于TCP通信。UDP不需要它。在此不做说明。9.此视频应用程序通过UDP发送数据。10.Server : 此视频应用程序通过UDP发送数据。11.PC : 获取并显示视频数据。12.Server : 发送下一个数据而不检查数据或等待响应。13.Server : 此视频应用程序通过UDP发送数据。14.视频数据一个接一个地发送。15.PC : 获取并显示视频数据。16.Server : 此视频应用程序通过UDP发送数据。17.如果数据丢失,则UDP将不会检查它。18.但是,由于数据量记录在UDP报头中,因此应用程序可以识别并设置它来解决问题。19.通过PC的操作,UDP通信突然结束。从现在开始,数据将通过TCP发送。20.PC : (PSH)按下结束按钮。21.Server : (ACK)OK。22.PC : 看完视频。
|