影响网站可用性的因素青州网站设计
news/
2025/10/6 1:18:22/
文章来源:
影响网站可用性的因素,青州网站设计,制作链接的app的软件有哪些,百度上做网站免费吗文章目录 协议局域网通信IP 地址网络通信的本质tcp 和 udp 协议网络字节序网络主机数据转化接口 协议 协议#xff1a;收到数据后#xff0c;多出来的那一部分#xff0c;也叫一种 “约定”#xff0c;一整套的自硬件到软件#xff0c;都有协议#xff0c;需要有人定制收到数据后多出来的那一部分也叫一种 “约定”一整套的自硬件到软件都有协议需要有人定制也需要有人实现
当通信距离边长后如何保证将数据交给下一跳主机如何定位目标主机如何处理报文出错如何使用送达的数据等问题都需要对应的协议
网络的层协议和软件的层状结构一样实现了各个部分代码的解耦更容易维护只需要考虑各个子问题即可。 网络协议一般叫TCP/IP 协议是在内核中实现的 网络编程用户在操作系统的用户层使用系统调用来实现网络层的功能 网络库对网络层的系统调用进行封装简化开发流程
任何操作系统都必须基于 OSI 标准实现网络协议栈所以在不同的系统中网络调用接口大同小异
报头使用C语言描述的结构体client 和 server 之间是都是可以识别这个报头的因为client 和 server 描述报头的源代码都是一样的。
局域网通信
局域网通信在同一个局域网中两台主机是可以直接通信的局域网中建房间玩游戏 原理两台主机在局域网中通信局域网中所有主机都能收到消息只不过通过 Mac 地址网卡地址来区分谁接受其他不接收的主机会选择将消息直接丢弃掉 但有可能同一时刻局域网中由多台主机在同时发消息就可能会形成数据碰撞丢包那么发送方主机就会执行碰撞避免算法休息一会再重发
ifconfig可查 Linux 主机的 Mac 地址Mac只在局域网内部有效
要正确的发送消息再同一时刻只允许一台主机在局域网中发消息因此局域网中的设备少越安全局域网中消息是否能发送成功是基于概率的因此也叫 以太网例如运动会操场上消息发不出去一直丢包就是因为几千人都访问的是附近同一个基站而当操场上只有几个人的时候消息特别流畅
用系统的观点局域网就是一个临界资源主机在局域网出往另一台主机发送消息就是访问临界区代码碰撞检测和碰撞避免、重发就是完成互斥访问维护临界资源单独发送就是独占网络资源
用户之间通信时消息在双方两台主机上都要贯穿协议栈软件-硬件 —— 硬件-软件 封装报头在自己拿到的报文的基础上添加同层协议的报头 每层协议都会封装自己对应的报头也要考虑如何将收到的报文中报头和有效载荷进行分离如何将自己的有效载荷交给上层的协议。
IP 地址
Linux 查看 ip 地址ifconfig windows 查看 ip 地址ipconfig 整个ip 地址的范围[0,255].[0,255].[0,255].[0,255] 也叫点分十进制
在语言视角这种点分十进制的 ip 地址C种可以使用字符串来表示
IP 地址分为公网ip 和 内网ip两个 ip 地址加起来才是所有的 ip 地址一般在 Linux 或 windows 上直接见到或查到的 ip 地址都是内网ip但如果要使自己的服务被别人看到就要使这个服务或对用的服务器具备公网ip
一般来说ip地址表示公网 ip用来表示互联网种唯一的一台主机也可以表示局域网种唯一的一台主机 实际网络通信时只需要4个字节即可表示一个网络 ip8* 4 3232个比特位就能表示任意一个网络 ip占用的字节数较少
那么如何将整形存储的ip地址转化为便以阅读的点分十进制这种字符串风格的ip地址呢
ip地址 和 Mac地址 的区别
ip 地址是永远不变的在互联网中唯一而 Mac地址是在局域网中不变的但出了局域网后会变
Mac 地址意义标识主机唯一性用于局域网通信 IP 地址意义帮助用于路径选择目标ip 同层协议要发的就是同层协议要收的
在 ip 层往下报头在变而ip层往上是一样的因此也叫网咯ip地址 相当于在全球所有主机层面上搭建了一层软件层通过ip地址就可以屏蔽底层所有局域网通信的网络差异了
网络通信的示意图 网络通信的本质
网络之间的通信本质上就是进程间通信
对双方主机的两个进程而言需要先将数据发送到对方的主机(ip地址)再找到指定的进程(port:端口号)就能实现通信
ip地址用来标识互联网中唯一的一台主机port端口号用来标识该指定机器中进程的唯一性
那么(ip, port) 则可以用来表示互联网中唯一一个进程ip port 也叫网络套接字 socket
如何理解port: 一个端口号和一个进程相绑定一个进程可以绑定多个端口号反之则不可以。 那么为什么不用进程pid来表示网络中进程的唯一性呢 为了其他的进程模块和网络进行解耦万一pid的规则变化网络部分也不受影响port是专门用于网络通信的
tcp 和 udp 协议
tcp 协议常用于可靠通信适用于对数据要求比较高的场景如游戏传输重要文件等复杂 udp 协议用于不可靠通信适用于允许数据偶尔出现差错的场景如体育赛事直播等简单快
这两个协议没有好坏之分只是应用场景不同如果不确定使用哪个的时候就要 tcp毕竟复杂一点比丢包好
网络字节序
机器有大小端之分大小端机器存储数据方式不同。大端是“正着存储”的可读性较好因此在网络传输时规定所以到达网络的数据必须时大端存储的因此如果是小端机收发数据到网络时需要先转化为大端
网络主机数据转化接口
ip 地址为4个字节使用 uint32_tport 为2个字节使用 uint_16
htonl、htons 是转网络ntohl、ntohs 是转主机数据使用这些接口可以自动识别机器的大小端并将数据转化为需要的大小端数据。
#include arpa/inet.h
uint32_t htonl(uint32_t hostlong);
uint16_t htons(uint16_t hostshort);
uint32_t ntohl(uint32_t netlong);
uintl6_t ntohs(uint16_t netshort);
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928897.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!