网络编程基础(网络字节序)

网络编程概念

1.分类
根据网络覆盖范围进行划分:局域网、城域网、广域网
国际性更大的广域网不同叫法:互联网,因特网
组件技术:以太网,令牌环网
2.IP地址
IP地址:一台主机在网络中的标识。(唯一性)
uint32_t类型的整数——IP地址数据类型(IPV4)
DHCP—动态地址分配
NAT—网络地址转换
3.端口
端口:网络通信中一台主机上进程的标识符。
Uint16_t类型的数据——范围0~65535
每个网络中的数据不仅带有源端IP和对端IP,还包括源端端口和对端端口。

源端IP+源端端口+对端IP+对端端口
描述了当前数据是从网络中的哪个主机中的哪个进程发出,要发送到哪个主机的哪个进程。

4.协议
网络通信协议就是网络通信中数据格式约定。要实现网络互连,就需要具有统一的网络通信协议标准。
OSI七层网络互连模型:以提供的服务不同将网络通信环境划分为七层。
层次划分:应用层—表示层—会话层—传输层—网络层—链路层—物理层
TCP/IP五层模型:
应用层:负责应用程序之间的数据沟通;FTP/HTTP
传输层:负责进程之间的数据传输;UDP/TCP
网络层:负责地址管理与路由选择;IP<路由器>
链路层:负责相关设备之间的数据传输;以太网协议-eth<交换机>
物理层:负责物理广电信号的传输。以太网协议<集线器>
5.网络字节序
主机字节序:一台主机上CPU对内存中数据按照字节为单位进行存取的顺序。
分类:
大端:低地址存高位
小端:低地址存低位
一个变量/数组的起始位置就是低地址,随着下标变大而变大。

高位 0000 0001 0000 0010 0000 0011 0000 0100 低位——0*01020304
inta;

地址就是低地址高地址

主机字节序主要强调的是存储单元大于一个字节的数据类型。
short/int/long/float/double
主机字节序对网络字节序的影响:主机字节序不同,则有可能在网络通信中会产生数据二义。
想要避免因为主机字节序不同而导致的数据二义,则需要在网络中统一字节序标准。——网络字节序(大端字节序)
意味着如果主机为小端,则需要在网络通信时将数据转换为网络字节序后进行发送。
uint32_t htonl (uint32_t hostlong);32位数据主机到网络字节序转换
uint16_t htons (uint16_t hostshort);16位数据主机到网络字节序转换
uint32_t htohl (uint32_t netlong);32位数据网络到主机字节序转换
uint16_t htohs (uint16_t netshort);16位数据网络到主机字节序转换

sip+sport+dip+dport+protocol=标识一条通信
网络中的每条数据中都会有完整的五元组信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值