08.传输层_UDP

传输层( Transport)

◼ 传输层有2个协议

TCP(Transmission Control Protocol),传输控制协议

UDP(User Datagram Protocol),用户数据报协议

在这里插入图片描述

面向连接:三次握手,建立连接,相当于中间有一条隐形的管道,数据发完之后,要断开连接,不然会占用服务器的资源,服务器的端口会一直等客户端发送数据过来。

无连接:不管你在不在线,不管你能不能连接,直接朝服务器扔过去

可靠传输,不丢包:发100k数据过去,中间某个字节丢失了,它会补发,保证这100个字节传输过去。

不可靠传输,尽最大努力交付,可能丢包:尽可能扔过去,中间丢了我也不管

首部占用空间大:要面向连接、要保证可靠传输

小:只包含目标和源就够了

要保证完整的,选TCP;实时的应用场景,选UDP,选TCP会很混乱,说着说着就会插一句之前说过的话

邮件传输:SMTP

我们发送请求,肯定会先在应用层封装一个数据,假设我们用HTTP协议来封装,传输到传输层,我们肯定希望用TCP协议,因为HTTP是客户端用来发送数据用的协议,肯定希望数据不丢失

UDP—数据格式

◼ UDP是无连接的,减少了建立和释放连接的开销

◼ UDP尽最大能力交付,不保证可靠交付
在这里插入图片描述

因此不需要维护一些复杂的参数,首部只有8个字节(TCP的首部至少20个字节)

数据丢了就丢了,无所谓

在这里插入图片描述

◼ UDP长度(Length)

占16位,首部的长度 + 数据的长度(整体的长度)

UDP—检验和(Checksum )

◼ 检验和的计算内容:伪首部 + 首部 + 数据

伪首部:仅在计算检验和时起作用,并不会传递给网络层(虚拟的)

在这里插入图片描述

作用
让我们计算出来的东西更广,包含的更多,还可以检测网络层的东西,为了加强它的校验功能。

端口:服务器占用一个端口号,在这个端口上开一个服务器软件进行监听,比如开一个8080端口,在这个端口上开一个tamacat,监听客户端发送过来的数据,tomacat进行接收,同时也可以用这个端口发送数据回去。服务器可以开多个端口,进行接收和发送数据。

wireshark拦截的是校验过的数据,接收到的帧是没有尾部的。

端口(Port)

◼ UDP首部中端口是占用2字节

可以推测出端口号的取值范围是:0~65535

◼ 客户端的源端口是临时开启的随机端口

只有请求结束,端口才会关闭,下一次开启,仍然是随机的。

服务器一旦开机,就不会关了,它的端口是一直开启的。

◼ 防火墙可以设置开启\关闭某些端口来提高安全性

常用的协议,默认使用的端口

在这里插入图片描述

客户端发过来的MySQL请求,可以通过防火墙拦截,让客户端只能通过HTTP请求来间接访问

在这里插入图片描述

◼ 常用命令行

netstat –an:查看被占用的端口

在这里插入图片描述

netstat –anb:查看被占用的端口、占用端口的应用程序

在这里插入图片描述

telnet 主机 端口:查看是否可以访问主机的某个端口

telnet baidu.com 3306

连接不上

telnet localhost 443

效果图

在这里插入图片描述

✓ 安装telnet:控制面板 – 程序 – 启用或关闭Windows功能 – 勾选“Telnet Client” – 确定

猜你喜欢

转载自blog.csdn.net/m0_53008479/article/details/120673932
今日推荐