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

计算机网络基础--认识协议

目录

前言

一、IP地址与端口

二、网络协议

1.网络体系结构框架

2.网络字节序


前言

提示:这里可以添加本文要记录的大概内容:

        计算机网络涉及非常广泛,这篇文章主要对计算机网络有个认识


提示:以下是本篇文章正文内容,下面案例可供参考

一、IP地址与端口

IP地址

        设备的标识符,在网络中是主机的唯一标识,是互联网通信的基础。

IP地址分为IPv4和IPv6

        IPv4:uint32_t类型的数据,代表一个无符号32位整形数据,可以存储0~2^32-1个整数

        IPv6:unit8_t ip[16]表示一个IPv6地址,并且不向前兼容。

IPv6是为了防止IPv4使用完而创建出的,但是为了防止使用完创建了DHCP与NAT技术

        DHCP:动态地址分配技术--谁上网给谁分配IP地址

        NAT:网络地址转换技术--组建私网,私网中的大量主机可以使用同一个IP地址

分类:目的IP地址和源端IP地址

        目的IP地址:接收者的地址

        源端IP地址:发送者的地址 

        为了能够进行网络通信,网络中的每条数据中都包含了源端IP地址与目的IP地址,描述数据从哪里来,到哪里去

端口:PORT--在一台主机上 用于发送和接收数据。

作用

        由于一台主机可以运行多个网络服务,它的作用用于区分不同的网络请求。

        客户端与服务器中的某个服务建立连接,需要指定服务器的IP地址和端口号

        端口号帮助网络层将数据包正确地传递给目标主机是的相应进程

本质:uint16_t--无符号16位整数范围 0~65535。一个网卡能发起网络通信的范围

端口分类:源端端口和对端端口

        源端端口:发送端端口信息

        对端端口:接收端端口信息

二、网络协议

1.网络体系结构框架

OSI模型:由国际标准化组织提出的,是一个理论框架。现在主流的是TCP/IP模型

OSI分为七个层次:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

 TCP/IP模型--传输控制协议/互联网协议模型

        应用层:负责应用程序之间的数据沟通。如:FTP、SSH、HTTP。

        传输层:负责端与端之间的数据传输。如:TCP、UDP。

        网络层:负责IP地址的管理与路由选择。如:IP协议、ICMP。

        链路层:负责相邻设备之间的数据传输。如:ETH、交换机。

TCP/IP模型一般为四层,也可以为五层,第五层是物理层。

        物理层:负责物理广电信号的传输。

数据封装:初始数据进行网络传输,从应用层开始,到物理层,层层进行封装,通过光电信

                  号发送到指定主机中。

数据分用:主机接收到的光电信号从物理层开始到应用层层层解封,得到原始数据。

 

2.网络字节序

字节序

        CPU对内存中的数据进行存取的顺序

存储:在计算机中,数据的表示一般使用二进制。如 int a = 0x01020304

分类

        大端字节序:低地址存高位。 0x01 0x02 0x03 0x04

        小端字节序:低地址存低位。 0x04 0x03 0x02 0x01

        主机字节序取决于CPU的架构:x86-小端 MIPS-大端

在网络通信中,如果两个主机之间的字节序,一个是大端,一个是小端,会导致数据错误。为了处理不同字节序之间的转换问题,制定了网络字节序标准--大端字节序

        发送方无需关注对方字节序,发送的数据,先转化成网络字节序发送出去,接收方也无需理会对方的字节序,接收数据,总是以网络字节序转换为自己对应的主机字节序进行处理

影响

        对于单元存储大于一个字节的数据类型有影响。

http://www.lryc.cn/news/450083.html

相关文章:

  • 基本控制结构2
  • php 平滑重启 kill -SIGUSR2 <PID> pgrep命令查看进程号
  • 实时美颜功能技术揭秘:视频美颜SDK与API的技术剖析
  • word2vector训练代码详解
  • Python的风格应该是怎样的?除语法外,有哪些规范?
  • net core mvc 数据绑定 《1》
  • python为姓名注音实战案例
  • MATLAB中的艺术:用爱心形状控制坐标轴
  • 基于mybatis-plus创建springboot,添加增删改查功能,使用postman来测试接口出现的常见错误
  • Java:Object操作
  • Java-并发基础
  • 速盾:网页游戏部署高防服务器有什么优势?
  • 【从0开始自动驾驶】ros2编写自定义消息 msg文件和msg文件嵌套
  • docker 部署 Seatunnel 和 Seatunnel Web
  • 【易上手快捷开发新框架技术】nicegui标签组件lable用法庖丁解牛深度解读和示例源代码IDE运行和调试通过截图为证
  • 从HarmonyOS Next导出手机照片
  • [Docker学习笔记]Docker的原理Docker常见命令
  • 【ESP 保姆级教程】小课设篇 —— 案例:20240507_esp01s+UNO的智能浇水系统
  • 如何设置MySQL分布式架构主键ID,为什么不能使用自增ID或者UUID做主键?
  • 服务器虚拟化详解
  • 医疗陪诊APP开发实战:从互联网医院系统源码开始
  • jenkins 构建报错ERROR: Error fetching remote repo ‘origin‘
  • 初识C#(三)- 数组
  • 黑马智数Day3
  • 【Java】再一次踩了整数溢出的坑
  • Windows开发工具使用技巧大揭秘:让编码效率翻倍的秘籍!
  • CSS外边距
  • C++ set,multiset与map,multimap的基本使用
  • 评估潜力无限:解读自闭症患者的工作能力评估
  • js 实现视频封面截图