【linux】网络基础1-网络概念

本文介绍了网络通信的基础知识,包括IP地址(IPv4和IPv6)、端口的概念及其在网络通信中的作用,以及协议的重要性。强调了网络字节序在不同主机间通信时统一数据表示的标准。此外,提到了网络协议的分层模型,如OSI七层模型和TCP/IP五层模型,以及典型协议和设备。
摘要由CSDN通过智能技术生成

iP地址:网络中每一台主机的唯一标识

并且网络传输的数据中,必然都会包含有两个要素:源端iP地址,目的端iP地址,这两个信息标识了起点和终点,数据从哪来到哪去

网络中的路由器,就会辨别这个目标主机P地址属于哪个网络,然后规划路径将数据发送到对应网络

目标地址:明确目标网络,进行网络中的路径规划

本质:

ipv4:uint32t类型的数据--无符号32位的整形数字

uit32t类型,最大的数字232-1,大概就是42亿9千多万,也就是说1P地址在实际使用中其实是不够用的。

DHCP技术--动态地址分配技术(谁上网给谁分配地址)

NAT技术:网络地址转换技术--主要应用于私网的组建(私网中的大量主机可以使用同一个公网地址进行上网)

ipv6:uint8t_ip[16]--128位的数据

但是ipv6并不向前兼容ipv4,也就是如果直接使用ipv6标准通信,以前基于ipv4的设备,程序就都用不了了

通过iP地址可以实现网络中指定的两台主机之间的通信,

端口:在一台主机上用于唯一标识一个网络通信进程的

本质:uint16t--无符号16位的整数

这两个信息描述了,是两台指定的主机上的哪两个进程之间的通信(理解:网络通信其实也是一种进程间通信)

小明给小红发的消息是QQ消息,凭什么这个QQ消息就一定是QQ这个程序处理的,而不是主机上的w微信处理的

因此网络中传输的数据,还必须在一条主机上标识应该由哪个进程来处理

因此网络传输的数据中,不但要有源端iP,对端iP,还需要有两个信息:源端端口,对端端口

一个端口只能属于一个网络通信进程,但是一个网络通信进程可以使用多个端口

一个网络通信进程起来了之后,就会告诉系统和网卡收到的数据中,哪个数据应该交给自己来处理(告诉系统自己用了哪些端口)

ps:

为什么不用进程端口标志而是用单独一个端口标志,因为进程端口会因为程序重启而改变。

协议:就是约定,网络协议就是网络通信中的数据格式约定,不同的主机必须遵循相同的网络通信协栈(一组协议)才可以实现实质通信

小明和小红进行通话:上层必须都使用中文,下层必须都使用手机(2G/3G/4G/5G-网络频段)

这里的中文,以及手机频段都是一种协议;因此网络通信使用的不是单个协议,而是一组协议。

国际标准化组织这时候就订立各种协议标准,大家想要通信都必须使用相同的这条标准协议进行

并且对协议进行了分层:

协议分层:按照网络通信环境,不同层次所提供的服务,使用的协议,提供的接口对整个通信环境进行了分层

OS七层网络互联模型:应用层,表示层,会话层,传输层,网络层,链路层,物理层

ps:但是因为OS引七层模型划分的过于细致,导致实现起来过于复杂,因此其他组织在这个基础上提出了

TCP/IP五层模型:

应用层:

负责应用程序之间的数据沟通的格式约定(QQ与QQ的沟通协议,SSH);典型协议:HTTP,SSH,SMTP,FTP,

传输层:

负责进程之间的数据传输的格式约定;典型协议:TCP/UDP(内部就描述了源端端口,对端端口)

网络层:

负责地址管理与路由选择;典型协议:P协议(内部描述了源端P,对端P);典型设备:路由器

链路层:

负责相邻设备之间的数据传输:典型协议:ETH协议-以太网协议(内部描述了相邻设别的MAC地址);典型设备:交换机

物理层:

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

典型协议:以太网协议(与组网技术有关)

典型设备:集线器

网络字节序:

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

内存地址有高低地址之分,数据二进制有高低位之分,,数据在内存进行存储,从低地址开始存储,到底先存高位还是低位

例子:

int a=0x01020304

大端字节序:低地址存高位01020304

小端字节序:低地址存低位04030201

主机字节序不同对于网络通信的影响:

如果网络通信的两台主机,主机字节序相同,则可以不用考虑字节序问题但是如果不同,就有可能会

造成数据二义:

数据的传输一定是发送了什么数据,对方就接收什么数据

大端主机:inta=0x01020304;01020304->01020304小端主机解释:0x04030201

解决方案:网络传输的数据,使用统一的字节序标准-网络字节序(采用的是大端字节序)

不需要关心对方主机的字节序了,因为对方发送到网络中的数据都是网络字节序的

你只需要根据自己的主机字节序进行转换即可

因此注意:如果编写网络程序要考虑跨平台问题,存储单元大于1字节的数据类型对应的数据,就要使用网络字节序进行通信

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值