1、OSI网络七层模型 协议
应用层 A: 提供应用程序间通信 DNS、Telnet、TFTP、HTTP、SNMP、FTP、SMTP 文件传输,电子邮件,文件服务,虚拟终端
表示层 P: 处理数据格式、数据加密等 数据格式化,代码转换,数据加密
会话层 S: 建立、维护和管理会话 解除或建立与别的节点的联系
传输层 T: 建立主机端到端的连接 TCP、UDP 提供端对端的接口
网络层 N: 寻址和路由选择 IP、ICMP、OSPF、BGP、IGMP、ARP、RARP 为数据包选择路由
数据链路层 D: 提供介质访问、链路管理等 SLIP、PPP、MTU 传输有地址的帧以及错误检测功能
物理层 P: 比特流传输 ISO2110,IEEE802,IEEE802.2 以二进制数据形式在物理媒体上传输数据
2、TCP(传输控制协议) VS UDP(用户数据包协议)
TCP:有连接,可靠
TCP特点:
1)面向连接的传输
2)端到端的通信
3)高可靠性,确保传输数据的正确性,不出现丢失或乱序
4)全双工方式防暑
5)采用字节流方式,即以字节为单位传输字节序列
6)紧急数据传送功能
UDP:无连接,不保证可靠
TCP与UDP的区别:
1)TCP协议面向连接,UDP协议面向非连接
2)TCP协议传输速度慢,UDP协议传输速度快
3)TCP协议保证数据正确性,UDP协议不保证
4)TCP协议保证数据正确性,UDP协议可能丢包
5)TCP协议对系统资源要求多,UDP协议要求少
三次握手:
A向B发消息:
A - SYN-> B (SYN received)
A <- SYNACK- B
A -Eatablished -> B
3、Socket
Socket类型:
SOCK_STREAM:按照顺序、可靠的数据完整的基于字节流的连接,使用TCP来传输
SOCK_DGRAM:无连接,固定长度的传输调用,不可靠协议,使用UDP来连接
SOCK_RAW: 提供单一提的网络访问,使用ICMP公共协议
struct sockaddr
{
short int sa_family;
char aa_data[14];
};
sa_family:用来标识地址类型
AF: address family
PF:Protocal family
4、字节序:指多字节数据在计算机内存中存储或者网络传输时各字节的传输顺序