TCP
拥塞控制
慢启动
拥塞窗口值从1开始指数型增长,直到遇到拥塞。
拥塞避免
当慢启动到拥塞窗口/2(达到阈值)后,每次只增加1。
快恢复
快恢复是在慢启动阶段遇到拥塞后,直接从拥塞窗口/2处增加,每次加1,省去从1开始指数增长。
快重传
服务端收到三次冗余ACK则意味着有丢失,直接重传数据。
报文段
ACK:表示当前这个确认序号有意义。
SYN:握手,创建连接。
FIN:挥手,断开连接。
三次握手
TCP连接的每一个数据包都有一个序列号,用于标识数据包的顺序和完整性。
四次握手
网络编程
socket
sock(AF_INET/AF_INET6,SOCK_STREAM,0)
ipv4/ipv6;序列化、可靠的、双向的、基于连接的字节流;使用未指定的默认协议。
bind
绑定地址
listen
服务端socket进入监听状态,可以和多个客户端创建一对一的连接,
accept
服务端从监听socket提取第一个连接。返回一个新的socket(文件描述符),并与客户端连接,形成一对一匹配。
connect
由客户端调用,用于和服务端来连接。完成第三次握手。
send
从一个套接字往另一个套接字发送数据
recv
一个套接字从另一个套接字读取数据
shutdown
关闭套接字的一部分或多部分连接。
网络字节序和主机字节序转化
大端字节序:网络字节序
小端字节序 :主机字节序 (因为x86普遍是小端)
发送数据前需要将主机字节序转换为网络字节序,
接收数据后则需要将网络字节序转换为主机字节序。