正确理解网络端口

本文探讨了网络端口在网络传输中的作用,强调端口是位于传输层的概念,用于标识应用程序。TCP和UDP是两种不同类型的端口,它们可以重用,但同一协议的端口不能在同一台机器上重复使用。TCP提供可靠连接,适用于HTTP/HTTPS,而UDP则更高效,适用于实时应用。端口分为公认、注册和动态三类,常用Web服务端口基于TCP。

随着网络速度越来越快,费用越来越低,很多产品已经面向网络编程,不管是web服务器, socket通信,网络数据库等等,在我们开发过程中,很少注意的一个问题,就是端口,一般如果作为开发人员的话,服务端都会注意选择一个端口,但是客户端一般都不会注意着个问题,最近查了一下端口的问题,来分享一下这个问题。

网络模型

这是一张7层的网络结构图,不管是5层或者7层,基本都差不多,只是解释不同。

在网络传输的过程中,都是端到端的数据传输,不管是UDP还是TCP,那么什么是端到端呢,可以这么认为,我们知道IP地址是对应机器网卡的,网络在传输的过程中,通过IP地址就可以找到对应的机器,那么另外一个问题就是怎么在机器上找到对应的应用程序,这就是我们所使用的端口,那么端口是网络的第几层的定义呢?那就是传输层,在7层网络里面的第四层(如上图),在IP的上一层,网络传输层有两种协议TCP, UDP,熟悉socket编程的时候,就知道我们在决定使用TCP/UDP 的时候除了指定协议,还要指定端口(server 端必须指定,client可以使用动态端口),这种解释也就说明了端到端实际上就是Source IP:Dest Port->Dest IP: Dest Port,这里的端是IP地址+ 

端口的分类:

在传输层,有两种协议TCP和UDP,那么端口也就有两种端口:TCP端口和UDP端口,如果是不同的端口类型,那么端口号可以重用,比如在一台机器上使用TCP口4000,那么同一台机器上也同时可以使用UDP口4000,互相不影响,当然如果协议相同,那么端口就不能重复。

TCP和UDP通信的区别的简单介绍:

通过下面的这张图片,可以简单看TCP连接类型,需要三次握手,UDP则没有连接,甚至不关系数据有没有发送到目的地。UDP(也叫报文)发出去之后,不会等待对方确认,比如视频,网络会议等,UDP就是一种高效的方式,不会要求传输序列,也不会要求数据包的缺失。TCP则相反,连接完之后,保持通道畅通,每个数据包都要验证完整性,甚至会要求重发等等,所以相同内容,TCP发送的数据包也会大,效率比UDP低,但是安全性好。

数据包介绍:

下面是UDP的包头,通过这么看,里面包括了源端口,和目的端口(IP地址的信息在IP层),

下面是TCP包头,里面也包括了源端口和目的端口,当然TCP 的头要比UDP的复杂的多。

通过上面两个包头可以看出来,端口都是2个字节,也就是最大的端口是65535,其中又把这些分成了3类,公认端口(0-1023),注册端口(1024-49151),剩下的是动态端口,我们绑端口的时候,一般就在注册端口范围内选择,当然也有例外。

那么现在用的web服务端口到底是什么端口呢?由于HTTP/HTTPS 都是基于TCP通信的,那么这些都是TCP端口,我们通常所说的HTTP/HTTPS都是应用层协议,都是基于TCP的,只不过每次请求结束之后,就释放了连接而已。

下面是几个链接,讲的比较详细的网络模型

网络模型

TCP

UDP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值