Linux_网络基础(一)

一.  协议 --- "协议" 是一种约定

1. 协议分层

是一种协议封装, 便于使用

对服务, 接口, 协议 进行明确的划分; 形成标准实现起来就简单

 

2.OSI七层参考模型 (了解)

物理层  数据链路层  网络层  传输层   会话层  表示层   应用层

 

3.TCP/IP五层(或四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇

物理层: 负责光/电信号的传递方式; 以太网协议; 集线器

数据链路层: 负责设备之间的数据帧的传送和识别; Ethernet; 交换机

网络层: 负责地址管理和路由选择; IP;  路由器

传输层: 负责两台主机之间的数据传输; TCP, UDP

应用层: 负责应用程序间沟通 HTTP FTP DNS

 

二. 网络传输基本流程

1.数据包封装和分用

Linux_网络基础(一)

数据分用和封装相反

三. 网络中的地址管理

IPV4: uint32_t --- 43亿左右 --- 在网络上唯一标识一台主机

IPV6: uchar ip[16]  --- 不兼容IPV4

解决Ipv4 不够用的方法:

DHCP: 动态IP分配

NAT: 地址替换   多人使用一个IP

port: uint16_t --- 0 ~ 65535

网络程序分为客户端和服务端, 主动发起请求的是客户端, 被动接受连接的是服务端(服务端的地址不变)

端口用来标识主机中的一个进程,  告诉操作系统, 当前的这个数据要交给哪一个进程来处理

四. 网络字节序 

字节序: CPU在内存中对数据进行存取的顺序

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

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

标准 --- 网络字节序 (大端字节序)