1.TCP(Transmission Control Protocol)
三次握手/四次挥手
功能:通信双方必须互相确定对方的存在
下载文件;数据完整性要求高;数据可靠性要求高;传输性能要求低

2.UDP(User Datagram Protocol)
No. | 分类 | 举例 |
---|
1 | 单播(unicast) | 私聊,爱奇艺视频 |
2 | 广播(broadcast) | 广告,病毒 |
3 | 多播/组播(multicast) | 群聊,春晚直播 |

3 IP(Internet中主机的标识)
3.1 分类
32位(IPV4)/128位(IPV6) (32位是4个字节)
3.2 表示形式(常用点分形式)
No. | 协议 | 形式 | e.g. |
---|
1 | IPv4 | 点分十进制 | 192.168.0.1 |
2 | IPv6 | 点分十进制 | ::192.168.0.1 |
3 | IPv6 | 点分十六进制 | ::C0A8:0001 |
3.3 特例
No. | IP地址 | 地址类型 | 作用 |
---|
1 | 0.0.0.0 | 通配地址 | 主机上所有IP,多网卡共用 |
2 | 127.0.0.1 | 回环地址 | 本地虚拟接口,无网卡可用,检查本地网络协议 |
3 | 255.255.255.255 | 广播地址 | 受限广播地址,当前路由器均不转发此类广播 |
4 | XXX.XXX.XXX.255 | 广播地址 | 子网广播地址 |
5 | XXX.XXX.255.255 | 广播地址 | 全子网广播 |
6 | 224.0.0.0 ~239.255.255.255 | 组播地址 | 详细参见组播地址分类 |
No. | 类型 | 简写 | 本质 | e.g. |
---|
1 | 大端 | BE(big endian) | 将高序字节存储在起始地址 | IBM、网络 |
2 | 小端 | LE(little endian) | 将低序字节存储在起始地址 | Intel |
Socket三个要点
- socket是一个编程接口;是一种特殊的文件描述符
a. 协议域domain
No. | 参数 | 含义 |
---|
1 | AF_INET | IPv4 |
2 | AF_INET6 | IPv6 |
3 | AF_LOCAL | Unix域 |
b. 类型type
No. | 类型 | Type | 作用 | 说明 |
---|
1 | 流式套接字 | SOCK_STREAM | 提供面向连接、可靠的数据传输服务,数据按字节流、按顺序收发,保证在传输过程中无丢失、无冗余。 | TCP协议支持该套接字。 |
2 | 数据报套接字 | SOCK_DGRAM | 提供面向无连接的服务,数据收发无序,不能保证数据的准确到达。 | UDP协议支持该套接字。 |
3 | 原始套接字 | SOCK_RAW | 允许对低于传输层的协议或物理网络直接访问 | 常用于检测新的协议 |
No. | 类型 | 作用 |
---|
1 | 流式套接字(SOCK_STREAM) | 提供了一个面向连接,可靠的数据传输服务,数据无差错,无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制 |
2 | 数据报套接字(SOCK_DGRAM) | 提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收 |
4 | 原始套接字(SOCK_RAW) | 可以对较低层次协议如IP,ICMP直接访问 |
c. 协议protocol
No. | 参数 | 含义 |
---|
1 | IPPROTO_TCP | TCP |
2 | IPPROTO_UDP | UDP |