网络发展背景、IP、端口、网络通信协议,TCP/IP五层模型、字节序
一、网络发展背景
局域网:网络覆盖在1000m以内的网络
城域网:网络覆盖在20km以内的网络
广域网:网络覆盖在20km以上的网络
因特网、互联网:更大的国际化的广域网
以太网(ETH)、令牌环网:组网方式
二、IP
1、作用
在网络中能够唯一标识一台主机。
2、本质
uint32_t——无符号32位的一个整数。
注意:在网络中通信的每一条数据中,都会具有俩个信息——源端IP地址&对端IP地址
因为这俩个信息描述了数据从网络中的那个主机来,要到那个主机去。因为IP地址大小是无符号4字节,因此网络中的IP地址只有43亿个左右
IPv4版本IP地址:uint32_t
DHCP:动态地址分配
NAT技术:网络地址转换技术(一种组件私网,私网中的大量主机使用的一个对外地址通信)
IPv6版本IP地址:uint8_t ip[16],并不向前兼容IPv4。
一条数据中包含的信息:sip , sport ,dip,dport,protocol(协议)五元组
三、端口PORT
1、本质
uint16_t类型——无符号16位的整数。
2、作用
在一台主机上标识一个进程。
注意:在网络中通信的每一条数据中,都会具有俩个信息——源端端口&对端端口
每个主机上的网络通信程序都会提前告诉操作系统,网卡收到的发往哪个端口的数据应该交给自己来处理。
一个端口只能被一个进程占用,但是一个进程可以有多个端口。
四、网络通信协议、TCP/IP
1、定义
就是约定,指的是网络通信中的数据格式约定。
协议分层:将复杂的网络通信环境,按照提供的服务,使用的协议、接口进行划分。
2、国际标准化组织(ISO)
OSI七层网络互联模型:应用层,表示层,会话层,传输层,网络层,链路层,物理层
3、IEEE,TCP/IP五层模型
应用层:负责应用程序之间的数据沟通,HTTP,FTP,SMTP
传输层:负责进程之间的数据传输,TCP/UDP——包含了端口信息
网络层:负责地址管理和路由选择,IP——包含了IP地址信息,典型设备:路由器
链路层:负责相邻设备之间的数据传输,ETH(以太网地址协议)——MAC地址,交换机
物理层:负责物理光点信号的传输,以太网协议——集线器
五、网络字节序
1、字节序
cpu对内存中数据以字节为单位进行存取的顺序。
2、分类
内存有高低地址之分,数据二进制有高低位之分。
- 大端:低地址存高位
- 小端:低地址存低位
eg:
主机字节序是取决于cpu架构的:x86——小端; MIPS——大端
3、场景
- 字节序在网络通信中存在的一些问题
- 什么样的数据才存在字节序的问题
比如上图:在网络通信中,通信的俩端主机是不同字节序,就可能出现数据二义性
因此规则在网络通信中必须使用网络字节序(网络通信中的字节序标准)
网络字节序采用的是大端字节序。
4、字节序针对什么样的数据?
针对存储单元大于一个字节的数据。
如果是结构体变量,如果要考虑应该是针对每一个成员变量单独考虑,而不是整体考虑翻转。
第一个就是对的。