TCP/IP动画 TCP/IP动画

TCP/IP动画 , TCP,UDP通讯

Google Play Apple store


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号码。



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.通过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 : 看完视频。



真实网络 / 网站,SSL / 邮件 / FTP / VPN /

设备 / DNS / LAN,DHCP,NAT / IP地址 / PC端口 /

TCP/IP层 / TCP,UDP通讯 / IP通讯 / 开始屏幕


us / es / cn / ja / kr / de / fr / pt / it / ru / ar / Ogumo top