网站超市源码哪个好,长尾关键词挖掘熊猫,做网站能用ai好还是ps,二维码生成短链接文章目录 IP地址端口号协议三要素作用 五元组协议分层OSI七层模型TCP/IP 五层模型应用层传输层网络层数据链路层物理层 封装和分用发送方 - 封装中间转发接收方 - 分用 一般认为计算机网络就是利用通信线路和通信设备将地理上分散的、具有独立功能的多个计算机系统按不同的形式… 文章目录 IP地址端口号协议三要素作用 五元组协议分层OSI七层模型TCP/IP 五层模型应用层传输层网络层数据链路层物理层 封装和分用发送方 - 封装中间转发接收方 - 分用 一般认为计算机网络就是利用通信线路和通信设备将地理上分散的、具有独立功能的多个计算机系统按不同的形式连接起来以功能完善的网络软件及通信协议实现资源共享和信息传递的系统。 通讯设备具有自治功能的介质互联双绞线、光纤…资源共享目的
IP地址
;网络通信的目的是资源共享数据之间基于介质传输数据那么这些传输数据的节点之间是如何判断信息的来源和目的呢
用于标识网络设备的网络地址用4个字节32位二进制表示一般写作点分十进制如127.0.0.1环回IP 127.0.0.1 环回IP:本机环回主要用于本机到本机的网络通信系统内部为了性能不会走网络的方式传输对于开发网络通信的程序即网络编程而言常见的开发方式都是本机到本机的网络通信。是使用一个特殊的ip地址127.0.0.1来实现的 端口号
端口号可以标识主机中发送数据、接收数据的进程。例如mysql服务器默认绑定3306端口。
标识一个具体的应用程序(进程)使用2个字节16位表示0 ~ 655350 号端口一般不使用1 ~ 1023为知名端口号不应占用 22 - ssh80 - http443 - https23 - teIntent
协议
网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。协议最终体现为在网络上传输的数据包的格式。
三要素
语义。语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息以及完成的动作与做出什么样的响应。语法。语法是用户数据与控制信息的结构与格式以及数据出现的顺序。时序。时序是对事件发生顺序的详细说明。也可称为“同步”。 人们形象地把这三个要素描述为语义表示要做什么语法表示要怎么做时序表示做的顺序。
作用
由于网络环境的复杂性在进行网络通信时的状况比较复杂所以在传输时就需要提前确定好如何传输数据如何组织如何发送数据网络线路如何选择…
如果使用一个协议来约定和解决所有问题,会导致这个协议非常复杂,非常的庞大,因此在设计网络协议时,就对网络协议进行拆分,这样: 上层协议调用下层协议,不需要了解下层协议的实现细节(封装) 下层协议给上层协议提高支持 可以灵活的调整替换某层协议
有了这样的层次结构,就可以避免夸层次交互,降低了协议之间的耦合,提高了协议系统的可读性
五元组
在TCP/IP协议中用五元组来标识一个网络通信
源IP标识源主机源端口号标识源主机中该次通信发送数据的进程目的IP标识目的主机目的端口号标识目的主机中该次通信接收数据的进程协议号标识发送进程和接收进程双方约定的数据格式
协议分层
网络通信是一个比较复杂的工作如果靠一个协议来解决所有的问题会导致这个协议非常庞大、复杂。
网络分层就可以让网络的体系结构更加清晰的呈现。上层协议调用下层协议下层协议给上层协议提高支持。每个层次之间不需要明确层次结构每个层次对外隐藏实现细节对每个层次之间的协议也可以根据需要灵活调整。这样就降低了耦合。
由于理论和实践之间的差异理论上网络有七层OSI七层模型 - 参考模型而各大产商支持的普遍是TCP/IP五层协议。
OSI七层模型 TCP/IP 五层模型 在具体实践中将OSI中的应用层、表示层、会话层合并为TCP/IP中的应用层。
应用层 通信双方通信数据的规范 通常是根据场景和需求,由程序员自主决定的
传输层 只关注通信的起点和终点 - 端口
网络层 网络传输路线如何规划 - IP地址
数据链路层 描相邻节点之间的如何 - MAC地址
物理层 描述了网络基础设施的规范和标准
封装和分用
我们通过一个例子来看网络中的封装和分用。比如我给对方发送一句”hello“这句“hello”对方是如何收到的。
发送方 - 封装
我 微信号111111 1. 应用层微信客户端按照应用层的协议将”hello“封装成应用层的数据报然后交给传输层。假设微信的应用层的协议这样组织(发送方微信号接收方微信号时间正文) 应用层就可以根据协议构造上述的应用层数据报构造好后调用传输层API将这个数据报交给传输层。
传输层传输层有很多协议其中最主要的是TCP和UDP协议此处假设传输层协议为UDP传输层收到应用层的数据报后根据UDP协议构造UDP数据报。
UDP不会关心应用层的数据是什么将其当做本层载荷进行封装。传输层封装完成后进一步将UDP数据报交给网络层。 网络层网络层最主要的协议是IP协议此处网络层拿到UDP数据报后会将其封装成IP数据报 同样的IP层也不会关心UDP的内容只会将其当做本层的载荷进行封装。 数据链路层使用以太网对上层协议IP数据报进行封装加上以太网帧头和帧尾。 物理层物理层根据物理层协议规范网卡将以太网数据报转换成01序列进一步转换成光/电信号进行发送
中间转发 中间情况中间可能会经过路由器交换机的转发先拆包在封装具体拆到那一层取决于是交换机还是路由器。
交换机将电信号转换成二进制数据送往交换机的数据链路层因为交换机属于数据链路层的设备所以它将可以查看数据帧头部的内容但不会进行封装和解封装的过程。当路由器收到数据后会拆掉数据链路层的 MAC 头部信息将数据送达网络层这样 IP 头部信息就“暴露”在最外面了。 路由器将检测数据包头部的目标 IP 地址信息并根据该信息进行路由过程智能地将数据报文转发到下一跳路由器上重复过程
接收方 - 分用
对方 微信号222222
物理层物理层硬件设备网卡收到光电信号需要将信号转换成01序列得到以太网数据报进一步将以太网数据报交给数据链路层。 数据链路层数据链路层得到以太网数据报后就会根据以太网协议进行解析拿到以太网数据报的载荷再将以太网数据报的载荷交给网络层IP协议处理。 网络层网络层得到IP数据报根据IP协议进行解析去掉IP报头得到IP载荷交给传输层处理 传输层传输层得到UDP数据报后根据UDP协议进行解析去掉UDP报头得到UDP载荷交给应用层。 应用层应用层拿到后就可以根据应用层的协议进行解析解析完毕后就可以拿到数据”hello“进一步就收到了”hello“这条消息了。 发送方从应用层到物理层逐层封装接收方从物理层到应用层逐层解析每个层次之间相互独立完成自己的功能相互配合完成了数据的传输。
总结:
封装:将数据从应用层开始,层层封装,最后通过网卡转换成光电信号进行传输转发:中间会进过交换机和路由器进行转发 交换机:会解析出以太网数据帧(数据链路层),获取到帧头中的“mac地址” 重新封装,根据”mac地址”进行转发 路由器:解析出ip数据报(网络层),拿到”目的ip地址” 进一步规划处接下来的路线将数据进行封装,进行转发 分用:数据报到达目的主机后,根据各层协议,层次解析,最终拿到传输的数据