Linux网络基础1(发展背景、ip地址、端口、通信协议、网络字节序)

本文介绍了网络通信的基础概念,包括局域网、城域网、广域网、互联网和因特网的覆盖范围区分。重点讲解了IP地址、端口、协议及其在网络中的作用,以及IPV4、IPV6的区别。同时阐述了TCP/IP五层模型和OSI七层模型,明确了各层的主要功能。此外,还讨论了网络字节序的问题,包括主机字节序和网络字节序的转换方法。最后,提到了网络通信中的五元组概念,它是标识数据传输的关键信息。
摘要由CSDN通过智能技术生成

局域网、城域网、广域网:根据网络覆盖范围进行的网络划分

互联网、因特网:相同的东西不用的叫法(具有国际性的更大的广域网) 

以太网、令牌环网:组网技术

IP地址:一台主机在网络中的标识

IPV4:uint32_t无符号四字节类型的整数---IP地址数据类型;DHCP---动态地址分配,NAT---网络地址转换

IPV6:uint8_t ip(16个字节),不向前兼容IPV4

端口:网络通信中一台主机上进程的标识符(uint16_t无符号两字节类型的整数数据0~65535),目的是为了让接收方主机收到数据后能够知道应该哪个进程处理数据,一个端口只能被一个进程占用

每一个网络中的数据都会带有的信息:源端IP地址、对端IP地址、源端端口、对端端口

源端端口+源端IP+对端IP+对端端口:描述了当前这个数据是从网络中的哪个主机上的哪个进程发出来的,要发往哪台主机上的哪个进程

协议:约定

网络通信协议实际上就是网络通信中的数据格式约定,因此要实现网路互连,就必须具有统一的网络通信协议标准

ISO:OSI七层网络互连模型:以提供的服务不同将网络通信环境划分为7层(由上往下层次划分:应用层、表示层、会话层、传输层、网络层、链路层、物理层)

TCP/IP五层模型:

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

传输层:负责进程之间的数据传输---UDP、TCP

网络层:负责地址管理与路由选择---IP、路由器

链路层:负责相邻设备之间的数据传输---以太网协议eth、交换机

物理层:负责物理光电信号的传输---以太网协议eth、集线器

网络字节序

主机字节序:一台主机上cpu对内存中数据按照字节为单位进行存取的顺序(大端:低地址存高位,小端:低地址存低位),一个变量/数组的起始地址即就是低地址,随着下标变大而变大

判断主机字节序:

(1)创建联合体union{int a; char b;} tmp;   tmp.a = 1;   if(tmp.b == 1){小端字节序}

(2)int a = 1;   char* b = (char*)&a;   if(*b == 1){小端字节序}

主机字节序主要强调的是存储单元大于一个字节的数据类型

主机字节序对网络通信的影响:两个不同主机字节序主机的数据通信,有可能会产生数据二义(小端0x00000001,大端:0x01000000)

想要避免因为主机字节序不同而导致的数据二义,则需要在网络中统一字节序标准---网络字节序(实际上为大端字节序)

发送方将数据转换为网络字节序的数据进行发送,接收方接收到数据之后根据自己主机字节序决定如何转换

#include<arpa/inet.h>

uint32_t htonl(uint32_t hostlong);主机->网络 32位

uint16_t htons(uint16_t, hostshort);主机->网络 16位

uint32_t ntohl(uint32_t netlong);网络->主机 32位

uint16_t ntohs(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、付费专栏及课程。

余额充值