计算机网络:IP、端口、网络通信协议、TCP/IP五层模型、字节序

简介: 计算机网络:IP、端口、网络通信协议、TCP/IP五层模型、字节序

一、网络类型


局域网:网络覆盖范围在1000米以内的网络;


城域网:网络覆盖范围在20km以内的网络;


广域网:网络覆盖范围在20km以上的网络;


因特网,互联网:更大的国际化的广域网;


以太网,令牌环网:组网方式。


二、IP地址


本质:一个uint32_t无符号32位的整数。


作用:在网络中能够唯一标识一台主机。


发展:


       因为IP地址为无符号32位整数,所以网络中的IP地址数量是有限个的,只有接近43亿个。随着网络的发展,IP地址数已经不能够满足人们的使用,所以为了解决这个问题,又发展出了一些相关的技术和IPv6的产生。


       IPv4版本IP地址:uint32_t


               1)DHCP:动态地址分配


               2)NAT技术:网络地址转换技术-组建私网


       IPv6版本IP地址:uint8_t ip[16]


               IPv6版本IP地址,并不向前兼容IPv4。


注意:


       在网络中通信的每一条数据中,都会包含两个信息:源端IP地址&对端IP地址。因为这两个信息描述了数据从网络中的哪个主机发出,和要到达哪个主机。


数据五元组:源端IP,源端口,目的IP,目的端口,传输层协议


三、端口PORT


本质:uint16_t:无符号16位整数


作用:在一台主机上标识一个网络通信进程。


注意:


      1)在网络通信的每一条数据中都会有两个信息:源端端口&对端端口。


      2)一个端口只能被一个进程占用,但是一个进程可以使用多个端口。


      3)每个主机上的网络通信程序都会提前告知操作系统,网卡收到的发往哪个端口的数据应该交给自己来处理。


四、网络通信协议


协议:


       约定网络通信协议,指的就是网络通信中数据的格式约定。


       为了实现网络互联,在复杂的网络通信环境中必须定义对应的协议标准。


1. 协议分层


       将复杂网络通信环境,按照提供的服务、使用的协议、接口,进行划分。


2. ISO:OSI七层网络互联模型


       应用层、表示层、传输层、网络层、链路层,物理层。


3. IEEE:TCP/IP五层模型


3.1 应用层


       复杂应用程序之间的数据沟通。


       典型协议:HTTP、FTP、SMTP、


3.2 传输层


       负责进程之间的数据传输。


       典型协议:TCP/UDP协议---包含了端口信息


3.3 网络层


       负责地址管理与路由选择。


       典型协议:IP协议---包含了IP地址信息。


       典型设备:路由器


3.4 链路层


       负责相邻设备之间的数据传输。


       典型协议:ETH协议---包含了MAC地址信息。


       典型设备:交换机


3.5 物理层


       负责物理光电信号的传输。


       典型协议:以太网协议


       典型设备:集线器


五、字节序


1. 主机字节序


主机字节序:


       cpu对内存中数据以字节为单位进行存取的顺序。


       主机字节序取决于cpu架构。


       例:x86---小端        mips---大端


注:内存有高低地址之分,数据的二进制有高低位之分。


分类:


       大端:低地址存高位


       小端:低地址存低位


示例:


image.png


2. 网络字节序


网络字节序:网络通信中的字节序标准,采用的是大端字节序。


       在网络通信中,若通信两端主机是不同的字节序,则就有可能出现数据二义性。因此,规定了网络通信中必须使用网络字节序。


字节序针对什么样的数据?


       针对存储单元大于一个字节的数据。


       因为存储单元小于等于一个字节的数据,并不会受字节序影响。比如:字符,字符数组……


结构体变量的字节序问题:


       结构体变量,若要考虑字节序问题,应该是针对每一个成员变量单独考虑,而不是整体考虑翻转。


相关文章
|
8月前
|
网络协议 算法 Java
基于Reactor模型的高性能网络库之Tcpserver组件-上层调度器
TcpServer 是一个用于管理 TCP 连接的类,包含成员变量如事件循环(EventLoop)、连接池(ConnectionMap)和回调函数等。其主要功能包括监听新连接、设置线程池、启动服务器及处理连接事件。通过 Acceptor 接收新连接,并使用轮询算法将连接分配给子事件循环(subloop)进行读写操作。调用链从 start() 开始,经由线程池启动和 Acceptor 监听,最终由 TcpConnection 管理具体连接的事件处理。
272 2
|
8月前
基于Reactor模型的高性能网络库之Tcpconnection组件
TcpConnection 由 subLoop 管理 connfd,负责处理具体连接。它封装了连接套接字,通过 Channel 监听可读、可写、关闭、错误等
219 1
|
8月前
|
JSON 监控 网络协议
干货分享“对接的 API 总是不稳定,网络分层模型” 看电商 API 故障的本质
本文从 OSI 七层网络模型出发,深入剖析电商 API 不稳定的根本原因,涵盖物理层到应用层的典型故障与解决方案,结合阿里、京东等大厂架构,详解如何构建高稳定性的电商 API 通信体系。
|
5月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
6月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
399 2
|
6月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
145 8
|
8月前
基于Reactor模型的高性能网络库之Poller(EpollPoller)组件
封装底层 I/O 多路复用机制(如 epoll)的抽象类 Poller,提供统一接口支持多种实现。Poller 是一个抽象基类,定义了 Channel 管理、事件收集等核心功能,并与 EventLoop 绑定。其子类 EPollPoller 实现了基于 epoll 的具体操作,包括事件等待、Channel 更新和删除等。通过工厂方法可创建默认的 Poller 实例,实现多态调用。
383 60
|
8月前
|
安全 调度
基于Reactor模型的高性能网络库之核心调度器:EventLoop组件
它负责:监听事件(如 I/O 可读写、定时器)、分发事件、执行回调、管理事件源 Channel 等。
400 57
|
8月前
基于Reactor模型的高性能网络库之时间篇
是一个用于表示时间戳(精确到微秒)**的简单封装类
262 57
|
7月前
|
算法 安全 网络安全
【多智能体系统】遭受DoS攻击的网络物理多智能体系统的弹性模型预测控制MPC研究(Simulink仿真实现)
【多智能体系统】遭受DoS攻击的网络物理多智能体系统的弹性模型预测控制MPC研究(Simulink仿真实现)
283 0

热门文章

最新文章