计算机网络端口

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

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

相关推荐
墨染倾城殇2 分钟前
蓝牙模块场景化应用与选型:高效连接,精准适配
网络·人工智能·蓝牙模块·低功耗蓝牙模块·飞易通科技·蓝牙模块推荐
码农阿豪2 分钟前
POP到店模式(LOC)业务规则深度解析:从配置到结算的全链路指南
大数据·网络·人工智能
日更嵌入式的打工仔3 分钟前
SSC Tools配置项中文详解
网络·笔记·信息与通信·ethercat
于是我说3 分钟前
如何判断一个视频到底是真实 MP4 直链,还是流媒体M3U8
网络·音视频
车载测试工程师21 分钟前
CAPL学习-AVB交互层-功能函数-回调函数
网络·tcp/ip·以太网·capl·canoe
应用市场22 分钟前
TCP网络连接断开检测机制详解——C++实现网络连通性判断与断线类型识别
网络·c++·tcp/ip
小螺软件宝31 分钟前
使用DNGuard加密并打包C# .NET Core程序为单一EXE文件
网络·.netcore
爱吃番茄鼠骗36 分钟前
Linux操作系统———UDP/IPC网络编程
linux·网络·udp
Promise48536 分钟前
关于使用wsl实现linux移植(imux6ull)的网络问题
linux·服务器·网络
gaize12131 小时前
服务器技术参数怎么写
服务器·网络·安全