计算机网络端口

应用在通信过程中是通过端口来识别发送交付的。那么通信的一方是怎么知道对方的应用进程的端口号呢?

2017年12月25日,星期一,

简单点说这些信息都被封装在ip包内,

我个人觉得你现在不太明白的地方是不太清楚数据包在传递过程中,每一跳hop对数据包的操作,

首先,你要知道,我们现在使用最广泛的非iso的网络标准是 TCP/IP,

从下到上分为:

物理层

数据链路层

网络层

传输层

应用层

在最底层也就是第一层中,数据是以码流的形式,即一串的2进制数,比如在某一时刻,网络中传输着一串二进制数 :00010001,而这串二进制数的真实含义,要看它在应用层属于哪个程序,也许这是一张图片中的一个色块,也许是一个文件的一部分,也许是一个视频的一帧,也许只是一个二进制数17,

在数据链路层,则是以数据帧的形式传输数据,这里是每一个网络设备将从底层物理层接收到的二进制码流转换成数据帧的形式,帧有头有尾,在头尾之中夹着ip数据包,帧头中存储着目的mac和源mac,接收数据帧的网路设备就是通过分析这些信息来判断是否要继续向自己的上层提供这个数据信息,如果目的mac是自己,那么这个网络设备将剥掉数据帧的帧头和帧尾,将帧中夹着的ip包送往上层网络层,

在网络层,接收到的是从下层数据链路层送上来的ip包,然后此网络设备将根据源ip和目的ip来判断是否要继续处理此数据包,并进行相应的处理后送往上层传输层,或直接查找路由表进行ip包的转发,当然一般来说,对ip包的分析,通常只看目的ip,

在传输层,接收到ip包中夹着的数据段segment等信息,这些信息中就包含有端口号,这些端口号有些是已经被规定好的即保留的端口号已经指定给某个应用进程的了,就是说通过这个端口号来区分应用程序,应用进程,比如ftp文件传输协议这个应用层进程就使用的是20和21这两个端口,telnet这个应用进程则使用的是23这个端口号,而有些则是可以被应用程序自定义使用的,一般,为各种公共服务保留的端口号范围为:1~1023,

综上所述,计算机就是通过将从物理层收集上来的数据码流经过转换,变成数据帧,然后再由数据链路层将数据帧处理,剥离帧头帧尾后将ip数据包送往网络层,然后网络层再将数据包中的segment数据信息送往传输层,传输层组装后,查看其中携带的端口号,来进行对应用程序的区分,也就说,从底层到高层是一层层的剥离并抽出数据信息然后发往高层,而相反的,从高层到底层,数据是一层层的加壳的信息,指导最终变成二进制形式的数据码流,通过线缆等信道进行传输,

这里多说一句,为什么要最终转化成二进制的信息来进行数据的传递,这当然不光是因为计算机是二进制的关系,更重要的是,二进制可以配合电平的高与低,电子开关的通与断来进行编码,从而有利于在信道中传输。

August2024the31thSaturday

相关推荐
漫天飞舞的雪花1 小时前
gRPC 双向流(Bidirectional Streaming RPC)的使用方法
网络·网络协议·rpc·go1.19
勤奋的小王同学~1 小时前
(计算机组成原理)期末复习
网络·组成原理
幼稚的男孩°2 小时前
ubuntu 域名解析错误 ping ip 网络不可达
网络
jekc8684 小时前
Centos 相关网络配置
linux·网络·centos
爱上语文5 小时前
Http 响应协议
网络·后端·网络协议·http
ZZZCY20035 小时前
路由策略与路由控制实验
前端·网络
爱上语文6 小时前
Http 请求协议
网络·后端·网络协议·http
C++忠实粉丝6 小时前
计算机网络之应用层协议HTTP
linux·网络·c++·网络协议·tcp/ip·计算机网络·http
JosieBook6 小时前
【面试题】2025年百度校招Java后端面试题
java·开发语言·网络·百度