计算机网络端口

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

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

相关推荐
喜欢吃豆20 分钟前
使用 OpenAI Responses API 构建生产级应用的终极指南—— 状态、流式、异步与文件处理
网络·人工智能·自然语言处理·大模型
xixixi7777744 分钟前
解析一下存储安全——“它是什么”,更是关于“它为何存在”、“如何实现”以及“面临何种挑战与未来”
网络·安全·通信
运维有小邓@1 小时前
实时日志关联分析工具:智能检测潜在安全威胁
运维·网络·安全
j***57681 小时前
电脑可以连接wifi,但是连接后仍然显示没有网络
网络·电脑·php
brave and determined2 小时前
接口通讯学习(day04):RS-232与RS-485:通信接口全解析
网络·uart·通讯·emc·rs232·rs485·嵌入式设计
檀越剑指大厂2 小时前
在家也能远程调代码?WSL+cpolar 的实用技巧分享
网络
秋邱2 小时前
价值升维!公益赋能 + 绿色技术 + 终身学习,构建可持续教育 AI 生态
网络·数据库·人工智能·redis·python·学习·docker
爱学习的大牛1233 小时前
如何系统学习网络渗透测试:从入门到精通的完整指南
网络·学习
程序猿编码3 小时前
PRINCE算法的密码生成器:原理与设计思路(C/C++代码实现)
c语言·网络·c++·算法·安全·prince
white-persist4 小时前
【攻防世界】reverse | Reversing-x64Elf-100 详细题解 WP
c语言·开发语言·网络·python·学习·安全·php