协议: 一组规则
分层模型结构:
OSI(Open System Interconnect): 物,数,网,传,会,表,应
TCP/IP 4层模型: 链,网,传,应
应用层:HTTP,FTP,SSH,TELNET,NFS
传输层:TCP, UDP
网络层: IP, ICMP, IGMP
链路层: 以太网帧协议,ARP
网络传输流程:
数据没有封装以前,是不能在网络中传递
以太网帧协议(链路层):
ARP协议: 根据IP地址获取MAC地址。
以太网帧协议: 根据mac地址,完成数据包传输。
IP协议(网络层):
版本: IPv4,IPv6
TTL: time to live 。设置数据包在路由节点中的跳转上限。 每当经过一个路由器,算一跳,如果经过一定的次数,就会把数据包丢弃,防止拥塞网络。
源IP: 32位——4字节 192.168.1.108 ——点分十进制IP地址(string)——二进制(给网络节点看的)
目标IP: 32位——4字节
IP地址: 网络环境中唯一标识一台主机。
端口号: 在网络的一台主机上唯一标识一个进程。
IP地址+端口号: 网络环境中唯一标识一个进程。
UDP(传输层):
16位源端口号 16位目的端口号
32位序号
32位确认序号
6个标志位
16位窗口大小。 2^16 = 65536
C/S
优点: 缓存大量数据,协议选择灵活,速度快,应用程序的迭代和更新更方便
缺点: 安全性
B/S
优点: 安全性,跨平台
缺点: 不能缓存大量数据,必须严格遵守HTTP协议
管道有两个文件描述符,一个缓冲区。
套接字有一个文件描述符,两个缓冲区。一个发送缓冲,一个读缓冲。
网络字节序:
小端法(pc本地存储): 高位存高地址,低位存低地址。
大端法(网络存储): 高位存在低地址上,低位存在高地址上。
网络数据流采用大端字节序。
htonl(unit32_t hostlong)函数本地字节序转网络字节序。