OSI 七层模型:物理 数据链路 网络 传输 会话 表示 应用
TCP/IP 4层模型:应用 传输 网络 链路
ARP协议:根据ip地址获取相应的mac地址
IP协议:TTL:设置数据包在路由节点中的跳转上限(生存时间)
源IP:32位 ———4字节 例:192.168…1.108
IP地址:可以在网路环境中唯一标识一台主机
端口号:可以在网络主机上 唯一标识一个进程
C/S模型优点:缓存大量数据 协议选择灵活 速度快
缺点:安全性无法保证 跨平台难度大
B/S模型优点:安全 可以跨平台
缺点: 不可缓存 只可以用http
套接字:
一个文件描述符指向一个套接字(套接字内部由内核借助两个缓冲区实现)
通信过程中套接字是成对出现的
网络字节序:
小端法(本地存储):高位存高 低位存低
大端法(网络存储):高位存低地址 低位存高地址
socket函数:创建一个套接字,如果成功的话返回新套接字所对应的文件描述符
bind函数:给socket绑定一个地址结构(ip + 端口号)
listen函数:设置同时与服务器建立连接的上限数(同时进行三次握手的客户端数量)
accept函数:阻塞等待客户端建立连接 成功的话返回一个与客户端成功连接的socket文件描述符
connect函数:使用现有的socket与服务器建立连接
主动发起连接请求端:CLOSE – 发送SYN – SEND_SYN – 接收 ACK、SYN – SEND_SYN – 发送 ACK – ESTABLISHED(数据通信态)
被动接收连接请求端: CLOSE – LISTEN – 接收 SYN – LISTEN – 发送 ACK、SYN – SYN_RCVD – 接收ACK – ESTABLISHED(数据通信态)
主动关闭连接请求端: ESTABLISHED(数据通信态) – 发送 FIN – FIN_WAIT_1 – 接收ACK – FIN_WAIT_2(半关闭)
-- 接收对端发送 FIN -- FIN_WAIT_2(半关闭)-- 回发ACK -- TIME_WAIT(只有主动关闭连接方,会经历该状态)
-- 等 2MSL时长 -- CLOSE
被动关闭连接请求端: ESTABLISHED(数据通信态) – 接收 FIN – ESTABLISHED(数据通信态) – 发送ACK
-- CLOSE_WAIT (说明对端【主动关闭连接端】处于半关闭状态) -- 发送FIN -- LAST_ACK -- 接收ACK -- CLOSE