热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

计算机网络端口详解

网络端口在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们这里所指的端口不是指物理意义

网络端口
网络技术中,端口(Port)有好几种意思。
集线器
交换机
路由器的端口指的是连接其他
网络设备
接口,如
RJ-45端口、Serial端口等。我们 这里所指的端口
不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口
电脑运行的系统程序,其实就像一个闭合的圆圈,但是电脑是为人服务的,他需要接受一些指令,并且要按照指令调整系统功能来工作,
于是系统程序设计者,就把这个圆圈截成好多段,这些线段接口就叫端口(通俗讲是断口,就是中断)
,系统运行到这些端口时,一看端口是否打开或关闭,如果关闭,就是绳子接通了,系统往下运行,如果
端口是打开的,系统就得到命令,有外部数据输入,接受外部数据并执行

网络端口分类 TCP端口:TCP是一种面向
可连接的,可靠的,基于字节流的
传输层通信协议. UDP端口:UDP是一种面向无连接的,
提供面向事务的简单不可靠信息传送服务

协议端口详解 如果把IP地址比作成一栋房子的话,那
端口就类似这栋房子的门,一般实际上房子只有几扇门,但是IP地址确有65536(2^16)个门,每个端口用整数来表示,范围:
0~65535
ip能锁定一台物理机器,对应着一张网卡,外界发来的数据包网卡都会接收。但是问题来了,网卡给程序提供了接口,你监听一下我,要是有消息来了,我就转发给你。这样应用程序就能收到数据了。但是问题来了,程序A和程序B都需要监听网卡接发数据,网卡说那我把接到的数据都发给你两,你们自己看着办吧。好,小A小B都接受了。但是又来了CDEF……,不行了,每个包都被发到了所有应用程序,每个应用程序都累得不行,最终垮了。

好,那网卡说我给你们加个表示吧,我们之间可以用一个号码来作为标识,我和小A之间就用1来标识,如果外界发给1号标识的数据我就转发给你,你监听我的时候得告诉我你监听的时1,我就转发1的数据包给你。好了其他的BCD…都自己弄一个标识号,只要不重复就行。这样大家都省事了。
最后设计到安全,一个标识号只能被一个应用程序监听,因为如果小A程序和小B同时监听一个标识号号,那就坏了,我传的数据都被AB接到,这样数据安全性就没办法保证了。(参考来自知乎https://www.zhihu.com/question/22577025,楼主)

端口机制的由来 在不同的机器上实现数据传输依靠的是TCP/IP协议,将数据从源机器根据IP地址送到目的机器,在现在大多数的机器上都支持多线程(程序)的运行,那么这么多程序,又是由哪一个程序负责接收数据包呢,由此端口机制就应运而生

端口的作用 本地机器会根据有需求的程序分配协议端口(也就是我们常说的端口),这些端口号是随机从1024~65535之间产生的,接着源机器给目的机器发送数据,目的机器收到数据后,会根据报文的端口地址,把数据送到对应的端口处,消息进入端口就相当于进入了一支队伍,排着队,等待被处理。同样的道理,源机器端口处也是一支队伍,消息等待被发送。 刚刚我们提到端口号的随机分配,可为什么是大于1024呢,
原因是端口号0~1023是分配给固定特殊的网络服务的,如:
 WWW 选择 80 而 FTP 则以 21 为正常的联机信道!

显然我们知道一台IP地址上的机器可以提供不同的服务,那么我们怎么能通过IP地址来判断我们需要什么服务呢,显然不能,实际上是以
IP地址+端口号的形式来确定的,
需要注意的是,不同机器使用同一种服务的端口号可能不同,当我需要使用WWW服务时,WWW服务器提供的端口号是80,但是我的请求机器有可能使用的端口号是4433

面向连接服务和无连接服务
可以先了解
面向连接和无连接协议
(Connection-Oriented and ConnectionlessProtocols)
面向连接服务
的主要特点有:面向连接服务要经过三个阶段:
建立连接,传输数据,释放连接
。面向连接服务,
可确保数据传送的次序和传输的可靠性

无连接
服务的特点是:
无连接服务只有传输数据阶段
。消除了除数据通信外的其它
开销
。只要发送实体是活跃的,无须接收实体也是活跃的。它的优点是
灵活方便、迅速
,特别适合于传送少量零星的报文,但无连接服务不能防止报文的丢失、重复或失序。
区分”面向连接服务”和”无连接服务”的概念
区分特别简单、形象的例子是:打电话和写信。两个人如果要通电话,必须先建立连接–拨号,等待应答后才能相互传递信息,最后还要释放连接–挂电话。写信就没有那么复杂了,地址姓名填好以后直接往邮筒一扔,收信人就能收到。
TCP/IP协议在网络层是无连接的(数据包只管往网上发,如何传输和到达以及是否到达由网络设备来管理)。而”端口”,是传输层的内容,是面向连接的。
协议里面低于1024的端口都有确切的定义,它们对应着
因特网
上常见的一些服务。


推荐阅读
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • HSRP热备份路由器协议的应用及配置
    本文介绍了HSRP热备份路由器协议的应用及配置方法,包括设计目标、工作原理、配置命令等。通过HSRP协议,可以实现在主动路由器故障时自动切换到备份路由器,保证网络连通性。此外,还介绍了R1和R2路由器的配置方法以及Sw1和Sw2交换机的配置方法,最后还介绍了测试连通性和路由追踪的方法。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 移动传感器扫描覆盖摘要:关于传感器网络中的地址覆盖问题,已经做过很多尝试。他们通常归为两类,全覆盖和栅栏覆盖,统称为静态覆盖 ... [详细]
  • IP、ARP、TCP、UDP、ICMP、DNS、路由协议、DHCP协议的缺陷,容易受到的攻击,以及防御措施1、IP协议1.1、介绍: ... [详细]
  • NSD cisco高级路由与交换技术2014.8.12
    实验01:DHCP服务的应用实验目标:通过建立DHCP服务,给计算机自动分配地址实验环境:实验步骤:一、配置计算机pc8pc ... [详细]
  • 网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和 ... [详细]
  • c# java socketn 字节流_C#Socket编程详解(一)TCP与UDP简介
    一、TCP与UDP(转载)1、TCP1.1定义TCP(TransmissionControlProtocol)传输控制协议。是一种可靠的、面向连接的协议(eg:打电话)、传输效率低 ... [详细]
  • 实例详解ISA防火墙策略元素
    我们在前面的工作中已经实现了ISA2006的代理服务器功能,接下来我们要实现ISA的访问控制功能。很多公司都有控制员工访问外网的需求,例如有的公司不允许 ... [详细]
  • 路由器当做交换机使用
    2019独角兽企业重金招聘Python工程师标准TP-Link路由器当做交换机使用时要注意一下几点:1.闲置路由器管理地址更改避免与主路由器发生冲突导致无法连接 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了如何使用双路由器有线搭建一个小型的局域网网络,解决家庭或公司多个网络设备无法同时上网的问题。详细讲解了两种简单快速的组网方式,并提供了具体的设置步骤和注意事项。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • 域名解析系统DNS
    文章目录前言一、域名系统概述二、因特网的域名结构三、域名服务器1.根域名服务器2.顶级域名服务器(TLD,top-leveldomain)3.权威(Authoritative)域名 ... [详细]
author-avatar
手机用户2602933971
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有