计算机网络、TCP/IP协议、端口号

鳄鱼君

发表文章数:643

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Python » 计算机网络、TCP/IP协议、端口号

计算机网络

在介绍socket网络编程之前,我们肯定是要介绍一下网络之间的信息传递。通过计算机网络我们可以把信息传递到任何地方,但是在计算机网络中实现通信必须有一些约定,这些约定被称为通信协议。通信协议负责对传输速率、传输代码、代码结构、传输控制步骤、出错控制等制定处理标准。为了让两个节点能进行对话,必须在它们之间建立通信工具,使彼此之间能进行信息交换。

国际标准化组织(ISO)于 1978 年提出了“开放系统互连参考模型”,即著名的 OSI(Open System Interconnection)参考模型。OSI 参考模型把计算机网络分成物理层、数据链路层、网络层、传输层、会话层、表示层、应用层七层,受到计算机界和通信业的极大关注。经过十多年的发展和推进,OSI 模式已成为各种计算机网络结构的参考标准。这个学过计算机的都应该知道这七层。

通信协议是网络通信的基础,IP 协议则是一种非常重要的通信协议。IP(Internet Protocol)又称网际协议,是支持网间互联的数据报协议。IP 协议提供了网间连接的完善功能,包括 IP 数据报规定的互联网络范围内的地址格式。

经常与 IP 协议放在一起的还有 TCP(Transmission Control Protocol),即传输控制协议,它规定了一种可靠的数据信息传递服务。虽然 IP 和 TCP 这两个协议的功能不尽相同,也可以分开单独使用,但它们是在同一个时期作为一个协议来设计的,并且在功能上是互补的,因此,在实际使用中常常把这两个协议统称为 TCP/IP 协议。只有把 TCP 和 IP 两个协议结合起来,才能保证 Internet 在复杂的环境下正常运行凡是要连接到 Internet 的计算机,都必须同时安装和使用 TCP/IP 协议。

TCP/IP 协议最早出现在 UNIX 操作系统中,现在几乎所有的操作系统都支持 TCP/IP 协议,因此 TCP/IP 协议也是 Internet 中最常用的基础协议。按照 TCP/IP 协议模型,网络模型通常被分为四层。OSI 参考模型和 TCP/IP 分层模型的大致对应关系如下图 所示。

IP 地址和端口号

IP 地址用于唯一标识网络中的一个通信实体,这个通信实体既可以是一个主机,也可以是一台打印机,或者是路由器的某一个端口。而在基于 IP 协议的网络中传输的数据包,都必须使用 IP 地址来进行标识。

就像写一封信,要标明收信人的地址和寄信人的地址,而邮政工作人员则通过该地址来决定信件的去向。类似的过程也发生在计算机网络中,被传输的每一个数据包也要包括一个源 IP 地址和一个目的 IP 地址。当该数据包在网络中进行传输时,这两个地址要保持不变,以确保网络设备总能根据确定的 IP 地址,将数据包从源通信实体送往指定的目的通信实体。

IP 地址是数字型的,它是一个 32 位(32 bit)整数。但为了便于记忆,通常把它分成 4 个 8 位的二进制数,每 8 位之间用圆点隔开,每个 8 位整数都可以转换成一个 0~255 的十进制整数,因此日常看到的 IP 地址常常是这种形式:202.9.128.88。IP 地址被分成 A、B、C、D、E 五类,每个类别的网络标识和主机标识各有规则:

A 类:10.0.0.0~10.255.255.255
B 类:172.16.0.0~172.31.255.255
C 类:192.168.0.0~192.168.255.255

IP 地址用于唯一标识网络上的一个通信实体,但一个通信实体可以有多个通信程序同时提供网络服务,此时还需要使用端口。

端口是一个 16 位的整数,用于表示将数据交给哪个通信程序处理。因此,端口就是应用程序与外界交流的出入口,它是一种抽象的软件结构,包括一些数据结构和 I/O(输入/输出)缓冲区。

不同的应用程序处理不同端口上的数据,在同一台机器中不能有两个程序使用同一个端口。端口号可以为 0~65535,通常将端口分为如下三类:

 公认端口(Well Known Port):端口号为 0~1023,它们紧密地绑定(Binding)一些特定的服务。
注册端口(Registered Port):端口号为 1024~49151,它们松散地绑定一些服务。应用程序通常应该使用这个范围内的端口。
动态或私有端口(Dynamic and/or Private Port):端口号为 49152~65535,这些端口是应用程序使用的动态端口,应用程序一般不会主动使用这些端口。

如果把应用程序比作人,把计算机网络比作类似于邮递员的角色,把 IP 地址理解为某个人所在地方的地址(包括街道和门牌号),但仅有地址是找不到这个人的,还需要知道这个人所在的房间号才可以找到他,这个房间号就相当于端口号。因此,当一个程序需要发送数据时,需要指定目的地的 IP 地址和端口号,只有指定了正确的 IP 地址和端口号,计算机网络才可以将数据发送给该IP地址和端口号所对应的程序。

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《计算机网络、TCP/IP协议、端口号》 发布于2019-12-24

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

6 + 5 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册