当前位置: 首页 > article >正文

计算机网络端口

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

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

原文地址:https://blog.csdn.net/m0_47505062/article/details/141735703
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/286467.html

相关文章:

  • 《机器学习》 DBSCAN算法 原理、参数解析、案例实现
  • Flink窗口API使用教程
  • 2024年6月 青少年等级考试机器人实操真题二级
  • Web3常见概念
  • 系统分析师6:计算机网络
  • HTML学习笔记——用HTML记录学习过程5-全局属性
  • 如何用Java SpringBoot+Vue打造高效产品订单管理系统?
  • Markdown语法与Latex公式汇总
  • Linux网络:TCP UDP socket
  • Vue3: customRef自定义响应数据
  • Springboot + AOP + 注解做全局日志拦截并且排除敏感属性以及接口相应时间
  • Web:PHP序列化和反序列化
  • TLS握手性能测试工具:快速重置、多线程与高级统计分析(C/C++代码实现)
  • 一.海量数据实时分析-Doris入门和安装
  • 全能型AI“草莓”的未来展望:多样性VS专业性,谁将引领市场潮流?
  • 在Web服务应用中,如何编程使用Redis的缓存功能?包括缓存页面内容、缓存数据库查询结果、用户会话信息等代码分享
  • Adobe DC 2022提示无法识别的错误 - 解决方案
  • Nginx 反向代理实现 Tomcat 高可用性负载均衡详解
  • python 实现检查三个点在 3D 中是否共线算法
  • MySQL:简述对事务的认识