一、认识IP地址:
IP协议有两个版本, IPv4和IPv6.
我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4 IP地址是在IP协议中, ⽤用来标识网络中不同主机的地址;
对于IPv4来说, IP地址是⼀一个4字节, 32位的整数;
我们通常也使⽤用 "点分⼗十进制" 的字符串表⽰示IP地址, 例如 192.168.0.1 ; ⽤用点分割的每⼀一个数字表 ⽰示⼀一个字节, 范围是 0 - 255。
二、认识端口号:
端口号:具有两字节大小的整数;标识某一个进程;
IP地址+端口号能够标识网络上的一台主机的某一个进程;(唯一)
一个端口号只能被一个进程占用;
socket 套接字=IP地址+端口号;
网络间两个socket之间的通信,就是两个进程的通信。
三、TCP 协议:(信息可靠性高)
传输层协议 ;有连接 ;可靠传输 ;面向字节流。
四、UDP协议:(效率高)
传输层协议 ;⽆无连接 ;不可靠传输 ;面向数据报。
五、网络字节序:
默认为大端;发送时主机转网络,接收时网络转主机。
六、socket 常用 API接口(系统调用)
// 创建 socket ⽂文件描述符 (TCP/UDP, 客户端 + 服务器)
int socket(int domain, int type, int protocol);
// 绑定端⼝口号 (TCP/UDP, 服务器)
int bind(int socket, const struct sockaddr *address, socklen_t address_len);
// 开始监听socket (TCP, 服务器)
int listen(int socket, int backlog);
// 接收请求 (TCP, 服务器)
int accept(int socket, struct sockaddr* address, socklen_t* address_len);
// 建⽴立连接 (TCP, 客户端)
int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);